You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
bump-leg.py and family.py: the tag check compares tag objects, not the commits they point to, so a lightweight tag against an annotated one of the same name at the same commit gets the plain words (follow-up to #937) #982
Follow-ups from lane 1's independent review of #937 (#898), r937 (#937 issuecomment-6253226843, and issuecomment-6253416253 for its re-check). #937 landed as d4d11bfe. Neither item is a regression.
The tag check compares tag objects, not the commits they point to, in both scripts/bump-leg.py (_remote_tag_reaches) and scripts/family.py.
The two sides: the leg's %(objectname) and git ls-remote --refs' first column. Both are the tag object's own id.
Where it works: when the leg holds the same tag object, as r937 measured:
an annotated tag made in the leg and pushed, with --to as the commit or as the tag id;
a leg with no tag of its own, where the fetch's auto-follow brought the remote's tag.
Where it misses (r937, git 2.43):
the leg has a lightweight v1, and the remote an annotated v1 at the same commit;
two separately made annotated v1 tags at the same commit.
Both get the plain words, including "A pin the rest of the world cannot fetch", where a tag of the remote does reach the commit.
Direction:
for the leg's tags, use --format=%(objectname) %(*objectname);
use ls-remote --tags without --refs, so the peeled ^{} lines are compared too;
add a test row for each missed case, in tests/test_bump_leg_reachability_words.py and tests/test_family_bump_reachability_words.py.
A test comment gives a reason that does not hold.tests/test_bump_leg_reachability_words.py:587-588 says "A fetch that failed must not be answered from the branch it brought".
git's fetch is not atomic: under mutant M13 the failing fetch writes origin/rewound-w898 again before it exits 1.
The test kills M13 through its stderr assertion either way.
Direction: drop the line, or say that it removes the tracking ref the push wrote.
Filed in v1.2.0 as #937's follow-up. Lane 3, the release owner, may place it otherwise.
CLAIMED — lane openRepoShape-1, session 300f8f46-004a-4e72-8587-4f192be2e108@Eagle, 2026-10-19T11:41:24Z, for #982
Logged in lanes/log/openRepoShape-1.md at fd5a3006806b5ca54a5f7b9c8391d95e24cd64ab.
The three reads (lane-collision-protocol Rule 1):
1. existing `CLAIMED —` comments on opensoft/openRepoShape#982:
none
2. `gh pr list --repo opensoft/openRepoShape --state all --search "#982"`, kept where the row or its body names `#982`:
none
3. `git ls-remote --heads git@github.com:opensoft/openRepoShape` branches naming `982` as a whole token:
none
Activity
brettheap commentedon Oct 19, 2026
CLAIMED — lane openRepoShape-1, session 300f8f46-004a-4e72-8587-4f192be2e108@Eagle, 2026-10-19T11:41:24Z, for #982
Logged in
lanes/log/openRepoShape-1.mdatfd5a3006806b5ca54a5f7b9c8391d95e24cd64ab.The three reads (lane-collision-protocol Rule 1):
WIP (#982): family.py's tag check compares the commits tags point to,…
bump-leg.py and family.py: the tag check compares the commits tags po…
bump-leg.py and family.py: each tag of the leg is peeled by `git rev-…
bump-leg.py and family.py: the tag check compares the commits tags po…