This package evaluates the Bioconductor R Universe build by Bioconductor propagation criteria.
In general, there are two types of criteria. At the package-level, gates
evaluate criteria, such as a valid version bump, as opposed to platform criteria,
which check, for example, that a platform passed R CMD check. All gates are
checked. By default, it checks the following the propagation criteria
> library(BiocPropagate)
> dc <- default_criteria()
> names(dc$gates)
[1] "vignettes" "package_version" "no_large_files"
[4] "no_remotes" "no_secrets"
> names(dc$platform)
[1] "status" "unsupported" "platform_version"
where vignettes expects a passing R CMD check on source, package_version
checks for a valid version bump, status is the per-platform R CMD check,
and platform_version checks that the candidate for a platform hasn't been
previously propagated. Any unsupported platforms as defined in the
DESCRIPTION result in FALSE. Platforms not distributed by Bioconductor
result in NA.
The propagation function is check_propagation(args). args expects a named
list with the following information:
Note: This example uses data from the API but check_propagation() will be
run in bioc-checks
library(BiocPropagate)
pkg <- jsonlite::fromJSON("https://bioc-release.r-universe.dev/rtracklayer/json")
dir <- tempfile()
dir.create(dir)
writeLines(
c(paste("Package:", pkg[["Package"]]), paste("Version:", pkg[["Version"]])),
file.path(dir, "DESCRIPTION")
)
args <- list(
package = pkg[["Package"]], # package name
universe = "bioc-release", # r universe name
jobs = jobs, # from r-universe
source_path = dir # path to source so that we can check the DESCRIPTION file
)
propagation <- check_propagation(args)
print(propagation)
## job time config r check artifact propagate
## 1 99139136439 216 bioc-checks 4.6.1 ERROR 9719028444 NA
## 2 99139136414 173 linux-devel-arm64 4.7.0 OK 9719020200 NA
## 3 99139136455 313 linux-devel-x86_64 4.7.0 OK 9719049015 NA
## 4 99139136453 185 linux-release-arm64 4.6.1 OK 9719022539 TRUE
## 5 99139136378 244 linux-release-x86_64 4.6.1 OK 9719034420 TRUE
## 6 99139136444 172 macos-oldrel-arm64 4.5.3 OK 9719019271 NA
## 7 99139136474 434 macos-oldrel-x86_64 4.5.3 OK 9719076534 NA
## 8 99139136404 136 macos-release-arm64 4.6.1 OK 9719012015 TRUE
## 9 99139136480 351 macos-release-x86_64 4.6.1 OK 9719065623 TRUE
## 10 99138641621 245 source 4.6.1 OK 9718981856 NA
## 11 99139136468 143 wasm-release 4.6.0 OK 9719012984 NA
## 12 99139136557 277 windows-devel-arm64 4.7.0 OK 9719041528 NA
## 13 99139136403 201 windows-devel-x86_64 4.7.0 OK 9719025405 NA
## 14 99139136442 159 windows-oldrel-x86_64 4.5.3 OK 9719017026 NA
## 15 99139136431 294 windows-release-arm64 4.6.1 OK 9719045068 TRUE
## 16 99139136408 178 windows-release-x86_64 4.6.1 OK 9719020631 TRUE
# another example against a recent build of BiocCheck
# note since it has a universal build, it doesn't display arch-specific builds
## job time config r check artifact propagate
## 1 99075675783 184 bioc-checks 4.6.1 NOTE 9711984248 NA
## 2 99075675798 398 linux-devel-x86_64 4.7.0 NOTE 9712027909 NA
## 3 99075675750 325 linux-release-x86_64 4.6.1 NOTE 9712012642 FALSE
## 4 99075675789 221 macos-oldrel-arm64 4.5.3 NOTE 9711992204 NA
## 5 99075675759 225 macos-release-arm64 4.6.1 NOTE 9711993015 FALSE
## 6 99075221441 255 source 4.6.1 OK 9711944533 NA
## 7 99075675752 163 wasm-release 4.6.0 OK 9711979807 NA
## 8 99075675767 253 windows-devel-x86_64 4.7.0 NOTE 9711998583 NA
## 9 99075675792 229 windows-oldrel-x86_64 4.5.3 NOTE 9711993921 NA
## 10 99075675770 242 windows-release-x86_64 4.6.1 NOTE 9711996252 FALSE
Additional functionality exists to exempt a package from gates, such as the
restriction for large files. It requires an exemptions.txt in the package
manifest (from Bioconductor). So it clones the manifest to check for
exemptions when check_propagation runs.
# manifest/exemptions.txt
Package: package1
Exemptions: no_large_files
Package: package2
Exemptions: no_large_files