内容

1bioccheck.

bioccheck.封装生物体包指导方针和最佳实践,分析包和报告三类问题:

2使用bioccheck.

bioccheck.意味着在包含R包或源tarball的目录中运行r内存(gz文件):

图书馆(Bioccheck)Bioccheck(“PackageTirortarball”)

bioccheck.接受选项,可以通过以下方式看到:

##使用:R CMD BiocCheck [options] package ## ## ## options:# #——新包# #使检查特定的新包# # # #——no-check-dependencies # #禁用检查坏依赖性# # # #——no-check-deprecated # #禁用检查使用弃用包# # # #——no-check-remotes # #禁用远程包以外的检查使用托管在凹口或Bioconductor # # # #——no-check-version-num # #禁用检查有效版本号# # # #——no-check-R-ver # #禁用检查有效R版本# # # #,no-check-pkg-size # #禁用检查包压缩文件大小# # # #——no-check-file-size # #禁用检查单个文件大小# # # #——no-check-bioc-views # #禁用biocViews-specific检查(non-BioC包)## ## --no-check-bbs ## disable BBS-specific checks (for non-BioC packages). Valid DESCRIPTION ## ## --no-check-description ## disable DESCRIPTION file checks ## ## --no-check-namespace ## disable namespace checks ## ## --no-check-vignettes ## disable vignette checks ## ## --no-check-library-calls ## disable check usage of functions that install or update packages ## ## --no-check-install-self ## disable check for require or library of itself ## ## --no-check-coding-practices ## disable check for some common best coding practices ## ## --no-check-function-len ## disable check for function length ## ## --no-check-man-doc ## disable checks for man page documentation ## ## --no-check-news ## disable checks for NEWS file ## ## --no-check-unit-tests ## disable checks for unit tests ## ## --no-check-skip-bioc-tests ## disable check for tests that skip when on bioc ## ## --no-check-formatting ## disable checks for file formatting ## ## --no-check-CRAN ## disable check for if package exists in CRAN ## ## --no-check-bioc-help ## disable check for registration on Bioconductor mailing list and support site ## ## --build-output-file=BUILD-OUTPUT-FILE ## file containing R CMD build output, for additional analysis ## ## --quit-with-status ## enable exit code option when performing check ## ## -h, --help ## Show this help message and exit

请注意,——新包选项已在附加到的包生成器中打开生物体包跟踪器,因为它几乎总是用于构建已提交的新包。

3.应该在什么时候bioccheck.运行

跑步bioccheck.在运行R CMD检查

请注意,bioccheck.难道不是替代吗R CMD检查;它是互补的。它应该在后面运行R CMD检查完成成功。

bioccheck.也可以通过Travis-CI(持续集成)系统。该服务允许在受控的构建环境中自动测试R包。

只需将以下行添加到您的包.travis.yml文件:

bioc_check:真实

4安装bioccheck.

bioccheck.应安装如下:

if(!“biocmanager”%rownames(已安装.packages()))install.packages(“biocmanager”)biocmanager ::安装(“bioccheck”)

包加载过程尝试安装调用脚本bioccheck.(BiocCheck.bat在Windows上)进入你的目录R安装。如果它没有做到这一点(最有可能是由于权限不足),它会告诉你,说一些类似:

复制“script/BiocCheck”脚本到/Library/Frameworks/R.framework/Resources/bin失败。如果你想要运行“R CMD BiocCheck”,你需要自己将它复制到你路径上的一个目录中,确保它是可执行的。有关更多信息,请参阅BiocCheck小插图。

您可以通过遵循这些说明来修复这个问题(请注意R可能存在于系统中与上面显示的目录不同的目录中)。

