This document attempts to track Windows builds for Bioconductor packages for the devel and release branches:
http://bioc.r-universe.dev builds the Bioconductor devel branch
http://bioc-release.r-universe.dev builds the Bioconductor release branch
Because R universe build for multiple versions of R whereas Bioconductor branches build for a specific version, the following tables display only the package builds corresponding the Bioconductor branch’s specific R version.
A URL may be generated to download a snapshot; however, for a large number of files, it may be better to download individual files.
Code
library(universe)library(BiocPkgTools)library(dplyr)library(DT)library(tibble)# set max.print to get all packagesoptions(max.print =3000L)#' Get x.y version of R#'#' @returns character x.y#' #' @examples#' r_xy_ver("4.5.2")r_xy_ver <-function(x) { xyz <-strsplit(x[[1]], "\\.")paste(xyz[[1]][1], xyz[[1]][2], sep=".")}#' Generates the URL to retrieve the snapshot of a universe#' #' NOTE: This will likely not work for a large number of packages#'#' @uni character name of the universe#' @r_versions character R versions#' @oses character comma separated string of oses without spaces; any combination #' of src,win,mac,linux,wasm,docs#' @pkgs character a string of comma-separated package names without spaces or a#' character vector of package names#'#' @return character url to download snapshot#' #' @examples#' make_snapshot_url("bioc", "4.6", "win", "bedbaser")make_snapshot_url <-function(uni, r_versions =NULL, oses =NULL, pkgs =NULL) { suffix <-""if (!is.null(oses)) { suffix <-ifelse(suffix =="", paste0("zip?types=", oses),paste0(suffix, "&types=", oses)) }if (!is.null(r_versions)) { versions <-sapply(strsplit(r_versions, ",[ ]*")[[1]], r_xy_ver) |>unname() |>paste(collapse =",") suffix <-ifelse(suffix =="",paste0("zip?binaries=", versions),paste0(suffix, "&binaries=", versions)) }if (!is.null(pkgs)) {if (length(pkgs) >1) pkgs <-paste0(pkgs, collapse =",") suffix <-paste0(suffix, "&packages=", pkgs, collapse="") }paste0("https://", uni, ".r-universe.dev/api/snapshot/", suffix)}uni_pkg_file <-function(pkg, os, bin_ver) {if (os =="windows") ext <-"zip"elseif (os =="macosx") ext <-"tgz"else ext <-"tar.gz"paste0(pkg, "_", bin_ver, ".", ext)}uni_repo_url <-function(uni, os, r_version) {if (os =="macosx") repo_path <-paste(c("bin", os, "big-sur-x86_64"), collapse ="/")elseif (os =="windows") repo_path <-paste(c("bin", os), collapse ="/")else repo_path <-"src" root <-paste0("https://", uni, ".r-universe.dev")paste(c(root, repo_path, "contrib", r_xy_ver(r_version), ""), collapse ="/")}get_binary_os <-function(os) {if (os %in%c("windows", "macos")) os <-substr(os, 1, 3) os}get_uni_pkgs <-function(uni, uni_branch, r_version, os, bioc_version) { ru_info <- universe::universe_all_packages(uni, limit =3000L) bbs_info <- BiocPkgTools::biocPkgList(version = bioc_version,repo="BioCsoft") builds <-data.frame(Package ="",Version ="",JobUrl ="",JobCheck ="",BinariesCheck ="",BinariesUrl ="",BinariesBuildDate ="",BinariesStatus ="",RU_commit ="",BBS_commit ="",MD5sum ="",RemoteSha ="",RemoteUrl ="",Published ="",File ="",Url ="") uni_repo <-uni_repo_url(uni, os, r_version)for (i inseq_along(ru_info)) { jobid <-"" jobcheck <-"" binaries_buildurl <-"" binaries_status <-"" binaries_check <-"" binaries_builddate <-"" binaries_version <-""for (j inseq_along(ru_info[[i]]$`_jobs`)) { job <- ru_info[[i]]$`_jobs`[[j]]if (job$config ==paste(os, uni_branch, sep ="-") && job$r == r_version) { jobid <-as.character(job$job) jobcheck <- job$checkbreak } }for (k inseq_along(ru_info[[i]]$`_binaries`)) { binary <- ru_info[[i]]$`_binaries`[[k]]if (binary$os ==get_binary_os(os) && binary$r == r_version) { ru_commit <-as.character(binary$commit) binaries_buildurl <- binary$buildurl binaries_status <- binary$status binaries_check <- binary$check binaries_builddate <- binary$date binaries_version <- binary$versionbreak } }if (is.null(ru_commit)) ru_commit <-"" bbs_commit <- bbs_info |> dplyr::filter(Package == ru_info[[i]]$Package) |> dplyr::pull(git_last_commit) pkg_file <-uni_pkg_file(ru_info[[i]]$Package, os, binaries_version) url <-paste0(uni_repo, pkg_file) link <-paste0("<a href='", url, "'>", pkg_file, "</a>") builds <- tibble::add_row(builds,Package = ru_info[[i]]$Package,Version = ru_info[[i]]$Version,JobUrl =ifelse(!is.null(ru_info[[i]]$`_buildurl`),paste0("<a href='", ru_info[[i]]$`_buildurl`, "/job/", jobid, "'>", jobcheck,"</a>"),""),JobCheck = jobcheck,BinariesCheck = binaries_check,BinariesUrl =ifelse(binaries_status =="success",paste0("<a href='", binaries_buildurl,"'>", binaries_check,"</a>"),paste0("<a href='", binaries_buildurl,"'>", binaries_status,"</a>")),RU_commit =substr(ru_commit, 1, 7),BBS_commit = bbs_commit,MD5sum =substr(ru_info[[i]]$MD5sum, 1, 7),RemoteSha =substr(ru_info[[i]]$RemoteSha, 1, 7),RemoteUrl = ru_info[[i]]$RemoteUrl,Published = ru_info[[i]]$`_published`,BinariesBuildDate = binaries_builddate,BinariesStatus = binaries_status,Url =ifelse(jobcheck =="FAIL", "", url),File =ifelse(jobcheck =="FAIL", "", link)) }# drop blank first row builds <- builds[c(-1), ] builds |> dplyr::arrange(Package)}
Devel Windows: Passing with same commit hash as in BBS
The following packages have the same commit hash in R-Universe and the BBS. They also pass the latest R CMD check and their binary also passes R CMD check with a value of NOTE, WARNING, or OK.
For more details about the error, click on the link. The Latest Check will go to the latest GitHub Action Workflow run’s R CMD check on the package whereas the Binary Check will go to the GitHub Action Workflow associated with the R CMD check associated with the binary. It may not take you to the specific location of the error. You need to look at the Build R-release for Windows (on left), which builds the same package version as Bioconductor devel for the correct version of R. You can then either expand the Annotations or expand R CMD check to see more details about the error. You must be logged in to see more details.
annotations
r_cmd_check
Bioconductor Release on bioc-release.r-universe.dev