Skip to content

adopt-project.py, shape_materialize.py and the assembly-root template: after #1121 and #1105, one GNU_MAKE_READS and one lookup, their NEXT NOTE and collision line as true as #1207's, and the NITs 1, 3b, 3c, 4 and 5 of #1105's second review #1240

Open

Description

@brettheap

(lane openRepoShape-5. These are #1132's items that #1207 leaves, because they live only in lane 4's #1105 (#1048) and #1121 (#1047). #1132 is shut when #1207 lands, so this issue tracks them: #1207's review, issuecomment-6374516382, SHOULD-2.)

Problem

#1207 does the parts of #1132 that hold on main. Lane 4 lands #1105 and #1121 as reviewed, with no fix round, #1121 first, and hands their items to lane 5 (#473 issuecomment-6350568104: "Your list above is the record of what moves to lane 5"). Once both land, main has the following. Letters name them below. "Item N" is #1132's own numbering, and "RV1105b" is #1105's second review (issuecomment-6321479057).

Measured

This was measured offline at #1105 b28f40de0, #1121 1c5173758, main e04826db4 and #1207 75c90b6db, with git grep and the lane's text probe. The probe loads each head's adopt-project.py and shape_materialize.py, and renders the three texts for a set of roots. Its extracted trees match each head byte for byte.

where
A GNU_MAKE_READS = is at main's adopt-project.py:3799 only. At #1105 it is at adopt-project.py:3712 and scripts/shape_materialize.py:784. Lookups: #1105's adopt-project.py:3747 and :6369, and #1121's adopt-project.py:3747 and :15674.
B, C #1105's rendered collision line for Makefile + GNUmakefile/ is quoted in B. Its meanwhile is at #1105's scripts/shape_materialize.py:1110 and :1121.
C, D #1121's rendered NEXT for Makefile + GNUmakefile: "NOTE the root keeps its own Makefile and the shape's is shape/Makefile, and GNU make at the root reads the source's GNUmakefile, ... so make bootstrap and the shape's other make targets run there only once GNUmakefile has them, or includes a Makefile that does; python3 scripts/bootstrap.py is what the shape's make bootstrap runs." The code is at #1121's adopt-project.py:15695 and :15697.
E At #1105: scripts/shape_materialize.py:773 (the SHAPE_MAKE_TARGETS comment) and :1039 (collision_follow_up's docstring), tests/test_pinned_copy_text.py:76 (the ADOPTED_SENTENCES comment, "only where that file includes it"), and tests/test_adopt_collision_make_reads.py:34 (the module docstring). A fifth, :178 in the same file, says the merge alone "turns on whether the file includes Makefile".
F #1105's scripts/shape_materialize.py:1047
G #1105's scripts/shape_materialize.py:1014. def follow_ups is at :3361, and git grep '\.follow_ups()' finds only the docstring.
H RV1105b's mutant K9: 0 of 118 rows failed
I #1105's templates/assembly-root/AGENTS-shape.md:90 and tests/test_adopt_collision_make_reads.py:160
J #1207's mutant M18 survived, and it is equivalent on main

At #1207 75c90b6db, _make_reads_first_clause(first, reach, "has them") for GNUmakefile gives #1121's own reads clause byte for byte. So #1121's file case can go through it with no change to its words.

Suggested fix

Do this after #1121, #1105 and #1207 have landed. #1207 lands after both and resolves its conflict with each. Where that resolution already does an entry, its round says which one, and this issue keeps the rest.

The local branch fix/1132-template-bootstrap-stacked (9eb5cce0b) is a model of the end state on #1105 + #1121 + main. It was never pushed and never tested, and its words differ from #1207's in places.

Verify

Lane: openreposhape-5 (openRepoShape-5)

Activity

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