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
|
# 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(
|
errored_pkgs <- DBI::dbGetQuery(
|
||||||
con,
|
con,
|
||||||
sprintf(
|
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,
|
platform,
|
||||||
arch
|
arch,
|
||||||
|
snapshot_r_minor
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
errored_pkgs <- as.data.table(errored_pkgs)
|
errored_pkgs <- as.data.table(errored_pkgs)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue