diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a729b7..7cae752 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,8 +29,10 @@ un-ignored `.verification/` or symlinks inside an untracked nested directory. A record written by 0.3.0 over such a tree goes stale here; it fails safe and is re-established by running again. -Installation still pins the 0.3.0 runtime. The installer refuses a pin that is -not already on `main`, so moving it to this release is a separate change. +Installation (#11): `scripts/install-ladder.sh` and `scripts/check-install.sh` +move their pin from `c86bf47`, the 0.3.0 runtime, to `819b7c2`, the commit that +released 0.3.1 (#10). It had to be a separate change because the installer +refuses a pin that is not already on `main`. ## 0.3.0 — contract `evidence-v3.2` diff --git a/scripts/check-install.sh b/scripts/check-install.sh index 77ebc18..ea779fd 100755 --- a/scripts/check-install.sh +++ b/scripts/check-install.sh @@ -8,7 +8,7 @@ # repository with no verification policy. set -u -PIN=c86bf47e70d7a3aa18c968011b487190e2becbea +PIN=819b7c27cce400a40e3be75c8978351e1d7c82d4 INV_SHA=282f21173aad9815a22a6ece35ad0fdd42653dd7a001dc6d85e6d51189aa5699 CLONE=$HOME/src/verification-ladder LINK=$HOME/.claude/skills/verification-ladder diff --git a/scripts/install-ladder.sh b/scripts/install-ladder.sh index 4e4f684..ccaf8b4 100755 --- a/scripts/install-ladder.sh +++ b/scripts/install-ladder.sh @@ -10,7 +10,7 @@ # to the checker it was reviewed with, for the same reason. set -u -PIN=c86bf47e70d7a3aa18c968011b487190e2becbea +PIN=819b7c27cce400a40e3be75c8978351e1d7c82d4 REPO=https://github.com/Deep-Sixed/Verification-Ladder # sha256 of the invariant block in INSTALL.md at $PIN. Moving the pin without # revalidating this makes the installer fail closed rather than paste unknown @@ -30,7 +30,7 @@ BOOTSTRAP_DIR=${XDG_DATA_HOME:-$HOME/.local/share}/verification-ladder # afterwards. Changing check-install.sh means changing this constant in the same # commit; a mismatch is refused rather than reported, because the checker is the # only thing that would have caught it. -CHECKER_SHA=d7b922510547b8f9d856a897bd493a4a5db3785f2d2fd15fc259e542dcf6ce07 +CHECKER_SHA=3a460e1c996131f4ef4dca313d34e536a4c37ad3add11839ca632e6b3220219f SELF=$(readlink -f "$0" 2>/dev/null || echo "$0") SELF_DIR=$(dirname "$SELF") DO_CODEX=0; DRY=0; FORCE=0 diff --git a/tests/test_install_scripts.py b/tests/test_install_scripts.py index 6a11d87..ed528ea 100644 --- a/tests/test_install_scripts.py +++ b/tests/test_install_scripts.py @@ -36,7 +36,7 @@ REPO = Path(__file__).resolve().parents[1] INSTALLER = REPO / "scripts" / "install-ladder.sh" CHECKER = REPO / "scripts" / "check-install.sh" -PIN = "c86bf47e70d7a3aa18c968011b487190e2becbea" +PIN = "819b7c27cce400a40e3be75c8978351e1d7c82d4" ORIGIN = "https://github.com/Deep-Sixed/Verification-Ladder" @@ -520,12 +520,17 @@ def test_the_pin_installs_the_hardened_release(): therefore got none of that hardening, under the same contract identity as a build that had it. Hardcoded rather than compared with the working tree, because a future contract bump lands one PR before the pin can follow it. + + It then pinned c86bf47, 0.3.0, which predates the input and state-boundary + fixes that 0.3.1 releases (#9): a scripted install kept the crash on + non-object JSON and the evidence-directory drift. """ - assert PIN != "760977f69d6b74b9888be4c9cbb404f7726bea73" + assert PIN not in ("760977f69d6b74b9888be4c9cbb404f7726bea73", "c86bf47e70d7a3aa18c968011b487190e2becbea") runtime = _git("show", f"{PIN}:skills/verification-ladder/bin/verify.py", cwd=REPO).stdout assert 'COMPATIBILITY = "evidence-v3.2"' in runtime - assert 'VERSION = "0.3.0"' in runtime + assert 'VERSION = "0.3.1"' in runtime assert 'EVIDENCE_CONTRACT = "evidence"' in runtime, "the pinned runtime cannot read the adoption line" + assert "def _excluded(" in runtime, "the pinned runtime predates the evidence-directory prefix exclusion" for script in (INSTALLER, CHECKER): assert f"PIN={PIN}" in script.read_text(), f"{script.name} pins a different runtime"