如果您没有权限将此文件复制到你的目录R如前所述,可以将它复制到路径中的任何目录中。有关修改路径的帮助,请参阅此链接(窗户还是这个(Mac / Unix)。

如果手动将此文件复制到路径中的路径中的目录,则不会在(重新)安装时继续查看上述消息bioccheck.但你可以安全地忽略它。

5解释bioccheck.输出

实际的bioccheck.输出如下所示大胆的

5.1依赖性检查

检查包依赖性……

可以禁用- 不校验依赖项

检查其他包是否可以导入这个…

  • 检查是否确保如果另一个程序包导入您的包裹,则不会导入问题(错误)。

检查我们是否了解对象初始化......。

  • 报告,如果它不能弄清楚对象是如何初始化的(请注意)。

5.2弃用包检查

检查已弃用的包使用…

可以禁用——no-check-deprecated

目前,这将查看您的包是否依赖于多核包(错误)。

我们的建议是使用生物相投。请注意,“Fork”群集不会在Windows上并行化代码并行的任何增益。套接字集群在所有操作系统上工作。

也检查弃用目前在Bioconductor发布版和开发版中指定的包(错误)。

5.3遥控器的使用检查

检查远程包的使用情况…

可以禁用——no-check-remotes

生物导体仅允许托管在Cran或Biocumond上的依次。指某东西的用途遥控器:不允许在描述中指定唯一的远程位置。

5.4版本检查

可以禁用——no-check-version-num——no-check-R-ver

检查版本号...

  • 检查版本号不匹配…检查包装中指定的包版本,如果您正在检查tarball)匹配的价值版本:在你的描述文件。如果没有,这通常意味着您没有使用它来构建tarballR CMD构建。(错误)
  • 正在检查新的包版本号…检查预发布版本是否有潜力生物体包装使用A.99“y”的版本x.y.z版本控制方案(错误)。以非零值开头的程序包版本将被标记为警告。典型的新包提交从零'x'bob体育取款很慢版本开始(例如,0.99 . *;警告)。这只是为了完成——新包选项提供。只有在这种情况下,包是预先发布或发布的,才会接受' x '非零值。
  • 正在检查版本号有效性…检查有效的版本,格式是否正确,版本号是否适合此版本生物体(错误)。
  • 检查版本依赖…如果你指定一个R版本依靠:你的领域描述文件,bioccheck.检查以确保指定的R版本与当前所使用的版本相匹配生物体。这可以防止包在早期版本的R中使用,这是不建议的,并且是用户困惑的常见原因(警告)。

有关包版本的更多信息,请参阅版本编号为Howto.

5.5包和文件大小检查

可以禁用- NNO-CHECK-PKG尺寸——no-check-file-size

  • 检查包的大小检查包大小是否满足生物体要求。软件包的当前包装大小限制为5 MB。实验数据和注释包被排除在此检查之外。如果检查源tarball,则仅运行此检查。(错误)

  • 检查个别文件大小当前所有单个文件的大小限制为5 MB。(警告)

可能有必要从git历史中删除大文件;看到删除大数据文件和清洁git树

5.6BIOCVIEWS检查

可以禁用- NNO-CHECK-BIOC视图选项,在检查时可能很有用生物体包裹(自从BiocViews是一个独特的概念生物体)。

检查biocViews……

可以禁用- NNO-CHECK-BIOC视图

  • 检查biocViews是否存在……检查一个biocViews字段出现在描述文件中(错误)。
  • 基于biocViews检查包类型如果包被标识为软件、注释、实验或工作流包,给出一个指示。
  • 检查非平凡的biocViews…检查biocViews是否比顶级术语Software、AnnotationData或ExperimentData (错误)。
  • 检查BioCViews有效性......检查有效视图并显示无效的视图。请注意,BioCViews区分大小写(警告)。
  • 检查biocViews是否来自同一类别…检查所有视图来自同一父级(软件,annotationData,实验Data)(警告)。
  • 检查推荐的生物景观…使用recommendBiocViews ()函数biocViews自动为您的包装建议一些生物视图。

有关BioCViews的更多信息使用biocViews HOWTO

5.7构建系统兼容性检查

生物体构建系统(BBS)是我们的夜间构建系统,它有一定的要求。不满足这些要求的包可以被BBS悄悄地跳过,因此确保每个包都满足要求是很重要的。

可以禁用——no-check-bbs

