Skip to content

docs/release-notes/v1.1.1.md: the points RV883 round 5 held for after the release commit, #778's leg-clone sentence and #802's readers sentence, each checked against runs at v1.1.0 and main (#883 follow-up) - #893

Merged
brettheap merged 4 commits into
mainfrom
docs/v1.1.1-notes-follow-up
Oct 18, 2026

Conversation

@brettheap

@brettheap brettheap commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

Lane: openreposhape-1 (openRepoShape-1)

A follow-up to #883, the v1.1.1 release commit 5017830, as lane 3 placed it. It changes docs/release-notes/v1.1.1.md only.

What

The seven held points:

  1. shape-doctor.py: the the way in rows say a checkout's own contracts/repository-naming.yaml that does not load, or raises, is that checkout's, an n/a environment row, where a tab line was FINDING the way in refused and a pattern that does not compile ended the doctor in a traceback; and the EXIT CODES list says what INVALID and manifest-kinds name (#707) #778's leg-clone sentence. It now says what runs at v1.1.0 and 5017830 show:
    • a leg clone whose own AGENTS.md says so keeps its leg row and its Triad row over each fault;
    • at v1.1.0, over a tab line its leg row was FINDING the way in refused, and over a pattern that does not compile, or a policy that raised on its name, the doctor ended in a traceback, exit 1;
    • a leg known only by its name is read through that policy. Over a tab line or a pattern that does not compile, it gets a repository's two n/a rows and a Triad row that calls it a single repository.
  2. "Is", not "stays", exit 2. In the pattern case the run was exit 1 in v1.1.0.
  3. update-shape.py: the git show <target>:<source> a remedy prints is shell-quoted, so a source path with a blank or a ' pastes; the missing-name refusal says the validators pass only where none of them meets a line; and its readers skip an if TYPE_CHECKING:, if False: or if 0: body and a statement after a raise, as Python does (#675) #802's clause is dropped. v1.1.0's _blocks_inside already read a try's handlers, else and finally outside its guard; update-shape.py: the git show <target>:<source> a remedy prints is shell-quoted, so a source path with a blank or a ' pastes; the missing-name refusal says the validators pass only where none of them meets a line; and its readers skip an if TYPE_CHECKING:, if False: or if 0: body and a statement after a raise, as Python does (#675) #802 only added test rows.
  4. "What 1.1.1 fixes" names "or cannot be used", and the other way in.
  5. bootstrap.py: a validator's exit 2 ends bootstrap REFUSED, exit 2, an unreadable upstream path, cache or pin is no answer and a reftable leg's cherry-pick or revert is read from its ref store, so no traceback or ended pick follows (#764) #815's leftover tracebacks were measured on Python 3.12 (its runs used 3.12.3). 3.13 is read, not run.
  6. family.py, adopt-project.py and the four tools' --org: init asks GitHub's limits on the topic, the --org and the holder's name before any repository exists, check finds what execute refuses from one list, and an --org GitHub gives no organisation (., a trailing hyphen, --) is refused where GitHub is asked (#863) #871 lets _ through for any owner, an organisation's name included (GITHUB_OWNER_CHARACTERS in scripts/shape_materialize.py).
  7. tests: six skips on a failed git call ask the system first, so a failed git call fails the test and an encoding that cannot spell U+202E skips the bidi test (#853, #854) #869 asks the disk only about a name that is not UTF-8.
  8. update-shape.py: the git show <target>:<source> a remedy prints is shell-quoted, so a source path with a blank or a ' pastes; the missing-name refusal says the validators pass only where none of them meets a line; and its readers skip an if TYPE_CHECKING:, if False: or if 0: body and a statement after a raise, as Python does (#675) #802's readers. At v1.1.0 the import reader already skipped an if TYPE_CHECKING: body, and the binding reader did not. The sentence now says the readers skip if False:, if 0: and if None: bodies and a statement after an unconditional raise, and the binding reader an if TYPE_CHECKING: body too.
  9. A known limit names openRepoShape, setup.sh and install.sh: under the C locale a $OPENREPOSHAPE_REPO URL or path, or a ref, with a letter past ASCII is refused as "a control character", so --version, --install and --preflight refuse what v1.1.0 ran #940, at lane 3's ask (docs/release-notes/v1.0.0.md: the v1.0.0 release notes, a draft for Brett to amend before he tags, saying what 1.0 contains and promises, how to pin it by commit, what changed on the way grouped by the five tracking areas, and every known limit as the input that triggers it and what the person sees (#472) #473 issuecomment-6252055476). Under the C or POSIX locale, the bash openRepoShape and setup.sh's two guards refuse as "a control character" a URL, path or ref with a letter past ASCII. That is a regression from v1.1.0 in the launcher, through openRepoShape: $OPENREPOSHAPE_REPO and $OPENREPOSHAPE_REF are checked once, before --version answers and before any fetch, so a control character or a character a terminal draws as another in either is refused, never printed or sent #872 (openRepoShape: --version and two fetch refusals print $OPENREPOSHAPE_REPO and $OPENREPOSHAPE_REF with no check, so an escape or a bidi override in either reaches the terminal as typed, and a scaffold run sends its fetch with them #866), and a UTF-8 locale takes such a URL or path. It is tracked as openRepoShape, setup.sh and install.sh: under the C locale a $OPENREPOSHAPE_REPO URL or path, or a ref, with a letter past ASCII is refused as "a control character", so --version, --install and --preflight refuse what v1.1.0 ran #940, for v1.2.0.

Also: the draft-time lines in the sections marked "remove at tag time" now say main 2d372bb, where #778 landed file for file as its reviewed head 8259ea1. Those are the header comment, "Not landed at drafting time", the open list's header and the shape-copy range.

Review

Lane 1's independent reviewer r893 (opus), who is not the writer (#893 issuecomment-6251576393):

Checks

At ca49f125 and again at 6cdb5551:

  • the three test files that read the release notes give 148 passed;
  • the tag-time cut grep gives 0 hits;
  • git diff --check is clean, and there is no character outside those v1.1.0's notes use.

At b795ef74, the file was byte-identical to the one checked at 97b9ab5d on 02095a54, and 5017830 holds the same notes file as 02095a54:

  • the three test files that read the release notes (tests/test_repo_hygiene.py, tests/test_release_workflow.py, tests/test_workflow_concurrency.py) gave 148 passed;
  • the tag-time simulation grep prints nothing;
  • there is no character outside ASCII and the three v1.1.0's notes use;
  • git diff --check is clean.

Milestone

v1.2.0, to land after the v1.1.1 tag, when main opens for v1.2.0 work. Lane 3, the release owner, may place it otherwise. It touches the v1.1.1 notes only, so it needs no back-port: the published release body is cut from the tag's copy.

🤖 Generated with Claude Code

Summary by Sourcery

Refresh the v1.1.1 release notes with post-release verification results, clarified behavior, and the newly documented #940 locale limitation.

Enhancements:

Documentation:

  • Revise the v1.1.1 release notes to reflect post-release verification and clarify the documented behavior and limitations of the release.

… the release commit, each checked against main (#883 follow-up)

A follow-up to #883, the v1.1.1 release commit 5017830, as lane 3
placed it: RV883 round 5 found #883 READY at 02095a5
(#883 issuecomment-6250558821) and held two SHOULDs and five NITs for
after the tag (issuecomment-6250568065; #473 issuecomment-6250902576).
Each was checked against the code at main 2d372bb, and at v1.1.0's
190133d where it speaks of v1.1.0:

- #778's leg-clone sentence: v1.1.0's `check_the_way_in` called
  `way_in_project` before `leg_clone`, so a leg clone ended in the same
  traceback, or, over a tab line, in `FINDING the way in refused`; it was
  never offered `the other way in`. Said so, and "is", not "stays", exit 2.
- #802: v1.1.0's `_blocks_inside` already read a `try`'s `else` and
  `finally` outside its guard; #802 added test rows. The clause is gone.
- "What 1.1.1 fixes" names "or cannot be used" and `the other way in`.
- #815's leftover tracebacks: measured on Python 3.12 (its runs used
  3.12.3); 3.13 is read, not run.
- #871: `_` is let by for any owner, an organisation's name included.
- #869: the disk is asked only for a name that is not UTF-8.

#778 landed as 2d372bb, which is its reviewed head 8259ea1 file for file,
so its lines stand: the header comment, "Not landed at drafting time" and
the open list's header now say main 2d372bb, and the shape-copy range runs
to it. The open list is #879 alone. No other file changes.

Lane: openreposhape-1 (openRepoShape-1)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@brettheap brettheap added this to the v1.2.0 milestone Oct 18, 2026
@sourcery-ai

sourcery-ai Bot commented Oct 18, 2026

Copy link
Copy Markdown

Reviewer's Guide

This documentation-only follow-up updates docs/release-notes/v1.1.1.md after the v1.1.1 release commit, incorporating seven held RV883 corrections and synchronizing draft-time provenance, milestone, and shape-copy references with main at 2d372bb; no production code or published release body is changed.

File-Level Changes

Change Details Files
Reconcile the release-note provenance and draft-time references with the post-release state of main. docs/release-notes/v1.1.1.md
Incorporate the seven RV883 round-5 corrections into the v1.1.1 behavioral notes. docs/release-notes/v1.1.1.md

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

…g keeps its rows, #802's readers what v1.1.0 already skipped, and the draft lines name #883 and #879's move (#883 follow-up)

Lane 1's independent reviewer r893 found #893 NOT READY at b795ef7, with
one MUST and two NITs. Each was checked against v1.1.0 (190133d) and the
release commit 5017830 before the text changed:

- MUST, #778's leg-clone sentence. r893's probe, run again here with one
  more target, a leg clone whose own AGENTS.md says so in a directory
  named Atlas, gives at 5017830: that clone keeps its leg row and its
  Triad row over a tab line, a pattern that does not compile and a policy
  that raises on its name; a leg known only by its name (Atlas-spec) gets
  two `n/a` "does not load" rows and the single-repository Triad row over
  a tab line or a bad pattern. At v1.1.0 the AGENTS.md clone's leg row was
  `FINDING the way in refused` over a tab line, its Triad row kept, and a
  bad pattern, or the policy raising on its name, ended in a traceback,
  exit 1. The sentence now says that.
- NIT, #802's readers. At v1.1.0 the import reader already skipped an
  `if TYPE_CHECKING:` body and the binding reader did not; neither skipped
  `if False:`, `if 0:`, `if None:` or a statement after `raise`. At
  5017830 both skip all of them. r893's wording ("as they skipped an
  `if TYPE_CHECKING:` one") is narrowed to the import reader.
- NIT, "Before tagging" (draft lines only): #883 landed as the release
  commit 5017830, and #879 moved to v1.2.0 at 2026-10-18T14:10:11Z, after
  2d372bb landed at 13:19:52Z.

No other file changes.

Lane: openreposhape-1 (openRepoShape-1)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@brettheap

Copy link
Copy Markdown
Contributor Author

(lane openRepoShape-1, 2026-10-18T15:17:51Z) Independent review of #893, by lane 1's reviewer r893 (opus), who is not its writer: READY at ca49f125.

Round 1, at b795ef74: NOT READY.

Round 2, at ca49f125: READY, with no new finding.

Lane: openreposhape-1 (openRepoShape-1)

@brettheap brettheap changed the title docs/release-notes/v1.1.1.md: the points RV883 round 5 held for after the release commit, each checked against main (#883 follow-up) docs/release-notes/v1.1.1.md: the points RV883 round 5 held for after the release commit, #778's leg-clone sentence and #802's readers sentence, each checked against runs at v1.1.0 and main (#883 follow-up) Oct 18, 2026
…nder the `C` locale of a URL, path or ref with a letter past ASCII as a control character, a regression from v1.1.0 through #872 (#866) that a UTF-8 locale gets past (#883 follow-up)

At lane 3 ask on #473: #893 is the v1.1.1 notes follow-up, so main notes name #940, and once #893 lands lane 3 brings the published release body to match.

The entry is the first new bullet of "Known limits" after the bash openRepoShape ref bullet, in the launcher group. Each fact was read against #940 body: what is refused and where (the launcher, setup.sh two guards, and install.sh three checks, which refuse the value in both locales and differ only in words), the four runs v1.1.0 ran, who meets it, the way around it, and the milestone.

Left out: lane 3 ruling of no v1.1.x back-port unless Brett Heap asks for a v1.1.2, which the body of #940 does not hold.

No other file changes.

Lane: openreposhape-1 (openRepoShape-1)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@brettheap

Copy link
Copy Markdown
Contributor Author

(lane openRepoShape-1, 2026-10-18T17:43:01Z) Independent re-check of #893 at 6cdb5551, by lane 1's reviewer r893b (sonnet), who is not its writer: READY, with no MUST and no SHOULD.

6cdb5551 adds one known limit naming #940, at lane 3's ask (#473 issuecomment-6252055476). r893b checked each clause against #940's body, and measured it with the bash launcher at 64464d31 and at v1.1.0 under C, POSIX and C.UTF-8, with a stub gh and curl:

Lane 1 asks for #893's turn after #881 on #473, gated over #881's predicted squash.

Lane: openreposhape-1 (openRepoShape-1)

@sonarqubecloud

Copy link
Copy Markdown

@brettheap
brettheap marked this pull request as ready for review October 18, 2026 18:59
@sourcery-ai

sourcery-ai Bot commented Oct 18, 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 1 day and 6 hours by commenting @sourcery-ai review. Upgrade to get a review now.

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