feat(build): allow the per-minor pass to run under R 4.6 #183
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/build-all-versions-46"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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'sR_VERSIONoffered only the latter two, so no pipeline could runlocal/build-all.R --sensitive-onlyunder 4.6 and its per-minor slots kept a backlog.That backlog is the live bug.
rlangis built for 4.4 and 4.5 onamd64/resolutebut never for 4.6, so an R 4.6.1 client is served the generic 4.5.3 binary and dies withundefined 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.Rreads only/latest/src/contrib/PACKAGES.gzand has nor_minorawareness, so its candidate list can only contain packages missing from the generic slot.rebuild-missing.R:73says it outright: "rebuild passes nois_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-versionsalready runs--sensitive-only, documented as "the extra per-minor passes under non-primary R versions". It only needed the option.Change
Adds
4.6.0toR_VERSION. Default unchanged.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.Closing: this was not needed, and I should have read the pipeline more carefully before proposing it.
build-all-versionsalready builds every installed R minor. The primary runslocal/build-all.R, and the loop immediately after runslocal/build-all.R --sensitive-onlyfor each remaining interpreter:So the 4.6 pass happens when the pipeline is run with the slot's normal
R_VERSION=4.5.3. Adding4.6.0as an option would have made the pipeline treat 4.6 as the primary minor for a slot whose generic binaries are 4.5-built, which is not what anyone wants.It also means the Crow validation problem that blocked this option was never on the critical path.
The gaps are being filled by running the pipeline as it already stands.