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 帐户。
  • 其次,你需要在 GitHub 仓库中放入你的 R 包。在你的本地 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 Consortium 运行程序

如果你不想将软件包放在 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 Consortium 运行程序的局限性

  • 你的软件包将公开给全世界,并存储在 https://github.com/r-hub2 组织中。任何拥有 GitHub 帐户的人都可以查看你的检查输出和结果。如果你希望你的软件包保持私有,可以将其放在私有 GitHub 存储库中,并改用 rhub_setup()rhub_check() 函数。
  • R Consortium 运行程序在所有用户之间共享,因此你可能需要等待内部版本启动。
  • 你必须至少等待五分钟,才能通过 rc_submit() 提交后续版本。
  • 目前,你需要创建一个 GitHub 帐户才能查看你的软件包的检查日志。你不需要 GitHub 帐户就可以提交检查。

为避免这些限制(除了需要一个 GitHub 帐户之外),将包放入 GitHub 存储库中,并使用 rhub_setup()rhub_check() 函数来代替 rc_submit() 和 R Consortium 运行程序。