B Advanced Build Options
An optional .BBSoptions
file at the package root can alter the default
build behavior, such as excluding a package from unsupported platform or
including a package in an optional build.
B.1 Skipping builds on unsupported platforms
In the .BBSoptions
file, add the line UnsupportedPlatforms:
with the
platform–win
, win64
, or mac
–or the name of a build node. For example
UnsupportedPlatforms: win64, kjohnson3
B.2 Optional builds: long tests and GPU builds
Two optional builds are available to software packages: long tests and GPU
builds. Maintainers can opt their packages in to these builds using the
.BBSoptions
file.
B.2.1 Long tests
B.2.1.1 What are they
Code in the tests
subdirectory of all Bioconductor software
packages is run by R CMD check
on a daily basis as part of
the Bioconductor nightly builds.
The maximum amount of time that R CMD check
is allowed to spend
on each package is 40 min.
Package developers who wish to implement tests
that will be too long
to run in the context of the nightly builds can set up “long tests” in
their package and add the package to the Bioconductor Long Tests builds.
B.2.1.2 Setup
4 steps:
Put the code for the “long tests” in the
longtests
subdirectory of your package. Like for the code in thetests
directory, this code will typically (but not necessarily) run unit tests.-
Add your package to the Long Tests builds by adding a
.BBSoptions
file to its top-level directory with the following line in it:RunLongTests: TRUE
The code in the
longtests
subdirectory will be run once a week (every Saturday) as part of the Long Tests builds and will be allowed to run for a maximum of 6 hours before a TIMEOUT is raised.Check the latest Long Tests report for BioC devel. The next time the report is updated (normally every Saturday), your package should be included in it.
Note that we also run the Long Tests builds for the current release branch once a week (every Saturday). The latest report for these builds is here.
B.2.1.3 “Short tests” vs “long tests”
The Long Tests setup forces developers to split the testing code
in their package between “short tests” and “long tests”. The former go in
the tests
subdirectory and must be able to run in less than 40 min (this
limit is actually for the full R CMD check
command which runs other
possibly time-consuming things in addition to the code in tests
).
The latter go in the longtests
subdirectory and must be able to run
in less than 6 hours.
Note that, unlike with “short tests” failures, “long tests” failures don’t prevent a package from propagating after a version bump. In other words, even if a package is included in the Long Tests builds, propagation is still determined by the results of the nightly builds.
B.2.2 GPU builds
If a package needs a GPU to properly build it should be added to the
GPU builds, which build and check packages on GPU machines.
In the .BBSoptions
file, maintainers should set GPU_reliance
term to
required
:
```
GPU_reliance: required
```
If a package supports GPUs if available, maintainers may opt in to the build
by setting the GPU_reliance
term set to `optional:
```
GPU_reliance: optional
```
B.3 Need help?
Ask on the bioc-devel mailing list if you have questions or need help.