Skip to content

devBenches/base-image: re-vendor openRepoTools at ff1f01a — park skips roots without the overlay, --help wording fix - #39

Merged
brettheap merged 1 commit into
mainfrom
chore/revendor-openrepotools-ff1f01a
Sep 10, 2026
Merged

brettheap merged 1 commit into
mainfrom
chore/revendor-openrepotools-ff1f01a

Conversation

@brettheap

@brettheap brettheap commented Sep 10, 2026 •

Copy link
Copy Markdown
Contributor

Lane: openreposhape-2 (openRepoShape-2)
Claim: #38 (comment)

Closes #38.

What lands. devBenches/base-image/upstream-pin.yaml's openrepotools source moves from 9fbf01c789c311aa7c190b238a3df48ea39473e1 (pinned in #32/#34) to ff1f01aae70b8f21dce0e4654da071a1281b41a4 — gh api repos/opensoft/openRepoTools/compare/main...ff1f01aae70b8f21dce0e4654da071a1281b41a4 -q .status says identical, so it is the commit main carries. The tool and the Dockerfile do not change — the vendored paths are identical to W2's, so this is one apply run and nothing else.

Upstream, between the two commits:

The apply run, verbatim:

$ python3 devBenches/base-image/update-upstream.py apply --source openrepotools --at ff1f01aae70b8f21dce0e4654da071a1281b41a4 --yes
source      openrepotools (opensoft/openRepoTools)
pinned      9fbf01c789c3
target      ff1f01aae70b (on main)
vendor      files/openrepotools

  take      openRepoTools  15e4cb8ca6bb
  take      park  6c2dca99f2e1
  unchanged resume
  re-pin    commit 9fbf01c789c3 -> ff1f01aae70b

  wrote     files/openrepotools/openRepoTools  0755
  wrote     files/openrepotools/park  0755
  wrote     files/openrepotools/resume  0755
  re-pinned devBenches/base-image/upstream-pin.yaml  3 row(s) at ff1f01aae70b

NEXT  python3 devBenches/base-image/update-upstream.py check

resume comes back unchanged — confirmed from a run, not from reasoning, that neither PR#7 nor PR#4 touched it. openRepoTools changed (PR#4's wording fix) and park changed (PR#7's skip-without-overlay logic), both take.

Proofs, all run on this branch's HEAD.

Run Result
update-upstream.py check exit 0, 5 rows across 2 sources (openreposhape: openRepoShape, templates/assembly-root/project.yaml; openrepotools: openRepoTools, park, resume)
update-upstream.py list exit 0, both sources named with their commits and vendor dirs
test-speckit-git-feature.sh 56/56 GREEN, exit 0
test-speckit-git-compat.sh 22/22 GREEN, exit 0
test-openspeckit-bootstrap.sh 742 GREEN, exit 0
git diff --stat 3 files: upstream-pin.yaml, files/openrepotools/openRepoTools, files/openrepotools/park — no tool change, no Dockerfile change, no resume change

Each vendored file diffs clean against the source at the pinned commit (local mirror clone ~/projects/openRepoTools at ff1f01a, clean):

  • diff <(git -C ~/projects/openRepoTools show ff1f01a:openRepoTools) devBenches/base-image/files/openrepotools/openRepoTools — empty
  • diff <(git -C ~/projects/openRepoTools show ff1f01a:park) devBenches/base-image/files/openrepotools/park — empty
  • diff <(git -C ~/projects/openRepoTools show ff1f01a:resume) devBenches/base-image/files/openrepotools/resume — empty (byte-unchanged, as apply itself reported)

Not proven here: the image. dev-bench-base carries the new bytes only after its next rebuild — not run in this PR. The command that proves it, per #34's precedent:

cd devBenches/base-image && ./build.sh
docker run --rm <tag build.sh printed> sh -c \
    'for c in openRepoShape openRepoTools park resume; do command -v "$c"; done
     park --help | head -3'