检查构建系统的兼容性…

  • 检查描述中的空行…检查以确保描述文件中没有空行(错误)。
  • 检查DESCRIPTION是否格式正确…检查是否可以使用read.dcf解析描述(错误)
  • 检查描述:字段长度…检查描述文件中的描述字段是否有最小值
    • 字符数(警告如果少于50)
    • 字数(警告如果不到20)
    • 句子数量(请注意如果小于3)
  • 检查描述字段名中的空格…检查以确保描述文件字段名中没有空格(错误)。
  • 检查包字段匹配dir/tarball名称…检查以确保描述文件字段匹配目录名或tarball名称(错误)。
  • 检查版本字段...检查以确保版本字段出现在描述文件中(错误)。
  • 检查有效的维护者…检查以确保描述文件具有有效的Authors@R解析为有效的维护者(错误)。

    一个有效的Authors@R字段包括:
    • 类的一个有效的R对象
    • 只有一个人cre(创造者)的作用。
    • 此人必须具有语法上有效的电子邮件地址。
    • 那个人必须有家庭给予定义的名字。
    • (可选)语法有效的orcid ID,结果如果不是,请注意。

5.8描述检查

  • 检查许可证:限制使用...检查以确保许可证:在描述文件中不限制使用,例如,只用于学术使用(错误)。许可证与提供的数据库进行比较file.path (R.home(“分享”,“许可证”、“license.db”))。数据库中没有列出的许可证用a标记请注意表示无法确定限制性使用状态。一种请注意也是生成的许可:字段畸形,或者数据库无法找到。

5.9命名空间检查

可以禁用——no-check-namespace

检查说明/命名空间一致性......

bioccheck.检测在命名空间中导入而不是在描述中导入的包,或者反之亦然,并提供如何修复此问题的解释(错误)。

检查名称空间导入建议...

如果是包codetoolsBioC安装了,bioccheck.将运行它以查看它是否有程序包命名空间的“导入”部分有建议。

codetoolsBioC是一个目前没有通过的实验包biocmanager :: install()。它可从我们的Subversion存储库使用readonly/readonly凭证。codetoolsBioC的输出被打印到屏幕上,但是bioccheck.不将其标记为错误、警告或注释。

5.10装饰图案的检查

可以禁用——no-check-vignettes

检查小插图目录……

只有当您的包是一个软件包时才运行(由您的biocViews),或者不能确定包类型。

  • 根据描述中的biocViews检查包类型。
  • 检查这一点小插曲目录存在(错误)。
  • 检查这一点小插曲目录只包含插图源(.Rmd,.Rnw,.rrst,.rhtml,* .rtex)(错误)。
  • 检查在检查目录(不是tar文件)时,inst/doc (错误)。
  • 检查vignetteBuidler/vignetteEngine是否列在描述文件(警告)
  • 检查描述中的vignetteBuilder和VignetteEngine在vignette中的是否兼容(错误)
  • 检查小标题是否仍在使用模板值(警告)
  • 检查是否有eval = false.chunks超过总数的50% (警告)。
  • 检查全局图形代码选项是否设置为eval = false.。预计大多数Vignette代码将被评估(警告)

检查vignette是否用“R CMD build”构建…

只运行时——build-output-file指定了。

分析输出R CMD构建看看是否建立了羽绒。它只是查找开始的一行:

*创建小插曲…

如果此行不存在,则意味着R没有检测到需要建造的小插图(错误)。

如果你有小插曲的来源仍然得到这个消息,可能有几个原因:

  • 缺失或无效VignetteBuilder.线路描述文件。
  • 缺失或无效VignetteEngine在小插图源中的线路。

看到kn包小插图页面,或者Non-Sweave小插曲有关更多信息,请参阅“编写R扩展”部分。

5.11检查R代码中的安装或更新包调用

