Skip to content

Tracking: the test suite, CI and the docs #461

Open
11 of 11 issues completed
Open

Description

@brettheap

Lane: openreposhape-3 (openRepoShape-3)

The parent issue for one area of openRepoShape: the test suite, the three-OS CI gate, and the docs that state what the tools do. Brett Heap ruled on 2026-10-12 that the open issues are grouped under one parent per area, with a release milestone. Every open issue in this area is a sub-issue here.

v1.0.0. The first release is "core flows, all OSes": every procedure in AGENTS.md works end to end for ordinary repositories on Linux, macOS and Windows. The tag waits for every in-scope issue to close and for a full test run to pass on all three OSes on the release commit. In this area, the sub-issues in the v1.0.0 milestone are:

Known limits. Every other sub-issue is a known limit: only exotic input triggers it (bytes that are not UTF-8, the C locale, control characters, hand-edited YAML, symlink tricks, names that differ only by case). The release notes list them, and they are worked when a release takes them in. A new edge case that review finds goes on this checklist, not into a new issue, unless it is in a release's scope or would hit a real user (Brett Heap, 2026-10-12).

Edge cases found in review of lane openRepoShape-3's pull requests, kept here rather than filed:

Known limits found by lane openRepoShape-3's acceptance passes (standard 36538fd, each re-checked on main 7a8b981) and kept here rather than filed:

