请注意,biocthis不是Bioconductor-core包,因此它不是一个Bioconductor官方包。它是由和莱昂纳多Collado-Torres这样他就能更容易维护和创建Bioconductor包所列lcolladotor.github.io / pkg /。希望biocthis也会对你是有用的。

1基础知识

最基本的,请检查介绍biocthis装饰图案

2biocthis开发人员指出

2.1基本信息

2019年,我能够接受“建设整洁工具”车间了夏洛特哈德利韦翰期间rstudio:会议(2019)由于多样性奖学金。在这个车间,我了解了usethis(韦翰,布莱恩和巴雷特,2021),devtools(韦翰,海丝特,Chang, et al ., 2021),testthat(韦翰,2011)等R包,以及如何使用RStudio桌面更有效地创建R包。我需要修改这个材料和更多的练习CDSB车间2019:如何构建和创建整洁的工具我们重复使用的材料(和他们的许可),翻译西班牙语。多年来我有多次BioconductorR包我保持。但我学到了很多由于夏洛特和哈德利和已经越来越多的依赖usethis和相关的包。

今年早些时候(2020)我的一个Bioconductor包(regionReport)是展示一些错误操作系统而不是别人。我第一次花了相当多的时间R设置相应的安装在我与工作无关的Windows电脑。我仍然难以重现这个错误,所以我终于学会了如何使用Bioconductor码头工人的图片。运行以下代码,然后有一个环境的系统安装Bioconductor包的依赖关系。在这个系统你可以安装你的包依赖关系,得到非常接近Linux环境中机用于测试Bioconductor包。

码头工人运行\ - e密码= bioc \ - p 8787:8787 \ bioconductor / bioconductor_docker:猛击

使用这个码头工人形象,我终于能够重现这个错误涉及其他Bioconductor包。然而,有一个难以重现的第二个错误。使用GitHub的行为很快,我将谈论更多,我就能找到第二个问题的根源并解决它。

biocthis(Collado-Torres, 2022)诞生于我的兴趣继续使用usethis和相关工具,但Bioconductor-friendly的方式。也就是说,这是一个计划,将帮助我(或者其他)。这个包诞生于这五个问题:

2.2样式代码

BiocCheck运行在所有新的Bioconductor包默认提交和检查新包是否匈牙利瑞士比分坚持吗Bioconductor编码风格指南。很长一段时间,建议formatR作为自动样式代码的解决方案在一个R包。而formatR主要工作和我使用过,我最近发现斯泰勒可用于样式代码以适应tidyverse编码风格指南。在我自己的包,我已经找到了斯泰勒要优于formatR因为它:

  • 休息时间更少的代码,
  • 可以格式roxygen2示例代码,
  • 像小插曲,需要格式化您所需要R减价文件。
  • 加在我看来是在积极维护,这始终是一件好事。

我做了相关的几个问题斯泰勒自动代码需要格式化您所需要更紧密地匹配Bioconductor编码风格指南。这就是bioc_style ()出生,这是建议的方法讨论吗Bioc-friendly风格特征的建议整r-lib /器# 636。的维护者斯泰勒,洛伦茨Walthert,有一个很好的回答问题链接为一个更详细的讨论如何扩大斯泰勒如果工作需要这样做。

目前,bioc_style ()不完全复制Bioconductor编码风格,但它变得足够近。作为马丁•摩根说,推荐斯泰勒formatR建议Bioconductor / BiocCheck # 57一个解决方案,得到90%的方法是不够好。bioc_style ()是一个很短的函数,主要是因为Bioconductor和Tidyverse编码风格指南是整体非常相似。这个函数不会解决所有检测到的格式问题BiocCheck,但如果你真的想,你可以禁用格式检查:

# # BiocCheck使用以下最新的选择::使用()# #禁用格式检查BiocCheck:: BiocCheck (“——no-check-formatting”= TRUE)

2.3GitHub的行为

2.3.1动机

我一直在使用特拉维斯CI几年来帮助我R CMD检查每次我做出承诺,推动它GitHub特拉维斯CI大多很好对我来说,虽然我经常不得不操作限制在50分钟。我最近还遇到了一个问题哈德利韦翰说:”我们现在推荐使用github操作工作流相反;这可以避免所有这些配置的痛苦”。我也遇到了一个问题并不总是发生在特拉维斯CI但那是潜在的相关提供的计算资源(内存)。我听到这个词GitHub的行为rstudio:会议(2020)但我最后失踪了吉姆·海丝特的,你可以说话在线观看:我强烈推荐它,希望我已经开始我的冒险到GitHub的行动。简单地说,GitHub的行为允许您运行检查Windows, macOS或Linux机器上的时间长达6小时7 GB的RAM。这两个比我所使用的操作系统特拉维斯CI、大量的长时间和一个像样的内存块。

的意义对我来说很重要,因为这三个操作系统Bioconductor夜间运行检查在这三个平台上。这是一个很好的方法来知道你Bioconductor R包适合于大多数用户。然而,您每天只有一次报告。如果你不是最像我这样的人组织的,和必须解决代码发布之前,然后你没有很多天来检查你的R包(s)和需要更频繁的反馈。我一直在寻找一种方法来检查所有三个平台上运行。Bioconductor有单包生成器这样做,但它仅限于新方案提交。匈牙利瑞士比分

我知道有AppVeyor在Windows上运行检查,但我从未使用过它。特拉维斯CI支持macOS和Linux。在过去,我已经使用rhub我可以运行测试包使用的组合特拉维斯CIrhub为详细的# 52 r-hub rhub /问题rhub维护人员也采取措施支持Bioconductor发布周期描述# 38 r-hub rhub /问题。不管这个平台,它最终会很高兴有一个单独的配置文件,你(包开发人员)不需要更新每Bioconductor发布周期。

