Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`

Expand Down
2 changes: 1 addition & 1 deletion scripts/check-install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions scripts/install-ladder.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
11 changes: 8 additions & 3 deletions tests/test_install_scripts.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"


Expand Down Expand Up @@ -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"

Expand Down
Loading