feat(pipectl): carry both merge-train intakes #2014

Merged
sean merged 1 commit from feat/pipectl-integrate into trunk 2026-08-07 19:01:21 +00:00
Owner

R5. release --change N (repeatable) and --all-green, mutually exclusive with the same words the API uses.

Guard runs the REAL command against a fake kubectl and reads the created object — a grep-only guard would have missed the heredoc/ANSI-C-quoting bug this had. It also pins usage(), whose sed line range the longer release entry truncated.

129/129 guards.

R5. release --change N (repeatable) and --all-green, mutually exclusive with the same words the API uses. Guard runs the REAL command against a fake kubectl and reads the created object — a grep-only guard would have missed the heredoc/ANSI-C-quoting bug this had. It also pins usage(), whose sed line range the longer release entry truncated. 129/129 guards.
feat(pipectl): carry both merge-train intakes
All checks were successful
pipeline/ci CI green @ 45f5dd167b01
45f5dd167b
R5 of RELEASE-TRAIN-AND-EVENT-TRIGGERS.md.

release gains --change N (repeatable) and --all-green. They are two different
requests, so the CLI refuses both together with the same words the API uses.
Neither affects a continuous-mode project, where each change has already merged
on its own.

A guard runs the real command against a fake kubectl and reads the object it
would create. A grep-only guard would have missed the bug this had: the spec was
first assembled with ANSI-C quoting inside a heredoc, which a heredoc does not
expand, so the CR carried two literal characters instead of a newline.

The guard also pins usage(). That block is a sed line range over the file's own
header, so adding a verb above it truncates the list, and nothing shows that
until somebody runs the command with no arguments -- which the longer release
entry did.

My own guard then hit the trap it exists to catch: a piped grep inherited
pipectl's expected non-zero exit under pipefail, so it failed for the wrong
reason. It captures the output instead.
sean merged commit 45f5dd167b into trunk 2026-08-07 19:01:21 +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!2014
No description provided.