refactor(compose): define the static orchestrator command once - #78
Merged
Conversation
api-proxy and vllm restated the whole shared orchestrator command just to add -liveRunnerConfig, which `extends` cannot append to a list. Two new shared files carry that variant, so the examples extend instead of copy and a change to the shared command reaches every example. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #51, taking the deduplication option rather than the CI guard.
api-proxyandvllmare the two static runner examples. They need-liveRunnerConfig=/config/runners.json, andextendsreplaces acommandlistrather than appending to it, so both restated all sixteen on-chain flags and all
eleven offchain ones verbatim. Four copies of a command that is meant to live in one
place, and #50 already showed what that costs:
-ticketEVmoved to1e10in theshared file and both copies silently kept
1e9.Two new shared files carry the static variant:
compose.orchestrator.static.ymlextendscompose.orchestrator.ymland adds the flagcompose.onchain.static.ymlextendscompose.onchain.ymland adds the flagEach example then points its
extendsat the static file and keeps only what isgenuinely its own, the
runners.jsonmount. Net 76 lines of duplication removed, andthe count of places the command is written drops from five to three.
Verified
Nested
extendsresolves in both directions:Offchain the command comes out with
-liveRunnerConfigand-network=offchain, image,ports and healthcheck inherited. Layered on-chain it comes out with the full on-chain
flag set plus
-liveRunnerConfig, signer intact. Same forvllm.Relation to the other open compose PRs
composejob to lint. No file overlap; once it is in, it validates thischain on every future compose change.
that this PR deletes, and its glob (
*/compose.yml) does not match the newtop-level
compose.*.static.yml, so as written it would pass with zero copieschecked. Either retarget its
SHAREDmap at the two static files or close it. Thetwo static files still restate the shared command, so a narrowed guard is defensible.
Next static example
streamdiffusion-trickleandstreamdiffusion-wsare unmerged locally and eachrestate the command too. They extend the static file when they land, which is the
"next example inherits whatever is stale" case from #51.