Skip to content

Conversation

@ChrisRackauckas-Claude
Copy link

Summary

  • Added explicit Julia 1.11 version to the CI test matrix to ensure continued testing of 1.11 even as newer versions become the latest stable
  • Excluded the Enzyme test group from running on Julia 1.12 prerelease versions using matrix exclusion to optimize CI resources

Changes

This PR modifies .github/workflows/CI.yml to:

  1. Add '1.11' to the version matrix (line 68)
  2. Add a matrix exclusion that prevents Enzyme tests from running on 'pre' (Julia 1.12 prerelease) versions (lines 71-73)

Rationale

The Enzyme tests are already conditionally skipped on prerelease versions in test/runtests.jl:179, so excluding them at the matrix level prevents unnecessary CI jobs from being created and saves CI resources.

Test plan

  • Verify CI runs successfully on Julia 1.11
  • Verify Enzyme tests are excluded from Julia 1.12 prerelease builds
  • Verify all other test groups continue to run as expected

🤖 Generated with Claude Code

ChrisRackauckas and others added 2 commits November 14, 2025 01:10
…lease

This commit makes two improvements to the CI configuration:

1. Adds explicit Julia 1.11 version to the test matrix to ensure 1.11
   continues to be tested even as newer versions become the latest stable.

2. Excludes the Enzyme test group from running on Julia 1.12 prerelease
   versions using matrix exclusion. This prevents unnecessary CI jobs from
   being created, as Enzyme tests are already conditionally skipped on
   prerelease versions in test/runtests.jl:179.

These changes optimize CI resources while ensuring proper test coverage
across Julia versions.

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

Co-Authored-By: Claude <noreply@anthropic.com>
Added defensive guards at the top of Enzyme test files to explicitly skip
tests on Julia 1.12+ prerelease versions. This prevents accidental Enzyme
loading if these test files are run directly outside of the normal test
harness.

While the CI workflow and test/runtests.jl already prevent Enzyme tests
from running on v1.12, these file-level guards provide an additional
safety layer and make the version requirement explicit in each test file.

Affected files:
- test/enzyme/autodiff_events.jl
- test/enzyme/discrete_adjoints.jl

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

Co-Authored-By: Claude <noreply@anthropic.com>
@ChrisRackauckas-Claude
Copy link
Author

Additional Changes

Added defensive version guards to Enzyme test files to prevent accidental Enzyme loading on Julia 1.12+:

  • test/enzyme/autodiff_events.jl
  • test/enzyme/discrete_adjoints.jl

These guards provide an additional safety layer beyond the existing controls in:

  1. CI workflow matrix exclusion (.github/workflows/CI.yml)
  2. Test runner conditional (test/runtests.jl:179)

Summary of all Enzyme-related version guards in the codebase:

Already properly guarded:

  • test/downstream/sparsediff_tests.jl:11-13 - if isempty(VERSION.prerelease) around using Enzyme
  • test/downstream/time_derivative_test.jl:3-5 - if isempty(VERSION.prerelease) around using Enzyme
  • lib/OrdinaryDiffEqRosenbrock/test/ode_rosenbrock_tests.jl:7-9 - if isempty(VERSION.prerelease) around using Enzyme
  • lib/OrdinaryDiffEqBDF/test/bdf_convergence_tests.jl:11-13 - if isempty(VERSION.prerelease) around using Enzyme

Newly guarded:

  • test/enzyme/autodiff_events.jl - Added exit guard for prerelease versions
  • test/enzyme/discrete_adjoints.jl - Added exit guard for prerelease versions

All test files that use or could load Enzyme now have proper version guards to prevent loading on Julia 1.12+ prerelease versions.

@ChrisRackauckas ChrisRackauckas merged commit 53ad18b into SciML:master Nov 14, 2025
170 of 243 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