From afe87f66522db86bb3b2882537ebcaad6bad3c58 Mon Sep 17 00:00:00 2001 From: HackingGate Date: Thu, 1 Oct 2026 00:27:36 +0900 Subject: [PATCH] Prepare uphold 1.23.0 One engine change since 1.22.0. A pattern rule may declare `files.reach = "pinned"`: the scan then reads the gitlinks from the repository's index and runs `git ls-files` inside each pinned member, so a superproject's rule sees the content it pins, reported under the mount path. Absent, or `"repository"`, is 1.22.0's behavior byte for byte. A pinned mount whose working tree is absent, never initialised or marked inactive, is exit 2 naming the mount and `git submodule update --init `; pins are followed at every depth; each member answers for its own `.gitattributes`; findings and baselines key on the mount-prefixed path; and include, exclude and glob keep gitignore semantics rooted at the superproject. A member never borrows its superproject's policy, as before (ADR 0012, Accepted). The repository's own decisions now go to a Design record issue, and `docs/adr` is frozen by a path rule in its own policy. A consumer taking the pin to v1.23.0 needs no change. A consumer that opts a rule into `"pinned"` must check out every pinned member wherever that rule runs, CI included, and pays about 9 ms per member once per run. Claude-Session: https://claude.ai/code/session_01DzvkN2qyaQDc3h7vqY2zLL --- Cargo.lock | 2 +- Cargo.toml | 2 +- README.md | 6 +++--- hooks/lefthook.yml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a411de7..3cbb882 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -719,7 +719,7 @@ dependencies = [ [[package]] name = "uphold" -version = "1.22.0" +version = "1.23.0" dependencies = [ "encoding_rs", "globset", diff --git a/Cargo.toml b/Cargo.toml index add6e51..11b9ebf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uphold" -version = "1.22.0" +version = "1.23.0" edition = "2024" # 1.90, and the floor is set by what the tree embeds rather than by taste: the # ripgrep stack -- globset 0.4.20 and ignore 0.4.33 in Cargo.lock -- refuses diff --git a/README.md b/README.md index 112489b..b8e236d 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ When last counted, on 2026-09-23, 88 repositories carried an uphold policy, all of them maintained by one person and the coding agents working in them. ```sh -cargo install --git https://github.com/HackingGate/uphold --tag v1.22.0 +cargo install --git https://github.com/HackingGate/uphold --tag v1.23.0 ``` Or pin the pre-commit or lefthook manifest under [Install](#install). @@ -70,7 +70,7 @@ needed (`language: rust` bootstraps it). default_install_hook_types: [pre-commit, commit-msg, pre-merge-commit, pre-push] repos: - repo: https://github.com/HackingGate/uphold - rev: v1.22.0 + rev: v1.23.0 hooks: - id: uphold-check # the claims still hold - id: uphold-scan # the content policy @@ -125,7 +125,7 @@ bootstrapping a language, so the binary must be on PATH, from the # lefthook.yml remotes: - git_url: https://github.com/HackingGate/uphold - ref: v1.22.0 + ref: v1.23.0 configs: - hooks/lefthook.yml ``` diff --git a/hooks/lefthook.yml b/hooks/lefthook.yml index 7aef7c5..525e771 100644 --- a/hooks/lefthook.yml +++ b/hooks/lefthook.yml @@ -10,7 +10,7 @@ # # lefthook.yml, in the consuming repository # remotes: # - git_url: https://github.com/HackingGate/uphold -# ref: v1.22.0 +# ref: v1.23.0 # configs: # - hooks/lefthook.yml #