Skip to content

doc(stovepipe): build and buildsignal pipeline steps#336

Merged
roychying merged 5 commits into
uber:mainfrom
roychying:chenghan.ying/stovepipe-build/buildsignal-doc
Jul 15, 2026
Merged

doc(stovepipe): build and buildsignal pipeline steps#336
roychying merged 5 commits into
uber:mainfrom
roychying:chenghan.ying/stovepipe-build/buildsignal-doc

Conversation

@roychying

@roychying roychying commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Why?

Stovepipe's pipeline had design docs for process but nothing for the two stages downstream of it - build (triggers the build-runner) and buildsignal (polls it to completion). Both stages needed a documented contract before implementation could start, in particular because stovepipe can't reuse SubmitQueue's BuildRunner interface as-is: SubmitQueue validates stacks of batches, stovepipe validates a single URI against a baseline, and that mismatch has to be resolved deliberately rather than discovered mid-implementation.

What?

  • doc/rfc/stovepipe/steps/build.md (new): documents the build stage end to end - the trigger-only algorithm, idempotency posture under at-least-once redelivery, error classification, edge cases (head == last-green, Phase 2 re-triggers), and the new Build entity/BuildStore/queue contract it needs. Defines the stovepipe BuildRunner contract (design sketch) with URI-based Trigger(headURI, baseURI, metadata) instead of SubmitQueue's batch-based trigger, explains why the contracts are kept separate (materialize-vs-checkout mismatch, baseline semantics batches can't express, URI ownership), and lays out - as open discussion, not settled decisions - alternative shapes for sharing the contract (single platform-level interface, metadata-smuggled scope, shared-backend-thin-contracts) and alternatives for how the build id could be keyed/deduped.
  • doc/rfc/stovepipe/steps/buildsignal.md (new): documents the buildsignal poll loop - reusing SubmitQueue's buildsignal shape (poll cadence, PublishAfter-not-Nack primitive, error classification) pipe diverges: it only forwards to record once terminal

Test Plan

N/A

Issue

@roychying roychying requested review from a team, behinddwalls and sbalabanov as code owners July 10, 2026 21:04
@CLAassistant

CLAassistant commented Jul 10, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@roychying roychying force-pushed the chenghan.ying/stovepipe-build/buildsignal-doc branch 3 times, most recently from 1abb551 to 4e4d789 Compare July 10, 2026 22:58
Comment thread doc/rfc/stovepipe/steps/build.md Outdated
Comment thread doc/rfc/stovepipe/steps/build.md Outdated
Comment thread doc/rfc/stovepipe/steps/build.md Outdated
Comment thread doc/rfc/stovepipe/steps/build.md Outdated
Comment thread doc/rfc/stovepipe/steps/build.md Outdated
Comment thread doc/rfc/stovepipe/steps/build.md Outdated
@roychying roychying changed the title (doc)stovepipe: build and buildsignal pipeline steps doc(stovepipe): build and buildsignal pipeline steps Jul 13, 2026
@roychying roychying force-pushed the chenghan.ying/stovepipe-build/buildsignal-doc branch from a437451 to 78a3df5 Compare July 13, 2026 21:37
@roychying roychying force-pushed the chenghan.ying/stovepipe-build/buildsignal-doc branch from 78a3df5 to 3c16063 Compare July 15, 2026 21:16
@roychying roychying added this pull request to the merge queue Jul 15, 2026
Merged via the queue into uber:main with commit 9620da4 Jul 15, 2026
15 checks passed
@roychying roychying deleted the chenghan.ying/stovepipe-build/buildsignal-doc branch July 15, 2026 21:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants