From fe189efba65d8349b24c3c446fdf9a913a20842b Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Fri, 3 Jul 2026 15:41:45 -0400 Subject: [PATCH] Migrate AD backends to a group env (test/AD/Project.toml) The heavy optional AD backends (Mooncake, Zygote) were listed in the root Project.toml old-style [extras] + [targets].test. Because the root has [extras], the Downgrade CI lane resolves the root/test dependencies through the merged [extras] joint graph, which drags the Mooncake/Zygote backend trees into the root's minimum-version resolution. That joint graph is the fragile part of the downgrade lane (Resolver.jl min-resolving all optional backends together). Move the AD-only test dependencies into a group-specific test/AD/Project.toml so the AD tests run in their own sub-environment (SciMLTesting folder-discovery activates test/AD/Project.toml automatically for the AD group), while the root/Core downgrade no longer floor-resolves the AD backend graph. - test/AD/Project.toml: new group env with the exact deps test/AD/*.jl uses (Integrals, Mooncake, Zygote, FiniteDiff, ForwardDiff, Cuba, Cubature, FastGaussQuadrature, Test, SafeTestsets, SciMLTesting), [sources] Integrals = {path = "../.."}, and [compat] mirroring the root floors so downgrade coverage of the backends is preserved (now exercised in the AD env, not the root). - Root Project.toml: drop Mooncake, Zygote, FiniteDiff, ForwardDiff from [extras] and [targets].test. Mooncake/Zygote/ForwardDiff remain [weakdeps] (their [compat] entries stay). FiniteDiff was a pure test dep (never a weakdep), so its now-dangling [compat] entry is removed as well. The cross-backend AD tests (test/AD/derivative_tests.jl, test/AD/nested_ad_tests.jl) are unchanged; they still cross-compare ForwardDiff/FiniteDiff/Zygote/Mooncake in a single environment. Co-Authored-By: Chris Rackauckas --- Project.toml | 7 +------ test/AD/Project.toml | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 test/AD/Project.toml diff --git a/Project.toml b/Project.toml index 9e21dea6..3aa229be 100644 --- a/Project.toml +++ b/Project.toml @@ -55,7 +55,6 @@ DifferentiationInterface = "0.7.16" Distributions = "0.25.87" FastGaussQuadrature = "0.5,1" FastTanhSinhQuadrature = "2.1" -FiniteDiff = "2.27" ForwardDiff = "0.10.36, 1" HAdaptiveIntegration = "0.2, 1.0" HCubature = "1.7" @@ -85,16 +84,12 @@ DifferentiationInterface = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" FastGaussQuadrature = "442a2c76-b920-505d-bb47-c5924d526838" FastTanhSinhQuadrature = "b650e0df-f744-4436-b963-b44034668c57" -FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41" -ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" HAdaptiveIntegration = "eaa5ad34-b243-48e9-b09c-54bc0655cecf" MCIntegration = "ea1e2de9-7db7-4b42-91ee-0cd1bf6df167" -Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283" StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" -Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [targets] -test = ["ADTypes", "Arblib", "StaticArrays", "FiniteDiff", "SafeTestsets", "SciMLTesting", "Test", "Distributions", "ForwardDiff", "Zygote", "ChainRulesCore", "FastGaussQuadrature", "FastTanhSinhQuadrature", "Cuba", "Cubature", "MCIntegration", "Mooncake", "DifferentiationInterface", "HAdaptiveIntegration"] +test = ["ADTypes", "Arblib", "StaticArrays", "SafeTestsets", "SciMLTesting", "Test", "Distributions", "ChainRulesCore", "FastGaussQuadrature", "FastTanhSinhQuadrature", "Cuba", "Cubature", "MCIntegration", "DifferentiationInterface", "HAdaptiveIntegration"] diff --git a/test/AD/Project.toml b/test/AD/Project.toml new file mode 100644 index 00000000..39633897 --- /dev/null +++ b/test/AD/Project.toml @@ -0,0 +1,29 @@ +[deps] +Cuba = "8a292aeb-7a57-582c-b821-06e4c11590b1" +Cubature = "667455a9-e2ce-5579-9412-b964f529a492" +FastGaussQuadrature = "442a2c76-b920-505d-bb47-c5924d526838" +FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41" +ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" +Integrals = "de52edbc-65ea-441a-8357-d3a637375a31" +Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" +SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" +SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283" +Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" +Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[sources] +Integrals = {path = "../.."} + +[compat] +Cuba = "2.2" +Cubature = "1.5" +FastGaussQuadrature = "0.5,1" +FiniteDiff = "2.27" +ForwardDiff = "0.10.36, 1" +Integrals = "5" +Mooncake = "0.5.6" +SafeTestsets = "0.1, 1" +SciMLTesting = "1.7" +Test = "1.10" +Zygote = "0.7.10" +julia = "1.10"