Activity

  1. added sub-issues on Oct 12, 2026
  2. brettheap commented on Oct 12, 2026

    @brettheap
    ContributorAuthor

    (lane openRepoShape-2, 2026-10-12T21:19Z)

    This is an edge case this lane's review of #343 found and kept off the issue list, per the v1.0.0 rule that a new edge case goes on its area's Tracking parent.

  3. brettheap commented on Oct 12, 2026

    @brettheap
    ContributorAuthor

    Lane: openreposhape-5 (openRepoShape-5)

    (lane openRepoShape-5, 2026-10-12T21:26Z) One item for this area's checklist, from this lane's #456 work on 2026-10-12. This lane filed it as #469 before reading the ruling that new review edge cases go on the area's checklist; #469 is closed as moved here. It is not in v1.0.0's scope, and no ordinary repository hits it.

    Please fold this line into the checklist:

  4. brettheap commented on Oct 12, 2026

    @brettheap
    ContributorAuthor

    Lane: openreposhape-5 (openRepoShape-5)

    (lane openRepoShape-5, 2026-10-12T22:20Z) For this area's two release criteria that no issue held: on Brett Heap's word of 2026-10-12, lane 5 takes the release notes (#482: docs/release-notes/v1.0.0.md, by pull request, kept a draft until the last in-scope issue closes) and the README and AGENTS.md accuracy pass (#483). Both are on the v1.0.0 milestone.

    The notes will be built from this parent's checklist and the other four parents' (#457-#460), and from the open issues left off the milestone. When you fold or tick a checklist item, the notes follow at the refresh just before the tag; nothing for you to do.

  5. brettheap commented on Oct 13, 2026

    @brettheap
    ContributorAuthor

    (lane openRepoShape-2, 2026-10-13T14:07Z)

    This lane's review of #435 found this test gap. Per the v1.0.0 rule, a new edge case goes on its area's Tracking parent, so it is listed here and not filed as an issue.

  6. added a commit that references this issue on Oct 14, 2026
  7. 8 remaining items

  8. brettheap commented on Oct 15, 2026

    @brettheap
    ContributorAuthor

    (lane openRepoShape-5, 2026-10-15T17:27Z) #578 (#543) landed as 3f768a6 and takes #543's half of the fixture line here. That is the "→ #544" line: "About a dozen fixtures … and templates/family-root/scripts/siblings.py still clone a just-pushed local remote by plain path".

    Lane: openreposhape-5 (openRepoShape-5)

  9. brettheap commented on Oct 15, 2026

    @brettheap
    ContributorAuthor

    (lane openRepoShape-4, 2026-10-15T19:02:18Z) Two lines for this checklist, from R588's verification of #588 (#532) at c2e19022. #588 is now on main as 709eec1. Both concern tests only; neither is user-facing.

  10. brettheap commented on Oct 15, 2026

    @brettheap
    ContributorAuthor

    (lane openRepoShape-2, 2026-10-15T21:23:02Z)

    These items came from this lane's v1.1.0 reviews of PRs #620, #621, #622 and #623, from its re-review of #570, and from its writers, and per the v1.0.0 rule a new edge case goes on its area's Tracking parent rather than into a new issue.

    Source reports, in opensoft/brett-wip under handoffs/xFactory/attachments/lane-openRepoShape-2/: review621-8577b15/fix-list.md (N3), review621-8577b15/final-report.md and impl602-free-plan-hint-root/pr-body.md ("README follow-up") (L2-66); review622-7f7e1b4/fix-list.md (nit 2) and review622-7f7e1b4/final-report.md ("Windows and CRLF") (L2-67).

  11. brettheap commented on Oct 15, 2026

    @brettheap
    ContributorAuthor

    (lane openRepoShape-5, 2026-10-15T23:52:24Z) Checklist items for #461, per ruling 5, from lane 5's #596 (#585), which landed as bf7b19b. They are outside #585's lines, and none is fixed or filed.

    Not filed: README's pip install git-filter-repo for adopting (README.md:768 at bf7b19b). Lane 3's open PR #630 (l3-563-docs) removes that line.

    Lane: openreposhape-5 (openRepoShape-5)

  12. brettheap commented on Oct 16, 2026

    @brettheap
    ContributorAuthor

    (lane openRepoShape-4, 2026-10-16T11:28:29Z) One line for this checklist, from R434's review of #633 (#434), which is now on main as f1c73e2. R434 ran it as a mutant against the new test file at ac508957; it is a test gap and not user-facing, and #633 does not fix it.

    Lane: openreposhape-4 (openRepoShape-4)

  13. brettheap commented on Oct 16, 2026

    @brettheap
    ContributorAuthor

    (lane openRepoShape-4, 2026-10-16T11:29:52Z) One line for this checklist, from R454's review of #642 (#454, #629), which is now on main as 0ed1b84. R454 ran it as a mutant (R1) against the new test file at 1a42df41; it is a test gap and not user-facing, and #642 does not fix it.

    Lane: openreposhape-4 (openRepoShape-4)

  14. brettheap commented on Oct 16, 2026

    @brettheap
    ContributorAuthor

    (lane openRepoShape-4, 2026-10-16T11:31:56Z) Two lines for this checklist, from R423's review of #641 (#423, #426), which is now on main as 42f6411. R423 ran the second as a mutant (R1) against tests/test_non_utf8_git_reads.py at a67a05b6 and reasoned the first without running it; both are test gaps and not user-facing, and #641 fixes neither.

    • → tests: the non-UTF-8 name and branch tests: one skip helper for a filesystem that refuses probe\udcff, Windows guards on make_file and the --branch a\udcffb case, and the UTF-8 promise and the leg finding's role pinned #663 Test gap, Windows (reasoned, not run): make_file relies on the filesystem refusing caf\udce9.yml. tests/test_non_utf8_git_reads.py:86-93. On Windows, CPython passes a str path to CreateFileW as UTF-16, so the lone surrogate is one code unit U+DCE9, and NTFS stores code units unchecked: the file is most likely CREATED, not skipped. Git for Windows would then see the name through its own UTF-16 conversion, so the \xe9 rows would fail or error on a Windows run of the suite, against the module docstring's "where the disk refuses (macOS, Windows) the test skips". APFS's EILSEQ skip on macOS is right. Fix: skip on os.name == "nt" first, as POSIX_NAMES in tests/test_adopt_pins.py:818-821 does and as this file's own POSIX_ENVIRONMENT_ONLY (:390) does for the environment rows, and keep the try/except for APFS. Nothing pins it on Linux CI (R423 N1).

    • → tests: the non-UTF-8 name and branch tests: one skip helper for a filesystem that refuses probe\udcff, Windows guards on make_file and the --branch a\udcffb case, and the UTF-8 promise and the leg finding's role pinned #663 Test gap: the UTF-8 promise is unpinned (mutant R1 survives). With bump-leg's dirt read as dirt.decode("ascii", "backslashreplace") (scripts/bump-leg.py:1126), all 47 tests of the file still pass, although every non-ASCII UTF-8 name then prints as escapes (café.yml as caf\xc3\xa9.yml): a display regression from main for any non-English name under core.quotePath=false. The docstring promises the opposite ("Every name that IS UTF-8 prints exactly as it did"). In test_a_name_that_is_utf8_under_quote_path_false_is_still_refused (:202-217) the :215 check matches only the name's ASCII ends, for a locale reason that is sound (a child's stderr is decoded by the locale, which is not UTF-8 on every platform), so it accepts caf\xc3\xa9.yml. Fix: a locale-independent assertion that the named line holds no escape:

      named = [line for line in result.stderr.splitlines()
               if line.startswith("    M .github/workflows/caf")]
      assert named and "\\x" not in named[0], output

      A locale decode of UTF-8 é never produces a literal \x, so the ASCII-ends caution stays intact. R1 must then be killed (R423 N2).

    Lane: openreposhape-4 (openRepoShape-4)

  15. brettheap commented on Oct 16, 2026

    @brettheap
    ContributorAuthor

    (lane openRepoShape-4, 2026-10-16T11:35:24Z) Two lines for this checklist, from R455's review of #644 (#455), which is now on main as cd5ffa2. R455 ran the second as a mutant (R2) against tests/test_bootstrap_branch_bytes.py at 733f8530 and reasoned the first for Windows without running it (CI is Linux only); both are test gaps and not user-facing, and #644 fixes neither.

    Lane: openreposhape-4 (openRepoShape-4)

  16. brettheap commented on Oct 16, 2026

    @brettheap
    ContributorAuthor

    (lane openRepoShape-4, 2026-10-16T11:37:28Z) One line for this checklist, from R432's review of #632 (#432), which is now on main as ddb8708. R432 read it against ascii_text and --json's json.dumps in shape-doctor.py; it is a docstring slip, not user-facing, and #632 does not fix it.

    Lane: openreposhape-4 (openRepoShape-4)

  17. brettheap commented on Oct 16, 2026

    @brettheap
    ContributorAuthor

    (lane openRepoShape-4, 2026-10-16T11:39:33Z) Three lines for this checklist, from R342's review of #636 (#342), which is now on main as c22da12. R342 measured the first two on main 4cf5fb07 and on #636's head 4aade9f4 (mutants M4 and R1 against both, and a probe root whose own validator gained import yaml) and reasoned the third without running it; none is user-facing, and #636 fixes none of them.

    Lane: openreposhape-4 (openRepoShape-4)

  18. brettheap commented on Oct 16, 2026

    @brettheap
    ContributorAuthor

    (lane openRepoShape-5, 2026-10-16T12:55:21Z) Two lines for this checklist, lane 5's own leftovers from #649's writer (PR #656, head d91b3144), filed at once on Brett Heap's word of 2026-10-16T12:17:02Z ("Lane 5's own leftovers only").

    Lane: openreposhape-5 (openRepoShape-5)

  19. brettheap commented on Oct 18, 2026

    @brettheap
    ContributorAuthor

    (lane openRepoShape-3, 2026-10-18T14:28:40Z) Triage of #461's unchecked items at the v1.1.1 release commit 5017830. This is lane 3's TRIAGE-461, read only.

    25 unchecked lines: 21 FIXED, 1 STALE and 2 OPEN, now filed as #894 and #895. Of the v1.0.0 limits citing #461, #415 and #430 are COVERED by their open issues, and #429 is FIXED. Body edits made now: B1, B2, B3, B5 and B6 ticked; B7 ticked as closed unwritten; B4 points to #895.

    Item Ruling Evidence at 5017830
    B1 (#544) plain-path clones of just-pushed remotes FIXED 2247dbf (#554): tests/test_update_shape.py:112, tests/test_doctor_validator_rows.py:423, tests/test_family.py:1428 use cloned_just_pushed. 3f768a6 (#578): siblings.py:797 --no-local
    B2 (#550) README's by-hand dry run FIXED f6eaab7 (#579): README.md:568-569, docs/handbook.html:1046
    B3 (#666) code: 0 of N quoting FIXED af01068 (#505): AGENTS.md:184, README.md:860-861. 974d482 (#730): adopt-project.py:176-177
    B4 L3-2, no merge_group trigger OPEN #895, which waits for Brett Heap's decision on a merge queue
    B5 (#662) plain-path submodule update --init FIXED 431c8cf (#748): tests/conftest.py:193-214 submodule_update_through_git, at all five sites
    B6 (#665) the .pyc in templates FIXED 2000488 (#724): scripts/render-cli-reference.py:315 PYTHONDONTWRITEBYTECODE=1
    B7 (#662, optional) hygiene test STALE Closed unwritten by #748, as #662 allowed. The root cause is off: 741679e (#713), tests/conftest.py:372-375
    C1 L2-40, the insteadOf rewrite built twice FIXED 431c8cf (#748): tests/conftest.py:83-123
    C2, the launcher guard blind to family.py FIXED 2000488 (#724): tests/test_validator_child_encoding.py:635, :678-681
    C3 L2-52, two skip helpers FIXED bad05d2 (#723): tests/conftest.py:1155
    C4, the quoting-sentence inventory FIXED 2000488 (#724): tests/test_readme_windows_quoting_sentence.py:79, :137-147, :267-271
    C5, Sonar S5778 FIXED 2000488 (#724): tests/test_bump_leg_paste_lines.py:418-420
    C6, handbook step 3's Git Bash path FIXED 190133d (#630): docs/handbook.html:834-836
    C7 and C8, mutants K and R1 (#664) FIXED bb439a2 (#706): tests/test_pins_child_kind_and_siblings_root_spelling.py:94-121, :133-166
    C9 to C12 (#663) FIXED bad05d2 (#723): tests/test_non_utf8_git_reads.py:107, :178; tests/test_bootstrap_branch_bytes.py:438, :524-538
    C13 to C15 (#666) FIXED 55c6ba7 (#700): shape-doctor.py:9474-9477. 974d482 (#730): tests/test_shape_doctor.py:10771-10784, shape-doctor.py:1903-1904
    C16, no CI job runs the doctor's -S children on macOS or Windows OPEN #894 (v1.2.0): release.yml's install check passes with a preflight child that dies on import (probe in #894)
    C17 and C18 (#667) FIXED dcf62ed (#726): install.sh:520-543; openRepoShape:406-446

    C1 to C18 are the unchecked lines in this issue's comments, in order. Those comments are left as their authors wrote them.

    #894 is v1.2.0 and unclaimed. Any lane may claim it as usual.

    Lane: openreposhape-3 (openRepoShape-3)

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions