Skip to content

Move Enzyme AD tests to their own group and environment, excluded from prereleases - #1261

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:skip-ad-tests-on-prerelease
Jul 12, 2026
Merged

Move Enzyme AD tests to their own group and environment, excluded from prereleases#1261
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:skip-ad-tests-on-prerelease

Conversation

@ChrisRackauckas-Claude

@ChrisRackauckas-Claude ChrisRackauckas-Claude commented Jul 12, 2026

Copy link
Copy Markdown
Member

Please ignore until reviewed by @ChrisRackauckas.

Fixes #1260.

Problem

The Julia pre (prerelease) Core CI job fails because Enzyme v0.13.182 cannot differentiate through Julia 1.13's new BLAS dot lowering:

No augmented forward pass found for ijl_lazy_load_and_lookup

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 (Enzyme main already passes on 1.13.0-rc1).

Change

The Enzyme-dependent AD tests are split into their own group, folder, and environment:

  • test/ADtests.jl and test/AD_performance_regression.jl → moved to test/AD/.
  • Dedicated env test/AD/Project.toml (same pattern as test/qa and test/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: the AD group entry now carries env = joinpath(@__DIR__, "AD").
  • test/test_groups.toml: declares the AD group with versions = ["lts", "1"], so the CI matrix (grouped-tests.yml) runs it on stable releases but not on the pre channel.

Re-enabling on pre later is a one-line change (add "pre" back to the AD group's versions).

Verification

  • Ran the real GROUP=AD path end-to-end (Pkg.test()run_tests activates test/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.
  • The main test target env builds and precompiles without the moved dependencies (the run reached the AD-group activation, i.e. the main env instantiated first).
  • Runic reports no formatting changes on test/runtests.jl.

🤖 Generated with Claude Code

@ChrisRackauckas-Claude
ChrisRackauckas-Claude force-pushed the skip-ad-tests-on-prerelease branch from e7c1c21 to 023b95d Compare July 12, 2026 08:49
@ChrisRackauckas-Claude ChrisRackauckas-Claude changed the title Skip Enzyme AD tests on Julia prereleases Move Enzyme AD tests to their own group, excluded from prereleases Jul 12, 2026
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
ChrisRackauckas-Claude force-pushed the skip-ad-tests-on-prerelease branch from 023b95d to 17f17d9 Compare July 12, 2026 09:24
@ChrisRackauckas-Claude ChrisRackauckas-Claude changed the title Move Enzyme AD tests to their own group, excluded from prereleases Move Enzyme AD tests to their own group and environment, excluded from prereleases Jul 12, 2026
@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review July 12, 2026 10:16
@ChrisRackauckas
ChrisRackauckas merged commit 01a6ebf into SciML:master Jul 12, 2026
47 of 48 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.

Julia 1.13 Core CI fails with Enzyme 0.13.182 pending upstream release

2 participants