Skip to content

Fix Downgrade CI: raise PrecompileTools compat floor to 1.1#117

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix-downgrade-precompiletools-floor
Jun 24, 2026
Merged

Fix Downgrade CI: raise PrecompileTools compat floor to 1.1#117
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix-downgrade-precompiletools-floor

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Please ignore until reviewed by @ChrisRackauckas.

Problem

The Downgrade / Downgrade Tests - Core lane on master is red. The error:

ERROR: LoadError: UndefVarError: `@recompile_invalidations` not defined
in expression starting at .../StaticArrayInterface/qmd3i/src/StaticArrayInterface.jl:19
Failed to precompile StaticArrayInterface ...
Failed to precompile EllipsisNotationStaticArrayInterfaceExt ...
Core/static_array_interface.jl | Error 1 / Total 1

Root cause

The downgrade run pins direct deps to their [compat] floor. EllipsisNotation had PrecompileTools = "1.0.1". With PrecompileTools pinned at 1.0.1, the resolver pairs it with StaticArrayInterface v1.10.0 (every registry version of StaticArrayInterface, 1.4.1 through 1.10.0, declares PrecompileTools = "1", so the latest is chosen).

Every one of those StaticArrayInterface versions does:

using PrecompileTools
@recompile_invalidations begin
    ...
end

but @recompile_invalidations was only added to PrecompileTools in 1.1.0. So under the downgrade resolution StaticArrayInterface fails to precompile with UndefVarError: @recompile_invalidations not defined, which cascades into EllipsisNotationStaticArrayInterfaceExt and the static_array_interface.jl Core test.

StaticArrayInterface advertising PrecompileTools = "1" is itself too loose (upstream bug), but EllipsisNotation can avoid the bad pairing by requiring PrecompileTools >= 1.1, where the macro exists.

Fix

Raise PrecompileTools compat floor 1.0.1 -> 1.1, and bump the package version 1.10.0 -> 1.10.1 (compat change requires a release for registration).

Verification (local, Julia LTS 1.10.11)

Reproduced the exact failure before the fix (PrecompileTools pinned 1.0.1):

✗ Static
✗ StaticArrayInterface
✗ EllipsisNotation → EllipsisNotationStaticArrayInterfaceExt
UndefVarError: `@recompile_invalidations` not defined

After the fix (PrecompileTools pinned at the new floor 1.1.0, StaticArrayInterface v1.10.0 resolved):

✓ EllipsisNotation
✓ StaticArrayInterface
✓ EllipsisNotation → EllipsisNotationStaticArrayInterfaceExt

All Core test files pass:

======== RUN basic.jl ========          (passes)
CartesianIndex          | 6  / 6
StaticArrayInterface    | 10 / 10
Allocation Tests        | 4  / 4
ALL_CORE_TESTS_COMPLETED

🤖 Generated with Claude Code

The Downgrade/Core lane was red: with PrecompileTools pinned at the
[compat] floor 1.0.1, the resolver pairs it with StaticArrayInterface
1.10.0 (the only StaticArrayInterface versions in the registry,
1.4.1-1.10.0, all declare PrecompileTools="1"). Every one of those
StaticArrayInterface versions does `using PrecompileTools;
@recompile_invalidations begin ... end`, but `@recompile_invalidations`
was only added to PrecompileTools in 1.1.0. So StaticArrayInterface (a
test/ext dependency that the downgrade run promotes to a dependency)
fails to precompile with `UndefVarError: @recompile_invalidations not
defined`, taking down EllipsisNotationStaticArrayInterfaceExt and the
static_array_interface.jl Core test.

StaticArrayInterface's own [compat] PrecompileTools="1" is too loose
(upstream bug), but EllipsisNotation can prevent the bad pairing by
requiring PrecompileTools >= 1.1, where the macro exists.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review June 24, 2026 12:01
@ChrisRackauckas ChrisRackauckas merged commit 6c0490b into SciML:master Jun 24, 2026
17 checks passed
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