feat(release): affected-set — build only what changed since the last release#241
Closed
elronbandel wants to merge 1 commit into
Closed
feat(release): affected-set — build only what changed since the last release#241elronbandel wants to merge 1 commit into
elronbandel wants to merge 1 commit into
Conversation
…release On a manual dispatch, enumerate diffs HEAD against the previous vX.Y.Z tag and keeps only the combos + per-task images whose benchmark or agent source changed. A change under containers/core, gateways, or the root bake is a shared/base change, so the full fleet rebuilds (the cascade = bulk on base update). rebuild_bases / --only / tag-release / no-prior-tag all build the full fleet. Leaves stay full: they're ~38s cache hits, and an empty leaf matrix would skip the merge job the combos depend on. Plain git-diff is the standard affected-set (Nx/Turborepo's 'affected') — no content-hash tags, no per-job skip, no script. Signed-off-by: Elron Bandel <elron.bandel@ibm.com>
Contributor
Author
|
Closing — not a net-positive change.
Parking that architectural decision instead. |
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.
What
On a manual dispatch,
enumeratenow diffsHEADagainst the previousvX.Y.Ztag and builds only the combos + per-task images whose benchmark or agent
source changed. Everything unchanged keeps its current published image.
Why
Every dispatch rebuilt the full ~12.8k-combo fleet even when a single benchmark
changed. This is the standard affected set (Nx/Turborepo's
affected), done witha plain
git diff— no content-hash tags, no per-job skip, no helper script.Cascade + escape hatches
containers/core,containers/gateways, or the root bake is ashared/base change → the full fleet rebuilds (the cascade = "bulk on base update").
rebuild_bases,--only, a tag release (vX.Y.Zpush), or no prior tag allbuild the full fleet, unchanged from today.
Scope
Combos + per-task only — the bulk and the ~60-min per-task layer. Leaves stay full:
they're ~38 s cache hits, and an empty leaf matrix would skip the
mergejob thecombos depend on.
Verification
gsm8k+claude-codechange keepsgsm8k/*and*/claude-codecombos (dropsaime/codex) and onlygsm8kper-task; a
containers/core/*change skips the filter (full build).actionlint+yamllintgreen.Supersedes #239 (the content-hash-tag approach) — git-diff is the standard and far simpler.