Not here. The base-image rebuild and the host reinstall on Eagle (operator step, after this merges, per Brett's word in #38).

🤖 Generated with Claude Code

Summary by Sourcery

Re-vendor openRepoTools at the current upstream main commit and update the base-image source pin.

New Features:

  • Update the vendored openRepoTools utilities to the upstream main commit, including revised park behavior that skips standalone roots without a Speckit git overlay during bare no-estate sweeps.

Bug Fixes:

  • Correct the openRepoTools help usage wording and ensure the vendored files match the newly pinned upstream commit.

…s roots without the overlay, --help wording fix

The openrepotools source in upstream-pin.yaml moves from 9fbf01c (#32/#34)
to ff1f01aae70b8f21dce0e4654da071a1281b41a4, the current tip of
opensoft/openRepoTools main. Between the two commits: park's bare
no-estate sweep now skips a standalone root with no Speckit git overlay
instead of counting it as a refusal (opensoft/openRepoTools#7, closes
opensoft/openRepoTools#6, Brett Heap's ruling on opensoft/openRepoShape#92's
open item), and openRepoTools --help's usage() sentence naming the two
verbs --install places beside it is reworded (opensoft/openRepoTools#4,
closes opensoft/openRepoTools#3). resume is byte-unchanged.

update-upstream.py and the Dockerfile are untouched: the vendored paths
are identical to W2's, so this is one apply run and nothing else.

Closes #38.

Lane: openreposhape-2 (openRepoShape-2)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings September 10, 2026 21:28
@brettheap

Copy link
Copy Markdown
Contributor Author

@codex review

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 3 hours and 2 minutes by commenting @sourcery-ai review. Upgrade to get a review now.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@sourcery-ai

sourcery-ai Bot commented Sep 10, 2026

Copy link
Copy Markdown
Reviewer's guide (collapsed on small PRs)

Reviewer's Guide

Re-vendors openRepoTools at upstream commit ff1f01a, updating the pin and hashes plus the openRepoTools help wording and park’s no-overlay skip behavior while leaving resume, the tooling, and Dockerfile unchanged. Repository and compatibility checks pass, but the base image has not been rebuilt or validated.

Flow diagram for the openRepoTools re-vendoring update

flowchart LR
    OldPin["openRepoTools at 9fbf01c"] -->|re-pin| NewPin["openRepoTools at ff1f01a"]
    NewPin --> Vendor["Vendored files"]
    Vendor --> Help["openRepoTools help wording"]
    Vendor --> Park["park skips roots without overlay"]
    NewPin --> Resume["resume unchanged"]
    NewPin --> Checks["Repository checks pass"]
    Checks --> Image["Base image rebuild pending"]
Loading

File-Level Changes

Change Details Files
Re-vendor openRepoTools from the upstream main commit and update integrity metadata.
  • Move the pinned commit to ff1f01a and refresh hashes for the changed executables.
  • Replace vendored openRepoTools and park while preserving resume byte-for-byte.
  • Keep file modes and vendor layout consistent with the upstream source.
devBenches/base-image/upstream-pin.yaml
devBenches/base-image/files/openrepotools/openRepoTools
devBenches/base-image/files/openrepotools/park
Bring in upstream behavior and wording fixes through the vendored binaries.
  • Update park so bare no-estate sweeps skip standalone roots lacking a Speckit git overlay rather than counting them as refusals.
  • Retain refusal behavior for explicit park commands and leave resume unchanged.
  • Reword the openRepoTools --help usage sentence without changing command behavior.
devBenches/base-image/files/openrepotools/park
devBenches/base-image/files/openrepotools/openRepoTools
Validate provenance, repository consistency, and downstream compatibility without rebuilding the image.
  • Confirm update-upstream check/list, vendored-source diffs, and the three existing test suites pass.
  • Document that the Docker image rebuild and Eagle host reinstall remain post-merge operator steps.
devBenches/base-image/upstream-pin.yaml
devBenches/base-image/files/openrepotools/openRepoTools
devBenches/base-image/files/openrepotools/park

Assessment against linked issues

Issue Objective Addressed Explanation
opensoft/openRepoTools#3 Rewrite the openRepoTools --help sentence so it clearly explains that --install places this command alongside the park and resume verbs, without changing the rest of the help text. ✅
opensoft/openRepoTools#6 Update the vendored park command so that bare estate sweeps skip standalone roots lacking the Speckit git overlay, report them separately, exclude them from refusal counts and exit status, support the corresponding dry-run and all-skipped behavior, while continuing to run family holders and preserving explicit park refusal behavior. ✅
opensoft/openRepoTools#6 Preserve the existing resume behavior and shared estate-resolution behavior while incorporating the park-only change. ✅
opensoft/openRepoTools#6 Deploy the corrected park implementation in this repository by re-vendoring openRepoTools at the upstream commit containing the fix and updating its integrity pin. ✅
#38 Re-vendor openRepoTools from commit 9fbf01c789c311aa7c190b238a3df48ea39473e1 to ff1f01aae70b8f21dce0e4654da071a1281b41a4, updating the upstream pin and vendored file integrity data. ✅
#38 Include the upstream park behavior change so bare no-estate sweeps skip standalone roots without a Speckit git overlay, while preserving the existing behavior for park <Name> and leaving resume unchanged. ✅
#38 Include the upstream openRepoTools --help wording correction without unrelated tool or Dockerfile changes. ✅

Possibly linked issues


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

@brettheap
brettheap merged commit 4adc416 into main Sep 10, 2026
12 checks passed
@brettheap
brettheap deleted the chore/revendor-openrepotools-ff1f01a branch September 10, 2026 21:31

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Add integration coverage for the new park sweep summary and exit behavior.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Re-vendors openRepoTools at upstream commit ff1f01a, updating park behavior and help wording.

Changes:

  • Updates the upstream revision and file pins.
  • Refreshes vendored park and openRepoTools.
  • Leaves resume unchanged.
File summaries
File Summary
devBenches/base-image/upstream-pin.yaml Updates the upstream revision and digests.
devBenches/base-image/files/openrepotools/park Skips standalone roots without the overlay during sweeps; needs integration coverage for the new behavior.
devBenches/base-image/files/openrepotools/openRepoTools Updates installation help wording.
Review details

Suppressed comments (1)

devBenches/base-image/files/openrepotools/park:777

  • require_make still runs before this branch, so on a host with only standalone roots lacking the overlay, a bare sweep exits 2 before it can skip them. That contradicts the new contract and makes the all-skipped success path below unreachable when make is absent; defer the prerequisite until the first runnable estate (or skip the check when every discovered root is no-overlay).
        if [ "$ESTATE_KIND" = "standalone" ] && ! has_speckit_overlay "$ESTATE_ROOT"; then
  • Files reviewed: 3/3 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +777 to +781
if [ "$ESTATE_KIND" = "standalone" ] && ! has_speckit_overlay "$ESTATE_ROOT"; then
if [ "$DRY_RUN" -eq 1 ]; then
say " would skip (no Speckit overlay; install it with: setup-openspeckit)"
else
say " SKIPPED (no Speckit overlay; install it with: setup-openspeckit)"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants