From ffaa4c6bb4bbcc99a05f703b1b414e66d6e1792d Mon Sep 17 00:00:00 2001 From: vasilito Date: Sun, 12 Jul 2026 15:27:39 +0300 Subject: [PATCH] phase 16.2: update docs for sync-versions.sh safe-by-default + --dry-run MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - PATCH-PRESERVATION-AUDIT: add Phase 16.1 to cumulative reduction table (122→0 orphans, Round 17); update operator test section with all 6 modes; replace stale 'Round 3 final' re-run with current Round 17 verification - TOOLS.md: add --regen and --dry-run flags; clarify default is opt-in - HOOKS.md: add --regen and --dry-run to sync-versions.sh option list --- local/docs/HOOKS.md | 2 +- .../PATCH-PRESERVATION-AUDIT-2026-07-12.md | 32 +++++++++++++------ local/scripts/TOOLS.md | 6 ++-- 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/local/docs/HOOKS.md b/local/docs/HOOKS.md index a8956c8725..6e292ef3a8 100644 --- a/local/docs/HOOKS.md +++ b/local/docs/HOOKS.md @@ -90,7 +90,7 @@ the complete tool inventory for reference. | Tool | Type | Purpose | Modes | |------|------|---------|-------| | `patch-status.sh` | shell | Top-level consolidated report | `--brief`, `--json` | -| `sync-versions.sh` | shell | Cat 0+1+2 version sync | `--check`, `--no-regen`, `--regen-only` | +| `sync-versions.sh` | shell | Cat 0+1+2 version sync + lockfile regen | `--check`, `--regen`, `--dry-run`, `--no-regen`, `--regen-only` | | `verify-patch-content.sh` | shell↦py | Orphan patch detection | `--strict`, `--report action\|detail`, `--selftest` | | `verify-fork-versions.sh` | shell | Cat 2 fork supremacy check | diverged mode; `REDBEAR_STRICT_DIVERGED_CHECK=1` | | `verify-collision-detection.py` | python | Config [[files]] vs installs/files collision | `--strict`, `--selftest` (8 cases) | diff --git a/local/docs/PATCH-PRESERVATION-AUDIT-2026-07-12.md b/local/docs/PATCH-PRESERVATION-AUDIT-2026-07-12.md index 3746f1e09c..bf7b55970a 100644 --- a/local/docs/PATCH-PRESERVATION-AUDIT-2026-07-12.md +++ b/local/docs/PATCH-PRESERVATION-AUDIT-2026-07-12.md @@ -274,6 +274,10 @@ Three follow-on improvements after Round 3 closed: After Phase 14.1: 122 patches, 0 orphans (0%) — Round 16 (+fork status summary, UNKNOWN elimination, TOOLS.md reference, COLLISION-DETECTION update) + After Phase 16.1: 122 patches, 0 orphans (0%) — Round 17 + (+sync-versions.sh safe-by-default, + --dry-run preview, --regen opt-in, + --regen-only fix, ROOT_DRIFT fix) Cumulative work to date: 132 patches archived as SUPERSEDED or INTEGRATED, 5 files cleaned up, 6 fork branches advanced to origin @@ -333,17 +337,23 @@ deadlock. ### `sync-versions.sh` ```bash -# Apply mode (default — covers Cat 0 + Cat 1 + Cat 2 + lockfile regen): +# Apply version sync only (SAFE default — no lockfile modification): ./local/scripts/sync-versions.sh +# Apply version sync + regen Cargo.lock files: +./local/scripts/sync-versions.sh --regen + +# Preview lockfile changes that --regen would make (no files modified): +./local/scripts/sync-versions.sh --dry-run + # Check only (CI mode, exit 1 on drift): ./local/scripts/sync-versions.sh --check -# Skip lockfile regen (use when the fork hasn't moved but version bumped): -./local/scripts/sync-versions.sh --no-regen - # Only regen lockfiles (without version sync): ./local/scripts/sync-versions.sh --regen-only + +# Skip lockfile regen explicitly (same as default, for backward compat): +./local/scripts/sync-versions.sh --no-regen ``` ### `verify-patch-content.sh` @@ -385,12 +395,14 @@ REDBEAR_SKIP_FORK_VERIFY=1 ./local/scripts/verify-fork-versions.sh REDBEAR_SKIP_PATCH_CONTENT_CHECK=1 ./local/scripts/build-preflight.sh --config=redbear-mini ``` -## Audit re-runs (Round 3 final) +## Audit re-runs (Round 17 — Phase 16.1) -- `local/scripts/verify-patch-content.sh` — **0 orphaned / 121 preserved (100%)** -- `local/scripts/verify-fork-versions.sh` — passes (3 advisory warns for bootloader+installer divergence + 1 kernel-couldn't-ls-remote) -- `local/scripts/sync-versions.sh --check` — Cat 0 + Cat 1 (75) + Cat 2 (10) all clean -- `local/scripts/verify-fork-versions.sh` with `REDBEAR_STRICT_DIVERGED_CHECK=1` — properly returns exit 1 (2 violations) -- `cargo check --bin repo` — compiles clean +- `local/scripts/verify-patch-content.sh` — **0 orphaned / 122 preserved (100%)** +- `local/scripts/verify-fork-versions.sh` — passes (3 DIVERGED advisory + 7 PASS) +- `local/scripts/sync-versions.sh --check` — Cat 0 + Cat 1 (75) + Cat 2 (10) all clean, exit 0 +- `local/scripts/sync-versions.sh --dry-run` — 0 lockfile changes (all clear) +- `local/scripts/sync-versions.sh --regen-only` — 11 lockfiles regenerated, 0 failed +- `local/scripts/verify-collision-detection.py --selftest` — 8/8 pass +- `verify-fork-versions.sh` with `REDBEAR_STRICT_DIVERGED_CHECK=1` — returns exit 1 (3 diverged) - `bash -n` on all touched scripts — clean diff --git a/local/scripts/TOOLS.md b/local/scripts/TOOLS.md index 319176c6f5..e1fd9339a1 100644 --- a/local/scripts/TOOLS.md +++ b/local/scripts/TOOLS.md @@ -33,9 +33,11 @@ for QEMU/runtime validation helpers. ### sync-versions.sh ``` --check Verify only, exit 1 on drift ---no-regen Apply version sync, skip Cargo.lock regen +--regen Apply version sync + regen Cargo.lock files (opt-in) +--dry-run Preview: show what --regen WOULD change, revert after +--no-regen Apply version sync, skip Cargo.lock regen (same as default) --regen-only Only regenerate Cargo.lock files -(default) Apply sync + regen lockfiles +(default) Apply version sync only (lockfile regen is opt-in) ``` ### verify-patch-content.py