问题标签 [package-development]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
420 浏览

r - 在 Mac 上为 Windows 构建 R 包

我在Mac下开发了一个包,想分发给我的同事。我可以在 Mac 下构建包,也可以在 Mac 和“大多数”同事的 Windows PC 下安装它。其中一些是 Windows 7,一些是 Windows 8。它们都使用 RStudio 和 3.1 以上的不同 R 版本。

我现在有一台电脑的一个大问题,不知道该怎么做。

当我尝试安装软件包时,我收到以下消息

我现在复制了完整的包源,所以所有文件夹和文件,到 Windows 机器,在那里安装了 Rtools 和 devtools 并在 Windows 机器上构建了同样问题的包......

有没有办法获得更精确的错误信息,而不仅仅是状态信息?我没有更多的想法。

我也感觉到我的文件赢得了建设者。它没有报告错误消息,但我也没有从网站上获得“新构建包”。

希望你们中的一些人有一些建议。提前致谢!

编辑:

在开始时将路径更改为没有 \\ 的内容并尝试删除所有其他错误消息后,我收到了以下消息:

在这之间,我取得了部分成功,但仍然无法安装该软件包。这是介于两者之间的输出:

0 投票
2 回答
193 浏览

r - 在我的包中使用例如 ddply 时,如何摆脱 R CMD 检查生成的注释?

我有一个类似但不同的问题,当我的 ggplot2 语法合理时,如何处理 R CMD 检查“全局变量没有可见绑定”注释?.

在那种情况下,通过使用 aes_string 而不是 aes,一切都可以顺利进行。但是,这对于 plyr afaik 是不可能的。

例如,当我通过 ddply 引用数据框中的列名时,就会出现问题。

这段代码是完全有效和理智的,即使我理解注释的使用,它们仍然会混淆输出窗口中的其他消息,使包开发成为一种痛苦,实际上迫使开发人员忽略注释。

摆脱这些笔记的正确方法是什么?或者,以 R CMD check 接受而不给出 NOTE 的方式编写代码的正确方法是什么?

最好的,迈克尔

0 投票
3 回答
1279 浏览

twitter-bootstrap - 如何在流星包中重用引导程序的 LESS 变量

我正在制作一个包,为引导程序提供一些额外的 ui 组件。我选择依赖(很棒的)nemo64:bootstrap包来获取 LESS 引导库。

我的包必须提供额外的 LESS 文件,这些文件需要一些引导 LESS 变量(比如@brand-success)。最终用户很可能已经自定义了这些变量。

nemo64 :bootstrap包提供了一个custom.bootstrap.import.less包含引导变量的文件 ( ) 供用户在需要的地方包含它。它也是期望用户自定义其引导程序的地方。所以我想将它包含在我的包的 less 文件中,但我不知道,从我的包中,最终用户将把这个文件放在哪里。

我可以假设给出的默认路径在nemo64:bootstrap包文档 ( /client/lib/custom.bootstrap.import.less) 上有一个示例,但是如果另一个包编写者做出不同的选择,这些包将不兼容。

有没有办法不对最终用户强制执行特定的文件架构?

0 投票
1 回答
11632 浏览

r - 在 Windows 上构建/检查 R 包时权限被拒绝错误

我尝试hyperSpec使用 Windows Vista 构建 R 包。当我这样做时,我收到以下错误消息:

无论我使用命令行R CMD build还是 R Studio 的构建工具(安装了 RTools,安装了所有包依赖项),都是一样的。

为了解决这个问题,我尝试更改临时目录的路径或手动设置文件夹的权限,但没有成功。我试图以管理员身份执行所有操作,但再次没有成功。

我认为,这里讨论了一个类似的问题:

https://stat.ethz.ch/pipermail/r-devel/2013-April/066389.html

然而,没有针对这个问题提供解决方案。

另外,当我尝试用Win7构建包时,我也遇到了同样的问题。

0 投票
1 回答
511 浏览

r - 获取 R CMD 检查以了解反斜杠

我正在编写一个我一直使用的函数包,其中一个基本上是一个简短的包装器setdiff

所以1:6 %\% 4:6 == 1:3

记录这似乎是一场斗争。以下是我的my_package-infix.Rd文件中引发问题的相关部分:

当我运行时,R CMD check my_package_0.1.0.tar.gz我收到警告:

暗示这可能意味着我需要更多的逃避,我试图调整这些行:

但是产生的令人沮丧的警告是:

所以现在我们已经从一个未转义的反斜杠变成了两个反斜杠。有些东西没有加起来......什么给了?.Rd解析手册(2.2.1)的相关部分没有提供太多帮助:

反斜杠 \ 用作转义字符:\\、\%、\{ 和 \} 删除第二个字符的特殊含义。解析器将删除初始反斜杠,并将另一个字符作为文本的一部分返回。反斜杠也用作标记宏的初始字符。在类似 R 或 LaTeX 的上下文中,反斜杠后跟字母字符开始宏;宏名称一直持续到第一个非字母数字字符。如果无法识别名称,解析器会删除末尾的所有数字,然后重试。如果仍然无法识别,则将其作为 UNKNOWN 令牌返回。反斜杠的所有其他用途都是允许的,并由解析器作为文本传递。

它似乎编译得很好——R CMD build并且R CMD INSTALL没有给出任何错误,当我运行时library(my_package),我可以运行?"%\\%"以调出正确的手册页,我正在使用的地方,正如预期的那样(当我在andA %\% B中只使用一个转义时)。aliasusage

我见过其他一些人为此苦苦挣扎,但没有解决方案,例如herehere,后者由Yihui Xie(knitr其他软件包的开发人员)开发。

(PS 中间甚至没有偶数build个反斜杠,因为这意味着百分号不会被转义并被%解释为.Rd文件中的注释字符)


编辑:我已经更接近于破解坚果(似乎)。

查看解析器手册的表 1-3 (第 5-7 页),我们可以看到发送到的文本以usage“R-like”方式解释,而 toalias被解释为“逐字”。我不确定这到底是什么意思(尽管第 8-9 页有描述),但R CMD check如果我使用以下内容,我会少些刻薄:

现在只有一个警告:

0 投票
1 回答
566 浏览

r - R包开发-项目中使用的旧版本功能

我正在使用devtoolsRStudio 在本地开发一个包。修改函数后,当我尝试从项目中调用它时,R 继续使用旧版本的函数。

我的工作流程是:

  • 修改函数并保存
  • 称呼Build & Reload
  • 使用包开发项目中的一些示例代码测试该功能(Build & Reload之后我经常运行另一个)
  • 转到我要在其中使用该功能的项目
  • 称呼library(my_library)

但是我刚刚做的修改不会有效。这个工作流程有什么问题?

0 投票
0 回答
268 浏览

r - 如何在成功构建 R 包时自动更新版本号

我找到了这篇关于如何在 R 中自动更新包版本号的文章原文)。

我想以与他们建议的方式相同的方式实现它,但我当时无法创建自己Makefile的包来构建包

他们提供的功能运行良好。

谁能帮我创建一个Makefile检查,构建,如果两者都成功增加版本号,在新版本号下构建。在 RStudio 中,可以选择Makefile作为构建工具。

一般来说,我喜欢让所有开发包都带有第 4 个版本号,例如0.1.2.9001. 目前我总是覆盖我的包,只手动设置三个数字,比如0.1.3.

0 投票
1 回答
879 浏览

r - r - document() 包失败 if (pkg$package == "devtools") { 中的错误:参数长度为零

更新

我已经完成了这个包,它在https://github.com/iembry-USGS/ie2misc在线托管。

由于原始帖子中的错误消息没有帮助,我尝试对包进行 roxygenize 以查看它是否有效。以下是命令和错误消息。

我假设意外的输入是指一个字符,但我不知道哪个文件包含有问题的字符。

任何帮助都会有所帮助。

谢谢你。

更新结束

我正在创建一个包含 3 个函数的包。我已经成功地使用 1 个函数创建了 3 个其他包,但没有使用这个包。

我在下面包含了DESCRIPTION文件的内容。该内容下方是我在尝试记录此包时收到的代码和错误。

谢谢你。

然后我运行:

0 投票
1 回答
238 浏览

r - 由于 ~/.Rprofile 而在 check() 上测试该错误,但在 test() 上却没有?

编辑:

是否有可能~/.Rprofile没有加载在check(). 看起来我的整个过程都失败了,因为~/.Rprofile没有加载。

完成编辑

我在使用testthat. 实际上,当我测试我的包时test()一切正常。但是当我测试时,check()我收到一条错误消息。

错误消息说:

在此错误之前,我获取了一个定义subfolder_prefix变量的脚本,我想这就是它在这种test()情况下工作的原因。但我希望它也能在check()函数中运行。

我会把完整的测试脚本贴在这里,希望不要太复杂:

在我的脚本中,我定义了变量subfolder_prefix <- 'IC_',并在测试中检查是否为每个原始文件创建了相同数量的文件夹......这就是我的脚本应该做的......

所以正如我所说,我不确定如何在这里调试这个问题,因为test()工作但check()在运行测试期间失败。

0 投票
1 回答
68 浏览

php - Laravel 5 可重用项目

在为一个项目构建了一个包之后,我们意识到按照Laravel 5 包开发清晰度做我们需要实现的事情存在一些问题

也许我宁愿解释我的目标,有人可以建议前进的方向。

我们已经构建了一个现在需要“重用”的 Laravel 5 应用程序。

我们不得不修改 Laravel 并实现一个 Eloquent 类型的基本模型,因为我们的数据源实际上是 C# Web 服务。此时,将对数据库进行调用,我们拦截它并对 SOAP 进行“API”调用。

主要区别在于 CSS,可能是一些 JS 和内容,但所有的路由/控制器/模型在所有项目中都将保持不变。大多数配置来自端点。

最初,我们考虑为每个站点的样式创建多个资产存储库,并拥有一个基础存储库,这是包含的核心 Laravel 项目。这似乎变得相当复杂,因为由于分支和多目录问题,我们不能简单地在 repo 中有一个 repo。

然后我们开始尝试将“核心”构建为 Laravel 包的想法,但我们似乎经常碰壁。最新的问题是在包中包含模型。对于要调用的模型,我们使用根项目 config/composer 来访问这些模型,而不仅仅是服务提供者。感觉这个包正变得与项目配置紧密耦合。

有没有更好的方法来实现我们正在努力实现的目标?

编辑:

我忘记了 1 个 repo 上的多分支解决方案,但是在功能开发方面这不会变得丑陋吗?例子:

这在开发人员手中留下了相当多的破坏性合并权力?使用拉取请求读取访问权限可能是解决此问题的方法吗?