fix(post-cut): disclose manifest create/update branch (#679) #899
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!899
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "rigger/679-manifest-create-log"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Scope
Implements release-toolkit#679 at the typed rt post-cut boundary.
Behavior
Manifest bookkeeping now logs the branch it actually takes:
The logger is threaded into the manifest write itself, so the evidence is emitted by the branch that performed the write. The separate operator decision about refusing an absent manifest on a tagged project remains unchanged; this PR does not select or implement that behavior.
Conflict resolution
The original branch was based on
055e1f02and conflicted with the landed publish-state change in7fd9ed5. The rebase resolution is additive:The original range patch-id was 6d7689ea54c32b8206d6b48d54a37dd88177c844. The resolved range patch-id is 2babbfac982a62163ee3d40a04d417e6a6d9571e. They differ because the conflict resolution incorporates both concerns.
Controls and evidence
324f9685beand no conflict markers.Files
Verification
Exact artifact
f5d52784d5.645c250450.f5d52784d5.This resolution requested no reviewer and performed no merge; existing reviewer assignments were left unchanged.
Reviewed exact head
be9cf2ca26against exact base055e1f02d1.Approved. The CREATE/UPDATE evidence is emitted from the successful write branch itself: absent manifests log CREATE with the existing first-cut assumption, and valid existing manifests log UPDATE with schema/other keys preserved. The old generic post-write update line is removed, so the branch is not reported twice or mislabelled. Present malformed manifests still return the existing schema violation before any write or branch log.
The separate absent-manifest/tagged-project policy decision is unchanged: this patch does not alter postCutPrecheck or choose a refusal policy. The exact three-file diff is limited to cmd/rt/post_cut.go, cmd/rt/post_cut_test.go, and changelog.d/679.fixed.md. The create, update/preservation, and malformed-refusal tests pass; mutating CREATE to UPDATE makes the create test fail; go test -count=1 ./..., go vet ./..., fragment-check, gofmt, and git diff --check pass. Forgejo reported 12/12 successful contexts at the exact head when checked. No merge action taken.
Reviewed exact head
be9cf2ca26against exact base055e1f02d1.Approved. The CREATE/UPDATE evidence is emitted from the successful write branch itself: absent manifests log CREATE with the existing first-cut assumption, and valid existing manifests log UPDATE with schema/other keys preserved. The old generic post-write update line is removed, so the branch is not reported twice or mislabelled. Present malformed manifests still return the existing schema violation before any write or branch log.
The separate absent-manifest/tagged-project policy decision is unchanged: this patch does not alter postCutPrecheck or choose a refusal policy. The exact three-file diff is limited to cmd/rt/post_cut.go, cmd/rt/post_cut_test.go, and changelog.d/679.fixed.md. The create, update/preservation, and malformed-refusal tests pass; mutating CREATE to UPDATE makes the create test fail; go test -count=1 ./..., go vet ./..., fragment-check, gofmt, and git diff --check pass. Forgejo reported 12/12 successful contexts at the exact head when checked. No merge action taken.
be9cf2ca26645c250450New commits pushed, approval review dismissed automatically according to repository settings
Reviewed exact head
645c250450f744ea46c2d0e219ee41e02b86d975.The review-time server base/main is
f26596c181b95e63a5653707b7f9d998de1bbb2c; this head is a direct child of the handed-off base/merge-basef5d52784d5118ae23c5e0d7a16089e0800b92b7e. Main advanced after handoff, butblock_on_outdated_branch=falseis intentional, so no pre-review rebase is required. The own three-way diff fromf5d52784d5118ae23c5e0d7a16089e0800b92b7eis exactlycmd/rt/post_cut.go,cmd/rt/post_cut_test.go, andchangelog.d/679.fixed.md(+56/-5).The same workflow logger is threaded into the typed manifest write boundary. CREATE and UPDATE are logged only after the corresponding store write succeeds, and the messages preserve the absent-file first-cut warning versus existing-file update evidence. The UPDATE path retains the existing typed fields/schema and publish-state behavior; the malformed-existing path still refuses before writing or logging and remains byte-unchanged. No policy decision is selected silently: the existing publish-mode resolver and schema migration rules are unchanged from the base.
Focused and full Go tests,
go vet ./..., fragment validation, format, and diff checks pass at this head. Mutation checks made each CREATE/UPDATE assertion fail when its production label was swapped.Approval is for exact head
645c250450f744ea46c2d0e219ee41e02b86d975.Reviewed exact head
645c250450f744ea46c2d0e219ee41e02b86d975.The review-time server base/main is
f26596c181b95e63a5653707b7f9d998de1bbb2c; this head is a direct child of the handed-off base/merge-basef5d52784d5118ae23c5e0d7a16089e0800b92b7e. Main advanced after handoff, butblock_on_outdated_branch=falseis intentional, so no pre-review rebase is required. The own three-way diff fromf5d52784d5118ae23c5e0d7a16089e0800b92b7eis exactlycmd/rt/post_cut.go,cmd/rt/post_cut_test.go, andchangelog.d/679.fixed.md(+56/-5).The same workflow logger is threaded into the typed manifest write boundary. CREATE and UPDATE are logged only after the corresponding store write succeeds, and the messages preserve the absent-file first-cut warning versus existing-file update evidence. The UPDATE path retains the existing typed fields/schema and publish-state behavior; the malformed-existing path still refuses before writing or logging and remains byte-unchanged. No policy decision is selected silently: the existing publish-mode resolver and schema migration rules are unchanged from the base.
Focused and full Go tests,
go vet ./..., fragment validation, format, and diff checks pass at this head. Mutation checks made each CREATE/UPDATE assertion fail when its production label was swapped.Approval is for exact head
645c250450f744ea46c2d0e219ee41e02b86d975.