build-cran-binaries/.crow
Repository files (latest commit first)
Filename Latest commit message Latest commit date
pat-s 5f901312a6
All checks were successful
ci/crow/manual/reindex/17 Pipeline was successful
feat(build): allow the per-minor pass to run under R 4.6 (#183)
## 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
2026-08-31 12:29:54 +00:00
..
archive-missed-packages.yaml fix(index): add a slot repair for a broken Built stamp and retire alpine 3.21 (#150) 2026-08-07 09:15:04 +00:00
auto-apply-patches.yaml fix(ci): install RPostgres for audit workflows (#172) 2026-08-30 07:31:28 +00:00
build-all-versions-install-deps.yaml fix(ci): make every manual gate default to a value that matches nothing (#158) 2026-08-09 15:31:14 +00:00
build-all-versions.yaml feat(build): allow the per-minor pass to run under R 4.6 (#183) 2026-08-31 12:29:54 +00:00
process-updates.yaml fix(ci): install RPostgres for metadata updates 2026-08-28 08:48:58 +00:00
reindex.yaml fix(cdn): purge the staging zone too (#181) 2026-08-31 10:31:35 +00:00
repair-built-stamp.yaml fix(ci): make every manual gate default to a value that matches nothing (#158) 2026-08-09 15:31:14 +00:00
trial-build-registry.yaml fix(ci): gate the three ungated pipelines on their own variable (#155) 2026-08-09 10:02:05 +00:00
weekly-audit-missing.yaml fix(ci): install RPostgres for audit workflows (#172) 2026-08-30 07:31:28 +00:00
weekly-patch-proposals.yaml fix(ci): install RPostgres for audit workflows (#172) 2026-08-30 07:31:28 +00:00
weekly-rebuild-missing.yaml Revert "fix(ci): split oversized weekly rebuild matrix" 2026-08-14 07:01:56 +00:00
weekly-rebuild-reindex.yaml fix(cdn): purge the staging zone too (#181) 2026-08-31 10:31:35 +00:00