2.3.2开发一个Bioconductor-friendly GHA工作流

我看到在Twitter上宣布GitHub的行为usethis这是当我开始看起来更进usethis行动吉姆·海丝特,特别是r-lib /行动/例子。作为我平时我试图让它工作,然后必须更密切地关注文档和代码。天真的,我认为我可以r-lib /行动/ / check-standard.yaml例子立即Bioconductor-friendly,吉姆·海丝特被认为是一个复杂的任务。正如您可以看到的Bioconductor-friendly R CMD检查功能的建议r-lib /行动# 84这一段了。工作时,我也看了其他几个资源和现实世界的例子:

大多数Bioconductor-friendly GitHub的发展行动提供的工作流biocthis是完成了leekgroup / derfinderPlot .github /工作流/ check-bioc.ymlLieberInstitute / recount3 .github /工作流/ check-bioc.yml详细:Bioconductor-friendly R CMD检查功能的建议r-lib /行动# 84。然后进一步改善把请求与测试进行lcolladotor / testmatrix

这项工作最终导致use_bioc_github_action ()今天也不例外。这个GHA工作流的功能描述介绍biocthis装饰图案。回到故事发展GHA工作流,GHA工作流上工作的时候,我遇到了几个问题,我也不会感到惊讶,如果我们遇到更多的人。

  • R比有更多的标签释放重击,所以就在R 4.0.0叫做被释放α,而释放指着3.6.3重击4.1.0。在r-lib /行动/拉/ 68决定,这是一个瞬态问题。同时我想让GHA工作,这导致我很多问题安装包依赖关系R 4.1.0测试Bioconductor 3.11,这是你应该做的事!Bioconductor 3.11是运行在4.0 R。x,而不是4.1.x。Herve页面帮助我的这些技巧,特别是窗口。在Windows上,我更多地了解了r-lib /动作从更新在Windows上支持Rtools 4.0通过珀斯Ooms,这江诗丹顿AE和我讨论RStudio社区网站。在macOS我遇到了编译XML从源及其系统依赖关系。我也遇到了xml2 /问题/ 296现在正式解决由于xml2 /问题/ 302不过,看r-lib / usethis .github /工作流/ R-CMD-check.yamlr-lib / usethis /提交/ .github /工作流/ R-CMD-check.yaml是非常有用的。
  • 我有一些安装问题BiocCheck和运行R CMD BiocCheckWindows和Bioconductor码头工人形象(不同的问题),我可以避免使用下面这样的代码:Rscript - e”BiocCheck:: BiocCheck ()”
  • 显然,我们发现一个错误在代码内部的R。这是我的第二个问题,可以追溯到R内部!这是我们讨论了不少Bioc-devel邮件列表与马丁摩根,夏洛特Soneson等等。检查这个消息4线程的历史。我认为这是有关r-lib /遥控器/问题/ 296在某种程度上。
  • 我学到了在GitHub上缓存操作r-lib /行动/问题/ 86一般来说,我一直在试图更新GHA工作流来反映变化行动
  • 我遇到了一些配置问题git然后运行pkgdown,其中涉及的GITHUB_TOKEN和使用环境变量在Bioconductor码头工人的一步git配置——当地几次。您还需要运行pkgdown: deploy_to_branch ()一旦在本地设置gh-pages分支正确pkgdown工作从GitHub的行动。
  • 我遇到一个小问题r-lib covr /问题/ 427covr如果你的包没有测试。这和缓存的讨论,以及r-lib /行动/ / pr-commands.yaml例子促使我使用环境变量和条件有一个工作流顶部有一些选项,可以设置运行:covr提取信息,从testthat、运行pkgdown包括关键字,或者忽略缓存/ nocache你的提交消息。
  • 我不得不学习如何编译git从源通过修改这些指令为了有一个gitUbuntu 18.04等于2.18或更新的版本,这样我可以使用行动/ checkout@v2并避免与运行问题pkgdown。后来我才知道如何使用ppaUbuntu安装最新的git的版本。如果你使用行动/ checkout@v1你可以在结束r-lib /行动/问题/ 50。如果您使用默认值git2.17.1在Ubuntu 18.04那么你遇到操作/检验/问题/ 238和其他相关问题。我可以避免通过运行pkgdown在macOS而不是Bioconductor基于码头工人形象rockerdev / rstudio: R.4.0.0_ubuntu18.04。如今,bioconductor码头工人猛击图像基于Ubuntu 20.04,被称为。的RStudio包管理器(RSPM)大大提高了速度,R包安装在Linux上,因此Bioconductor码头工人的图像。
  • Nitesh Turaga卡尔蒂格rocker-org rocker-versioned /问题/ 208更新了摇臂码头工人形象RStudio 4.0 R和相应的Bioconductor码头工人的形象。为此,他们自己解决的几个问题。从我的身边,我只有等待=)
  • 我也学会如何与码头工人挂载目录启用高速缓存R包文件在使用Bioconductor码头工人的图片,和其他GitHub行动语法我很严重依赖他们的手册和谷歌搜索;他们引导我GitHub行动社区网站
  • 在2020年9月底,马塞尔·拉莫斯派了一个把请求,极大地改变了GHA操作流程(1)使用一个模板和(2)避免在macOS代码冗余,Windows和Linux(运行Bioconductor码头工人),这使得生成的GHA工作流更容易理解和定制。

2.3.3未来潜在的增加

  • 它可能是有用的使用完全相同的.RenvironBioconductor机器中使用的下载文件3.11 / Renviron.bioc和正确定位。
  • 类似的路线,它可能是有用的利用rcli,有可能避免直接处理的需要.Renviron文件。

2.3.4结束

结果Bioconductor-friendly workflo GitHub行动