【问题标题】:How to submit an R package to CRAN via GitHub Actions?如何通过 GitHub Actions 向 CRAN 提交 R 包?
【发布时间】:2021-10-23 04:55:08
【问题描述】:

我创建了一个 R 包,每当我将更改合并到主分支时,我想通过 GitHub Actions 将它上传到 CRAN。我发现了很多 examples 的 R 操作,甚至查找了 how some of the most popular packages like dplyr do it,即使我找到了 devtools::release() 辅助函数,我仍然没有看到可以提交库的工作流当您将更改合并到主分支时到 CRAN。包开发人员是否手动执行此操作?这有什么原因没有自动完成吗?

【问题讨论】:

    标签: r github-actions continuous-deployment cran r-usethis


    【解决方案1】:

    CRAN 的工作方式与其他语言存储库完全不同,因为上传不是完全自动化的,例如PyPI。

    当您上传一个新包时,它需要经过真人的验证。当你更新一个包时,如果它触发了某些检查,它也将受到人工的新审查。当一个包成功上传并通过第一次验证时,会在数周内对其运行许多自动检查(例如,不同的操作系统、编译器、编译器选项、架构、消毒剂、valgrind 等),并自动生成预编译的二进制文件您的源代码中的一些平台和 R 版本。

    CRAN 政策明确规定不允许频繁更新,而且您提交上传的速度不应超过每几个月一次,我认为这种级别的自动化不值得。

    即使你确实想自动化这个过程,中间也有一个电子邮件验证,所以你可能不得不用 selenium + 其他脚本做一些事情。

    顺便说一句,如果您担心复杂的构建过程并且正在使用 RStudio,您可以基于每个项目配置在构建包的源代码或二进制发行版时要使用的参数。

    【讨论】:

    • 感谢您的回复!我明白了,这是有道理的,尽管 R 和 CRAN 如此落后:(
    • 这不准确,因为他们有严格的质量控制机制并不落后。我们都受益于质量。您仍然可以上传到 CRAN 包存储库;我的drat 包使管理这些变得非常容易。最后,r-universe 可能已经做了你在这里的事情,所以也许可以调查一下?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    • 2018-11-20
    • 1970-01-01
    • 2015-03-01
    • 1970-01-01
    相关资源
    最近更新 更多