Move Enzyme AD tests to their own group and environment, excluded from prereleases - #1261
Merged
ChrisRackauckas merged 1 commit intoJul 12, 2026
Conversation
ChrisRackauckas-Claude
force-pushed
the
skip-ad-tests-on-prerelease
branch
from
July 12, 2026 08:49
e7c1c21 to
023b95d
Compare
Enzyme v0.13.182 fails to differentiate through the BLAS `dot` lowering
introduced in Julia 1.13 ("No augmented forward pass found for
ijl_lazy_load_and_lookup"), breaking the Core CI job on the `pre` channel.
The upstream fix (Enzyme 23ff630) is not yet in a registered release.
Split the Enzyme-dependent AD tests into their own `AD` test group, folder,
and environment:
- test/ADtests.jl and test/AD_performance_regression.jl move to test/AD/.
- The AD group gets its own env (test/AD/Project.toml), so its Enzyme-family
dependencies (Enzyme, Tracker, Mooncake, BenchmarkTools, Ipopt,
OptimizationMOI, OptimizationLBFGSB) live only there and are removed from the
main test target, simplifying the main [extras]/[targets]/[compat].
- test_groups.toml declares the AD group with versions = ["lts", "1"] so CI
runs it on stable releases but excludes it from the `pre` channel until a
fixed Enzyme is registered.
Verified locally: `GROUP=AD` resolves/instantiates the new env and passes
(AD Tests 123/123, AD Performance Regression 3/3) on Julia 1.12.4; the main
test env also builds without the moved dependencies.
See SciML#1260.
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
ChrisRackauckas-Claude
force-pushed
the
skip-ad-tests-on-prerelease
branch
from
July 12, 2026 09:24
023b95d to
17f17d9
Compare
ChrisRackauckas
marked this pull request as ready for review
July 12, 2026 10:16
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #1260.
Problem
The Julia
pre(prerelease) Core CI job fails because Enzyme v0.13.182 cannot differentiate through Julia 1.13's new BLASdotlowering:Observed with Enzyme v0.13.182: Julia 1.12.6 passes; 1.13.0-beta3 / 1.13.0-rc1 fail. The upstream fix (Enzyme
23ff630) is not yet in a registered release (Enzymemainalready passes on 1.13.0-rc1).Change
The Enzyme-dependent AD tests are split into their own group, folder, and environment:
test/ADtests.jlandtest/AD_performance_regression.jl→ moved totest/AD/.test/AD/Project.toml(same pattern astest/qaandtest/downstream): the AD-only dependencies —Enzyme,Tracker,Mooncake,BenchmarkTools,Ipopt,OptimizationMOI,OptimizationLBFGSB— now live only there and are removed from the main test target, simplifying the root[extras]/[targets]/[compat](and the now-dead[sources]for the two moved sublibs). Shared backends (ForwardDiff/Zygote/ReverseDiff/FiniteDiff) remain in the main target since Core tests use them.test/runtests.jl: theADgroup entry now carriesenv = joinpath(@__DIR__, "AD").test/test_groups.toml: declares theADgroup withversions = ["lts", "1"], so the CI matrix (grouped-tests.yml) runs it on stable releases but not on theprechannel.Re-enabling on
prelater is a one-line change (add"pre"back to the AD group'sversions).Verification
GROUP=ADpath end-to-end (Pkg.test()→run_testsactivatestest/AD, develops Optimization, instantiates, runs the tests) on Julia 1.12.4: AD Tests 123/123, AD Performance Regression 3/3,Testing Optimization tests passed. This also exercised the new env's resolution/instantiation.test/runtests.jl.🤖 Generated with Claude Code