Skip to content

Bump the code leg from 2a057a6 to e393958, which carries the openRepoShape v1.1.1 pin (opensoft/openRepoTools-code#15) and five T017 merges, moving the code gitlink and contracts/code-pin.yaml together with bump-leg.py (part of opensoft/openRepoTools#186) - #349

Open
brettheap wants to merge 1 commit into
mainfrom
chore/code-leg-e393958

Conversation

@brettheap

@brettheap brettheap commented Nov 8, 2026 •

Copy link
Copy Markdown
Contributor

Lane: openRepoTools-1
Claim: #186 (comment)

What changes

openRepoShape's bump-leg.py moves this assembly root's code leg from 2a057a6d84e58c8acb4bda20d2b7b667b552c3fe to e39395895eac443e7d1f1ddec65e9a3ce829113a, which is code main at the merge of opensoft/openRepoTools-code#15. It writes the lockstep commit README.md's "The lockstep invariant" describes, with the command:

bump-leg.py --root ROOT --leg code --to e39395895eac443e7d1f1ddec65e9a3ce829113a
  • The gitlink at code/ moves to e39395895eac443e7d1f1ddec65e9a3ce829113a.
  • contracts/code-pin.yaml: commit: moves to the same commit. digests.tree_sha256 moves from 31123e2d08efe36583e72956ed8b8dbbe4b968c75402b59af5b8952be83ef6d5 to 72a75178cdec3ef57ced77520846a67b0673e2e0cef6b88a28b6e937743b0c6d, which the tool recomputed from the leg's own objects under sorted-ls-tree-r-v1. It is not adjusted.
  • Nothing else. No workflow @<sha> reference names the code leg, so none moves. The spec gitlink (64a1a989fe7b04daf3bc2a236739a01f0aa7291a) and every other file are untouched.

Size. 2 files, 3 insertions and 3 deletions. The old gitlink is an ancestor of the new one in the code leg, so this is a fast-forward of the leg.

What e393958 carries

From git log --oneline --first-parent 2a057a6d..e393958 in the code leg:

e393958 Merge pull request #15 from opensoft/chore/openreposhape-pin-v1.1.1
577110e Merge pull request #7 from opensoft/fix/named-read-none-290
e527b5d Merge pull request #6 from opensoft/fix/pathless-tree-record-302
70632d3 Merge pull request #5 from opensoft/fix/control-root-unsearchable-291
c23f535 Merge pull request #4 from opensoft/fix/subfield-misreads-301
609ad61 Merge pull request #3 from opensoft/fix/dir-space-listing-295
  • B, opensoft/openRepoTools-code#15 (e393958), pins openRepoShape at v1.1.1, 5017830 on its main: four of the eight mounted files moved, and no test expectation moved. In the code leg, contracts/openreposhape-pin.yaml and the upstream/openRepoShape gitlink move from 190133d to 5017830.
  • Five T017 merges, oldest first:
    • 609ad61, opensoft/openRepoTools-code#3: a lane whose recorded dir holds a space is no longer left out of worktrees --all and the inventory index (opensoft/openRepoTools#295).
    • c23f535, opensoft/openRepoTools-code#4: a dir with a TAB or a backslash is listed, indexed and reached as recorded, a stored sub-field reads back as written, and request-handoff refuses a host or container the fence rejects (opensoft/openRepoTools#301).
    • 70632d3, opensoft/openRepoTools-code#5: a lane control root that cannot be searched is read as not read, not as no trees (opensoft/openRepoTools#291).
    • e527b5d, opensoft/openRepoTools-code#6: a tree record that names no absolute path makes its lane UNREAD, so a sync and a reconcile keep the lane's rows (opensoft/openRepoTools#302).
    • 577110e, opensoft/openRepoTools-code#7: where a lane's log or register cannot be read, a named worktree read is UNREAD, not none (opensoft/openRepoTools#290).

Why

Brett Heap ruled v1.1.1 on 10-22, and answered "v1.1.1 b" (#186 (comment)). His word orders the work as B, then A and C, each landing on his word, with no release. Both of the triad's openRepoShape pins move: this root's shape copies (A) and the code leg's mounted pin (B). C records B in this root.

Lane 2's W2 runbook

Its PKA-9 check needs this root's code gitlink to be an ancestor of W2's composed code tip. W2 merges e393958 in place, so PKA-9 still holds after this pull request lands.

Which copy of the tool

The run used the copy at the old pin: code/upstream/openRepoShape/scripts/bump-leg.py, at openRepoShape 190133d (v1.1.0), from a fresh clone of main on the branch chore/code-leg-e393958, because the tool refuses a root on its tracking branch. The copy at v1.1.1 (5017830) differs in bump-leg.py, by 127 changed lines. It refuses a legs: that is not a list of mappings, reads tracking_branch and the branch name more strictly, and names paths through shown_path in its messages. None of that bears on a bump of this well-formed root from a plain branch. Run on a copy of the same clone, the v1.1.1 copy's dry run printed the same lines and its real run gave the same tree, 3563088892cc02ceb8fceb8a224d200ebfc9dd51, and the same message.

Checks

On this pull request:

  • exact-pins (.github/workflows/composed.yml) is the one required check, the only one the repository's rules on main name. It runs the manifest and lockstep-pin validators, then the code leg's suite, composed, at the pins this pull request records: code e393958 and spec 64a1a989fe7b.
  • validate (.github/workflows/validate.yml) and SonarCloud also report. They are not required.

Checked locally before opening, in a clean environment (env -i), on this commit with the legs checked out at its pins:

  • bump-leg.py ran the root's own validate-pins.py and validate-manifest.py after its rewrite, and both passed (pins ok, manifest ok).
  • scripts/validate-pins.py, scripts/validate-manifest.py and scripts/validate-repository-naming.py --project project.yaml each exit 0, and so does make validate. The pins check prints ok code: gitlink == contracts/code-pin.yaml commit e39395895eac and ok code: tree digest recomputes (72a75178cdec…).
  • The sorted-ls-tree-r-v1 digest, recomputed with a separate script (git ls-tree -r -z, sort, sha256), is 72a75178… at e393958 and 31123e2d… at 2a057a6, which is the old row.
  • As a control, the old pin file with the new gitlink is refused: pin-gitlink-mismatch.
  • The exact-pins step "every context the composed run claims is here" exits 0, run as written, and git diff --check is clean.
  • The code leg's suite was not run locally. exact-pins runs it.

No release

This moves the root's own pins only. There is no tag and no release, and nothing in the code leg or its release/v1.1 changes.

Landing

This pull request lands only on Brett Heap's word, by squash, with the drafted message as an explicit subject and body: its trailers are Lane: openRepoTools-1, then Co-Authored-By:.

🤖 Generated with Claude Code

Summary by Sourcery

Update the root's code leg and lockstep pin metadata to e393958, incorporating the openRepoShape v1.1.1 pin and accumulated T017 fixes.

Enhancements:

  • Advance the code leg to the commit containing the openRepoShape v1.1.1 pin and five T017 fixes.

Chores:

  • Synchronize the code gitlink and recorded tree digest in contracts/code-pin.yaml with the new leg commit.

…Shape v1.1.1 pin (opensoft/openRepoTools-code#15) and five T017 merges, moving the code gitlink and contracts/code-pin.yaml together with bump-leg.py (part of #186)

openRepoShape's bump-leg.py made this change, run from the copy of
the standard mounted in the code leg at the old pin, openRepoShape
190133d (v1.1.0), as README.md's "The lockstep invariant" says a leg
moves:

    bump-leg.py --root ROOT --leg code \
        --to e39395895eac443e7d1f1ddec65e9a3ce829113a

What moved:
- The gitlink at code/ moves from
  2a057a6d84e58c8acb4bda20d2b7b667b552c3fe to
  e39395895eac443e7d1f1ddec65e9a3ce829113a, code main at the merge of
  opensoft/openRepoTools-code#15.
- `commit:` and `digests.tree_sha256` in contracts/code-pin.yaml move
  with it. `tree_sha256` goes from
  31123e2d08efe36583e72956ed8b8dbbe4b968c75402b59af5b8952be83ef6d5 to
  72a75178cdec3ef57ced77520846a67b0673e2e0cef6b88a28b6e937743b0c6d,
  which the tool recomputed from the leg's own objects under
  sorted-ls-tree-r-v1. It is not adjusted.
- No workflow reference names the code leg, so none moves. The spec
  gitlink, 64a1a989fe7b04daf3bc2a236739a01f0aa7291a, and every other
  file are untouched.

What e393958 carries, from `git log --oneline --first-parent
2a057a6d..e393958` in the code leg:
- opensoft/openRepoTools-code#15 (e393958) pins openRepoShape at
  v1.1.1, 5017830 on its main: four of the eight mounted files moved,
  and no test expectation moved.
- Five T017 merges, oldest first:
  - 609ad61, opensoft/openRepoTools-code#3: a lane whose recorded dir
    holds a space is no longer left out of worktrees --all and the
    inventory index (#295).
  - c23f535, opensoft/openRepoTools-code#4: a dir with a TAB or a
    backslash is listed, indexed and reached as recorded, a stored
    sub-field reads back as written, and request-handoff refuses a host
    or container the fence rejects (#301).
  - 70632d3, opensoft/openRepoTools-code#5: a lane control root that
    cannot be searched is read as not read, not as no trees
    (#291).
  - e527b5d, opensoft/openRepoTools-code#6: a tree record that names no
    absolute path makes its lane UNREAD, so a sync and a reconcile keep
    the lane's rows (#302).
  - 577110e, opensoft/openRepoTools-code#7: where a lane's log or
    register cannot be read, a named worktree read is UNREAD, not none
    (#290).

Brett Heap ruled v1.1.1 on 10-22, and his word "v1.1.1 b" orders the
work as B, then A and C, each landing on his word, with no release. B
is opensoft/openRepoTools-code#15, landed as code e393958. A is
#348, landed as root
e00ddd8. This is C, the last of the
three: it brings this root's code gitlink and pin to the commit that
holds B. There is no release and no tag, and this moves the root's own
pins only.

Inside its run the tool ran the root's own validate-pins.py and
validate-manifest.py after the rewrite, and both passed. A second run
with the copy of bump-leg.py at openRepoShape v1.1.1 gave the same
tree.

Lane: openRepoTools-1
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@sourcery-ai

sourcery-ai Bot commented Nov 8, 2026

Copy link
Copy Markdown

Sorry @brettheap, you've used your own review budget of 250,000 diff characters for the last 7 days.

You can request another review in 5 days and 21 hours by commenting @sourcery-ai review. Upgrade to get a review now.

@sourcery-ai

sourcery-ai Bot commented Nov 8, 2026

Copy link
Copy Markdown

Reviewer's Guide

Lock files and vendored code

Move the code gitlink and its recorded commit and tree digest together to the new pinned revision.

  • code L1
  • contracts/code-pin.yaml L24, L39

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sonarqubecloud

sonarqubecloud Bot commented Nov 8, 2026

Copy link
Copy Markdown

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant