如何通过 GitHub 操作将 R 包提交给 CRAN?

How to submit an R package to CRAN via GitHub Actions?

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

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

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

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

即使您确实想自动执行此过程,中间也有一个电子邮件验证,因此您可能必须使用 selenium + 其他脚本来做一些事情。

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