Skip to content
Merged
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
95 changes: 59 additions & 36 deletions docs/release-notes/v1.1.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@
ask on #473 (issuecomment-6247035406); round 2 answers RV883 (#883
issuecomment-6247451611), round 2b its full NIT list (lane 3,
2026-10-18T09:29:28Z) and its round 2 (#883 issuecomment-6248362246), and
round 3 its round 3 (#883 issuecomment-6248627219), and rounds 4 to 6
refresh it after RV883 found it READY (#883 issuecomment-6248756609), at
main `e7039b7`, with #778 written from its reviewed head `8259ea1`.
round 3 its round 3 (#883 issuecomment-6248627219), rounds 4 to 6
refresh it after RV883 found it READY (#883 issuecomment-6248756609), and
round 7 takes the points RV883 round 5 held (#883
issuecomment-6250558821), at main `2d372bb`, #778's squash, which is its
reviewed head `8259ea1` file for file.
Every `**[placeholder]**` below, and every section headed "remove at tag
time", is filled in or cut before the tag. -->

Expand Down Expand Up @@ -106,9 +108,9 @@ cut from `release/v1.1` (#850).
`scripts/repo_shape.py`, the `legs` and `members` rows' NEXT puts the file
back, and the `agent-files` row's WHY puts it back before it names a gate,
where each named a gate that dies on the import (#750, #776). Outside a
shape root, a naming policy that does not load in the doctor's own
checkout is an `n/a` row on `the way in`, not a finding or a traceback
(#707).
shape root, a naming policy in the doctor's own checkout that does not
load, or cannot be used, is an `n/a` row on `the way in` and, in a
repository, `the other way in`, not a finding or a traceback (#707).
- **Family holders.** More of `family.py add`'s and `validate-family.py`'s
remedies type as printed in the states they name, for a member under
another spelling (#761, #762, #839, #840) and for a gitlink outside
Expand Down Expand Up @@ -425,9 +427,10 @@ commit v1.1.1 is tagged on.
path with a blank or a `'` pastes, and `update-add-would-overwrite` names
the run's target where it printed `<commit>`. The missing-name refusal
says the validators pass only where none of them meets the line. The
readers skip an `if TYPE_CHECKING:`, `if False:`, `if 0:` or `if None:`
body and a statement after an unconditional `raise`, as Python does, and
read an import in a `try`'s `else` or `finally` as taken (#802, #675).
readers skip an `if False:`, `if 0:` or `if None:` body and a statement
after an unconditional `raise`, as Python does, and the binding reader
an `if TYPE_CHECKING:` body, which the import reader already skipped
(#802, #675).
- **The branch HEAD is on, as git's bytes.** `update-shape.py`, `family.py`
and `bump-leg.py` read the branch HEAD is on as the bytes git wrote, so a
branch ending in U+00A0, U+2028 or U+0085 is no longer read as its
Expand Down Expand Up @@ -752,11 +755,15 @@ commit v1.1.1 is tagged on.
prints no NEXT. A tab line gave `FINDING the way in refused`, and a
pattern that does not compile ended the doctor in a traceback, exit 1. A
policy that loads and then raises when asked "cannot be used". A leg
clone keeps its leg row and its Triad row over such a pattern, where
`scripts/shape_advisory.py` read it as no leg and the doctor offered it
`the other way in` and the scaffold. The verdict stays NOT A SHAPE ROOT,
exit 2. The doctor's EXIT CODES list says what INVALID and
`manifest-kinds` name (#778, #707).
clone whose own `AGENTS.md` says so keeps its leg row and its Triad row
over each such fault. 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, so
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. The verdict is NOT A SHAPE ROOT, exit 2. The doctor's EXIT
CODES list says what INVALID and `manifest-kinds` name (#778, #707).

### Install, CI and the docs

Expand Down Expand Up @@ -835,10 +842,11 @@ commit v1.1.1 is tagged on.
only, and the U+202E directory of `test_adopt_template_values.py` has no
guard, so a full disk or a read-only `tmp_path` fails those tests, where
they read as SKIPPED (#845, #834). Six skips on a failed git call ask the
system first, whether the file-name encoding can spell the name and the
disk hold it, so a failed git call fails the test; the U+202E tests, and
six template-value tests, skip where a C locale's encoding cannot spell
their text, where they raised `UnicodeEncodeError` (#869, #853, #854).
system first, whether the file-name encoding can spell the name and, for
a name that is not UTF-8, whether the disk can hold it, so a failed git
call fails the test; the U+202E tests, and six template-value tests,
skip where a C locale's encoding cannot spell their text, where they
raised `UnicodeEncodeError` (#869, #853, #854).
The `pins` row's merged-away check is tested where `check` refuses the
standard, and beside a `both`, an `upstream-removed` and an `unmapped`
row (#770, #755). None of these changes a shipped file.
Expand Down Expand Up @@ -892,6 +900,19 @@ New in v1.1.1, from the pull requests that landed it:
`--doctor`. With `OPENREPOSHAPE_REF=a.lock/b` set for one run, a
scaffold still asks GitHub for `setup.sh` at that ref, and `--version`
exits 0 (#875, #874).
- Under the `C` or POSIX locale, a `$OPENREPOSHAPE_REPO` URL or path, or a
ref, with a letter past ASCII, such as `/srv/café/openRepoShape.git`, is
refused as "a control character", exit 2, by the bash `openRepoShape` and
by `setup.sh`'s two guards; `install.sh`'s three checks, which refuse
such a value in both locales, give the same words under `C`. It is a
regression from v1.1.0: #872 moved the `[![:print:]]` check up front, and
under `C` it matches each byte past ASCII, so `--version`, `--install`
from a file, `--doctor <dir>` beside a checkout and `--preflight` through
a `setup.sh` in a checkout now refuse a repository that v1.1.0 ran. Only
a mirror at such a URL or path, in a shell at `C` or POSIX (cron, a CI
step, a minimal container), meets it; an owner/name never does. It
refuses and does nothing else, and a UTF-8 locale such as `C.UTF-8` takes
the URL or path. It is tracked as #940, for v1.2.0 (#872, #866).
- A tracked name that the doctor sets aside before it walks a leg, one
holding a control character or a byte that is not UTF-8, still counts in
`plan`'s and `execute`'s extension-majority fold. So `engine/` holding
Expand Down Expand Up @@ -955,10 +976,11 @@ New in v1.1.1, from the pull requests that landed it:
is a line on #458 (#802, #675).
- On Python 3.12 and 3.13, a project's `make bootstrap` still ends in a
`PermissionError` traceback over a leg directory nobody may enter (step
(a)) or a `governance/` nobody may enter (step (c)), as #815's body
measured. Beneath a `bootstrap REFUSED` line, `setup-project.py`'s step
(7) still says `bootstrap failed (see above)`, and `siblings.py` that the
member's own bootstrap exited 2 (#815, #764).
(a)) or a `governance/` nobody may enter (step (c)): #815's body
measured it on Python 3.12, and 3.13 is read, not run. Beneath a
`bootstrap REFUSED` line, `setup-project.py`'s step (7) still says
`bootstrap failed (see above)`, and `siblings.py` that the member's own
bootstrap exited 2 (#815, #764).
- `update-shape.py apply --branch <new>`, run from a branch whose name is
not UTF-8, is refused, exit 2, before anything is written, where v1.1.0
committed and pushed the new branch, or said `nothing to do`; `apply`
Expand Down Expand Up @@ -1054,10 +1076,11 @@ New in v1.1.1, from the pull requests that landed it:
topic's 50 are from GitHub's documentation, and an organisation's 39 is
its documented limit on a user's name, since it documents none for an
organisation (#859, #838). The characters an `--org` may hold are from
its documentation too, and `_` is let by, for GitHub Enterprise Managed
Users (#871, #863). A leg the plan was edited to name, over a limit, is
told "Use a shorter --project", which does not shorten it (#859,
#838).
its documentation too, and `_` is let by, since a GitHub Enterprise
Managed User's login holds one, so an organisation's name holding `_` is
let by too, though GitHub gives no organisation one (#871, #863). A leg
the plan was edited to name, over a limit, is told
"Use a shorter --project", which does not shorten it (#859, #838).
- In `setup-project.py`, `--project 'Atlas '`, given as an argument, still
reaches step (4) with a space nobody can see, and under
`--local-remote-dir` a name of 247 to 255 characters prints step (4)
Expand Down Expand Up @@ -1231,17 +1254,17 @@ by moving a tag.

- **`<release-commit>`** stands for the release commit wherever it appears
above.
- **Not landed at drafting time:** #778 (#707), which lands next, and
whose line above is written from its reviewed head `8259ea1`; and this
pull request, which lands last, as the release commit.
- **[placeholder: re-read at tag time.] Open `v1.1.1` milestone issues once
#778 has landed (1 open; 71 of 72 closed: the 69 that the 11:31Z read
- **Not landed at drafting time:** #883, which landed as the release
commit `5017830`.
- **[placeholder: re-read at tag time.] Open `v1.1.1` milestone issues at
main `2d372bb` (1 open; 71 of 72 closed: the 69 that the 11:31Z read
found, #709 among them, #884, which #886 closes, and #707, which #778
closes):**
- #879, the family root's `validate-family.py` and `bootstrap.py`: with
the work tree's `.gitmodules` gone, three remedies undo each other or
refuse; a `git mv`'d checkout is never named; bootstrap says `ok` beside
git's exit 128.
git's exit 128. It moved to the v1.2.0 milestone at
2026-10-18T14:10:11Z, after `2d372bb` landed at 13:19:52Z.

Each that lands before the tag gets its line above, with its pull
request, and a known limit above that names it goes; each that does not
Expand All @@ -1257,13 +1280,13 @@ by moving a tag.
`update-shape.py check`, and every other copy `unchanged`. `apply`
re-pinned each with its own validators green, the project once its legs
were checked out, and the doctor then said `COMPLIANT` of both. From
`c5359df` to `e7039b7`, `templates/` and `scripts/repo_shape.py` changed
`c5359df` to `2d372bb`, `templates/` and `scripts/repo_shape.py` changed
only in the family root's `scripts/bootstrap.py` and
`scripts/validate-family.py` and the assembly root's
`scripts/validate-pins.py` and `scripts/bootstrap.py`, each on those
lists, and #778's head changes neither. A pull request that lands before
the tag and changes another pinned copy adds it to that list: run
`check` again at the release commit.
lists. A pull request that lands before the tag and changes another
pinned copy adds it to that list: run `check` again at the release
commit.

## Full list

Expand Down
Loading