release: rejoin the v0.8.0 line into main #51

Merged
PerishFire merged 2 commits from repo/rejoin-v080 into main 2026-08-19 09:36:02 +00:00
Owner

Why

plumb release prepare --version v0.8.1 refuses:

stable v0.8.0 stands at 11e19e23fd55b86d3c7f734572004d2192fd7732,
which origin/main does not hold

and every verb that would clear it refuses in turn: rejoin because the stable
pointer never named v0.8.0, retract because v0.8.0 is published. The state
that traps all three is what PerishLab/plumb#346 produced — a release published
and stamped but never made canonical.

The block itself is only a git ancestry fact. 11e19e2 is 577c439 plus one
commit carrying .plumb/releases/v0.8.0/datum.toml, and it lives only on the
line. The authority, the channel pointer and every published object are
untouched by this.

What

Merging the line into main is what rejoin means: the line's records settle back
into the trunk. The net change to main is one file:

.plumb/releases/v0.8.0/datum.toml | 7 +++++++

This branch is main with the line merged into it, rather than the line itself,
because the line's tree still carries a 320-line AGENTS.md and Plumb v0.27.0
measures that budget against the source — a PR from the line fails its own guard
for a reason that has nothing to do with the merge.

Merge this with a merge commit, not a squash. Squashing rewrites the commit
and leaves 11e19e2 unreachable, which is the exact fact prepare reads.

Tests

plumb doctor . on the merged tree is clean, and 11e19e2 is an ancestor of
this branch.

## Why `plumb release prepare --version v0.8.1` refuses: ``` stable v0.8.0 stands at 11e19e23fd55b86d3c7f734572004d2192fd7732, which origin/main does not hold ``` and every verb that would clear it refuses in turn: `rejoin` because the stable pointer never named v0.8.0, `retract` because v0.8.0 is published. The state that traps all three is what PerishLab/plumb#346 produced — a release published and stamped but never made canonical. The block itself is only a git ancestry fact. `11e19e2` is `577c439` plus one commit carrying `.plumb/releases/v0.8.0/datum.toml`, and it lives only on the line. The authority, the channel pointer and every published object are untouched by this. ## What Merging the line into main is what rejoin means: the line's records settle back into the trunk. The net change to main is one file: ``` .plumb/releases/v0.8.0/datum.toml | 7 +++++++ ``` This branch is main with the line merged into it, rather than the line itself, because the line's tree still carries a 320-line `AGENTS.md` and Plumb v0.27.0 measures that budget against the source — a PR from the line fails its own guard for a reason that has nothing to do with the merge. **Merge this with a merge commit, not a squash.** Squashing rewrites the commit and leaves `11e19e2` unreachable, which is the exact fact `prepare` reads. ## Tests `plumb doctor .` on the merged tree is clean, and `11e19e2` is an ancestor of this branch.
Record the datum v0.8.0 judges against
Some checks failed
guard / guard (push) Successful in 1m25s
guard / guard (pull_request) Failing after 1m28s
11e19e23fd
release: rejoin the v0.8.0 line into main
All checks were successful
guard / guard (pull_request) Successful in 1m28s
6a39fd51b0
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
PerishFire/sidecar!51
No description provided.