Release failure issues must capture the failing critical step #136

Open
opened 2026-07-29 01:49:47 +00:00 by perishadmin · 1 comment
Contributor

Context

Plumb release-beta run 291 failed in Smoke install, but automatic Issue #130 contained only the earlier Cargo and artifact log. The smoke step did not append to lane.log, so the actual lock-drift error was absent. Recovering it required a separate Forgejo job-log request.

This violates the release-lane law that failure evidence must be reachable outside CI log access.

Acceptance

  • Every critical release step that can fail contributes its output to the outward failure evidence, including guard, Cargo publish, artifact assembly, R2 publish/readback, manager smoke, and platform smoke.
  • The created issue identifies the failed job and step and includes a bounded diagnostic tail.
  • S3, Cargo, and other held credentials remain redacted from every captured path.
  • Beta and stable lanes share one mechanism rather than drifting copies.
  • A living failure specimen proves a smoke error appears in the created issue.
Context Plumb release-beta run 291 failed in `Smoke install`, but automatic Issue #130 contained only the earlier Cargo and artifact log. The smoke step did not append to `lane.log`, so the actual lock-drift error was absent. Recovering it required a separate Forgejo job-log request. This violates the release-lane law that failure evidence must be reachable outside CI log access. Acceptance - Every critical release step that can fail contributes its output to the outward failure evidence, including guard, Cargo publish, artifact assembly, R2 publish/readback, manager smoke, and platform smoke. - The created issue identifies the failed job and step and includes a bounded diagnostic tail. - S3, Cargo, and other held credentials remain redacted from every captured path. - Beta and stable lanes share one mechanism rather than drifting copies. - A living failure specimen proves a smoke error appears in the created issue.
Owner

Partly answered on main da6cf55 (PR #296): a forge refusal now names the operation Plumb was performing when it arrived, instead of surfacing a bare Please try again later with no subject, and head out of date names the commit the pull actually stands at. That is the outward half.

What this issue asks for beyond that — a release failure capturing which step failed, as structured evidence rather than a log tail — is still open, and belongs with #132's result envelope. Left open on purpose.

Partly answered on main `da6cf55` (PR #296): a forge refusal now names the operation Plumb was performing when it arrived, instead of surfacing a bare `Please try again later` with no subject, and `head out of date` names the commit the pull actually stands at. That is the outward half. What this issue asks for beyond that — a release failure capturing *which step* failed, as structured evidence rather than a log tail — is still open, and belongs with #132's result envelope. Left open on purpose.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
2 participants
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
PerishLab/plumb#136
No description provided.