Commit graph build-cran-binaries/local/patches/README.md
Author SHA1 Message Date
d9fb88f530
feat(local): add read-only failure-triage classifier over single_builds
Implement steps 1 + 2 of issue #115: turn recorded build failures into
triaged patch suggestions instead of hand-scraping Crow logs.

- add local/failing-builds-classify.R with pure, DB-free helpers to
  normalise error_text into a stable fingerprint and classify it against a
  seed signature set (removed tbb_stddef.h, RcppParallel bundled TBB,
  system libuv link leak), each carrying a fix tier, confidence, and an
  auto/human-only flag
- add local/failing-builds-report.R, a read-only entrypoint that queries
  single_builds WHERE error_occurred, groups by root cause, classifies
  each group, and prints (optionally emits JSON) a triaged report with a
  pre-filled registry.json entry for known, safe fix levers only
- keep novel source diffs and unknown signatures routed to human triage,
  per the issue guardrails; never write to the DB or the registry
- cover the helpers with local/tests/test-failing-builds-classify.R and
  document the workflow in local/patches/README.md
2026-07-14 14:05:53 +00:00
55a18fd87d feat: patch registry + wiring for per-package patching (#103)
Some checks failed
ci/crow/cron/process-updates/15 Pipeline failed
ci/crow/cron/process-updates/14 Pipeline failed
ci/crow/cron/process-updates/16 Pipeline failed
ci/crow/cron/process-updates/18 Pipeline failed
ci/crow/cron/process-updates/11 Pipeline failed
ci/crow/cron/process-updates/12 Pipeline failed
ci/crow/cron/process-updates/17 Pipeline failed
ci/crow/cron/process-updates/6 Pipeline failed
ci/crow/cron/process-updates/5 Pipeline failed
## Summary

Adds the curated **patch registry** and wiring that drives bincraft's new package-patching mechanism (see bincraft PR `feat/package-patching`).
Lets specific packages be patched (env/configure/Makevars overrides or source diffs) before pak installs them — including as transitive dependencies — so compiler-/OS-specific failures like RcppParallel's bundled TBB stop cascading.

## What's included

- `local/patches/registry.json` — initial entry: RcppParallel with `RCPP_PARALLEL_USE_TBB=0` for alpine / ubuntu-2604, plus `local/patches/README.md` schema docs.
- `local/validate-patches.R` — validates schema, referenced patch files, and ambiguous overlaps; clean failure + exit 1 (no stacktrace).
- `.pre-commit-config.yaml` — a `validate-patches` hook (re-runs when the registry or the validator changes).
- `local/build-one.R` / `local/build-all.R` — pass `patches = "local/patches"` to `bincraft::build_binary_package()`.
- `specs/2026-06-30-package-patching-design.md` and `plans/2026-06-30-package-patching-implementation.md`.

## ⚠️ Merge ordering (blocker)

This PR adds a `patches = ...` argument to `build_binary_package()` calls.
The `.crow/*.yaml` workflows currently pin bincraft **v4.2.3**, which does not accept that argument — CI will error with `unused argument (patches=...)` until:

1. bincraft **v4.3.0** is released (PR `feat/package-patching`), and
2. the pin is bumped in `.crow/build-all-versions-install-deps.yaml`, `.crow/build-all-versions.yaml`, and `.crow/process-updates.yaml`.

The `.crow` pin bump will be added to this PR once bincraft v4.3.0 is tagged. Do not merge before then.

Reviewed-on: #103
2026-06-30 08:50:19 +00:00