可以禁用——no-check-library-calls——no-check-install-self

  • 检查库调用……(请注意)检查安装或更新包的功能是否使用。此列表目前包括使用安装,install.packages,update.packages.biocLite
  • 查图书馆/要求(你的包名称)(错误(误正没有必要打电话来图书馆()要求()在R目录中的代码中或在Man Page示例中,在您自己的包上。在这些上下文中,您的包已被加载。

5.12编码实践检查

可以禁用- 不检查编码实践

检查编码实践……

检查是否在R目录中找到某些编程实践。

  • 我们建议vapply()被用来代替酸式焦磷酸钠()。问题出现时X参数酸式焦磷酸钠()长度为0;然后返回类型是a列表()而不是向量或数组。(请注意)

  • 我们建议seq_len ()seq_along ()被用来代替1:……。这是因为案件,1:0创建序列c(1,0)这可能是一个意料之外或不想要的结果(请注意)。

  • 当用户输入' package:function '而不是使用双冒号('::')来导入函数(错误)。

  • 检查T…检查F……这是一种不好的做法TF为了真正的。这是因为TF是普通的变量,它的值可以被改变,导致意想不到的结果,而真正的无法更改(警告)。

  • 避免类()= =类()! =而不是使用是()。(警告)

  • 使用系统2 ()超过系统()。“system2”是一个比“system”更便携和灵活的接口。(请注意)

  • 用于set.seed ()R中的代码。的set.seed不应直接在R函数中设置。用户应始终为该集合选项.SEED并知道何时调用它。(警告)

检查解析的R代码在R目录,例子,插图…

bioccheck.解析包中的R目录中的代码,并在评估的手册页和Vignette示例中查找各种符号,这导致了不同严重性的问题。

  • 检查浏览器()……浏览器()导致命令行R调试器被调用,并且不应该在生产代码中使用(如果设置了一些调试选项,可以将这样的调用包装在一个计算结果为TRUE的条件中)(警告)。
  • 检查< < -…非本地分配使用<< -是不好的练习。它可以过度写入用户定义的符号,并介绍难以调试的非线性评估路径(请注意)。
  • 检查直接插槽访问…bioccheck.检查直接插槽访问(通过@投币口())到S4对象的插图和示例代码。这段代码应该总是使用访问器与S4类交互。由于您可能在另一个包中使用S4类(它不提供访问器),因此严重性是惟一的请注意。但如果S4对象定义在包中,它是强制性的为它编写访问器并在所有插图和示例代码中使用它们(而不是直接插槽访问)(请注意)。

5.13功能长度检查

可以禁用——no-check-function-len

检查函数的长度……

bioccheck.打印关于5个最长函数(包括R目录中的函数以及已评估的手册页和插图示例中的函数)长度的信息性消息(以行为单位)。

如果有超过50行的函数,bioccheck.输出(请注意)。您可能需要考虑将长函数分解为更小的函数。这是一种基本的重构技术,可以使代码更容易阅读、调试、测试、重用和维护。

5.14手册页检查

可以禁用——no-check-man-doc

检查手册页文档…

  • 检查男人页面的罐头评论

使用它可以很方便地生成手册页框架提示()和/或RStudio。这些骨架包含如下的注释:

%% ~~简明(1-5行)数据集的描述。~~

bioccheck.要求你删除这些注释(请注意)。

  • 每个手册页必须有一个非空\价值部分。(错误)

  • MAN PAGE示例示例

检查导出的对象有可运行的例子…

bioccheck.查看所有文档导出对象的手册页,并列出不包含可运行示例的手册页(因为没有可运行示例)例子部分或因为它的示例被标记为Dontrun.)。可运行的示例是熟练编程的关键部分,它可以帮助确保你的代码做到你所说的那样。

  • 检查至少80%的手册页必须有可运行的示例(错误)。
  • 检查,如果超过80%的人页面具有可运行的例子,但有些人仍然缺少,bioccheck.列出缺失的,并要求你添加可运行的例子(请注意)。
  • 检查使用Dontrun.。不建议使用这些功能,并且应该是合理的(请注意)。如果出现异常,建议使用donttest而不是dontrun (请注意)因为donttest需要有效的R代码。

5.15新闻检查

可以禁用——no-check-news

检查包裹新闻......

bioccheck.看起来是否在“inst'Directory”中或包装的顶级目录中有效新闻文件,并检查是否正确格式化(请注意)。

新闻文件的位置和格式必须与此一致新闻吗?。含义该文件可以是以下四种选项之一:

  • 本月/新闻。理查德·道金斯
  • 。/ NEWS.md
  • 。/消息
  • 本月/新闻

新闻文件是一种很好的方法,可以让用户了解包的最新更改。从正确格式化的新闻文件的摘录将包括在生物体发布公告,告诉用户在上一个发布中您的包中发生了哪些更改。为了实现这一点,你的新闻文件必须以特定的方式格式化;你可以考虑使用本月/新闻。理查德·道金斯文件而不是格式更明确。畸形的新闻文件输出警告

有关新闻文件的更多信息,请参见“帮助”主题新闻吗?

5.16单位测试检查

可以禁用——no-check-unit-tests

检查单元测试......

我们强烈建议使用单元测试,尽管我们目前还不需要它们。关于什么是单元测试,为什么它们有帮助,以及如何实现它们,请阅读我们的单元测试基本知识的

目前,我们只是检查单元测试是否存在,如果没有,请敦促您添加它们(请注意)。

在测试中检查skip_on_bioc()…

可以禁用——no-check-skip-bioc-tests

找到生物导体环境中跳过测试的标志(请注意)

5.17格式检查

可以禁用- NNO-CHECK-FORMETING

检查描述、命名空间、手册页、R源文件和插图源文件的格式……

格式化代码没有100%正确的方法。这些检查遵守生物体风格指南(请注意)。

我们认为在代码中避免非常长的线路很重要。请注意,某些文本编辑器不会自动包装文本,需要水平滚动以便读取它。另请注意,R语法非常灵活,并且在表达式中几乎可以在任何位置插入空格,使其容易分解长线。

这些检查是不仅仅是R代码而运行,而且还针对解码,但是描述和命名空间文件以及人员页面和小插图源文件。所有这些文件都允许长线分解。

此检查的输出包括前6行的代码;更多BiocCheck::: checkFormatting(“路径/ / YourPackage”,在线=正)

有几个有用的包,可用于将R代码格式化为特定的编码标准,例如格式化造型器以及“重新格式化代码”按钮Rstudio桌面。不过,每种解决方案都有其优点造型器合作roxygen2实例,并积极维护。您可以使用造型器如下所示:

##如果需要(!quanceNamespace(“stearer”,静静= true),则安装Styler:: TidyVerse_Style(Indent_By = 4))

如果你正在使用Rstudio桌面也可以使用“重新格式化代码”按钮,这将帮助您中断长行代码。另外,使用格式化,但要注意,它可能会破坏包含两种类型的引号()不支持重新格式化roxygen2的例子。一般来说,最好在应用任何自动重新格式化解决方案之前对代码进行版本控制,并实现单元测试,以验证代码在重新格式化代码后是否按预期运行。

5.18重复检查

  • 检查包是否已经在CRAN中存在…这可以禁用——no-check-CRAN选择。相同名称的包(忽略大小写差异)不能在CRAN (错误)。

  • 检查新包是否已经存在生物体只有在——新包标志已打开。具有相同名称的包(忽略案例差异)不能存在生物体(错误)。

5.19bioc-devel订阅检查

检查bioc-devel邮件列表订阅…

只有当bioccheck.运行在生物体生成机器,因为此步骤需要特殊授权。这可以禁用- NNO-CHECK-BIOC-帮助选择。

  • 请检查维护人员(或)字段已订阅bioc-devel邮件列表(错误)。

    所有维护者必须订阅bioc-devel邮件列表,并使用描述文件中使用的电子邮件地址。你可以订阅在这里

5.20支持站点注册检查

检查支持网站注册…

  • 检查包维护程序是否注册在我们的支持网站使用相同的电子邮件地址维护者他们的包字段描述文件 (错误)。这可以禁用- NNO-CHECK-BIOC-帮助选择。

    主人人提出问题生物体packages是支持站点。请注册然后选择在列表中包含您的(deloveded)包名看标签。当问题并用您的包名称询问并标记问题时,您将获得一封电子邮件。(如果您没有将包添加到观看的标签列表中,这将自动为您完成)。

6BiocCheckGitClone

BiocCheckGitClone提供了一些额外的生物体只能在开源目录(原始git clone)上运行的包检查不是tarball。以上三类报告如上所述:

7使用BiocCheckGitClone

BiocCheckGitClone意味着在包含R包的目录中运行r:

图书馆(Bioccheck)Bioccheckgitclone(“PackageTir”)

8安装BiocCheckGitClone

请参阅以前的安装bioccheck.部分。

9解释BiocCheckGitClone输出

实际的BiocCheckGitClone输出如下所示大胆的

9.1坏文件检查

检查有效文件

有许多文件不应该被追踪。如果存在这些文件中的任何一个(错误)

当前检查的文件列表如下:

hidden_​​file_ext = c(“.Renviron”,“.rprofile”,“.rproj”,“.rproj.user”,“.rhistory”,“.rhistory”,“.rapp.history”,“.o”,“.sl”,“.o”,“.sl”,“。所以“,”.dylib“,”.a“,”.dll“,”.def“,”.ds_store“,”unsrturl.bst“,”.log“,”.log“,”.log“,”.backups“,”。。cproject", ".directory", ".dropbox", ".exrc", ".gdb.history", ".gitattributes", ".gitmodules", ".hgtags", ".project", ".seed", ".settings", ".tm_properties")

这些文件可能包含在您的个人目录中,但应添加到a.gitignore文件,这样它们就不会被git跟踪。

9.2描述检查

检查描述

默认的CMD构建行为将格式化描述文件;这种情况发生后,就很难确定原始描述文件的某些方面。如何指定作者和维护人员就是一个例子。因此,将以原始的原始形式检查描述文件。

  • 检查DESCRIPTION的格式是否正确描述文件必须有正确的格式,并且能够读取read.dcf()为了在生物导体上正常工作,建造机器。此检查尝试read.dcf(“描述”)并抛出一个错误,如果格式错误。(错误)

  • 检查有效的维护者虽然在过去使用Author和Maintainer字段是可以接受的,但是R已经开始使用Authors@R列出包贡献者的标准。这个检查利用,并且在描述中没有作者或维护者的情况(错误)

9.3引用检查

检查引文文件的格式是否正确

bioccheck.尝试阅读提供的引文文件(即不是每个包自动生成的文件)readcitionfile()——这是
预计会在inst文件夹(请注意)。readcitionfile()需要在没有安装包的情况下正常工作。当试图使用packageVersion()或packageDate()等helper函数而不是使用meta时,就会出现最常见的失败原因\(版本或元\)日期。看到R文档为更多的信息。

10.扩展bioccheck.

贡献bioccheck.欢迎并通过拉动请求鼓励。提交贡献时请遵守拉请求模板。

sessioninfo.

sessioninfo()
在开发(不稳定)下(2020-11-14 R79432)##平台:X86_64-PC-Linux-GNU(64位)##正在运行:Ubuntu 20.04.1 LTS ## ##矩阵产品:默认## blas:/home/biocbuild/bbs-3.13-bioc/r/lib/liblblas.so ## lapack:/home/biocbuild/bbs-3.13-bioc/r/lib/librlapack.so #### locale:## [1] lc_ctype = en_us.utf-8 lc_numeric = c ## [3] lc_time = en_us.utf-8 lc_collat​​e = c ## [5] lc_monetary = en_us.utf-8 lc_messages = en_us.utf-8##[7] lc_paper = en_us.utf-8 lc_name = c ## [9] lc_address = c lc_telephone = c ## [11] lc_measurement = en_us.utf-8 lc_identification = c ## ##附加基本包:##[1]统计图形grdevices实用程序数据集方法基础## ##其他附加包:## [1] bioccheck_1.27.2 biocstyle_2.19.1 ## ##通过命名空间加载(且未附加):## [1] graph_1。69.0 knitr_1.30 magrittr_2.0.1 ## [4] biocgenerics_0.37.0 getopt_1.20.3 r6_2.5.0 ## [7] rlang_0.4.9 httr_1.4.2 stringr_1.4.0 ## [10] tools_4.1.0 biocviews_1.59.1 parallel_4.1.0##[13] biobase_2.51.0 xfun_0.19 HTMLtools_0.5.0 ## [16] Yaml_2.2.1 RBGL_1.67.0 Digest_0.6.27 ## [19] OptParse_1.6.6 Bookdown_0.21 Biocmanager_1.30.10 ## [22] CodeTools_0.2-18 Bitops_1.0-6 StringDist_0.9.6。3 ## [25] runit_0.4.32 rcurl_1.98-1.2评估_0.14 ## [28] Rmarkdown_2.5 Stringi_1.5.3 Compiler_4.1.0 ## [31] Stats4_4.1.0 XML_3.99-0.5