bioccheck.
bioccheck.
封装生物体包指导方针和最佳实践,分析包和报告三类问题:
bioccheck.
将持续到错误
,因此可能有多个,但如果从OS命令行运行,它将退出并显示错误代码。)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
请注意,——新包
选项已在附加到的包生成器中打开生物体包跟踪器,因为它几乎总是用于构建已提交的新包。
bioccheck.
运行跑步bioccheck.
在运行R CMD检查
。
请注意,bioccheck.
难道不是替代吗R CMD检查
;它是互补的。它应该在后面运行R CMD检查
完成成功。
bioccheck.
也可以通过Travis-CI(持续集成)系统。该服务允许在受控的构建环境中自动测试R包。
只需将以下行添加到您的包.travis.yml
文件:
bioc_check:真实
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.
但你可以安全地忽略它。
bioccheck.
输出实际的bioccheck.
输出如下所示大胆的。
检查包依赖性……
可以禁用- 不校验依赖项
。
检查其他包是否可以导入这个…
错误
)。检查我们是否了解对象初始化......。
请注意
)。检查已弃用的包使用…
可以禁用——no-check-deprecated
。
目前,这将查看您的包是否依赖于多核
包(错误
)。
我们的建议是使用生物相投。请注意,“Fork”群集不会在Windows上并行化代码并行的任何增益。套接字集群在所有操作系统上工作。
也检查弃用
目前在Bioconductor发布版和开发版中指定的包(错误
)。
检查远程包的使用情况…
可以禁用——no-check-remotes
生物导体仅允许托管在Cran或Biocumond上的依次。指某东西的用途遥控器:
不允许在描述中指定唯一的远程位置。
可以禁用——no-check-version-num
和——no-check-R-ver
。
检查版本号...
版本:
在你的描述
文件。如果没有,这通常意味着您没有使用它来构建tarballR CMD构建
。(错误
)99
“y”的版本x.y.z
版本控制方案(错误
)。以非零值开头的程序包版本将被标记为警告。典型的新包提交从零'x'bob体育取款很慢版本开始(例如,0.99 . *
;警告
)。这只是为了完成——新包
选项提供。只有在这种情况下,包是预先发布或发布的,才会接受' x '非零值。错误
)。依靠:
你的领域描述
文件,bioccheck.
检查以确保指定的R版本与当前所使用的版本相匹配生物体。这可以防止包在早期版本的R中使用,这是不建议的,并且是用户困惑的常见原因(警告
)。有关包版本的更多信息,请参阅版本编号为Howto.。
可以禁用- NNO-CHECK-PKG尺寸
和——no-check-file-size
。
检查包的大小检查包大小是否满足生物体要求。软件包的当前包装大小限制为5 MB。实验数据和注释包被排除在此检查之外。如果检查源tarball,则仅运行此检查。(错误)
检查个别文件大小当前所有单个文件的大小限制为5 MB。(警告)
可能有必要从git历史中删除大文件;看到删除大数据文件和清洁git树
可以禁用- NNO-CHECK-BIOC视图
选项,在检查时可能很有用生物体包裹(自从BiocViews是一个独特的概念生物体)。
检查biocViews……
可以禁用- NNO-CHECK-BIOC视图
biocViews
字段出现在描述文件中(错误
)。错误
)。警告
)。警告
)。recommendBiocViews ()
函数biocViews
自动为您的包装建议一些生物视图。有关BioCViews的更多信息使用biocViews HOWTO。
的生物体构建系统(BBS)是我们的夜间构建系统,它有一定的要求。不满足这些要求的包可以被BBS悄悄地跳过,因此确保每个包都满足要求是很重要的。
可以禁用——no-check-bbs
检查构建系统的兼容性…
错误
)。错误
)警告
如果少于50)警告
如果不到20)请注意
如果小于3)错误
)。包
描述文件字段匹配目录名或tarball名称(错误
)。版本
字段出现在描述文件中(错误
)。检查有效的维护者…检查以确保描述文件具有有效的Authors@R
解析为有效的维护者
(错误
)。
Authors@R
字段包括:人
。cre
(创造者)的作用。家庭
或给予
定义的名字。错误
)。许可证与提供的数据库进行比较file.path (R.home(“分享”,“许可证”、“license.db”))
。数据库中没有列出的许可证用a标记请注意
表示无法确定限制性使用状态。一种请注意
也是生成的许可:
字段畸形,或者数据库无法找到。可以禁用——no-check-namespace
检查说明/命名空间一致性......
bioccheck.
检测在命名空间中导入而不是在描述中导入的包,或者反之亦然,并提供如何修复此问题的解释(错误
)。
检查名称空间导入建议...
如果是包codetoolsBioC
安装了,bioccheck.
将运行它以查看它是否有程序包命名空间的“导入”部分有建议。
codetoolsBioC
是一个目前没有通过的实验包biocmanager :: install()
。它可从我们的Subversion存储库使用readonly/readonly凭证。codetoolsBioC的输出被打印到屏幕上,但是bioccheck.
不将其标记为错误、警告或注释。
可以禁用——no-check-vignettes
。
检查小插图目录……
只有当您的包是一个软件包时才运行(由您的biocViews),或者不能确定包类型。
小插曲
目录存在(错误
)。小插曲
目录只包含插图源(.Rmd,.Rnw,.rrst,.rhtml,* .rtex)(错误
)。错误
)。警告
)错误
)警告
)eval = false.
chunks超过总数的50% (警告
)。eval = false.
。预计大多数Vignette代码将被评估(警告
)检查vignette是否用“R CMD build”构建…
只运行时——build-output-file
指定了。
分析输出R CMD构建
看看是否建立了羽绒。它只是查找开始的一行:
*创建小插曲…
如果此行不存在,则意味着R
没有检测到需要建造的小插图(错误
)。
如果你有小插曲的来源仍然得到这个消息,可能有几个原因:
VignetteBuilder.
线路描述
文件。VignetteEngine
在小插图源中的线路。看到kn
的包小插图页面,或者Non-Sweave小插曲有关更多信息,请参阅“编写R扩展”部分。
可以禁用——no-check-library-calls
和——no-check-install-self
。
请注意
)检查安装或更新包的功能是否使用。此列表目前包括使用安装
,install.packages
,update.packages.
或biocLite
。错误
(误正没有必要打电话来图书馆()
或要求()
在R目录中的代码中或在Man Page示例中,在您自己的包上。在这些上下文中,您的包已被加载。可以禁用- 不检查编码实践
。
检查编码实践……
检查是否在R目录中找到某些编程实践。
我们建议vapply()
被用来代替酸式焦磷酸钠()
。问题出现时X
参数酸式焦磷酸钠()
长度为0;然后返回类型是a列表()
而不是向量或数组。(请注意
)
我们建议seq_len ()
或seq_along ()
被用来代替1:……
。这是因为案件,1:0
创建序列c(1,0)
这可能是一个意料之外或不想要的结果(请注意
)。
当用户输入' package:function '而不是使用双冒号('::')来导入函数(错误
)。
检查T…检查F……这是一种不好的做法T
和F
为了真正的
和假
。这是因为T
和F
是普通的变量,它的值可以被改变,导致意想不到的结果,而真正的
和假
无法更改(警告
)。
避免类()= =
和类()! =
而不是使用是()
。(警告
)
使用系统2 ()
超过系统()
。“system2”是一个比“system”更便携和灵活的接口。(请注意
)
用于set.seed ()
R中的代码。的set.seed
不应直接在R函数中设置。用户应始终为该集合选项.SEED并知道何时调用它。(警告
)
检查解析的R代码在R目录,例子,插图…
bioccheck.
解析包中的R目录中的代码,并在评估的手册页和Vignette示例中查找各种符号,这导致了不同严重性的问题。
浏览器()
导致命令行R调试器被调用,并且不应该在生产代码中使用(如果设置了一些调试选项,可以将这样的调用包装在一个计算结果为TRUE的条件中)(警告
)。<< -
是不好的练习。它可以过度写入用户定义的符号,并介绍难以调试的非线性评估路径(请注意
)。bioccheck.
检查直接插槽访问(通过@
或投币口()
)到S4对象的插图和示例代码。这段代码应该总是使用访问器与S4类交互。由于您可能在另一个包中使用S4类(它不提供访问器),因此严重性是惟一的请注意
。但如果S4对象定义在包中,它是强制性的为它编写访问器并在所有插图和示例代码中使用它们(而不是直接插槽访问)(请注意
)。可以禁用——no-check-function-len
。
检查函数的长度……
bioccheck.
打印关于5个最长函数(包括R目录中的函数以及已评估的手册页和插图示例中的函数)长度的信息性消息(以行为单位)。
如果有超过50行的函数,bioccheck.
输出(请注意
)。您可能需要考虑将长函数分解为更小的函数。这是一种基本的重构技术,可以使代码更容易阅读、调试、测试、重用和维护。
可以禁用——no-check-man-doc
。
检查手册页文档…
使用它可以很方便地生成手册页框架提示()
和/或RStudio。这些骨架包含如下的注释:
%% ~~简明(1-5行)数据集的描述。~~
bioccheck.
要求你删除这些注释(请注意
)。
每个手册页必须有一个非空\价值
部分。(错误
)
MAN PAGE示例示例
检查导出的对象有可运行的例子…
bioccheck.
查看所有文档导出对象的手册页,并列出不包含可运行示例的手册页(因为没有可运行示例)例子
部分或因为它的示例被标记为Dontrun.
或不
)。可运行的示例是熟练编程的关键部分,它可以帮助确保你的代码做到你所说的那样。
错误
)。bioccheck.
列出缺失的,并要求你添加可运行的例子(请注意
)。Dontrun.
或不
。不建议使用这些功能,并且应该是合理的(请注意
)。如果出现异常,建议使用donttest而不是dontrun (请注意
)因为donttest需要有效的R代码。可以禁用——no-check-news
。
检查包裹新闻......
bioccheck.
看起来是否在“inst'Directory”中或包装的顶级目录中有效新闻文件,并检查是否正确格式化(请注意
)。
新闻文件的位置和格式必须与此一致新闻吗?
。含义该文件可以是以下四种选项之一:
本月/新闻。理查德·道金斯
。/ NEWS.md
。/消息
本月/新闻
新闻文件是一种很好的方法,可以让用户了解包的最新更改。从正确格式化的新闻文件的摘录将包括在生物体发布公告,告诉用户在上一个发布中您的包中发生了哪些更改。为了实现这一点,你的新闻文件必须以特定的方式格式化;你可以考虑使用本月/新闻。理查德·道金斯
文件而不是格式更明确。畸形的新闻文件输出警告
。
有关新闻文件的更多信息,请参见“帮助”主题新闻吗?
。
可以禁用——no-check-unit-tests
。
检查单元测试......
我们强烈建议使用单元测试,尽管我们目前还不需要它们。关于什么是单元测试,为什么它们有帮助,以及如何实现它们,请阅读我们的单元测试基本知识的。
目前,我们只是检查单元测试是否存在,如果没有,请敦促您添加它们(请注意
)。
在测试中检查skip_on_bioc()…
可以禁用——no-check-skip-bioc-tests
。
找到生物导体环境中跳过测试的标志(请注意
)
可以禁用- 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
的例子。一般来说,最好在应用任何自动重新格式化解决方案之前对代码进行版本控制,并实现单元测试,以验证代码在重新格式化代码后是否按预期运行。
检查包是否已经在CRAN中存在…这可以禁用——no-check-CRAN
选择。相同名称的包(忽略大小写差异)不能在CRAN (错误
)。
检查新包是否已经存在生物体…只有在——新包
标志已打开。具有相同名称的包(忽略案例差异)不能存在生物体(错误
)。
检查bioc-devel邮件列表订阅…
只有当bioccheck.
运行在生物体生成机器,因为此步骤需要特殊授权。这可以禁用- NNO-CHECK-BIOC-帮助
选择。
BiocCheckGitClone
BiocCheckGitClone
提供了一些额外的生物体只能在开源目录(原始git clone)上运行的包检查不是tarball。以上三类报告如上所述:
错误。
警告。
请注意。
BiocCheckGitClone
BiocCheckGitClone
意味着在包含R包的目录中运行r:
图书馆(Bioccheck)Bioccheckgitclone(“PackageTir”)
BiocCheckGitClone
请参阅以前的安装bioccheck.
部分。
BiocCheckGitClone
输出实际的BiocCheckGitClone
输出如下所示大胆的。
检查有效文件
有许多文件不应该被追踪。如果存在这些文件中的任何一个(错误
)
当前检查的文件列表如下:
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跟踪。
检查描述
默认的CMD构建行为将格式化描述文件;这种情况发生后,就很难确定原始描述文件的某些方面。如何指定作者和维护人员就是一个例子。因此,将以原始的原始形式检查描述文件。
检查DESCRIPTION的格式是否正确描述文件必须有正确的格式,并且能够读取read.dcf()
为了在生物导体上正常工作,建造机器。此检查尝试read.dcf(“描述”)
并抛出一个错误,如果格式错误。(错误
)
检查有效的维护者虽然在过去使用Author和Maintainer字段是可以接受的,但是R已经开始使用Authors@R
列出包贡献者的标准。这个检查Authors@R利用,并且在描述中没有作者或维护者的情况(错误
)
检查引文文件的格式是否正确
bioccheck.
尝试阅读提供的引文
文件(即不是每个包自动生成的文件)readcitionfile()
——这是
预计会在inst
文件夹(请注意
)。readcitionfile()
需要在没有安装包的情况下正常工作。当试图使用packageVersion()或packageDate()等helper函数而不是使用meta时,就会出现最常见的失败原因\(版本或元\)日期。看到R文档为更多的信息。
bioccheck.
贡献bioccheck.
欢迎并通过拉动请求鼓励。提交贡献时请遵守拉请求模板。
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_collate = 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