Carry the failure a revision landed on, wherever a revision is described #12
Loading…
Reference in a new issue
No description provided.
Delete branch "feature/failure-reference-on-the-wire"
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?
The platform has had a failure page since
Failurerows existed — an F-code, the phase, whose fault it was, the build log, and a share link for someone who cannot sign in. None of it was on this wire, so a client could print the reason sentence and had nowhere to send the reader next. That is where every reader ofsc deployandsc appsstopped.Failure(client/failure.go) is the handle as a person writes it plus the absolute URL of its page, and it now travels on all three places a revision is described:Deployment.FailureRevision.FailureStatusReasonis thereProgressFrame.FailureThe stream sends it as its own frame, just before the end frame, rather than as a field on the end frame. The end frame is
FollowDeployment's return value — a client takes the sentence and stops reading — so anything riding along with it would be dropped by every client written before this existed. As its own frame it reaches the same callback the statuses and the build output already reach, and an older client ignores it (no case in its switch matches).Every field is additive and a pointer, so a platform that does not send one, and a client that does not know about one, both behave exactly as before.
Verification
go test ./...green;hack/coverage.sh91.4% onclientagainst a floor of 88.8% (unchanged frommain— this change is coverage-neutral).hack/lint.sh— 0 issues.scand is shown on that PR.Platform and
scsides follow separately; this one has to merge first so the agent can bump its pin.Carry the failure a revision landed on, wherever a revision is describedto WIP: Carry the failure a revision landed on, wherever a revision is describedWIP: Carry the failure a revision landed on, wherever a revision is describedto Carry the failure a revision landed on, wherever a revision is described