Uh oh!
There was an error while loading. Please reload this page.
CI - IMPROVEMENT - Pin the CI dependency set per Julia minor version - #395
Conversation
…prefix is cold A pull request now saves the depot when it restored nothing at all, so a cold key prefix seeds itself instead of discarding a full compile. Once the default branch holds an entry, pull requests always prefix-match and skip the save, which is what keeps per-PR caches from consuming the quota. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
logan-nc
commented
Aug 15, 2026
@claude review this |
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
matt-pharr
commented
Aug 15, 2026
FYI this most recent commit is just a test to show that the precompile step gets skipped in the gh runner jobs. |
Review: CI - Pin the CI dependency set per Julia minor versionPure CI/infra change (no Issues / questions
Positive notes
Test coverageNo test coverage change, which is appropriate for a CI-workflow-only PR - there isn't a meaningfully unit-testable surface here beyond running the workflow itself. Per Per this repo's |
matt-pharr
commented
Aug 15, 2026
OK @logan-nc this is ready. As you can see the latest commit finished >10 minutes quicker than the prior one and no longer goes through the whole pre-compiling process. |
Precompiled .ji files are tied to the exact Julia build, so a patch release invalidates them all. Cache entries are immutable, so a key built from the matrix label alone could not rotate: the run would recompile the whole tree, hit the unchanged key, skip the save as having nothing new to store, and repeat that on every run indefinitely. Keying on setup-julia's resolved version rotates it. A version-only fallback still reuses packages, artifacts and registries across a bump. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
logan-nc
left a comment
There was a problem hiding this comment.
The speedup sounds great to me.
Honestly, you are way beyond me with the CI implementations at this point so I definitely defer to you on the best approach. I didn't see anything crazy in my MANDATORY human read through
Essentially this PR adds a pin on the manifest for the CI jobs, so testing will be much much quicker once this is merged. Presently, the packages will all recompile if the dependencies change. However, this manifest pin should allow us to re-run CI on the same versions of all dependencies and therefore skip the precompilation that takes like 15 minutes. @logan-nc I recommend merging this regardless of whether we decide to track the manifest or not and we can always change how this works in the future, but this should make the github actions jobs much faster now so I think we should merge this ASAP.