Skip to content

Conversation

@ChrisRackauckas-Claude
Copy link

Summary

This PR fixes JET test failures on Julia 1.12 by updating the JET compatibility constraints to include JET v0.11, which is required for Julia 1.12+ support.

Problem

JET tests were failing on Julia 1.12 prerelease because the compat constraints only allowed JET v0.9.18 and v0.10.4. However:

  • JET v0.9.x only supports Julia 1.10 and 1.11
  • JET v0.10.x only supports Julia 1.12 (not 1.11!)
  • JET v0.11.x is the latest version and supports Julia 1.12+

The package resolver couldn't find a compatible JET version for all Julia versions.

Solution

Updated JET compat constraints in 33 subpackage Project.toml files from:

JET = "0.9.18, 0.10.4"

To:

JET = "0.9.18, 0.10.4, 0.11"

This allows Julia's package manager to automatically select:

  • JET v0.9.18+ on Julia 1.10/1.11
  • JET v0.10.4+ or v0.11+ on Julia 1.12+

Modified Packages (33 total)

All lib/* subpackages with JET test dependencies:

  • ImplicitDiscreteSolve
  • OrdinaryDiffEqAdamsBashforthMoulton
  • OrdinaryDiffEqBDF
  • OrdinaryDiffEqCore
  • OrdinaryDiffEqDefault
  • OrdinaryDiffEqDifferentiation
  • OrdinaryDiffEqExplicitRK
  • OrdinaryDiffEqExponentialRK
  • OrdinaryDiffEqExtrapolation
  • OrdinaryDiffEqFIRK
  • OrdinaryDiffEqFeagin
  • OrdinaryDiffEqFunctionMap
  • OrdinaryDiffEqHighOrderRK
  • OrdinaryDiffEqIMEXMultistep
  • OrdinaryDiffEqLinear
  • OrdinaryDiffEqLowOrderRK
  • OrdinaryDiffEqLowStorageRK
  • OrdinaryDiffEqNonlinearSolve
  • OrdinaryDiffEqNordsieck
  • OrdinaryDiffEqPDIRK
  • OrdinaryDiffEqPRK
  • OrdinaryDiffEqQPRK
  • OrdinaryDiffEqRKN
  • OrdinaryDiffEqRosenbrock
  • OrdinaryDiffEqSDIRK
  • OrdinaryDiffEqSSPRK
  • OrdinaryDiffEqStabilizedIRK
  • OrdinaryDiffEqStabilizedRK
  • OrdinaryDiffEqSymplecticRK
  • OrdinaryDiffEqTaylorSeries
  • OrdinaryDiffEqTsit5
  • OrdinaryDiffEqVerner
  • SimpleImplicitDiscreteSolve

Testing

After this change:

  • JET tests should run successfully on all Julia versions (lts, 1.11, 1, pre)
  • Julia's Pkg will automatically select the appropriate JET version for each Julia version

🤖 Generated with Claude Code

ChrisRackauckas and others added 2 commits November 14, 2025 07:33
Updated JET compatibility constraints in 33 subpackage Project.toml files
to include JET v0.11, which is required for Julia 1.12+ support.

## Background

JET.jl version compatibility:
- v0.9.x: Supports Julia 1.10 and 1.11
- v0.10.x: Supports Julia 1.12 only (not 1.11)
- v0.11.x: Latest version, supports Julia 1.12+

The previous compat constraint `JET = "0.9.18, 0.10.4"` allowed:
- JET v0.9.18+ for Julia 1.10/1.11
- JET v0.10.4+ for Julia 1.12

However, JET v0.10.x does not support Julia 1.11, and v0.11 is the latest
stable release. This update adds v0.11 to the compat constraint to ensure
proper JET support across all Julia versions.

## Changes

Updated compat from:
```toml
JET = "0.9.18, 0.10.4"
```

To:
```toml
JET = "0.9.18, 0.10.4, 0.11"
```

This allows Julia's package manager to select:
- JET v0.9.18+ on Julia 1.10/1.11
- JET v0.10.4+ or v0.11+ on Julia 1.12+

## Modified Packages (33 total)

All lib/* subpackages with JET test dependencies

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Fixed JET typo detection error where `u0` was used before being defined
in the initialization failure path.

## Problem

JET detected:
```
┌  @ SimpleImplicitDiscreteSolve .../SimpleImplicitDiscreteSolve.jl:39
│ local variable `u0` is not defined: u0
```

In the `solve` function, when initialization fails (`initfail == true`),
the code was trying to use `u0` on line 39, but `u0` is only defined
later on line 44 as `u0 = initsol.u`.

## Solution

Changed line 39 from:
```julia
sol = SciMLBase.build_solution(prob, alg, prob.tspan[1], u0, k = nothing,
```

To:
```julia
sol = SciMLBase.build_solution(prob, alg, prob.tspan[1], prob.u0, k = nothing,
```

This uses `prob.u0` directly, which is always available from the problem
definition, instead of the undefined local variable `u0`.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@ChrisRackauckas-Claude
Copy link
Author

Additional Fix

Added a commit to fix a JET typo detection error in SimpleImplicitDiscreteSolve:

Issue

JET detected an undefined variable u0 at line 39:

┌  @ SimpleImplicitDiscreteSolve .../SimpleImplicitDiscreteSolve.jl:39local variable `u0` is not defined: u0

Root Cause

In the initialization failure path, the code was using u0 before it was defined:

(initsol, initfail) = SciMLBase.__init(prob, alg; dt)
if initfail
    sol = SciMLBase.build_solution(prob, alg, prob.tspan[1], u0, k = nothing,  # ERROR: u0 not defined yet!
        stats = nothing, calculate_error = false)
    return SciMLBase.solution_new_retcode(sol, ReturnCode.InitialFailure)
end

u0 = initsol.u  # u0 defined here, but too late for the above code

Fix

Changed to use prob.u0 directly in the failure path:

sol = SciMLBase.build_solution(prob, alg, prob.tspan[1], prob.u0, k = nothing,

This PR now includes:

  1. ✅ Updated JET compat constraints to include v0.11 (33 packages)
  2. ✅ Fixed undefined variable bug in SimpleImplicitDiscreteSolve

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