Plan 0015
Retire the Mac from CI entirely
Finish Plan 0009: no CI step executes on macOS. Every darwin artifact is cross-compiled from the Linux fleet, every darwin check gets a cross-built or host-independent equivalent, and the Mac becomes purely a substitution target.
- Status
- Sketch
- Ambition
- 6 finishes what Plan 0009 started: zero darwin execution anywhere in CI
- Impact
- 7 darwin lanes are the flakiest and least observable part of CI
- Effort
- 6 every remaining darwin-only check needs a cross or emulated equivalent
- Risk
- 5 cross-built artifacts can diverge from what a real Mac runs
- Maturity
- 5 the cross substrate is load-bearing; the long tail of checks is not moved
- Leverage
- 7 every new package skips the mac lane by construction
- Taste
- 4 the destination is agreed; the tail is enumeration and porting
- Authors
- Created
- Updated
- Tracking issue
- -
- Supersedes
- -
- Superseded by
- -
Summary
Plan 0009 made cross-compiled darwin packages load-bearing, but CI still
runs darwin-only steps for the parts nobody has ported: native checks,
cache pushes from Macs, lint lanes that assume a darwin host. Those lanes
are the least reliable part of CI and the issues keep coming. The end state
is simple: the Linux fleet builds everything, cache.ix.dev serves
everything, and a Mac only ever substitutes.
Non-goals
Dropping darwin support; the point is darwin artifacts without darwin executors.
Absorbed issues
#3606, #3586, #3585, #3582, #3573, #3133, #1142, #1093, #1088, #1082, #1076, #1065, #1061, #2672, #2671, #2670
Drafted by Claude Code (Fable) from the open-issue corpus; scores are seed estimates.
andrewgazelka