feat(api): give a Release a merge train to record #2009

Merged
sean merged 1 commit from feat/release-integrate-api into trunk 2026-08-07 18:14:58 +00:00
Owner

R2 — API only, nothing reads it yet, behaviour unchanged.

spec.integrate (manual intake) + spec.integrateAllGreen (automatic), mutually exclusive and frozen once aimed. status.integration records the train as EVIDENCE — a typed skip reason means you can answer why is this change not in this release from the CR alone.

integrationMode goes under release, NOT as a third MergeStyle value (render.go derives FFMergeOnly from MergeStyle alone).

The envtests caught a real bug: both freeze rules were field-level, and omitempty removes the key when cleared — so a field-level rule on an absent field never runs, and flipping integrateAllGreen true->false was admitted by the rule written to refuse it. Moved to spec level where has() sees the absence.

128/128 guards, 14/14 packages, 123 envtest specs.

R2 — API only, nothing reads it yet, behaviour unchanged. spec.integrate (manual intake) + spec.integrateAllGreen (automatic), mutually exclusive and frozen once aimed. status.integration records the train as EVIDENCE — a typed skip reason means you can answer *why is this change not in this release* from the CR alone. integrationMode goes under release, NOT as a third MergeStyle value (render.go derives FFMergeOnly from MergeStyle alone). **The envtests caught a real bug:** both freeze rules were field-level, and omitempty removes the key when cleared — so a field-level rule on an absent field never runs, and flipping integrateAllGreen true->false was admitted by the rule written to refuse it. Moved to spec level where has() sees the absence. 128/128 guards, 14/14 packages, 123 envtest specs.
sean force-pushed feat/release-integrate-api from 73a18d8bac
All checks were successful
pipeline/ci CI green @ 73a18d8bacd5
to 3cc0aa7aea
All checks were successful
pipeline/ci CI green @ 3cc0aa7aea5b
2026-08-07 18:14:24 +00:00
Compare
sean merged commit 3cc0aa7aea into trunk 2026-08-07 18:14:58 +00:00
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
sean/pipelines!2009
No description provided.