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
51 lines
1.5 KiB
YAML
51 lines
1.5 KiB
YAML
# cSpell:ignore autofix autoupdate
|
|
# Excluded: verbatim GPL license and auxiliary shell scripts with intentional
|
|
# in-string formatting (reformatting would corrupt their output).
|
|
exclude: |
|
|
(?x)^(
|
|
LICENSE\.md|
|
|
benchmark/|
|
|
docker/reprex/
|
|
)
|
|
repos:
|
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
rev: v6.0.0
|
|
hooks:
|
|
- id: end-of-file-fixer
|
|
- id: trailing-whitespace
|
|
args:
|
|
- --markdown-linebreak-ext=md
|
|
- repo: https://github.com/DavidAnson/markdownlint-cli2
|
|
rev: v0.22.1
|
|
hooks:
|
|
- id: markdownlint-cli2
|
|
- repo: https://github.com/rbubley/mirrors-prettier
|
|
rev: v3.9.1
|
|
hooks:
|
|
- id: prettier
|
|
- repo: https://github.com/posit-dev/air-pre-commit
|
|
rev: 0.10.0
|
|
hooks:
|
|
- id: air-format
|
|
- repo: https://github.com/editorconfig-checker/editorconfig-checker
|
|
rev: v3.8.0
|
|
hooks:
|
|
- id: editorconfig-checker
|
|
- repo: https://github.com/adrienverge/yamllint.git
|
|
rev: v1.38.0
|
|
hooks:
|
|
- id: yamllint
|
|
args: [--strict, -c=.yamllint.yaml]
|
|
- repo: local
|
|
hooks:
|
|
- id: yaml-file-extension
|
|
name: Check if YAML files has *.yaml extension.
|
|
entry: YAML filenames must have .yaml extension.
|
|
language: fail
|
|
files: .yml$
|
|
- id: validate-patches
|
|
name: validate patch registry
|
|
entry: Rscript local/validate-patches.R
|
|
language: system
|
|
files: ^local/(patches/|validate-patches\.R$)
|
|
pass_filenames: false
|