cache: default false in all reusable workflows (supersedes #90)#93
Merged
ChrisRackauckas merged 2 commits intoJun 14, 2026
Merged
Conversation
…eter save overhead); add cache input to grouped-tests Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…tral on hosted, catastrophic on self-hosted demeter; supersedes SciML#90) Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
cache: default
falsein all reusable workflowsChris's call: caching does nothing useful on GitHub-hosted runners and is actively harmful on the self-hosted demeter runner, so the
cacheinput now defaults tofalseeverywhere it exists, fleet-wide.Why caching is not worth defaulting on
julia-actions/cacherestores a coarse, OS-only-keyed depot (~355 MB) that rarely matches the actualManifest.toml. Because the key doesn't track the manifest, the restored depot is almost always stale, so Julia re-runs precompilation anyway — the cache buys little to nothing on the compile side, while still adding the restore/save steps that can race or fail (concurrent jobs, partial tars).So there is no runner type where defaulting caching on is a win. Default it
false.What changed
cacheinputdefault: true→default: false(and added where missing), across every reusable that can cache:tests.yml— default flipped tofalse. The existing self-hosted gate on the cache step is kept as defense in depth:if: "${{ inputs.cache && inputs.runner == '' && !inputs.self-hosted }}", so even an explicitcache: truecan never trigger the demeter footgun.grouped-tests.yml— default flipped tofalse(forwardscache: ${{ inputs.cache }}totests.yml).sublibrary-project-tests.yml— added acacheboolean input (defaultfalse) and forward it into thetests.yml@v1call. This is the toggle PR feat: allow forwardingcacheinsublibrary-project-tests#90 added, but defaultingfalseinstead oftrue.documentation.yml— default flipped tofalse.downstream.yml— default flipped tofalse.The input is kept everywhere so any individual repo can still opt back in with
cache: trueif it ever proves worthwhile for that repo (and even then the self-hosted gate protects demeter).actionlintclean on all five edited files.Supersedes #90
This supersedes PR #90, which added the sublibrary cache toggle but defaulted it to
true. This PR adds the same toggle defaultingfalse(the correct default per the analysis above) and applies the same default-false treatment fleet-wide. Recommend closing #90.v1 must be retagged after merge. Ignore until reviewed by @ChrisRackauckas.