refactor: single source of truth for excluded packages (#79)
All checks were successful
ci/crow/cron/process-updates-ubuntu-2204-amd64 Pipeline was successful

## Summary

`local/build-all.R` had a 75-name hardcoded `exclude <- c(...)` vector that had drifted from `local/excluded-packages.json` — `RcmdrPlugin.ROC` was in the R vector but missing from the JSON.

`.crow/weekly-rebuild-missing-*.yaml` already reads the JSON via `jsonlite::fromJSON(...)[["package"]]`. This brings `build-all.R` in line with that pattern.

Changes:

- **`local/excluded-packages.json`**: add the missing `RcmdrPlugin.ROC` entry (reason `"hang"`, matching siblings).
- **`local/build-all.R`**: replace the 16-line hardcoded vector with one `jsonlite::fromJSON(...)` call.
- **`.crow/build-all-versions-install-deps-{amd,arm}64.yaml`**: add `jsonlite` to the install-deps `pak::pak()` list so it's available in `/mnt/cache/R-pkgs` for the build step.
- **`.crow/build-all-versions-arm64.yaml`**: drop the dead base64-encoded `SKIP_PKGS` docs comment that nobody was passing as a `--var` anyway; replace with a one-line pointer to the JSON.

Reviewed-on: #79
This commit is contained in:
Patrick Schratz 2026-06-08 08:30:19 +00:00 committed by Patrick Schratz
commit 53da568749
2 changed files with 7 additions and 21 deletions

View file

@ -21,23 +21,8 @@ chunks <- split(pkgs, cut(seq_len(nrow(pkgs)), split_into, labels = FALSE))
chunk <- chunks[[split_index]]
sprintf("# of package versions for this job: %s", nrow(chunk))
# Exclude known problematic packages
exclude <- c(
"RInno", "KeyboardSimulator", "R2PPT", "RWinEdt", "blatr", "excel.link",
"spectrino", "taskscheduleR", "MDSGUI", "BiplotGUI", "R2wd", "rFUSION",
"MediaNews", "doBy", "IDPmisc", "frailtypack", "afex", "FrF2", "DoE.base",
"agricolae", "doFuture", "fscaret", "PHYLOGR", "seewave", "pls", "relaimpo",
"geepack", "gggenes", "NPCirc", "repmis", "PNDSIBGE", "lidR", "poismf",
"neonstore", "MachineShop", "mvst", "MacBehaviour", "mcmcderive", "RGIFT",
"KnowBR", "netmeta", "spdep", "Rfast", "compareGroups", "ff", "GsymPoint",
"RcppDynProg", "comtradr", "FD", "PearsonDS", "DCluster", "gRc", "mixlm",
"geospt", "fdth", "ffmanova", "fiery", "ffscrapr", "cold",
"RcmdrPlugin.DoE", "RcmdrPlugin.NMBU", "RcmdrPlugin.RiskDemo",
"RcmdrPlugin.ROC", "RcmdrPlugin.TeachStat", "RcmdrPlugin.TeachingDemos",
"RcmdrPlugin.UCA", "RcmdrPlugin.WorldFlora", "RcmdrPlugin.aRnova",
"RcmdrPlugin.depthTools", "RcmdrPlugin.orloca", "RcmdrPlugin.sos",
"RcmdrPlugin.survival", "RcmdrPlugin.temis", "GWlasso", "GWmodelVis"
)
# Exclude known problematic packages (single source of truth)
exclude <- jsonlite::fromJSON("local/excluded-packages.json")[["package"]]
chunk <- chunk[!chunk$Package %in% exclude, ]
# Read pre-computed S3 listing from install-deps step

View file

@ -61,6 +61,7 @@
{"package": "RcmdrPlugin.DoE", "reason": "hang"},
{"package": "RcmdrPlugin.NMBU", "reason": "hang"},
{"package": "RcmdrPlugin.RiskDemo", "reason": "hang"},
{"package": "RcmdrPlugin.ROC", "reason": "hang"},
{"package": "RcmdrPlugin.TeachStat", "reason": "hang"},
{"package": "RcmdrPlugin.TeachingDemos", "reason": "hang"},
{"package": "RcmdrPlugin.UCA", "reason": "hang"},