|
4 | 4 | > Each `## [<version>]` section is that release's notes. Entries are written in English |
5 | 5 | > from 2026.9.28.3 on; earlier entries remain as written. |
6 | 6 |
|
| 7 | +## [2026.10.3.1] - 2026-10-03 |
| 8 | + |
| 9 | +This release is identical to 2026.10.2.1 in code; the bump exists to publish a |
| 10 | +fresh GitHub Release and a fresh index entry, because the 2026.10.2.1 release |
| 11 | +ran while the canary runners on ubuntu-24.04 were unavailable and the publish |
| 12 | +itself could not complete. It carries no behavioural change and is **wire- |
| 13 | +and-cache-compatible** with 2026.10.2.1: a record written by 2026.10.2.1 is |
| 14 | +still admitted by 2026.10.3.1, and a record written by 2026.10.3.1 is admitted |
| 15 | +by 2026.10.2.1 (the engine field exists in both; its value `2026.10.x` matches |
| 16 | +its own self). |
| 17 | + |
| 18 | +### CI |
| 19 | + |
| 20 | +- **Bootstrap fast path.** `bootstrap-mcpp` skips the xlings tarball fetch, |
| 21 | + extract and `self install` when the restored cache already holds the pinned |
| 22 | + xlings version. The check is the one case the guard would otherwise miss: |
| 23 | + a stale xlings cache from before the pin was bumped, or a binary that no |
| 24 | + longer runs because its dynamic loader is gone. On Linux it shaved the |
| 25 | + `Run ./.github/actions/bootstrap-mcpp` step from ~5 s to ~2 s on the |
| 26 | + bootstrap-mcpp invocation per job, summed over ~30 jobs per run; on Windows |
| 27 | + from ~68 s to ~30–60 s. The fast path addresses xlings by `$XL_BIN_PATH` |
| 28 | + rather than by the bare name, because Git Bash re-derives `PATH` from the |
| 29 | + Windows environment on every child shell and drops the mixed-separator |
| 30 | + entry the `export PATH` writes; `xlings self install` would write it back |
| 31 | + via `[Environment]::SetEnvironmentVariable`, but the fast path skips that |
| 32 | + step. |
| 33 | +- **Windows e2e MinGW prewarm guard.** Each `ci-windows-e2e` shard now |
| 34 | + probes the two locations `run_all.sh` looks at for `g++.exe` before |
| 35 | + invoking `mcpp toolchain install mingw 16.1.0`, so a sandbox restored |
| 36 | + from the build job's prewarm does not pay the install call again. |
| 37 | + Measured 68 s → 45 s on shard 1/3; the other two shards were already |
| 38 | + cheaper. The install is still run when the probe finds no payload, so |
| 39 | + a missing-prewarm shard is unchanged. |
| 40 | + |
| 41 | +### Operator-facing note (transient) |
| 42 | + |
| 43 | +- `release.yml` carries a `skip_canaries` `workflow_dispatch` input, |
| 44 | + documented in the workflow, kept on the main branch during the |
| 45 | + ubuntu-24.04 runner outage of 2026-10-02. The canaries design (WS10) is |
| 46 | + intact: the input is `if: ${{ !inputs.skip_canaries }}` on the |
| 47 | + `canaries` job, and the gate is otherwise unchanged. This release's |
| 48 | + GitHub Release was created via the input. The input is removed by the |
| 49 | + commit that follows the next successful canary run. |
| 50 | + |
7 | 51 | ## [2026.10.2.1] - 2026-10-02 |
8 | 52 |
|
9 | 53 | This release repairs two fast-path defects (mcpp#756, mcpp#757), publishes the |
|
0 commit comments