首页 > 解决方案 > 使 CRAN R 包建议 GitHub R 包

问题描述

我想BOLTSSIRR在我的 R 包中使用 GitHub 上提供的 R 包,我想将它上传到 CRAN。

BOLTSSIRR我在文件Suggests:中列出DESCRIPTION并使用Additional_repositories: https://github.com/daviddaigithub/BOLTSSIRR.

但是,运行R CMD check --as-cran我得到:

Suggests or Enhances not in mainstream repositories:
  BOLTSSIRR
Availability using Additional_repositories specification:
  BOLTSSIRR   no   ?                                          
  ?            ?   https://github.com/daviddaigithub/BOLTSSIRR
Additional repositories with no packages:
  https://github.com/daviddaigithub/BOLTSSIRR

所以 GitHub 链接似乎在支票中没有得到认可。我可能需要在这里改变一些东西吗?

标签: rgithubcran

解决方案


如您所见,您不能Remotes在 CRAN 包中使用。您需要做的是确保.tar.gz您所依赖的软件包的文件在某处可用。Github 不会自动执行此操作,因为https://github.com/daviddaigithub/BOLTSSIRR没有设置为包存储库。

解决方案是创建自己的小型存储库,并在其中保留非 CRAN 包的副本。只要您有 Github 帐户, 该drat软件包(可在此处获取:https ://github.com/eddelbuettel/drat)就可以轻松完成:按照此处的说明进行操作: https ://github.com/drat-base/drat 。总之:

  1. 将https://github.com/drat-base/drat分叉到您的帐户中,并将其克隆到您自己的计算机上。
  2. docs/使用主分支中的文件夹启用 Github Pages 。
  3. 使用 .将包安装drat到 R 中remotes::install_github("eddelbuettel/drat")。(我假设这个版本最终会进入 CRAN;如果你使用当前的 CRAN 版本,说明会稍微复杂一些。)
  4. 构建要插入的包。您需要源版本;如果您的用户难以构建二进制文件,您可能也需要二进制文件。
  5. 运行options(dratBranch="docs"); drat::insertPackage(...)以将这些文件插入到您的存储库中。
  6. 提交更改,并将它们推送到 Github。
  7. 在需要使用这个非CRAN包的包中,添加
    Additional_repositories: https://yourname.github.io/drat
    到DESCRIPTION。

如果更新,您将负责更新您的存储库BOLTSSIRR。这很好,因为更新可能会破坏您的更新:毕竟,它仍处于开发模式。这也很糟糕,因为您的用户不会自动获得错误修复。

就是这样,如果我没有错过任何东西!


推荐阅读