请从本文开始了解 R-hub v2,尤其是在您以前使用过 R-hub 旧版本的情况下。

R-hub v2

简介

R-hub v2,即 rhub 软件包的 2 及更高版本,是一个全新的检查系统。在本文中,我们将重点介绍旧系统和新系统之间的差异。

R-hub v2 有两种使用方式。推荐的方式是将您的 R 软件包存储在 GitHub 存储库中,并使用 rhub_*() 函数在 GitHub Actions 上启动检查,使用您自己的 GitHub 帐户。

或者,如果您不想在 GitHub 上存储 R 软件包,可以使用 rc_*() 函数在 https://github.com/r-hub2 上的共享 GitHub 组织中使用 R Consortium 运行器运行检查。请参阅下文有关 R Consortium 运行器的更多信息。

从 R-hub v1 过渡

使用 R-hub v2 的要求

  • 首先,您需要一个 GitHub 帐户。

  • 其次,您需要将您的 R 软件包放在 GitHub 存储库中。在您的本地 git 克隆中确保 origin git 远程已设置为 GitHub 存储库。

  • 第三,您需要一个 GitHub 个人访问令牌,并且您需要将其存储在您设备的 git 凭证存储中。您可以使用 gitcreds::gitcreds_set() 将令牌添加到 git 凭证存储。

从本地 git 克隆调用 rhub_setup() 为您的软件包设置 R-hub v2。这将向您的本地存储库中添加一个 GitHub Actions 工作流。将此更改推送到 GitHub,进入您的默认 git 分支,然后您就可以使用 rhub_check() 调用开始检查。

与 R-hub v1 的差异

  • 检查从 GitHub 获取软件包,因此它不使用您本地 git 克隆中的更改。您需要先将更改推送到 GitHub。您可以使用 rhub_check()branch 参数使用非默认分支。

  • 您不会收到有关检查结果的电子邮件。但是,您会收到有关检查失败的常规 GitHub 通知,除非您选择退出。如果您愿意,Github 也可以将它们转换为电子邮件。

  • R 控制台中没有检查的实时输出。请访问 GitHub 上存储库的“操作”选项卡,以获取实时检查日志。

  • 有许多更专业的平台可供使用。

  • 大多数平台都使用二进制包,因此检查和特别是安装依赖项的速度要快得多。

私有存储库

GitHub Actions 对公共存储库免费。对于私有存储库,您还可以获得一些免费分钟,具体取决于您拥有的 GitHub 订阅。有关详细信息,请参阅关于 GitHub Actions 的计费

分支

可以在推送到 GitHub 的任何分支上运行检查,但您需要添加 R-hub 工作流文件(存储库中的 .github/workflows/rhub.yaml)必须同时出现在默认分支(通常为 main)和要运行检查的分支中。

R 联盟运行器

如果您不想将软件包放在 GitHub 上,您仍然可以使用 rhub 软件包在任何受支持的平台上运行软件包检查,方法是使用 https://github.com/r-hub2 GitHub 组织中的共享运行器池。

该过程类似于第一版的 R-hub

  • 将您的工作目录设置为您要检查的 R 软件包。

  • 从 R-hub 获取令牌,以验证您的电子邮件地址

    rc_new_token()

    (如果您使用相同的电子邮件地址从同一台计算机将软件包提交到旧版本的 R-hub,则无需执行此操作。调用 rc_list_local_tokens() 检查您是否已拥有令牌。)

  • 使用以下内容提交构建

    rc_submit()

  • 选择您想要使用的平台,并按照说明和提供的链接查看您的检查结果。

R 联盟运行器的限制

  • 您的软件包将对全世界公开,并存储在 https://github.com/r-hub2 组织中。您的检查输出和结果将对拥有 GitHub 帐户的任何人公开。如果您想让软件包保持私有,可以将其放入私有的 GitHub 存储库中,并使用 rhub_setup()rhub_check()函数。

  • R 联盟运行器在所有用户之间共享,因此您可能需要等待您的构建开始。

  • 您必须在使用 rc_submit() 提交之间至少等待五分钟。

  • 目前,您需要创建一个 GitHub 帐户才能查看软件包的检查日志。您无需使用 GitHub 帐户提交检查。

要避免这些限制(GitHub 帐户除外),请将您的软件包放置在 GitHub 代码库中,并使用 rhub_setup()rhub_check() 函数,而不是 rc_submit() 和 R Consortium 运行器。