4

我创建了一个 R 包,每当我将更改合并到主分支时,我想通过 GitHub Actions 将它上传到 CRAN。我找到了很多 R 操作的示例,我什至查看了一些最流行的包(如 dplyr)是如何做到的,即使我找到了一个devtools::release()辅助函数,我仍然没有看到一个工作流程可以当您将更改合并到主分支时,将库提交给 CRAN。包开发人员是否手动执行此操作?是否有任何理由为什么这没有自动化?

4

1 回答 1

5

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

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

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

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

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

于 2021-08-23T05:13:11.520 回答