feat(build): allow the per-minor pass to run under R 4.6 (#183)
All checks were successful
ci/crow/manual/reindex/17 Pipeline was successful
All checks were successful
ci/crow/manual/reindex/17 Pipeline was successful
## Motivation The supported window is the latest R minor plus the two previous, which the build images install as `R_VERSION_LATEST=4.6.0`, `PREV1=4.5.3`, `PREV2=4.4.3`. This pipeline's `R_VERSION` offered only the latter two, so **no pipeline could run `local/build-all.R --sensitive-only` under 4.6** and its per-minor slots kept a backlog. That backlog is the live bug. `rlang` is built for 4.4 and 4.5 on `amd64/resolute` but never for 4.6, so an R 4.6.1 client is served the generic 4.5.3 binary and dies with `undefined symbol: SETLENGTH`. 2709 records across the 16 slots are in that state. ## Why not weekly-rebuild-missing I tried that first (#182) and it is the wrong tool, for two independent reasons: - `weekly-missing-binaries-audit.R` reads only `/latest/src/contrib/PACKAGES.gz` and has no `r_minor` awareness, so its candidate list can only contain packages missing from the **generic** slot. - `rebuild-missing.R:73` says it outright: *"rebuild passes no `is_r_minor_sensitive`, so it only ever targets the flat"*. Running it under 4.6 built with the right interpreter and wrote to the wrong slot. It built almost nothing, and I verified it contaminated nothing: `amd64/resolute`'s flat slot is 22503 records at 4.5 and zero at 4.6. #182 should be closed. `build-all-versions` already runs `--sensitive-only`, documented as "the extra per-minor passes under non-primary R versions". It only needed the option. ## Change Adds `4.6.0` to `R_VERSION`. Default unchanged. ```sh crow pipeline create devxy/build-cran-binaries \ --var target_arch=amd64 --var OS=ubuntu --var OS_VERSION=resolute --var R_VERSION=4.6.0 ``` ## Follow-up worth doing separately The audit has no per-minor awareness, so this gap is invisible to every existing check and will silently reopen. Nothing measures per-minor completeness today except `scripts/verify-r-minor-routing.sh`, which was written for routing rather than coverage. Reviewed-on: #183
This commit is contained in:
parent
a2923bf063
commit
5f901312a6
1 changed files with 6 additions and 0 deletions
|
|
@ -36,7 +36,13 @@ variables:
|
|||
default: '3.24'
|
||||
R_VERSION:
|
||||
description: 'Primary R version under /opt/R.'
|
||||
# The supported window is latest plus the two previous, which the build
|
||||
# images install as R_VERSION_LATEST/PREV1/PREV2. 4.6.0 was missing here,
|
||||
# so no pipeline could run the per-minor pass for it and its slots kept a
|
||||
# backlog: rlang exists for 4.4 and 4.5 on amd64/resolute but not 4.6,
|
||||
# which is how an R 4.6.1 client ended up loading a 4.5.3 binary.
|
||||
options:
|
||||
- 4.6.0
|
||||
- 4.5.3
|
||||
- 4.4.3
|
||||
default: 4.5.3
|
||||
|
|
|
|||
Loading…
Reference in a new issue