r - 如何使用 github 子模块在 github 上发布 R 包?
问题描述
我在 github 上有一个 R 包。这个 R 包具有 C++ 依赖项,我包含在/src
.
我通常会这样做(在 R 之外)的正确方法是在 github repo 中创建子模块,它可以链接到正确的提交作为依赖项。
在 R 中这样做的问题是这些子目录将被解释为“空”并且安装将无法正常工作,例如
> devtools::install_github("reponame/packagename")
* checking for file 'bambi/DESCRIPTION' ... OK
* preparing 'packagename':
* checking DESCRIPTION meta-information ... OK
* cleaning src
* checking for LF line-endings in source and make files
* checking for empty or unneeded directories
...
因此,checking for empty or unneeded directories
导致错误,因为子模块被解释为空子目录。因此,它找不到必要的依赖项,并且我会遇到致命错误build
(1) 是的,解决此问题的一种方法是将依赖项物理地放在 R 包中。不过,这确实违背了子模块的目的,这些子模块非常有用。
(2) 使用以下论点似乎有效:
devtools::install_git("reponame/packagename", args="--recursive")
问题在于,这不是默认行为。我对从运行devtools::install_git("reponame/packagename")
但没有阅读自述文件中的细则的用户那里收到数十个 github 问题感到紧张
(3) 有没有更好的方法?使用子模块将 R 包发布为 github 存储库的标准方法是什么?