Package developers should always use the devel version of Bioconductor when developing and testing packages to be contributed.
Bioconductor packages must minimally pass
R CMD build (or
R CMD INSTALL --build) and pass
R CMD check with no errors and no warnings using a recent R-devel.
Authors should also try to address all errors, warnings, and notes that arise during build or check.1
Packages must also pass
BiocCheck::BiocCheck() with no errors and no warnings.
The BiocCheck package is a set of tests that encompass Bioconductor Best Practices.
Every effort should be made to address any notes that arise during this build or check.2
Do not use filenames that differ only in case, as not all file systems are case-sensitive.
The source package resulting from running
R CMD build should occupy less than 5 MB on disk.
The package should require less than 10 minutes to run
R CMD check --no-build-vignettes.
--no-build-vignettes option ensures that the vignette is built only once.3
Vignette and man page examples should not use more than 3 GB of memory since cannot allocate more than this on 32-bit Windows.
For software packages, individual files must be <= 5MB. This restriction exists even after the package is accepted and added to the Bioconductor repository.
It is possible to activate or deactivate a number of options in
R CMD build and
R CMD check.
Options can be set as individual environment variables or they can be listed in a file.
Descriptions of all the different options available can be found here.
Bioconductor has chosen to customize some of these options for incoming submission during
R CMD check.
The file of utilized flags can be downloaded from GitHub.
The file can either be placed in a default directory as directed here or can be set through environment variable
R_CHECK_ENVIRON with a command similar to:
export R_CHECK_ENVIRON = <path to downloaded file>
README file is included in the package or the Github repository and it provides installation instructions, those instruction should also include Bioconductor installation instructions.
README.Rmd is provided (rather than
README.md, or other) those installation instructions should be in an
eval=FALSE code chunk.
Nowhere in the code ( code, man pages, vignettes, Rmd files) should someone try to install or download system dependencies, applications, packages, etc.
Developers can provide instructions to follow but not executed and should assume all necessary dependencies, applications, or packages are already set up on a user’s system.