IVR*_*IVR 7 r continuous-deployment cran github-actions r-usethis
我创建了一个 R 包,每当我将更改合并到 master 分支时,我想通过 GitHub Actions 将其上传到 CRAN。我发现了很多R 操作的示例,我什至查找了一些最流行的软件包(如 dplyr)是如何做到这一点的,尽管我找到了一个devtools::release()辅助函数,但我仍然没有看到一个工作流程可以当您将更改合并到主分支时,将库提交到 CRAN。软件包开发人员是否手动执行此操作?有什么原因导致这没有自动化吗?
CRAN 的工作方式与其他语言存储库完全不同,因为上传并不像 PyPI 那样完全自动化。
当您上传新包时,它需要经过真人验证。当您更新软件包时,如果它触发了某些检查,它也将受到人工的新审查。当包成功上传并通过第一次验证时,会在几周内对其运行许多自动检查(例如不同的操作系统、编译器、编译器选项、体系结构、消毒剂、valgrind 等),并自动生成预编译的二进制文件源代码中的一些平台和 R 版本。
CRAN 政策明确规定不允许频繁更新,并且您提交上传的速度不应超过每几个月一次,为此我认为这种级别的自动化是不值得的。
即使您确实想自动化此过程,中间也会有一个电子邮件验证,因此您可能必须使用 selenium + 其他脚本执行某些操作。
顺便说一句,如果您担心复杂的构建过程并且正在使用 RStudio,则可以在每个项目的基础上配置在构建包的源代码或二进制发行版时要使用的参数。