Skip to content

Pin the Invalidations workflow to Julia 1.11 (SnoopCompile #465 crashes on 1.12) - #115

Closed
ChrisRackauckas-Claude wants to merge 1 commit into
JuliaLinearAlgebra:masterfrom
ChrisRackauckas-Claude:pin-invalidations-julia-1.11
Closed

Pin the Invalidations workflow to Julia 1.11 (SnoopCompile #465 crashes on 1.12)#115
ChrisRackauckas-Claude wants to merge 1 commit into
JuliaLinearAlgebra:masterfrom
ChrisRackauckas-Claude:pin-invalidations-julia-1.11

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown

⚠️ Draft — please ignore until reviewed by @ChrisRackauckas.

Mechanical CI fix, shipped alone: the Invalidations.yml evaluate job has been red on every run since 2025-10-08 — not because invalidations regressed, but because the reporting tool crashes before producing any counts.

Root cause (upstream, RF-independent)

setup-julia with version: '1' began resolving to Julia 1.12.0 on 2025-10-08 (release ~5 h before the first red run). On 1.12, invalidation trees can be rooted at a Core.Binding (binding partitions), and SnoopCompile's report_invalidations (ext/SCPrettyTablesExt.jl:34-39) still assumes Method, crashing with:

FieldError: type Core.Binding has no field `name`, available fields: `globalref`, `value`, `partitions`, `backedges`, `flags`

Upstream issue (open, exact match): JuliaDebug/SnoopCompile.jl#465. A standalone SnoopCompile-only reproducer (no RF imports) was reduced and verified on a clean env during the investigation; the trigger is any ≥1 Binding-rooted tree, which essentially any real package load produces on 1.12.

The fix

Pin the job's Julia to '1.11' with a comment pointing at the upstream issue and the revert condition. Verified locally: the action's exact snippet on RF master crashes on Julia 1.12.6 and completes (162 invalidations, table printed) on 1.11.9. julia-actions/julia-invalidations has no input to skip/soften the report step, so a version pin is the only workaround that keeps the job informative; the action Pkg.adds SnoopCompile fresh each run, so reverting to '1' after an upstream fix restores latest-stable coverage with no other change.

Trade-off: the job measures 1.11 invalidations rather than latest-stable until upstream fixes #465 — versus today, where it measures nothing and every PR carries a spurious red check.

Not verified: the workflow run itself on CI (fires on this PR).

🤖 Generated with Claude Code

On Julia 1.12, invalidation trees can be rooted at a Core.Binding, and
SnoopCompile's report_invalidations (SCPrettyTablesExt) crashes on those
with 'FieldError: type Core.Binding has no field name'
(JuliaDebug/SnoopCompile.jl#465, still open).  The evaluate job has
therefore been red on every run since setup-julia's version: '1' started
resolving to 1.12.0 on 2025-10-08 — it crashes before producing any
invalidation counts.  Pin to 1.11, where the report completes (verified
locally: the same snippet crashes on 1.12.6 and prints the table on
1.11.9); revert once a fixed SnoopCompile v3.x is tagged, since the
action installs SnoopCompile fresh each run.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UGVN6qeNL2jGCtaYg1386X
@ChrisRackauckas

Copy link
Copy Markdown
Member

Just remove the invalidations workflow

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.

2 participants