Every Windows CI leg that misses the opam cache now fails at setup, in the step Restore cygwin pkgconf 2.5.1 (Windows) of .github/workflows/ci.yml, before a single test runs. First seen on the extended workflow_dispatch run on master@2f640032f: https://github.com/lukstafi/ocannl-staging/actions/runs/33933071706 (both Build (windows-latest, 5.5.x, main) and Build (windows-latest, 5.5.x, train), 14 minutes in).
Cause: the step fetches the pinned downgrade from https://cygwin.mirror.constant.com/x86_64/release/pkgconf/, and cygwin mirrors keep only the current release versions. The directory now holds pkgconf-3.0.4-2, 3.0.5-1, 3.0.6-1 (plus, still, libpkgconf7/libpkgconf7-2.5.1-1); pkgconf-2.5.1-1-x86_64.tar.zst is gone:
curl: (22) The requested URL returned error: 404
/usr/bin/tar: pkgconf-2.5.1-1-x86_64.tar.zst: Cannot open: No such file or directory
expected pkgconf 2.5.1, got '3.0.6' (extraction failed? this needs a tar with zstd support)
The 2026-09-02 scheduled run (33586609266) still fetched it, so the rotation happened between 2026-09-02 and 2026-09-05. The step's own if: skips it on a cache hit, but actions/cache saves only on a green job, so once a Windows leg misses (a pin or solution digest moves, as it did here) every later run misses too. The next scheduled sweep (Sunday 2026-09-06 03:00 UTC) will fail the same way.
Why it matters beyond a red leg: the Windows leg is the explicit verification boundary for #900 / #869 (atomic_file_race's unchanged <1% refusal claim after staging#617); it cannot be measured until this is fixed.
Fix candidates, in order of preference:
- Fetch the two archives from a dated cygwin time-machine snapshot, which never rotates. Verified serving today (HTTP 200, 40954 and 27775 bytes):
http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2026/09/03/134715/x86_64/release/pkgconf/pkgconf-2.5.1-1-x86_64.tar.zst and .../pkgconf/libpkgconf7/libpkgconf7-2.5.1-1-x86_64.tar.zst. One-line change to $base; plain http, so pin the SHA-512 from the .hint files (pkgconf-2.5.1-1-x86_64.hint sits beside each archive in the same snapshot) if the fetch is to stay trustworthy.
- Vendor the two
.tar.zst files (68 KB together) under .github/ and drop the network fetch entirely.
- Retest whether cygwin's current pkgconf 3.0.6 still has the two
--personality regressions the FIXME above the step documents (personality.d lookup path, ignored DefaultSearchPaths). If fixed, the whole three-step downgrade can go, per the FIXME's own exit condition.
Whatever lands, the Windows leg that follows it is the one that finally answers #900.
Every Windows CI leg that misses the opam cache now fails at setup, in the step
Restore cygwin pkgconf 2.5.1 (Windows)of.github/workflows/ci.yml, before a single test runs. First seen on the extendedworkflow_dispatchrun on master@2f640032f: https://github.com/lukstafi/ocannl-staging/actions/runs/33933071706 (bothBuild (windows-latest, 5.5.x, main)andBuild (windows-latest, 5.5.x, train), 14 minutes in).Cause: the step fetches the pinned downgrade from
https://cygwin.mirror.constant.com/x86_64/release/pkgconf/, and cygwin mirrors keep only the current release versions. The directory now holdspkgconf-3.0.4-2,3.0.5-1,3.0.6-1(plus, still,libpkgconf7/libpkgconf7-2.5.1-1);pkgconf-2.5.1-1-x86_64.tar.zstis gone:The 2026-09-02 scheduled run (33586609266) still fetched it, so the rotation happened between 2026-09-02 and 2026-09-05. The step's own
if:skips it on a cache hit, but actions/cache saves only on a green job, so once a Windows leg misses (a pin or solution digest moves, as it did here) every later run misses too. The next scheduled sweep (Sunday 2026-09-06 03:00 UTC) will fail the same way.Why it matters beyond a red leg: the Windows leg is the explicit verification boundary for #900 / #869 (
atomic_file_race's unchanged<1%refusal claim after staging#617); it cannot be measured until this is fixed.Fix candidates, in order of preference:
http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2026/09/03/134715/x86_64/release/pkgconf/pkgconf-2.5.1-1-x86_64.tar.zstand.../pkgconf/libpkgconf7/libpkgconf7-2.5.1-1-x86_64.tar.zst. One-line change to$base; plain http, so pin the SHA-512 from the.hintfiles (pkgconf-2.5.1-1-x86_64.hintsits beside each archive in the same snapshot) if the fetch is to stay trustworthy..tar.zstfiles (68 KB together) under.github/and drop the network fetch entirely.--personalityregressions the FIXME above the step documents (personality.d lookup path, ignored DefaultSearchPaths). If fixed, the whole three-step downgrade can go, per the FIXME's own exit condition.Whatever lands, the Windows leg that follows it is the one that finally answers #900.