fix(ci): install the R packages pipelines use instead of relying on the image #238

Merged
pat-s merged 1 commit from fix/pipeline-r-deps into main 2026-10-20 08:51:07 +00:00
Owner

Every process-cran-updates-redhat-9-arm64 run since bincraft v5.5.1 fails with there is no package called 'progressr' (e.g. pipeline 14179).

Cause

bincraft v5.5.1 dropped lubridate, dplyr, purrr, data.table, gert, gh and cranlike from its imports.
The pipelines call some of these directly, and so far got them from the build-env image's site library or the shared R_LIBS_USER cache.
The arm64 redhat:9 image has no progressr (and no bincraft) under R 4.4.3, and no RPostgres, dplyr or purrr under R 4.5.3.
The amd64 image has all of them, which is why only this slot broke.

Changes

  • process-updates.yaml: install progressr and lubridate, which the inline R calls use (progressr::handlers, $INTERVAL).
  • build-all-versions*.yaml: install purrr for packages-to-build.R.
  • weekly-audit-missing.yaml: install data.table for the audit script.
  • local/packages-to-build.R: drop the unused dplyr and progressr library() calls.
  • reindex, weekly-rebuild-reindex, weekly-rebuild-missing, backfill-*, rebuild-abi-gap, repair-unsafe-flat-objects, prune-stale-flat-binaries: install RPostgres, because bincraft quietly skips the metadata DB without it and the per-minor index build aborts.
  • prune-stale-flat-binaries.yaml: reinstall bincraft in the re-index step, since its /tmp/R-pkgs library doesn't survive from the prune step.

Verification

  • crow lint .crow/ passes; prek passes on the changed files.
  • The image contents were checked by exporting the arm64 and amd64 build-env-redhat:9 images.
  • Not yet run in CI.
Every `process-cran-updates-redhat-9-arm64` run since bincraft v5.5.1 fails with `there is no package called 'progressr'` (e.g. pipeline 14179). ## Cause bincraft v5.5.1 dropped `lubridate`, `dplyr`, `purrr`, `data.table`, `gert`, `gh` and `cranlike` from its imports. The pipelines call some of these directly, and so far got them from the build-env image's site library or the shared `R_LIBS_USER` cache. The arm64 `redhat:9` image has no `progressr` (and no `bincraft`) under R 4.4.3, and no `RPostgres`, `dplyr` or `purrr` under R 4.5.3. The amd64 image has all of them, which is why only this slot broke. ## Changes - `process-updates.yaml`: install `progressr` and `lubridate`, which the inline R calls use (`progressr::handlers`, `$INTERVAL`). - `build-all-versions*.yaml`: install `purrr` for `packages-to-build.R`. - `weekly-audit-missing.yaml`: install `data.table` for the audit script. - `local/packages-to-build.R`: drop the unused `dplyr` and `progressr` `library()` calls. - `reindex`, `weekly-rebuild-reindex`, `weekly-rebuild-missing`, `backfill-*`, `rebuild-abi-gap`, `repair-unsafe-flat-objects`, `prune-stale-flat-binaries`: install `RPostgres`, because bincraft quietly skips the metadata DB without it and the per-minor index build aborts. - `prune-stale-flat-binaries.yaml`: reinstall bincraft in the re-index step, since its `/tmp/R-pkgs` library doesn't survive from the prune step. ## Verification - `crow lint .crow/` passes; `prek` passes on the changed files. - The image contents were checked by exporting the arm64 and amd64 `build-env-redhat:9` images. - Not yet run in CI.
bincraft v5.5.1 dropped lubridate, dplyr, purrr, data.table and others from
its imports, so the pipelines' own calls now depend on whatever the build-env
image's site library or the shared R_LIBS_USER cache happens to hold. The arm64
redhat:9 image has no progressr under R 4.4.3, which fails every
process-cran-updates-redhat-9-arm64 run since v5.5.1.

- Install progressr and lubridate for process-updates, which call them inline.
- Install purrr for packages-to-build.R and data.table for the weekly audit.
- Drop the unused dplyr and progressr library() calls from packages-to-build.R.
- Install RPostgres in every pipeline that talks to the metadata DB, since
  bincraft silently skips the DB (and the per-minor index aborts) without it.
- Reinstall bincraft in the prune re-index step, whose /tmp library does not
  survive from the prune step.
pat-s merged commit e77686affc into main 2026-10-20 08:51:07 +00:00
pat-s deleted branch fix/pipeline-r-deps 2026-10-20 08:51:08 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
devxy/build-cran-binaries!238
No description provided.