fix(build): scope the errored-package filter to the snapshot's R minor #194
1 changed files with 20 additions and 2 deletions
|
|
@ -355,12 +355,30 @@ query_error <- function(pkg, ver) {
|
|||
}
|
||||
|
||||
# Fetch all relevant columns from the database
|
||||
# Scoped to the snapshot's own R minor, like `check_package_error()` in
|
||||
# bincraft (#119) and the per-minor error query (#189). Unscoped, a single
|
||||
# failure under any one minor removed the package from the candidate list for
|
||||
# every minor, permanently: the row is keyed by (name, tag, platform, arch)
|
||||
# only, so an error under 4.6 also cancelled its 4.4 and 4.5 builds.
|
||||
#
|
||||
# That is what the residual per-minor gaps were. On amd64/alpine324, 505 of the
|
||||
# 508 ABI-risky packages missing from 4.4 were also missing from 4.6 -- a 99%
|
||||
# overlap, which per-minor build failures would not produce. None of them were
|
||||
# even attempted by the run that had just succeeded.
|
||||
#
|
||||
# Errors specific to another minor are still respected downstream:
|
||||
# `filter_packages_with_errors()` runs per pass with that pass's r_version.
|
||||
errored_pkgs <- DBI::dbGetQuery(
|
||||
con,
|
||||
sprintf(
|
||||
"SELECT name, tag FROM single_builds WHERE error_occurred = TRUE and platform='%s' and arch='%s'",
|
||||
paste0(
|
||||
"SELECT name, tag FROM single_builds WHERE error_occurred = TRUE ",
|
||||
"and platform='%s' and arch='%s' ",
|
||||
"and substring(r_version from '^[0-9]+[.][0-9]+') = '%s'"
|
||||
),
|
||||
platform,
|
||||
arch
|
||||
arch,
|
||||
snapshot_r_minor
|
||||
)
|
||||
)
|
||||
errored_pkgs <- as.data.table(errored_pkgs)
|
||||
|
|
|
|||
Loading…
Reference in a new issue