Skip to content

Revert "publish released mirrors' oleans to the Lake cache" - #10071

Open
kim-em wants to merge 1 commit into
mainfrom
revert-lake-cache-publish
Open

Revert "publish released mirrors' oleans to the Lake cache"#10071
kim-em wants to merge 1 commit into
mainfrom
revert-lake-cache-publish

Conversation

@kim-em

@kim-em kim-em commented Sep 6, 2026

Copy link
Copy Markdown
Owner

This PR removes the publish step from the mirrors' managed CI, reverting #10062 ("ci(release): publish released mirrors' oleans to the Lake cache"), and records what measuring it showed.

Publishing itself worked. All 56 mirrors uploaded, the objects were publicly readable, and a consumer fetched every map and all 1128 artifacts those maps referenced.

Consuming did not pay for itself. Restoration is real, but it fails on exactly the expensive modules. Against a downloads-only cache with every Hex build directory wiped, HexMatrix recompiles nothing in 2s and HexModArith 2 modules of 96 in 43s, while HexGraphIso still recompiles 64 of its 91 in 367s and HexGF2 10. End to end the blog's CI took 41 minutes with the cache against about 31 without, measured twice with identical results, because the two to three minutes of fetching buys back less than it costs.

What those modules have in common is still unknown. It is not native_decide (one module in the whole graph uses it), not a Mathlib revision difference (the mirrors and the consumer pin the same one), not the upstream pins, and not precompileModules. It is also not a root-versus-dependency effect: a minimal two-package reproducer, one published as root and consumed as a dependency, restores perfectly with and without precompileModules, so cross-workspace reuse is supported.

The credentials stay provisioned on every mirror, so re-enabling this is a change to released-ci.yml alone rather than a re-provisioning exercise. PLAN/Releases.md keeps the section, now describing the current state and pointing whoever picks this up at the open question rather than at the transport, which is sound.

The reverted workflow has already been pushed to all 56 mirrors with the sync baseline advanced alongside, since the publishing tokens still lack the Workflows permission; a dry-run sync reports no divergence.

🤖 Generated with Claude Code

https://claude.ai/code/session_01BTzMFQfoJW6no7Zb8xwEMg

Publishing worked: all 56 mirrors uploaded, the objects were publicly readable,
and a consumer fetched every map and all 1128 artifacts they referenced.

Consuming did not pay. Restoration is real but fails on exactly the expensive
modules, so against a downloads-only cache HexGraphIso still recompiles 64 of
its 91 modules while HexMatrix recompiles none. End to end the blog's CI took 41
minutes with the cache against about 31 without, measured twice with identical
results.

What those modules have in common is still unknown; it is not native_decide, a
Mathlib revision difference, the upstream pins, precompileModules, or a
root-versus-dependency effect, the last ruled out by a minimal reproducer. The
credentials stay provisioned, so re-enabling this is a change to released-ci.yml
alone once that question has an answer.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BTzMFQfoJW6no7Zb8xwEMg
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant