Repository navigation
ci(cmux-next): the DEV Release product receipt records the resolved Swift mode - #27679
Conversation
…wift mode
The reuse key keeps swift_mode=auto (either resolved mode is a correct product of the same
inputs, so splitting the key would only cost hits), but a report could not tell an
auto-singlefile compile from an auto-wholemodule one. The record's manifest.json now keeps
swift_mode (singlefile or wholemodule, what compile-dev-release.sh resolved) beside
swift_mode_requested (the key's value). A reuse carries its source's resolved mode forward, the
lookup prints it, and the step summary names it on a hit ("swift_mode auto -> wholemodule").
Reporting only: no key, lookup or product change; an unknown value is left out, never fatal.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
|
|
Found 1 test failure on Blacksmith runners: Failure
|
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40975388675 at 43303f7 failed: cmux-next checks (god files, concurrency, crash safety, l10n), cmux-next fleet Release compile. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40975576275 at 60a6a31 failed: cmux-next checks (god files, concurrency, crash safety, l10n), cmux-next fleet Release compile. |
|
Shipped in:
|
|
Shipped in:
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Why
From the DEV whole-module lane (#26999): "The DEV compile reuse key prints swift_mode=auto, so auto-singlefile and auto-wholemodule share one key. Reuse stays correct, but reporting can't tell the two apart. Have the key or receipt record the resolved mode (singlefile or wholemodule) alongside
auto."What changes
Reporting only. The reuse key, the lookup and the product don't change: either resolved mode is a correct product of the same inputs, and splitting the key would only cost reuse hits.
dev_release_product_reuse.py recordaccepts--swift-mode(whatcompile-dev-release.shresolved) and--swift-mode-requested(the key's value, usuallyauto). It writes both into the record'smanifest.jsonasswift_modeandswift_mode_requested. An unknown value is left out with a warning; it never fails the record.lookupoutputsswift_modeandswift_mode_requestedfrom the source record (empty for records written before this change). On a hit, the step summary names them, for example "swift_mode auto -> wholemodule".cmux-next.yml(the DEV daily and push compile, and the landing compile) pass the reused source's resolved mode on a hit and the compile step'sswift_modeoutput otherwise. A reuse therefore keeps reporting the mode the bytes were actually compiled with.The nightly lane shares the module but its workflow doesn't record a Swift mode, so it's unchanged; its tests pass.
Risk
Low. These are optional manifest fields and summary text. The
recordsteps arecontinue-on-erroralready, and the new flags can't fail them.Tests
tests/test_dev_release_product_reuse.py: 15 passed, including new tests. The record keeps the resolved and requested modes and leaves the key alone. An unknown value is dropped without failing. A hit carries its source's mode into outputs and the summary, and an old record reads as empty. Both record steps pass the resolved mode.tests/test_nightly_release_product_reuse.py(18) andtests/test_ci_release_product_reuse.pypass.cmux-next.ymlwas run (40). The only failures (test_ci_fork_runner_routing, 1 test;test_cmux_next_base_autofix_finishes, 9 tests) fail with the same tests on base.Changelog
none
🤖 Generated with Claude Code
Agent session: agent session
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
DEV Release product receipts now record the resolved Swift mode (
singlefileorwholemodule) alongside the requested one (usuallyauto), so reports can tell auto-singlefile and auto-wholemodule compiles apart even though they share a reuse key.recordaccepts--swift-modeand--swift-mode-requestedand writes both tomanifest.json; unknown values are dropped with a warning and never fail the record.lookupoutputs both fields (empty for records written before this change), and the step summary names them on a hit, e.g. "swift_mode auto -> wholemodule".Written for commit 70409ad. Summary will update on new commits.