From a5aaa98f0a805e7efb1b45224f541b3d3d0e38d3 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 12:42:08 -0400 Subject: [PATCH 01/30] fix: explicit imports in NonlinearSolveBase --- lib/NonlinearSolveBase/Project.toml | 2 +- .../ext/NonlinearSolveBaseDiffEqBaseExt.jl | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/NonlinearSolveBase/Project.toml b/lib/NonlinearSolveBase/Project.toml index b75d60463..a7550cfaa 100644 --- a/lib/NonlinearSolveBase/Project.toml +++ b/lib/NonlinearSolveBase/Project.toml @@ -1,7 +1,7 @@ name = "NonlinearSolveBase" uuid = "be0214bd-f91f-a760-ac4e-3421ce2b2da0" authors = ["Avik Pal and contributors"] -version = "1.14.0" +version = "1.14.1" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" diff --git a/lib/NonlinearSolveBase/ext/NonlinearSolveBaseDiffEqBaseExt.jl b/lib/NonlinearSolveBase/ext/NonlinearSolveBaseDiffEqBaseExt.jl index 346a5ee55..a1d6c44ce 100644 --- a/lib/NonlinearSolveBase/ext/NonlinearSolveBaseDiffEqBaseExt.jl +++ b/lib/NonlinearSolveBase/ext/NonlinearSolveBaseDiffEqBaseExt.jl @@ -1,15 +1,15 @@ module NonlinearSolveBaseDiffEqBaseExt using DiffEqBase: DiffEqBase -using SciMLBase: remake +using SciMLBase: SciMLBase, remake using NonlinearSolveBase: NonlinearSolveBase, ImmutableNonlinearProblem function DiffEqBase.get_concrete_problem( prob::ImmutableNonlinearProblem, isadapt; kwargs...) - u0 = DiffEqBase.get_concrete_u0(prob, isadapt, nothing, kwargs) - u0 = DiffEqBase.promote_u0(u0, prob.p, nothing) - p = DiffEqBase.get_concrete_p(prob, kwargs) + u0 = SciMLBase.get_concrete_u0(prob, isadapt, nothing, kwargs) + u0 = SciMLBase.promote_u0(u0, prob.p, nothing) + p = SciMLBase.get_concrete_p(prob, kwargs) return remake(prob; u0 = u0, p = p) end From c8c4eee92d1d0f4d760b2cf6b44a7a504fd3b327 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 12:43:45 -0400 Subject: [PATCH 02/30] fix: link to SpeedMapping --- src/extension_algs.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extension_algs.jl b/src/extension_algs.jl index 1fad79839..d8008373b 100644 --- a/src/extension_algs.jl +++ b/src/extension_algs.jl @@ -276,7 +276,7 @@ NLSolversJL(; method, autodiff = nothing) = NLSolversJL(method, autodiff) orders::Vector{Int} = [3, 3, 2] ) -Wrapper over [SpeedMapping.jl](https://nicolasl-s.github.io/SpeedMapping.jl/) for solving +Wrapper over [SpeedMapping.jl](https://github.com/NicolasL-S/SpeedMapping.jl) for solving Fixed Point Problems. We allow using this algorithm to solve root finding problems as well. ### Keyword Arguments From 759a5afc3197ec25d1de0c2a00fcfd7cbeb2ae25 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 12:45:41 -0400 Subject: [PATCH 03/30] ci: fix inputs --- .github/workflows/CI_NonlinearSolveBase.yml | 4 ++-- .github/workflows/Downgrade.yml | 2 +- .github/workflows/DowngradeSublibraries.yml | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/CI_NonlinearSolveBase.yml b/.github/workflows/CI_NonlinearSolveBase.yml index d2450699f..9ef5071ed 100644 --- a/.github/workflows/CI_NonlinearSolveBase.yml +++ b/.github/workflows/CI_NonlinearSolveBase.yml @@ -61,7 +61,7 @@ jobs: directories: lib/NonlinearSolveBase/src,lib/NonlinearSolveBase/ext,lib/SciMLJacobianOperators/src - uses: codecov/codecov-action@v5 with: - file: lcov.info + files: lcov.info token: ${{ secrets.CODECOV_TOKEN }} verbose: true fail_ci_if_error: false @@ -99,7 +99,7 @@ jobs: directories: lib/NonlinearSolveBase/src,lib/NonlinearSolveBase/ext,lib/SciMLJacobianOperators/src - uses: codecov/codecov-action@v5 with: - file: lcov.info + files: lcov.info token: ${{ secrets.CODECOV_TOKEN }} verbose: true fail_ci_if_error: false diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index 7c922bd65..bb8d8acca 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -29,6 +29,6 @@ jobs: - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 with: - ALLOW_RERESOLVE: false + allow_reresolve: false env: GROUP: ${{ matrix.group }} diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index 4eed2db78..7542baa7d 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -36,7 +36,7 @@ jobs: version: ${{ matrix.julia-version }} - uses: julia-actions/julia-downgrade-compat@v2 with: - project: ${{ matrix.project }} + projects: ${{ matrix.project }} skip: Pkg,TOML - uses: julia-actions/julia-buildpkg@v1 with: @@ -44,4 +44,4 @@ jobs: - uses: julia-actions/julia-runtest@v1 with: project: ${{ matrix.project }} - ALLOW_RERESOLVE: false \ No newline at end of file + allow_reresolve: false \ No newline at end of file From 8e2f2a968d4641bef1a0159024ebac34cc915792 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 12:56:28 -0400 Subject: [PATCH 04/30] ci: formatter pin to v1 --- .github/workflows/FormatCheck.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/FormatCheck.yml b/.github/workflows/FormatCheck.yml index 72dc42de6..ad0566048 100644 --- a/.github/workflows/FormatCheck.yml +++ b/.github/workflows/FormatCheck.yml @@ -7,3 +7,5 @@ jobs: runs-on: ubuntu-latest steps: - uses: julia-actions/julia-format@v4 + with: + version: '1' \ No newline at end of file From df52fbafe99a37b3cf30209f2d9c8a16e5fe463f Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 13:06:29 -0400 Subject: [PATCH 05/30] fix: properly specify version --- .github/workflows/Downgrade.yml | 2 ++ .github/workflows/DowngradeSublibraries.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index bb8d8acca..f1cb92da1 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -25,6 +25,8 @@ jobs: version: ${{ matrix.julia-version }} - uses: julia-actions/julia-downgrade-compat@v2 with: + mode: ${{ matrix.downgrade_mode }} + julia_version: ${{ matrix.julia-version }} skip: Pkg,TOML - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml index 7542baa7d..b58d79335 100644 --- a/.github/workflows/DowngradeSublibraries.yml +++ b/.github/workflows/DowngradeSublibraries.yml @@ -37,6 +37,8 @@ jobs: - uses: julia-actions/julia-downgrade-compat@v2 with: projects: ${{ matrix.project }} + mode: ${{ matrix.downgrade_mode }} + julia_version: ${{ matrix.julia-version }} skip: Pkg,TOML - uses: julia-actions/julia-buildpkg@v1 with: From 9bfa56822dbb3e51f6c28b193e2fa0870fd84aad Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 13:09:30 -0400 Subject: [PATCH 06/30] ci: remove duplicate workflows --- .github/workflows/CI_NonlinearSolveBase.yml | 38 --------------------- 1 file changed, 38 deletions(-) diff --git a/.github/workflows/CI_NonlinearSolveBase.yml b/.github/workflows/CI_NonlinearSolveBase.yml index 9ef5071ed..3ee6ef84d 100644 --- a/.github/workflows/CI_NonlinearSolveBase.yml +++ b/.github/workflows/CI_NonlinearSolveBase.yml @@ -65,41 +65,3 @@ jobs: token: ${{ secrets.CODECOV_TOKEN }} verbose: true fail_ci_if_error: false - - downgrade: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - version: - - "1.10" - steps: - - uses: actions/checkout@v4 - - uses: julia-actions/setup-julia@v2 - with: - version: ${{ matrix.version }} - - uses: julia-actions/julia-downgrade-compat@v2 - with: - skip: SciMLJacobianOperators - - name: "Install Dependencies and Run Tests" - run: | - import Pkg - Pkg.Registry.update() - # Install packages present in subdirectories - dev_pks = Pkg.PackageSpec[] - for path in ("lib/SciMLJacobianOperators",) - push!(dev_pks, Pkg.PackageSpec(; path)) - end - Pkg.develop(dev_pks) - Pkg.instantiate() - Pkg.test(; coverage="user") - shell: julia --color=yes --code-coverage=user --depwarn=yes --project=lib/NonlinearSolveBase {0} - - uses: julia-actions/julia-processcoverage@v1 - with: - directories: lib/NonlinearSolveBase/src,lib/NonlinearSolveBase/ext,lib/SciMLJacobianOperators/src - - uses: codecov/codecov-action@v5 - with: - files: lcov.info - token: ${{ secrets.CODECOV_TOKEN }} - verbose: true - fail_ci_if_error: false From c23a805a33134072235e3492f2e519e7c499a362 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 14:00:25 -0400 Subject: [PATCH 07/30] fix: documentation --- .github/workflows/CI_NonlinearSolve.yml | 2 +- .github/workflows/Documentation.yml | 32 ++++-------- .gitignore | 1 + docs/Project.toml | 17 ++++++- docs/src/tutorials/large_systems.md | 50 +++++++++---------- .../src/SciMLJacobianOperators.jl | 2 +- 6 files changed, 53 insertions(+), 51 deletions(-) diff --git a/.github/workflows/CI_NonlinearSolve.yml b/.github/workflows/CI_NonlinearSolve.yml index e01ea6e75..fbb13f825 100644 --- a/.github/workflows/CI_NonlinearSolve.yml +++ b/.github/workflows/CI_NonlinearSolve.yml @@ -85,7 +85,7 @@ jobs: directories: src,ext,lib/SciMLJacobianOperators/src,lib/BracketingNonlinearSolve/src,lib/NonlinearSolveBase/src,lib/NonlinearSolveBase/ext,lib/SimpleNonlinearSolve/src,lib/NonlinearSolveFirstOrder/src,lib/NonlinearSolveSpectralMethods/src,lib/NonlinearSolveQuasiNewton/src - uses: codecov/codecov-action@v5 with: - file: lcov.info + files: lcov.info token: ${{ secrets.CODECOV_TOKEN }} verbose: true fail_ci_if_error: false diff --git a/.github/workflows/Documentation.yml b/.github/workflows/Documentation.yml index 63942ca52..375ebed53 100644 --- a/.github/workflows/Documentation.yml +++ b/.github/workflows/Documentation.yml @@ -4,8 +4,8 @@ on: push: branches: - master - - 'release-' - tags: '*' + - "release-" + tags: ["*"] pull_request: jobs: @@ -13,30 +13,18 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: julia-actions/setup-julia@latest + - uses: julia-actions/setup-julia@v2 with: - version: '1.10' - - name: Install dependencies - run: | - import Pkg - Pkg.Registry.update() - # Install packages present in subdirectories - dev_pks = Pkg.PackageSpec[] - for path in ("lib/SciMLJacobianOperators", ".", "lib/SimpleNonlinearSolve", "lib/NonlinearSolveBase", "lib/BracketingNonlinearSolve", "lib/NonlinearSolveFirstOrder", "lib/NonlinearSolveQuasiNewton", "lib/NonlinearSolveSpectralMethods", "lib/NonlinearSolveHomotopyContinuation") - push!(dev_pks, Pkg.PackageSpec(; path)) - end - Pkg.develop(dev_pks) - Pkg.instantiate() - shell: julia --color=yes --project=docs/ {0} - - name: Build and deploy + version: "1" + - uses: julia-actions/cache@v2 + - uses: julia-actions/julia-buildpkg@v1 + - uses: julia-actions/julia-docdeploy@v1 env: - JULIA_DEBUG: "Documenter" - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # For authentication with GitHub Actions token - DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} # For authentication with SSH deploy key - run: julia --project=docs/ --code-coverage=user --color=yes docs/make.jl + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} - uses: julia-actions/julia-processcoverage@v1 - uses: codecov/codecov-action@v5 with: - file: lcov.info + files: lcov.info token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: false diff --git a/.gitignore b/.gitignore index 2f8d95920..1017769cf 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,4 @@ docs/src/assets/Project.toml .vscode wip +.CondaPkg diff --git a/docs/Project.toml b/docs/Project.toml index 8c2f09069..381bafc2c 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -11,8 +11,8 @@ DocumenterCitations = "daee34ce-89f3-4625-b898-19384cb65244" DocumenterInterLinks = "d12716ef-a0f6-4df4-a9f1-a5a34e75c656" IncompleteLU = "40713840-3770-5561-ab4c-a76e7d0d7895" InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240" -LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" LineSearch = "87fe0de2-c867-4266-b59a-2f0a94fc965b" +LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" NonlinearSolveBase = "be0214bd-f91f-a760-ac4e-3421ce2b2da0" NonlinearSolveFirstOrder = "5959db7a-ea39-4486-b5fe-2dd0bf03d60d" @@ -28,10 +28,23 @@ SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" SciMLJacobianOperators = "19f34311-ddf3-4b8b-af20-060888a46c0e" SimpleNonlinearSolve = "727e6d20-b764-4bd8-a329-72de5adea6c7" SparseConnectivityTracer = "9f842d2f-2579-4b1d-911e-f412cf18a3f5" +SparseMatrixColorings = "0a514795-09f3-496d-8182-132a7b665d35" StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" SteadyStateDiffEq = "9672c7b4-1e72-59bd-8a11-6ac3964bc41f" Sundials = "c3572dad-4567-51f8-b174-8c6c989267f4" +[sources] +BracketingNonlinearSolve = {path = "../lib/BracketingNonlinearSolve"} +NonlinearSolve = {path = ".."} +NonlinearSolveBase = {path = "../lib/NonlinearSolveBase"} +NonlinearSolveFirstOrder = {path = "../lib/NonlinearSolveFirstOrder"} +NonlinearSolveHomotopyContinuation = {path = "../lib/NonlinearSolveHomotopyContinuation"} +NonlinearSolveQuasiNewton = {path = "../lib/NonlinearSolveQuasiNewton"} +NonlinearSolveSciPy = {path = "../lib/NonlinearSolveSciPy"} +NonlinearSolveSpectralMethods = {path = "../lib/NonlinearSolveSpectralMethods"} +SciMLJacobianOperators = {path = "../lib/SciMLJacobianOperators"} +SimpleNonlinearSolve = {path = "../lib/SimpleNonlinearSolve"} + [compat] ADTypes = "1.9.0" AlgebraicMultigrid = "0.5, 0.6, 1" @@ -45,8 +58,8 @@ DocumenterCitations = "1" DocumenterInterLinks = "1.0.0" IncompleteLU = "0.2" InteractiveUtils = "<0.0.1, 1" -LinearSolve = "2, 3" LineSearch = "0.1" +LinearSolve = "2, 3" NonlinearSolve = "4" NonlinearSolveBase = "1" NonlinearSolveFirstOrder = "1" diff --git a/docs/src/tutorials/large_systems.md b/docs/src/tutorials/large_systems.md index af9f3e2b6..9b6507f17 100644 --- a/docs/src/tutorials/large_systems.md +++ b/docs/src/tutorials/large_systems.md @@ -2,15 +2,15 @@ This tutorial is for getting into the extra features of using NonlinearSolve.jl. Solving ill-conditioned nonlinear systems requires specializing the linear solver on properties of -the Jacobian in order to cut down on the ``\mathcal{O}(n^3)`` linear solve and the -``\mathcal{O}(n^2)`` back-solves. This tutorial is designed to explain the advanced usage of +the Jacobian in order to cut down on the `\mathcal{O}(n^3)` linear solve and the +`\mathcal{O}(n^2)` back-solves. This tutorial is designed to explain the advanced usage of NonlinearSolve.jl by solving the steady state stiff Brusselator partial differential equation (BRUSS) using NonlinearSolve.jl. ## Definition of the Brusselator Equation !!! note - + Feel free to skip this section: it simply defines the example problem. The Brusselator PDE is defined as follows: @@ -123,11 +123,11 @@ However, if you know the sparsity of your problem, then you can pass a different type. For example, a `SparseMatrixCSC` will give a sparse matrix. Other sparse matrix types include: - - Bidiagonal - - Tridiagonal - - SymTridiagonal - - BandedMatrix ([BandedMatrices.jl](https://github.com/JuliaLinearAlgebra/BandedMatrices.jl)) - - BlockBandedMatrix ([BlockBandedMatrices.jl](https://github.com/JuliaLinearAlgebra/BlockBandedMatrices.jl)) +- Bidiagonal +- Tridiagonal +- SymTridiagonal +- BandedMatrix ([BandedMatrices.jl](https://github.com/JuliaLinearAlgebra/BandedMatrices.jl)) +- BlockBandedMatrix ([BlockBandedMatrices.jl](https://github.com/JuliaLinearAlgebra/BlockBandedMatrices.jl)) ## Approximate Sparsity Detection & Sparse Jacobians @@ -135,26 +135,26 @@ In the next section, we will show how to specify `sparsity` to trigger automatic detection. ```@example ill_conditioned_nlprob -import BenchmarkTools # for @btime +import BenchmarkTools: @btime # for @btime -BenchmarkTools.BenchmarkTools.@btime NLS.solve(prob_brusselator_2d, NLS.NewtonRaphson()); +@btime NLS.solve(prob_brusselator_2d, NLS.NewtonRaphson()); nothing # hide ``` ```@example ill_conditioned_nlprob -import SparseConnectivityTracer +import SparseConnectivityTracer, SparseMatrixColorings prob_brusselator_2d_autosparse = NLS.NonlinearProblem( NLS.NonlinearFunction(brusselator_2d_loop; sparsity = SparseConnectivityTracer.TracerSparsityDetector()), u0, p; abstol = 1e-10, reltol = 1e-10 ) -BenchmarkTools.@btime NLS.solve(prob_brusselator_2d_autosparse, +@btime NLS.solve(prob_brusselator_2d_autosparse, NLS.NewtonRaphson(; autodiff = ADTypes.AutoForwardDiff(; chunksize = 12))); -BenchmarkTools.@btime NLS.solve(prob_brusselator_2d_autosparse, +@btime NLS.solve(prob_brusselator_2d_autosparse, NLS.NewtonRaphson(; autodiff = ADTypes.AutoForwardDiff(; chunksize = 12), linsolve = LS.KLUFactorization())); -BenchmarkTools.@btime NLS.solve(prob_brusselator_2d_autosparse, +@btime NLS.solve(prob_brusselator_2d_autosparse, NLS.NewtonRaphson(; autodiff = ADTypes.AutoForwardDiff(; chunksize = 12), linsolve = LS.KrylovJL_GMRES())); nothing # hide @@ -176,7 +176,7 @@ arguments, and it will kick out a sparse matrix with our pattern, that we can tu `jac_prototype`. !!! tip - + External packages like `SparseConnectivityTracer.jl` and `Symbolics.jl` provide the actual implementation of sparsity detection. @@ -205,9 +205,9 @@ prob_brusselator_2d_sparse = NLS.NonlinearProblem(ff, u0, p; abstol = 1e-10, rel Now let's see how the version with sparsity compares to the version without: ```@example ill_conditioned_nlprob -BenchmarkTools.@btime NLS.solve(prob_brusselator_2d, NLS.NewtonRaphson()); -BenchmarkTools.@btime NLS.solve(prob_brusselator_2d_sparse, NLS.NewtonRaphson()); -BenchmarkTools.@btime NLS.solve(prob_brusselator_2d_sparse, NLS.NewtonRaphson(linsolve = LS.KLUFactorization())); +@btime NLS.solve(prob_brusselator_2d, NLS.NewtonRaphson()); +@btime NLS.solve(prob_brusselator_2d_sparse, NLS.NewtonRaphson()); +@btime NLS.solve(prob_brusselator_2d_sparse, NLS.NewtonRaphson(linsolve = LS.KLUFactorization())); nothing # hide ``` @@ -223,7 +223,7 @@ Krylov method. To swap the linear solver out, we use the `linsolve` command and GMRES linear solver. ```@example ill_conditioned_nlprob -BenchmarkTools.@btime NLS.solve(prob_brusselator_2d, NLS.NewtonRaphson(linsolve = LS.KrylovJL_GMRES())); +@btime NLS.solve(prob_brusselator_2d, NLS.NewtonRaphson(linsolve = LS.KrylovJL_GMRES())); nothing # hide ``` @@ -234,7 +234,7 @@ choices, see the `linsolve` choices are any valid [LinearSolve.jl](https://linearsolve.sciml.ai/dev/) solver. !!! note - + Switching to a Krylov linear solver will automatically change the nonlinear problem solver into Jacobian-free mode, dramatically reducing the memory required. This can be overridden by adding `concrete_jac=true` to the algorithm. @@ -254,7 +254,7 @@ import IncompleteLU incompletelu(W, p = nothing) = IncompleteLU.ilu(W, τ = 50.0), LinearAlgebra.I -BenchmarkTools.@btime NLS.solve(prob_brusselator_2d_sparse, +@btime NLS.solve(prob_brusselator_2d_sparse, NLS.NewtonRaphson(linsolve = LS.KrylovJL_GMRES(precs = incompletelu), concrete_jac = true) ); nothing # hide @@ -284,7 +284,7 @@ function algebraicmultigrid(W, p = nothing) LinearAlgebra.I end -BenchmarkTools.@btime NLS.solve(prob_brusselator_2d_sparse, +@btime NLS.solve(prob_brusselator_2d_sparse, NLS.NewtonRaphson( linsolve = LS.KrylovJL_GMRES(; precs = algebraicmultigrid), concrete_jac = true ) @@ -304,7 +304,7 @@ function algebraicmultigrid2(W, p = nothing) return Pl, LinearAlgebra.I end -BenchmarkTools.@btime NLS.solve( +@btime NLS.solve( prob_brusselator_2d_sparse, NLS.NewtonRaphson( linsolve = LS.KrylovJL_GMRES(precs = algebraicmultigrid2), concrete_jac = true @@ -331,8 +331,8 @@ prob_brusselator_2d_approx_di = NLS.NonlinearProblem( sparsity = DifferentiationInterface.DenseSparsityDetector(ADTypes.AutoForwardDiff(); atol = 1e-4)), u0, p; abstol = 1e-10, reltol = 1e-10) -BenchmarkTools.@btime NLS.solve(prob_brusselator_2d_exact_tracer, NLS.NewtonRaphson()); -BenchmarkTools.@btime NLS.solve(prob_brusselator_2d_approx_di, NLS.NewtonRaphson()); +@btime NLS.solve(prob_brusselator_2d_exact_tracer, NLS.NewtonRaphson()); +@btime NLS.solve(prob_brusselator_2d_approx_di, NLS.NewtonRaphson()); nothing # hide ``` diff --git a/lib/SciMLJacobianOperators/src/SciMLJacobianOperators.jl b/lib/SciMLJacobianOperators/src/SciMLJacobianOperators.jl index 93a4b4b63..75272a99e 100644 --- a/lib/SciMLJacobianOperators/src/SciMLJacobianOperators.jl +++ b/lib/SciMLJacobianOperators/src/SciMLJacobianOperators.jl @@ -419,7 +419,7 @@ function Base.copy(J::StatefulJacobianOperator) return StatefulJacobianOperator( copy(J.jac_op), J.u === nothing ? nothing : copy(J.u), - J.p === nothing ? nothing : copy(J.p) + applicable(copy, J.p) ? copy(J.p) : J.p ) end From 1906e027b69d76c59c60848e94657fe31bab7120 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 14:33:00 -0400 Subject: [PATCH 08/30] ci: reuse workflows from Lux --- .../workflows/CI_BracketingNonlinearSolve.yml | 52 ++++---------- .github/workflows/CI_NonlinearSolve.yml | 67 +++++++------------ .github/workflows/CI_NonlinearSolveBase.yml | 52 ++++---------- .../workflows/CI_NonlinearSolveFirstOrder.yml | 52 ++++---------- .../CI_NonlinearSolveHomotopyContinuation.yml | 52 ++++---------- .../CI_NonlinearSolveQuasiNewton.yml | 52 ++++---------- .github/workflows/CI_NonlinearSolveSciPy.yml | 52 ++++---------- .../CI_NonlinearSolveSpectralMethods.yml | 52 ++++---------- .github/workflows/CI_SCCNonlinearSolve.yml | 52 ++++---------- .../workflows/CI_SciMLJacobianOperators.yml | 44 ++++-------- .github/workflows/CI_SimpleNonlinearSolve.yml | 66 +++++++----------- .github/workflows/Downgrade.yml | 36 ---------- .github/workflows/DowngradeSublibraries.yml | 49 -------------- lib/SimpleNonlinearSolve/test/runtests.jl | 22 +++++- test/runtests.jl | 22 +++++- 15 files changed, 216 insertions(+), 506 deletions(-) delete mode 100644 .github/workflows/Downgrade.yml delete mode 100644 .github/workflows/DowngradeSublibraries.yml diff --git a/.github/workflows/CI_BracketingNonlinearSolve.yml b/.github/workflows/CI_BracketingNonlinearSolve.yml index 693be0c0d..53d928908 100644 --- a/.github/workflows/CI_BracketingNonlinearSolve.yml +++ b/.github/workflows/CI_BracketingNonlinearSolve.yml @@ -19,7 +19,6 @@ concurrency: jobs: test: - runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: @@ -29,40 +28,17 @@ jobs: os: - ubuntu-latest - macos-latest - steps: - - uses: actions/checkout@v4 - - uses: julia-actions/setup-julia@v2 - with: - version: ${{ matrix.version }} - - uses: actions/cache@v4 - env: - cache-name: cache-artifacts - with: - path: ~/.julia/artifacts - key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} - restore-keys: | - ${{ runner.os }}-test-${{ env.cache-name }}- - ${{ runner.os }}-test- - ${{ runner.os }}- - - name: "Install Dependencies and Run Tests" - run: | - import Pkg - Pkg.Registry.update() - # Install packages present in subdirectories - dev_pks = Pkg.PackageSpec[] - for path in ("lib/NonlinearSolveBase", "lib/SciMLJacobianOperators") - push!(dev_pks, Pkg.PackageSpec(; path)) - end - Pkg.develop(dev_pks) - Pkg.instantiate() - Pkg.test(; coverage="user") - shell: julia --color=yes --code-coverage=user --depwarn=yes --project=lib/BracketingNonlinearSolve {0} - - uses: julia-actions/julia-processcoverage@v1 - with: - directories: lib/BracketingNonlinearSolve/src,lib/BracketingNonlinearSolve/ext,lib/NonlinearSolveBase/src,lib/NonlinearSolveBase/ext,lib/SciMLJacobianOperators/src - - uses: codecov/codecov-action@v5 - with: - file: lcov.info - token: ${{ secrets.CODECOV_TOKEN }} - verbose: true - fail_ci_if_error: false + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + julia_version: ${{ matrix.version }} + os: ${{ matrix.os }} + project: "lib/BracketingNonlinearSolve" + local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" + + downgrade: + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + julia_version: "1.11" + project: "lib/BracketingNonlinearSolve" + downgrade_testing: true + local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" diff --git a/.github/workflows/CI_NonlinearSolve.yml b/.github/workflows/CI_NonlinearSolve.yml index fbb13f825..277a53256 100644 --- a/.github/workflows/CI_NonlinearSolve.yml +++ b/.github/workflows/CI_NonlinearSolve.yml @@ -27,7 +27,6 @@ concurrency: jobs: test: - runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: @@ -48,44 +47,28 @@ jobs: # Don't run nopre tests on prerelease Julia - group: nopre version: "pre" - steps: - - uses: actions/checkout@v4 - - uses: julia-actions/setup-julia@v2 - with: - version: ${{ matrix.version }} - - uses: actions/cache@v4 - env: - cache-name: cache-artifacts - with: - path: ~/.julia/artifacts - key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} - restore-keys: | - ${{ runner.os }}-test-${{ env.cache-name }}- - ${{ runner.os }}-test- - ${{ runner.os }}- - - name: "Install Dependencies and Run Tests" - run: | - import Pkg - Pkg.Registry.update() - # Install packages present in subdirectories - dev_pks = Pkg.PackageSpec[] - for path in ("lib/SciMLJacobianOperators", "lib/BracketingNonlinearSolve", "lib/NonlinearSolveBase", "lib/SimpleNonlinearSolve", "lib/NonlinearSolveFirstOrder", "lib/NonlinearSolveSpectralMethods", "lib/NonlinearSolveQuasiNewton") - push!(dev_pks, Pkg.PackageSpec(; path)) - end - Pkg.develop(dev_pks) - Pkg.instantiate() - Pkg.test(; coverage="user") - shell: julia --color=yes --code-coverage=user --depwarn=yes --project=. {0} - env: - GROUP: ${{ matrix.group }} - # Wrapper tests run sequentially to avoid parallel initialization issues with external packages - RETESTITEMS_NWORKERS: ${{ matrix.group == 'wrappers' && '0' || '' }} - - uses: julia-actions/julia-processcoverage@v1 - with: - directories: src,ext,lib/SciMLJacobianOperators/src,lib/BracketingNonlinearSolve/src,lib/NonlinearSolveBase/src,lib/NonlinearSolveBase/ext,lib/SimpleNonlinearSolve/src,lib/NonlinearSolveFirstOrder/src,lib/NonlinearSolveSpectralMethods/src,lib/NonlinearSolveQuasiNewton/src - - uses: codecov/codecov-action@v5 - with: - files: lcov.info - token: ${{ secrets.CODECOV_TOKEN }} - verbose: true - fail_ci_if_error: false + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + julia_version: ${{ matrix.version }} + os: ${{ matrix.os }} + project: "." + local_dependencies: "lib/BracketingNonlinearSolve,lib/NonlinearSolveBase,lib/NonlinearSolveFirstOrder,lib/NonlinearSolveQuasiNewton,lib/NonlinearSolveSpectralMethods,lib/SimpleNonlinearSolve" + test_args: "GROUP=${{ matrix.group }}" + + downgrade: + strategy: + fail-fast: false + matrix: + group: + - core + - downstream + - wrappers + - misc + - nopre + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + project: "." + julia_version: "1.11" + downgrade_testing: true + local_dependencies: "lib/BracketingNonlinearSolve,lib/NonlinearSolveBase,lib/NonlinearSolveFirstOrder,lib/NonlinearSolveQuasiNewton,lib/NonlinearSolveSpectralMethods,lib/SimpleNonlinearSolve" + test_args: "GROUP=${{ matrix.group }}" diff --git a/.github/workflows/CI_NonlinearSolveBase.yml b/.github/workflows/CI_NonlinearSolveBase.yml index 3ee6ef84d..0ad5db8a0 100644 --- a/.github/workflows/CI_NonlinearSolveBase.yml +++ b/.github/workflows/CI_NonlinearSolveBase.yml @@ -18,7 +18,6 @@ concurrency: jobs: test: - runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: @@ -28,40 +27,17 @@ jobs: os: - ubuntu-latest - macos-latest - steps: - - uses: actions/checkout@v4 - - uses: julia-actions/setup-julia@v2 - with: - version: ${{ matrix.version }} - - uses: actions/cache@v4 - env: - cache-name: cache-artifacts - with: - path: ~/.julia/artifacts - key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} - restore-keys: | - ${{ runner.os }}-test-${{ env.cache-name }}- - ${{ runner.os }}-test- - ${{ runner.os }}- - - name: "Install Dependencies and Run Tests" - run: | - import Pkg - Pkg.Registry.update() - # Install packages present in subdirectories - dev_pks = Pkg.PackageSpec[] - for path in ("lib/SciMLJacobianOperators",) - push!(dev_pks, Pkg.PackageSpec(; path)) - end - Pkg.develop(dev_pks) - Pkg.instantiate() - Pkg.test(; coverage="user") - shell: julia --color=yes --code-coverage=user --depwarn=yes --project=lib/NonlinearSolveBase {0} - - uses: julia-actions/julia-processcoverage@v1 - with: - directories: lib/NonlinearSolveBase/src,lib/NonlinearSolveBase/ext,lib/SciMLJacobianOperators/src - - uses: codecov/codecov-action@v5 - with: - files: lcov.info - token: ${{ secrets.CODECOV_TOKEN }} - verbose: true - fail_ci_if_error: false + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + julia_version: ${{ matrix.version }} + os: ${{ matrix.os }} + project: "lib/NonlinearSolveBase" + local_dependencies: "lib/SciMLJacobianOperators" + + downgrade: + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + julia_version: "1.11" + project: "lib/NonlinearSolveBase" + downgrade_testing: true + local_dependencies: "lib/SciMLJacobianOperators" diff --git a/.github/workflows/CI_NonlinearSolveFirstOrder.yml b/.github/workflows/CI_NonlinearSolveFirstOrder.yml index 445d81ca1..2c5cceea3 100644 --- a/.github/workflows/CI_NonlinearSolveFirstOrder.yml +++ b/.github/workflows/CI_NonlinearSolveFirstOrder.yml @@ -19,7 +19,6 @@ concurrency: jobs: test: - runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: @@ -29,40 +28,17 @@ jobs: os: - ubuntu-latest - macos-latest - steps: - - uses: actions/checkout@v4 - - uses: julia-actions/setup-julia@v2 - with: - version: ${{ matrix.version }} - - uses: actions/cache@v4 - env: - cache-name: cache-artifacts - with: - path: ~/.julia/artifacts - key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} - restore-keys: | - ${{ runner.os }}-test-${{ env.cache-name }}- - ${{ runner.os }}-test- - ${{ runner.os }}- - - name: "Install Dependencies and Run Tests" - run: | - import Pkg - Pkg.Registry.update() - # Install packages present in subdirectories - dev_pks = Pkg.PackageSpec[] - for path in ("lib/SciMLJacobianOperators", "lib/NonlinearSolveBase") - push!(dev_pks, Pkg.PackageSpec(; path)) - end - Pkg.develop(dev_pks) - Pkg.instantiate() - Pkg.test(; coverage="user") - shell: julia --color=yes --code-coverage=user --depwarn=yes --project=lib/NonlinearSolveFirstOrder {0} - - uses: julia-actions/julia-processcoverage@v1 - with: - directories: lib/NonlinearSolveFirstOrder/src,lib/NonlinearSolveBase/src,lib/NonlinearSolveBase/ext,lib/SciMLJacobianOperators/src - - uses: codecov/codecov-action@v5 - with: - file: lcov.info - token: ${{ secrets.CODECOV_TOKEN }} - verbose: true - fail_ci_if_error: false + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + julia_version: ${{ matrix.version }} + os: ${{ matrix.os }} + project: "lib/NonlinearSolveFirstOrder" + local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" + + downgrade: + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + julia_version: "1.11" + project: "lib/NonlinearSolveFirstOrder" + downgrade_testing: true + local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" diff --git a/.github/workflows/CI_NonlinearSolveHomotopyContinuation.yml b/.github/workflows/CI_NonlinearSolveHomotopyContinuation.yml index 6e2751a45..9817e2f5c 100644 --- a/.github/workflows/CI_NonlinearSolveHomotopyContinuation.yml +++ b/.github/workflows/CI_NonlinearSolveHomotopyContinuation.yml @@ -18,7 +18,6 @@ concurrency: jobs: test: - runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: @@ -28,40 +27,17 @@ jobs: os: - ubuntu-latest - macos-latest - steps: - - uses: actions/checkout@v4 - - uses: julia-actions/setup-julia@v2 - with: - version: ${{ matrix.version }} - - uses: actions/cache@v4 - env: - cache-name: cache-artifacts - with: - path: ~/.julia/artifacts - key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} - restore-keys: | - ${{ runner.os }}-test-${{ env.cache-name }}- - ${{ runner.os }}-test- - ${{ runner.os }}- - - name: "Install Dependencies and Run Tests" - run: | - import Pkg - Pkg.Registry.update() - # Install packages present in subdirectories - dev_pks = Pkg.PackageSpec[] - for path in ("lib/NonlinearSolveBase",) - push!(dev_pks, Pkg.PackageSpec(; path)) - end - Pkg.develop(dev_pks) - Pkg.instantiate() - Pkg.test(; coverage="user") - shell: julia --color=yes --code-coverage=user --depwarn=yes --project=lib/NonlinearSolveHomotopyContinuation {0} - - uses: julia-actions/julia-processcoverage@v1 - with: - directories: lib/NonlinearSolveBase/src,lib/NonlinearSolveBase/ext,lib/NonlinearSolveHomotopyContinuation/src - - uses: codecov/codecov-action@v5 - with: - file: lcov.info - token: ${{ secrets.CODECOV_TOKEN }} - verbose: true - fail_ci_if_error: false + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + julia_version: ${{ matrix.version }} + os: ${{ matrix.os }} + project: "lib/NonlinearSolveHomotopyContinuation" + local_dependencies: "lib/NonlinearSolveBase" + + downgrade: + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + julia_version: "1.11" + project: "lib/NonlinearSolveHomotopyContinuation" + downgrade_testing: true + local_dependencies: "lib/NonlinearSolveBase" diff --git a/.github/workflows/CI_NonlinearSolveQuasiNewton.yml b/.github/workflows/CI_NonlinearSolveQuasiNewton.yml index d1a4dd747..aa8018dc5 100644 --- a/.github/workflows/CI_NonlinearSolveQuasiNewton.yml +++ b/.github/workflows/CI_NonlinearSolveQuasiNewton.yml @@ -19,7 +19,6 @@ concurrency: jobs: test: - runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: @@ -29,40 +28,17 @@ jobs: os: - ubuntu-latest - macos-latest - steps: - - uses: actions/checkout@v4 - - uses: julia-actions/setup-julia@v2 - with: - version: ${{ matrix.version }} - - uses: actions/cache@v4 - env: - cache-name: cache-artifacts - with: - path: ~/.julia/artifacts - key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} - restore-keys: | - ${{ runner.os }}-test-${{ env.cache-name }}- - ${{ runner.os }}-test- - ${{ runner.os }}- - - name: "Install Dependencies and Run Tests" - run: | - import Pkg - Pkg.Registry.update() - # Install packages present in subdirectories - dev_pks = Pkg.PackageSpec[] - for path in ("lib/SciMLJacobianOperators", "lib/NonlinearSolveBase") - push!(dev_pks, Pkg.PackageSpec(; path)) - end - Pkg.develop(dev_pks) - Pkg.instantiate() - Pkg.test(; coverage="user") - shell: julia --color=yes --code-coverage=user --depwarn=yes --project=lib/NonlinearSolveQuasiNewton {0} - - uses: julia-actions/julia-processcoverage@v1 - with: - directories: lib/NonlinearSolveQuasiNewton/src,lib/NonlinearSolveBase/src,lib/NonlinearSolveBase/ext,lib/SciMLJacobianOperators/src - - uses: codecov/codecov-action@v5 - with: - file: lcov.info - token: ${{ secrets.CODECOV_TOKEN }} - verbose: true - fail_ci_if_error: false + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + julia_version: ${{ matrix.version }} + os: ${{ matrix.os }} + project: "lib/NonlinearSolveQuasiNewton" + local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" + + downgrade: + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + julia_version: "1.11" + project: "lib/NonlinearSolveQuasiNewton" + downgrade_testing: true + local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" diff --git a/.github/workflows/CI_NonlinearSolveSciPy.yml b/.github/workflows/CI_NonlinearSolveSciPy.yml index fd630e706..f94d777fd 100644 --- a/.github/workflows/CI_NonlinearSolveSciPy.yml +++ b/.github/workflows/CI_NonlinearSolveSciPy.yml @@ -18,7 +18,6 @@ concurrency: jobs: test: - runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: @@ -28,40 +27,17 @@ jobs: os: - ubuntu-latest - macos-latest - steps: - - uses: actions/checkout@v4 - - uses: julia-actions/setup-julia@v2 - with: - version: ${{ matrix.version }} - - uses: actions/cache@v4 - env: - cache-name: cache-artifacts - with: - path: ~/.julia/artifacts - key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} - restore-keys: | - ${{ runner.os }}-test-${{ env.cache-name }}- - ${{ runner.os }}-test- - ${{ runner.os }}- - - name: "Install Dependencies and Run Tests" - run: | - import Pkg - Pkg.Registry.update() - # Install packages present in subdirectories - dev_pks = Pkg.PackageSpec[] - for path in ("lib/SciMLJacobianOperators", "lib/NonlinearSolveBase") - push!(dev_pks, Pkg.PackageSpec(; path)) - end - Pkg.develop(dev_pks) - Pkg.instantiate() - Pkg.test(; coverage="user") - shell: julia --color=yes --code-coverage=user --depwarn=yes --project=lib/NonlinearSolveSciPy {0} - - uses: julia-actions/julia-processcoverage@v1 - with: - directories: lib/NonlinearSolveSciPy/src,lib/NonlinearSolveBase/src,lib/NonlinearSolveBase/ext,lib/SciMLJacobianOperators/src - - uses: codecov/codecov-action@v5 - with: - file: lcov.info - token: ${{ secrets.CODECOV_TOKEN }} - verbose: true - fail_ci_if_error: false + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + julia_version: ${{ matrix.version }} + os: ${{ matrix.os }} + project: "lib/NonlinearSolveSciPy" + local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" + + downgrade: + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + julia_version: "1.11" + project: "lib/NonlinearSolveSciPy" + downgrade_testing: true + local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" diff --git a/.github/workflows/CI_NonlinearSolveSpectralMethods.yml b/.github/workflows/CI_NonlinearSolveSpectralMethods.yml index 60bab6f6f..67d848026 100644 --- a/.github/workflows/CI_NonlinearSolveSpectralMethods.yml +++ b/.github/workflows/CI_NonlinearSolveSpectralMethods.yml @@ -19,7 +19,6 @@ concurrency: jobs: test: - runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: @@ -29,40 +28,17 @@ jobs: os: - ubuntu-latest - macos-latest - steps: - - uses: actions/checkout@v4 - - uses: julia-actions/setup-julia@v2 - with: - version: ${{ matrix.version }} - - uses: actions/cache@v4 - env: - cache-name: cache-artifacts - with: - path: ~/.julia/artifacts - key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} - restore-keys: | - ${{ runner.os }}-test-${{ env.cache-name }}- - ${{ runner.os }}-test- - ${{ runner.os }}- - - name: "Install Dependencies and Run Tests" - run: | - import Pkg - Pkg.Registry.update() - # Install packages present in subdirectories - dev_pks = Pkg.PackageSpec[] - for path in ("lib/SciMLJacobianOperators", "lib/NonlinearSolveBase") - push!(dev_pks, Pkg.PackageSpec(; path)) - end - Pkg.develop(dev_pks) - Pkg.instantiate() - Pkg.test(; coverage="user") - shell: julia --color=yes --code-coverage=user --depwarn=yes --project=lib/NonlinearSolveSpectralMethods {0} - - uses: julia-actions/julia-processcoverage@v1 - with: - directories: lib/NonlinearSolveSpectralMethods/src,lib/NonlinearSolveBase/src,lib/NonlinearSolveBase/ext,lib/SciMLJacobianOperators/src - - uses: codecov/codecov-action@v5 - with: - file: lcov.info - token: ${{ secrets.CODECOV_TOKEN }} - verbose: true - fail_ci_if_error: false + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + julia_version: ${{ matrix.version }} + os: ${{ matrix.os }} + project: "lib/NonlinearSolveSpectralMethods" + local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" + + downgrade: + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + julia_version: "1.11" + project: "lib/NonlinearSolveSpectralMethods" + downgrade_testing: true + local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" diff --git a/.github/workflows/CI_SCCNonlinearSolve.yml b/.github/workflows/CI_SCCNonlinearSolve.yml index 75573de9f..8a35accf5 100644 --- a/.github/workflows/CI_SCCNonlinearSolve.yml +++ b/.github/workflows/CI_SCCNonlinearSolve.yml @@ -19,7 +19,6 @@ concurrency: jobs: test: - runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: @@ -29,40 +28,17 @@ jobs: os: - ubuntu-latest - macos-latest - steps: - - uses: actions/checkout@v4 - - uses: julia-actions/setup-julia@v2 - with: - version: ${{ matrix.version }} - - uses: actions/cache@v4 - env: - cache-name: cache-artifacts - with: - path: ~/.julia/artifacts - key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} - restore-keys: | - ${{ runner.os }}-test-${{ env.cache-name }}- - ${{ runner.os }}-test- - ${{ runner.os }}- - - name: "Install Dependencies and Run Tests" - run: | - import Pkg - Pkg.Registry.update() - # Install packages present in subdirectories - dev_pks = Pkg.PackageSpec[] - for path in ("lib/SciMLJacobianOperators", "lib/NonlinearSolveBase") - push!(dev_pks, Pkg.PackageSpec(; path)) - end - Pkg.develop(dev_pks) - Pkg.instantiate() - Pkg.test(; coverage="user") - shell: julia --color=yes --code-coverage=user --depwarn=yes --project=lib/SCCNonlinearSolve {0} - - uses: julia-actions/julia-processcoverage@v1 - with: - directories: lib/SCCNonlinearSolve/src,lib/NonlinearSolveBase/src,lib/NonlinearSolveBase/ext,lib/SciMLJacobianOperators/src - - uses: codecov/codecov-action@v5 - with: - file: lcov.info - token: ${{ secrets.CODECOV_TOKEN }} - verbose: true - fail_ci_if_error: false + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + julia_version: ${{ matrix.version }} + os: ${{ matrix.os }} + project: "lib/SCCNonlinearSolve" + local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" + + downgrade: + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + julia_version: "1.11" + project: "lib/SCCNonlinearSolve" + downgrade_testing: true + local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" diff --git a/.github/workflows/CI_SciMLJacobianOperators.yml b/.github/workflows/CI_SciMLJacobianOperators.yml index 9a9b74cb0..e031009d7 100644 --- a/.github/workflows/CI_SciMLJacobianOperators.yml +++ b/.github/workflows/CI_SciMLJacobianOperators.yml @@ -17,7 +17,6 @@ concurrency: jobs: test: - runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: @@ -27,34 +26,15 @@ jobs: os: - ubuntu-latest - macos-latest - steps: - - uses: actions/checkout@v4 - - uses: julia-actions/setup-julia@v2 - with: - version: ${{ matrix.version }} - - uses: actions/cache@v4 - env: - cache-name: cache-artifacts - with: - path: ~/.julia/artifacts - key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} - restore-keys: | - ${{ runner.os }}-test-${{ env.cache-name }}- - ${{ runner.os }}-test- - ${{ runner.os }}- - - name: "Install Dependencies and Run Tests" - run: | - import Pkg - Pkg.Registry.update() - Pkg.instantiate() - Pkg.test(; coverage="user") - shell: julia --color=yes --code-coverage=user --depwarn=yes --project=lib/SciMLJacobianOperators {0} - - uses: julia-actions/julia-processcoverage@v1 - with: - directories: lib/SciMLJacobianOperators/src - - uses: codecov/codecov-action@v5 - with: - file: lcov.info - token: ${{ secrets.CODECOV_TOKEN }} - verbose: true - fail_ci_if_error: false + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + julia_version: ${{ matrix.version }} + os: ${{ matrix.os }} + project: "lib/SciMLJacobianOperators" + + downgrade: + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + julia_version: "1.11" + project: "lib/SciMLJacobianOperators" + downgrade_testing: true diff --git a/.github/workflows/CI_SimpleNonlinearSolve.yml b/.github/workflows/CI_SimpleNonlinearSolve.yml index a4dbf4464..bb10f7bea 100644 --- a/.github/workflows/CI_SimpleNonlinearSolve.yml +++ b/.github/workflows/CI_SimpleNonlinearSolve.yml @@ -20,7 +20,6 @@ concurrency: jobs: test: - runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: @@ -35,46 +34,31 @@ jobs: - adjoint - alloc_check - nopre - exclude: + exclude: # Don't run nopre tests on prerelease Julia - group: nopre version: "pre" - steps: - - uses: actions/checkout@v4 - - uses: julia-actions/setup-julia@v2 - with: - version: ${{ matrix.version }} - - uses: actions/cache@v4 - env: - cache-name: cache-artifacts - with: - path: ~/.julia/artifacts - key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} - restore-keys: | - ${{ runner.os }}-test-${{ env.cache-name }}- - ${{ runner.os }}-test- - ${{ runner.os }}- - - name: "Install Dependencies and Run Tests" - run: | - import Pkg - Pkg.Registry.update() - # Install packages present in subdirectories - dev_pks = Pkg.PackageSpec[] - for path in ("lib/NonlinearSolveBase", "lib/BracketingNonlinearSolve", "lib/SciMLJacobianOperators") - push!(dev_pks, Pkg.PackageSpec(; path)) - end - Pkg.develop(dev_pks) - Pkg.instantiate() - Pkg.test(; coverage="user") - shell: julia --color=yes --code-coverage=user --depwarn=yes --project=lib/SimpleNonlinearSolve {0} - env: - GROUP: ${{ matrix.group }} - - uses: julia-actions/julia-processcoverage@v1 - with: - directories: lib/SimpleNonlinearSolve/src,lib/SimpleNonlinearSolve/ext,lib/SciMLJacobianOperators/src,lib/BracketingNonlinearSolve/src,lib/BracketingNonlinearSolve/ext,lib/NonlinearSolveBase/src,lib/NonlinearSolveBase/ext - - uses: codecov/codecov-action@v5 - with: - file: lcov.info - token: ${{ secrets.CODECOV_TOKEN }} - verbose: true - fail_ci_if_error: false + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + julia_version: ${{ matrix.version }} + os: ${{ matrix.os }} + project: "lib/SimpleNonlinearSolve" + local_dependencies: "lib/BracketingNonlinearSolve,lib/NonlinearSolveBase,lib/SciMLJacobianOperators" + test_args: "GROUP=${{ matrix.group }}" + + downgrade: + strategy: + fail-fast: false + matrix: + group: + - core + - adjoint + - alloc_check + - nopre + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + julia_version: "1.11" + project: "lib/SimpleNonlinearSolve" + downgrade_testing: true + local_dependencies: "lib/BracketingNonlinearSolve,lib/NonlinearSolveBase,lib/SciMLJacobianOperators" + test_args: "GROUP=${{ matrix.group }}" diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml deleted file mode 100644 index f1cb92da1..000000000 --- a/.github/workflows/Downgrade.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: Downgrade -on: - pull_request: - branches: - - master - paths-ignore: - - 'docs/**' - push: - branches: - - master - paths-ignore: - - 'docs/**' -jobs: - test: - runs-on: ubuntu-latest - strategy: - matrix: - downgrade_mode: ['alldeps'] - julia-version: ['1.11'] - group: ['core'] - steps: - - uses: actions/checkout@v4 - - uses: julia-actions/setup-julia@v2 - with: - version: ${{ matrix.julia-version }} - - uses: julia-actions/julia-downgrade-compat@v2 - with: - mode: ${{ matrix.downgrade_mode }} - julia_version: ${{ matrix.julia-version }} - skip: Pkg,TOML - - uses: julia-actions/julia-buildpkg@v1 - - uses: julia-actions/julia-runtest@v1 - with: - allow_reresolve: false - env: - GROUP: ${{ matrix.group }} diff --git a/.github/workflows/DowngradeSublibraries.yml b/.github/workflows/DowngradeSublibraries.yml deleted file mode 100644 index b58d79335..000000000 --- a/.github/workflows/DowngradeSublibraries.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: Downgrade Sublibraries -on: - pull_request: - branches: - - master - paths-ignore: - - 'docs/**' - push: - branches: - - master - paths-ignore: - - 'docs/**' -jobs: - test: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - downgrade_mode: ['alldeps'] - julia-version: ['1.11'] - project: - - 'lib/BracketingNonlinearSolve' - - 'lib/NonlinearSolveBase' - - 'lib/NonlinearSolveFirstOrder' - - 'lib/NonlinearSolveHomotopyContinuation' - - 'lib/NonlinearSolveQuasiNewton' - - 'lib/NonlinearSolveSciPy' - - 'lib/NonlinearSolveSpectralMethods' - - 'lib/SCCNonlinearSolve' - - 'lib/SciMLJacobianOperators' - - 'lib/SimpleNonlinearSolve' - steps: - - uses: actions/checkout@v4 - - uses: julia-actions/setup-julia@v2 - with: - version: ${{ matrix.julia-version }} - - uses: julia-actions/julia-downgrade-compat@v2 - with: - projects: ${{ matrix.project }} - mode: ${{ matrix.downgrade_mode }} - julia_version: ${{ matrix.julia-version }} - skip: Pkg,TOML - - uses: julia-actions/julia-buildpkg@v1 - with: - project: ${{ matrix.project }} - - uses: julia-actions/julia-runtest@v1 - with: - project: ${{ matrix.project }} - allow_reresolve: false \ No newline at end of file diff --git a/lib/SimpleNonlinearSolve/test/runtests.jl b/lib/SimpleNonlinearSolve/test/runtests.jl index a76760dc8..b57cbe5c6 100644 --- a/lib/SimpleNonlinearSolve/test/runtests.jl +++ b/lib/SimpleNonlinearSolve/test/runtests.jl @@ -2,7 +2,27 @@ using TestItemRunner, InteractiveUtils, Pkg, Test @info sprint(InteractiveUtils.versioninfo) -const GROUP = lowercase(get(ENV, "GROUP", "All")) +function parse_test_args() + test_args_from_env = @isdefined(TEST_ARGS) ? TEST_ARGS : ARGS + test_args = Dict{String, String}() + for arg in test_args_from_env + if contains(arg, "=") + key, value = split(arg, "="; limit = 2) + test_args[key] = value + end + end + @info "Parsed test args" test_args + return test_args +end + +const PARSED_TEST_ARGS = parse_test_args() + +function get_from_test_args_or_env(key, default) + haskey(PARSED_TEST_ARGS, key) && return PARSED_TEST_ARGS[key] + return get(ENV, key, default) +end + +const GROUP = lowercase(get_from_test_args_or_env("GROUP", "all")) (GROUP == "all" || GROUP == "cuda") && Pkg.add(["CUDA"]) (GROUP == "all" || GROUP == "adjoint") && Pkg.add(["SciMLSensitivity"]) diff --git a/test/runtests.jl b/test/runtests.jl index dcfb869ff..21c01cf04 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -2,7 +2,27 @@ using ReTestItems, NonlinearSolve, Hwloc, InteractiveUtils, Pkg @info sprint(InteractiveUtils.versioninfo) -const GROUP = lowercase(get(ENV, "GROUP", "All")) +function parse_test_args() + test_args_from_env = @isdefined(TEST_ARGS) ? TEST_ARGS : ARGS + test_args = Dict{String, String}() + for arg in test_args_from_env + if contains(arg, "=") + key, value = split(arg, "="; limit = 2) + test_args[key] = value + end + end + @info "Parsed test args" test_args + return test_args +end + +const PARSED_TEST_ARGS = parse_test_args() + +function get_from_test_args_or_env(key, default) + haskey(PARSED_TEST_ARGS, key) && return PARSED_TEST_ARGS[key] + return get(ENV, key, default) +end + +const GROUP = lowercase(get_from_test_args_or_env("GROUP", "all")) const EXTRA_PKGS = Pkg.PackageSpec[] if GROUP == "all" || GROUP == "downstream" From 8298c02eb69715963c22c89bde671aabed1207eb Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 14:42:06 -0400 Subject: [PATCH 09/30] ci: use specific branch (drop me) --- .github/workflows/CI_BracketingNonlinearSolve.yml | 4 ++-- .github/workflows/CI_NonlinearSolve.yml | 4 ++-- .github/workflows/CI_NonlinearSolveBase.yml | 4 ++-- .github/workflows/CI_NonlinearSolveFirstOrder.yml | 4 ++-- .github/workflows/CI_NonlinearSolveHomotopyContinuation.yml | 4 ++-- .github/workflows/CI_NonlinearSolveQuasiNewton.yml | 4 ++-- .github/workflows/CI_NonlinearSolveSciPy.yml | 4 ++-- .github/workflows/CI_NonlinearSolveSpectralMethods.yml | 4 ++-- .github/workflows/CI_SCCNonlinearSolve.yml | 4 ++-- .github/workflows/CI_SciMLJacobianOperators.yml | 4 ++-- .github/workflows/CI_SimpleNonlinearSolve.yml | 4 ++-- 11 files changed, 22 insertions(+), 22 deletions(-) diff --git a/.github/workflows/CI_BracketingNonlinearSolve.yml b/.github/workflows/CI_BracketingNonlinearSolve.yml index 53d928908..f54e2237e 100644 --- a/.github/workflows/CI_BracketingNonlinearSolve.yml +++ b/.github/workflows/CI_BracketingNonlinearSolve.yml @@ -28,7 +28,7 @@ jobs: os: - ubuntu-latest - macos-latest - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} @@ -36,7 +36,7 @@ jobs: local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" downgrade: - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: "1.11" project: "lib/BracketingNonlinearSolve" diff --git a/.github/workflows/CI_NonlinearSolve.yml b/.github/workflows/CI_NonlinearSolve.yml index 277a53256..c45e5518d 100644 --- a/.github/workflows/CI_NonlinearSolve.yml +++ b/.github/workflows/CI_NonlinearSolve.yml @@ -47,7 +47,7 @@ jobs: # Don't run nopre tests on prerelease Julia - group: nopre version: "pre" - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} @@ -65,7 +65,7 @@ jobs: - wrappers - misc - nopre - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: project: "." julia_version: "1.11" diff --git a/.github/workflows/CI_NonlinearSolveBase.yml b/.github/workflows/CI_NonlinearSolveBase.yml index 0ad5db8a0..3b9fa5b85 100644 --- a/.github/workflows/CI_NonlinearSolveBase.yml +++ b/.github/workflows/CI_NonlinearSolveBase.yml @@ -27,7 +27,7 @@ jobs: os: - ubuntu-latest - macos-latest - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} @@ -35,7 +35,7 @@ jobs: local_dependencies: "lib/SciMLJacobianOperators" downgrade: - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: "1.11" project: "lib/NonlinearSolveBase" diff --git a/.github/workflows/CI_NonlinearSolveFirstOrder.yml b/.github/workflows/CI_NonlinearSolveFirstOrder.yml index 2c5cceea3..b93821047 100644 --- a/.github/workflows/CI_NonlinearSolveFirstOrder.yml +++ b/.github/workflows/CI_NonlinearSolveFirstOrder.yml @@ -28,7 +28,7 @@ jobs: os: - ubuntu-latest - macos-latest - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} @@ -36,7 +36,7 @@ jobs: local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" downgrade: - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: "1.11" project: "lib/NonlinearSolveFirstOrder" diff --git a/.github/workflows/CI_NonlinearSolveHomotopyContinuation.yml b/.github/workflows/CI_NonlinearSolveHomotopyContinuation.yml index 9817e2f5c..14e7e70b4 100644 --- a/.github/workflows/CI_NonlinearSolveHomotopyContinuation.yml +++ b/.github/workflows/CI_NonlinearSolveHomotopyContinuation.yml @@ -27,7 +27,7 @@ jobs: os: - ubuntu-latest - macos-latest - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} @@ -35,7 +35,7 @@ jobs: local_dependencies: "lib/NonlinearSolveBase" downgrade: - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: "1.11" project: "lib/NonlinearSolveHomotopyContinuation" diff --git a/.github/workflows/CI_NonlinearSolveQuasiNewton.yml b/.github/workflows/CI_NonlinearSolveQuasiNewton.yml index aa8018dc5..e7d093029 100644 --- a/.github/workflows/CI_NonlinearSolveQuasiNewton.yml +++ b/.github/workflows/CI_NonlinearSolveQuasiNewton.yml @@ -28,7 +28,7 @@ jobs: os: - ubuntu-latest - macos-latest - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} @@ -36,7 +36,7 @@ jobs: local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" downgrade: - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: "1.11" project: "lib/NonlinearSolveQuasiNewton" diff --git a/.github/workflows/CI_NonlinearSolveSciPy.yml b/.github/workflows/CI_NonlinearSolveSciPy.yml index f94d777fd..ccc37061f 100644 --- a/.github/workflows/CI_NonlinearSolveSciPy.yml +++ b/.github/workflows/CI_NonlinearSolveSciPy.yml @@ -27,7 +27,7 @@ jobs: os: - ubuntu-latest - macos-latest - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} @@ -35,7 +35,7 @@ jobs: local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" downgrade: - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: "1.11" project: "lib/NonlinearSolveSciPy" diff --git a/.github/workflows/CI_NonlinearSolveSpectralMethods.yml b/.github/workflows/CI_NonlinearSolveSpectralMethods.yml index 67d848026..6afdebe2a 100644 --- a/.github/workflows/CI_NonlinearSolveSpectralMethods.yml +++ b/.github/workflows/CI_NonlinearSolveSpectralMethods.yml @@ -28,7 +28,7 @@ jobs: os: - ubuntu-latest - macos-latest - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} @@ -36,7 +36,7 @@ jobs: local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" downgrade: - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: "1.11" project: "lib/NonlinearSolveSpectralMethods" diff --git a/.github/workflows/CI_SCCNonlinearSolve.yml b/.github/workflows/CI_SCCNonlinearSolve.yml index 8a35accf5..32e11ad02 100644 --- a/.github/workflows/CI_SCCNonlinearSolve.yml +++ b/.github/workflows/CI_SCCNonlinearSolve.yml @@ -28,7 +28,7 @@ jobs: os: - ubuntu-latest - macos-latest - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} @@ -36,7 +36,7 @@ jobs: local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" downgrade: - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: "1.11" project: "lib/SCCNonlinearSolve" diff --git a/.github/workflows/CI_SciMLJacobianOperators.yml b/.github/workflows/CI_SciMLJacobianOperators.yml index e031009d7..f4b3f7725 100644 --- a/.github/workflows/CI_SciMLJacobianOperators.yml +++ b/.github/workflows/CI_SciMLJacobianOperators.yml @@ -26,14 +26,14 @@ jobs: os: - ubuntu-latest - macos-latest - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} project: "lib/SciMLJacobianOperators" downgrade: - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: "1.11" project: "lib/SciMLJacobianOperators" diff --git a/.github/workflows/CI_SimpleNonlinearSolve.yml b/.github/workflows/CI_SimpleNonlinearSolve.yml index bb10f7bea..3cad5e2fc 100644 --- a/.github/workflows/CI_SimpleNonlinearSolve.yml +++ b/.github/workflows/CI_SimpleNonlinearSolve.yml @@ -38,7 +38,7 @@ jobs: # Don't run nopre tests on prerelease Julia - group: nopre version: "pre" - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} @@ -55,7 +55,7 @@ jobs: - adjoint - alloc_check - nopre - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: "1.11" project: "lib/SimpleNonlinearSolve" From b6462403003a725fd2f9a150d7a1cd7ca2fffc27 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 15:50:25 -0400 Subject: [PATCH 10/30] fix: min compats --- lib/NonlinearSolveBase/Project.toml | 4 ++-- lib/SimpleNonlinearSolve/Project.toml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/NonlinearSolveBase/Project.toml b/lib/NonlinearSolveBase/Project.toml index a7550cfaa..be81d8c4f 100644 --- a/lib/NonlinearSolveBase/Project.toml +++ b/lib/NonlinearSolveBase/Project.toml @@ -1,7 +1,7 @@ name = "NonlinearSolveBase" uuid = "be0214bd-f91f-a760-ac4e-3421ce2b2da0" authors = ["Avik Pal and contributors"] -version = "1.14.1" +version = "1.14.2" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" @@ -74,7 +74,7 @@ SciMLOperators = "0.4, 1.0" SparseArrays = "1.10" SparseMatrixColorings = "0.4.5" StaticArraysCore = "1.4" -SymbolicIndexingInterface = "0.3.36" +SymbolicIndexingInterface = "0.3.39" Test = "1.10" TimerOutputs = "0.5.23" julia = "1.10" diff --git a/lib/SimpleNonlinearSolve/Project.toml b/lib/SimpleNonlinearSolve/Project.toml index 0014013fb..060b826f4 100644 --- a/lib/SimpleNonlinearSolve/Project.toml +++ b/lib/SimpleNonlinearSolve/Project.toml @@ -1,7 +1,7 @@ name = "SimpleNonlinearSolve" uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" authors = ["SciML"] -version = "2.7.0" +version = "2.7.1" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" @@ -61,7 +61,7 @@ LineSearch = "0.1.3" LinearAlgebra = "1.10" MaybeInplace = "0.1.4" NonlinearProblemLibrary = "0.1.2" -NonlinearSolveBase = "1.4" +NonlinearSolveBase = "1.14" Pkg = "1.10" PolyesterForwardDiff = "0.1.3" PrecompileTools = "1.2" From e32fd87d45a79aa84006e8bb90ab78bbfb9e65aa Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 16:02:46 -0400 Subject: [PATCH 11/30] fix: nonlinearsolvescipy --- lib/NonlinearSolveSciPy/Project.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/NonlinearSolveSciPy/Project.toml b/lib/NonlinearSolveSciPy/Project.toml index 2bf56b78c..ec97b3911 100644 --- a/lib/NonlinearSolveSciPy/Project.toml +++ b/lib/NonlinearSolveSciPy/Project.toml @@ -1,7 +1,7 @@ name = "NonlinearSolveSciPy" uuid = "4827a3aa-8a82-4c61-8bd0-3c7d3e464ee5" authors = ["SciML"] -version = "1.0.0" +version = "1.0.1" [deps] ConcreteStructs = "2569d6c7-a4a2-43d3-a901-331e8e4be471" @@ -18,7 +18,7 @@ path = "../NonlinearSolveBase" ConcreteStructs = "0.2.3" Hwloc = "3" InteractiveUtils = "<0.0.1, 1" -NonlinearSolveBase = "1.4" +NonlinearSolveBase = "1.14" PrecompileTools = "1.2" PythonCall = "0.9" ReTestItems = "1.24" From 3519ba461bc27a69106a3442fbc93f611d720adf Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 16:10:28 -0400 Subject: [PATCH 12/30] test: skip cuda installation + tests on pre-releases --- .github/workflows/CI_SimpleNonlinearSolve.yml | 6 ------ Project.toml | 4 +--- test/cuda_tests.jl | 9 +++++---- test/runtests.jl | 6 ++++++ 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/.github/workflows/CI_SimpleNonlinearSolve.yml b/.github/workflows/CI_SimpleNonlinearSolve.yml index 3cad5e2fc..036762164 100644 --- a/.github/workflows/CI_SimpleNonlinearSolve.yml +++ b/.github/workflows/CI_SimpleNonlinearSolve.yml @@ -33,11 +33,6 @@ jobs: - core - adjoint - alloc_check - - nopre - exclude: - # Don't run nopre tests on prerelease Julia - - group: nopre - version: "pre" uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: ${{ matrix.version }} @@ -54,7 +49,6 @@ jobs: - core - adjoint - alloc_check - - nopre uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci with: julia_version: "1.11" diff --git a/Project.toml b/Project.toml index 21ee0cc5b..c189c3550 100644 --- a/Project.toml +++ b/Project.toml @@ -81,7 +81,6 @@ ArrayInterface = "7.16" BandedMatrices = "1.5" BenchmarkTools = "1.4" BracketingNonlinearSolve = "1" -CUDA = "5.5" CommonSolve = "0.2.4" ConcreteStructs = "0.2.3" DiffEqBase = "6.158.3" @@ -138,7 +137,6 @@ julia = "1.10" Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" BandedMatrices = "aae01518-5342-5314-be14-df237901396f" BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" -CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" ExplicitImports = "7d51a73a-1435-4ff3-83d9-f097790105c7" FastLevenbergMarquardt = "7a0df574-e128-4d35-8cbd-3d84502bf7ce" FixedPointAcceleration = "817d07cb-a79a-5c30-9a31-890123675176" @@ -168,4 +166,4 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [targets] -test = ["Aqua", "BandedMatrices", "BenchmarkTools", "CUDA", "ExplicitImports", "FastLevenbergMarquardt", "FixedPointAcceleration", "Hwloc", "InteractiveUtils", "LeastSquaresOptim", "LineSearches", "MINPACK", "NLSolvers", "NLsolve", "NaNMath", "NonlinearProblemLibrary", "OrdinaryDiffEqTsit5", "PETSc", "Pkg", "PolyesterForwardDiff", "Random", "ReTestItems", "SIAMFANLEquations", "SparseConnectivityTracer", "SparseMatrixColorings", "SpeedMapping", "StableRNGs", "StaticArrays", "Sundials", "Test", "Zygote"] +test = ["Aqua", "BandedMatrices", "BenchmarkTools", "ExplicitImports", "FastLevenbergMarquardt", "FixedPointAcceleration", "Hwloc", "InteractiveUtils", "LeastSquaresOptim", "LineSearches", "MINPACK", "NLSolvers", "NLsolve", "NaNMath", "NonlinearProblemLibrary", "OrdinaryDiffEqTsit5", "PETSc", "Pkg", "PolyesterForwardDiff", "Random", "ReTestItems", "SIAMFANLEquations", "SparseConnectivityTracer", "SparseMatrixColorings", "SpeedMapping", "StableRNGs", "StaticArrays", "Sundials", "Test", "Zygote"] diff --git a/test/cuda_tests.jl b/test/cuda_tests.jl index af1a21590..5b3f4e952 100644 --- a/test/cuda_tests.jl +++ b/test/cuda_tests.jl @@ -1,4 +1,4 @@ -@testitem "CUDA Tests" tags=[:cuda] begin +@testitem "CUDA Tests" tags=[:cuda] skip=:(!isempty(VERSION.prerelease)) begin using CUDA, NonlinearSolve, LinearSolve, StableRNGs if CUDA.functional() @@ -44,7 +44,7 @@ end end -@testitem "Termination Conditions: Allocations" tags=[:cuda] begin +@testitem "Termination Conditions: Allocations" tags=[:cuda] skip=:(!isempty(VERSION.prerelease)) begin using CUDA, NonlinearSolveBase, Test, LinearAlgebra if CUDA.functional() @@ -67,8 +67,9 @@ end end @testset "Mode: $(tcond)" for tcond in NORM_TERMINATION_CONDITIONS - for nfn in - (Base.Fix1(maximum, abs), Base.Fix2(norm, 2), Base.Fix2(norm, Inf)) + for nfn in ( + Base.Fix1(maximum, abs), Base.Fix2(norm, 2), Base.Fix2(norm, Inf) + ) @test_nowarn NonlinearSolveBase.check_convergence( tcond(nfn), du, u, uprev, 1e-3, 1e-3) end diff --git a/test/runtests.jl b/test/runtests.jl index 21c01cf04..c946e93ef 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -35,6 +35,12 @@ if GROUP == "all" || GROUP == "nopre" push!(EXTRA_PKGS, Pkg.PackageSpec("Enzyme")) end end +if GROUP == "all" || GROUP == "cuda" + # Only add CUDA for cuda group if not on prerelease Julia + if isempty(VERSION.prerelease) + push!(EXTRA_PKGS, Pkg.PackageSpec("CUDA")) + end +end length(EXTRA_PKGS) ≥ 1 && Pkg.add(EXTRA_PKGS) # Use sequential execution for wrapper tests to avoid parallel initialization issues From 0f70bc434b4b044efab85ef26f82dd72c73021dc Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 16:28:17 -0400 Subject: [PATCH 13/30] fix: more min compat --- lib/NonlinearSolveFirstOrder/Project.toml | 2 +- lib/NonlinearSolveHomotopyContinuation/Project.toml | 10 +++++----- lib/NonlinearSolveQuasiNewton/Project.toml | 4 ++-- lib/NonlinearSolveSpectralMethods/Project.toml | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/NonlinearSolveFirstOrder/Project.toml b/lib/NonlinearSolveFirstOrder/Project.toml index df1691342..4190d57c3 100644 --- a/lib/NonlinearSolveFirstOrder/Project.toml +++ b/lib/NonlinearSolveFirstOrder/Project.toml @@ -47,7 +47,7 @@ LinearAlgebra = "1.10" LinearSolve = "2.36.1, 3" MaybeInplace = "0.1.4" NonlinearProblemLibrary = "0.1.2" -NonlinearSolveBase = "1.4" +NonlinearSolveBase = "1.14" Pkg = "1.10" PrecompileTools = "1.2" Random = "1.10" diff --git a/lib/NonlinearSolveHomotopyContinuation/Project.toml b/lib/NonlinearSolveHomotopyContinuation/Project.toml index 8acdc6d1f..ecf4d83cf 100644 --- a/lib/NonlinearSolveHomotopyContinuation/Project.toml +++ b/lib/NonlinearSolveHomotopyContinuation/Project.toml @@ -1,7 +1,7 @@ name = "NonlinearSolveHomotopyContinuation" uuid = "2ac3b008-d579-4536-8c91-a1a5998c2f8b" authors = ["Aayush Sabharwal and contributors"] -version = "0.1.5" +version = "0.1.6" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" @@ -30,10 +30,10 @@ Enzyme = "0.13" HomotopyContinuation = "2.12.0" LinearAlgebra = "1.10" NaNMath = "1.1" -NonlinearSolve = "4" -NonlinearSolveBase = "1.3.3" -SciMLBase = "2.72.2" -SymbolicIndexingInterface = "0.3.36" +NonlinearSolve = "4.10" +NonlinearSolveBase = "1.14" +SciMLBase = "2.116" +SymbolicIndexingInterface = "0.3.43" TaylorDiff = "0.3.1" Test = "1.10" julia = "1.10" diff --git a/lib/NonlinearSolveQuasiNewton/Project.toml b/lib/NonlinearSolveQuasiNewton/Project.toml index 82c7a4a11..9b62ce4de 100644 --- a/lib/NonlinearSolveQuasiNewton/Project.toml +++ b/lib/NonlinearSolveQuasiNewton/Project.toml @@ -1,7 +1,7 @@ name = "NonlinearSolveQuasiNewton" uuid = "9a2c21bd-3a47-402d-9113-8faf9a0ee114" authors = ["Avik Pal and contributors"] -version = "1.8.0" +version = "1.8.1" [deps] ArrayInterface = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" @@ -47,7 +47,7 @@ LinearAlgebra = "1.10" LinearSolve = "2.36.1, 3" MaybeInplace = "0.1.4" NonlinearProblemLibrary = "0.1.2" -NonlinearSolveBase = "1.4" +NonlinearSolveBase = "1.14" Pkg = "1.10" PrecompileTools = "1.2" ReTestItems = "1.24" diff --git a/lib/NonlinearSolveSpectralMethods/Project.toml b/lib/NonlinearSolveSpectralMethods/Project.toml index 8fe3fcc56..3232941bf 100644 --- a/lib/NonlinearSolveSpectralMethods/Project.toml +++ b/lib/NonlinearSolveSpectralMethods/Project.toml @@ -1,7 +1,7 @@ name = "NonlinearSolveSpectralMethods" uuid = "26075421-4e9a-44e1-8bd1-420ed7ad02b2" authors = ["Avik Pal and contributors"] -version = "1.3.0" +version = "1.3.1" [deps] CommonSolve = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" @@ -36,7 +36,7 @@ InteractiveUtils = "<0.0.1, 1" LineSearch = "0.1.4" MaybeInplace = "0.1.4" NonlinearProblemLibrary = "0.1.2" -NonlinearSolveBase = "1.4" +NonlinearSolveBase = "1.14" Pkg = "1.10" PrecompileTools = "1.2" ReTestItems = "1.24" From a8a2e9f6cd35194a5b8ece9a5b9169032b00dd07 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 16:33:45 -0400 Subject: [PATCH 14/30] fix: make DI v0.7 --- Project.toml | 2 +- docs/Project.toml | 2 +- lib/NonlinearSolveBase/Project.toml | 2 +- lib/SciMLJacobianOperators/Project.toml | 2 +- lib/SimpleNonlinearSolve/Project.toml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Project.toml b/Project.toml index c189c3550..b5dcbeafe 100644 --- a/Project.toml +++ b/Project.toml @@ -84,7 +84,7 @@ BracketingNonlinearSolve = "1" CommonSolve = "0.2.4" ConcreteStructs = "0.2.3" DiffEqBase = "6.158.3" -DifferentiationInterface = "0.6.18, 0.7" +DifferentiationInterface = "0.7" ExplicitImports = "1.5" FastClosures = "0.3.2" FastLevenbergMarquardt = "0.1" diff --git a/docs/Project.toml b/docs/Project.toml index 381bafc2c..ffbcd2048 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -52,7 +52,7 @@ ArrayInterface = "6, 7" BenchmarkTools = "1" BracketingNonlinearSolve = "1" DiffEqBase = "6.158.3" -DifferentiationInterface = "0.6.16, 0.7" +DifferentiationInterface = "0.7" Documenter = "1" DocumenterCitations = "1" DocumenterInterLinks = "1.0.0" diff --git a/lib/NonlinearSolveBase/Project.toml b/lib/NonlinearSolveBase/Project.toml index be81d8c4f..499aacff2 100644 --- a/lib/NonlinearSolveBase/Project.toml +++ b/lib/NonlinearSolveBase/Project.toml @@ -54,7 +54,7 @@ CommonSolve = "0.2.4" Compat = "4.15" ConcreteStructs = "0.2.3" DiffEqBase = "6.158.3" -DifferentiationInterface = "0.6.16, 0.7" +DifferentiationInterface = "0.7" EnzymeCore = "0.8" ExplicitImports = "1.10.1" FastClosures = "0.3" diff --git a/lib/SciMLJacobianOperators/Project.toml b/lib/SciMLJacobianOperators/Project.toml index d9107bcc0..e10136857 100644 --- a/lib/SciMLJacobianOperators/Project.toml +++ b/lib/SciMLJacobianOperators/Project.toml @@ -20,7 +20,7 @@ Aqua = "0.8.7" ArrayInterface = "7.16" ConcreteStructs = "0.2.3" ConstructionBase = "1.5" -DifferentiationInterface = "0.6.16, 0.7" +DifferentiationInterface = "0.7" Enzyme = "0.13.11" ExplicitImports = "1.9.0" FastClosures = "0.3.2" diff --git a/lib/SimpleNonlinearSolve/Project.toml b/lib/SimpleNonlinearSolve/Project.toml index 060b826f4..6f55b87bd 100644 --- a/lib/SimpleNonlinearSolve/Project.toml +++ b/lib/SimpleNonlinearSolve/Project.toml @@ -50,7 +50,7 @@ ChainRulesCore = "1.24" CommonSolve = "0.2.4" ConcreteStructs = "0.2.3" DiffEqBase = "6.158.3" -DifferentiationInterface = "0.6.16, 0.7" +DifferentiationInterface = "0.7" Enzyme = "0.13.11" ExplicitImports = "1.9" FastClosures = "0.3.2" From 16eb41f1c6b337a1f22b0c7286cfd0d9ab228f2c Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 16:50:50 -0400 Subject: [PATCH 15/30] fix: don't support speedmapping v0.4 for now --- Project.toml | 2 +- lib/NonlinearSolveHomotopyContinuation/Project.toml | 2 +- lib/NonlinearSolveHomotopyContinuation/test/runtests.jl | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Project.toml b/Project.toml index b5dcbeafe..eeb940a4a 100644 --- a/Project.toml +++ b/Project.toml @@ -123,7 +123,7 @@ SimpleNonlinearSolve = "2.1" SparseArrays = "1.10" SparseConnectivityTracer = "0.6.5, 1" SparseMatrixColorings = "0.4.5" -SpeedMapping = "0.3, 0.4" +SpeedMapping = "0.3" StableRNGs = "1" StaticArrays = "1.9" StaticArraysCore = "1.4" diff --git a/lib/NonlinearSolveHomotopyContinuation/Project.toml b/lib/NonlinearSolveHomotopyContinuation/Project.toml index ecf4d83cf..13305ddd2 100644 --- a/lib/NonlinearSolveHomotopyContinuation/Project.toml +++ b/lib/NonlinearSolveHomotopyContinuation/Project.toml @@ -24,7 +24,7 @@ ADTypes = "1.11.0" Aqua = "0.8" CommonSolve = "0.2.4" ConcreteStructs = "0.2.3" -DifferentiationInterface = "0.6.27, 0.7" +DifferentiationInterface = "0.7" DocStringExtensions = "0.9.3" Enzyme = "0.13" HomotopyContinuation = "2.12.0" diff --git a/lib/NonlinearSolveHomotopyContinuation/test/runtests.jl b/lib/NonlinearSolveHomotopyContinuation/test/runtests.jl index 94bc8bddd..7a4a89ed8 100644 --- a/lib/NonlinearSolveHomotopyContinuation/test/runtests.jl +++ b/lib/NonlinearSolveHomotopyContinuation/test/runtests.jl @@ -4,7 +4,9 @@ using Aqua @testset "NonlinearSolveHomotopyContinuation.jl" begin @testset "Code quality (Aqua.jl)" begin - Aqua.test_all(NonlinearSolveHomotopyContinuation) + Aqua.test_all(NonlinearSolveHomotopyContinuation; persistent_tasks = false) + Aqua.test_persistent_tasks( + NonlinearSolveHomotopyContinuation; broken = VERSION < v"1.11") end @testset "AllRoots" begin include("allroots.jl") From efc673fc2f6600c25bf5d32f0e04e452213c9ea9 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 16:56:56 -0400 Subject: [PATCH 16/30] test: relax tolerance for broyden --- test/23_test_problems_tests.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/23_test_problems_tests.jl b/test/23_test_problems_tests.jl index c4215cebb..ac0d5897d 100644 --- a/test/23_test_problems_tests.jl +++ b/test/23_test_problems_tests.jl @@ -159,7 +159,7 @@ end broken_tests[alg_ops[5]]=[1, 5, 11] end - test_on_library(problems, dicts, alg_ops, broken_tests, Sys.isapple() ? 1e-3 : 1e-4) + test_on_library(problems, dicts, alg_ops, broken_tests, 1e-3) end @testitem "23 Test Problems: Klement" setup=[RobustnessTesting] tags=[:core] begin From b823064ff290c511daef20296a3b60d6b7b16e30 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 17:00:03 -0400 Subject: [PATCH 17/30] fix: bracketing nlsolve min compats --- lib/BracketingNonlinearSolve/Project.toml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/BracketingNonlinearSolve/Project.toml b/lib/BracketingNonlinearSolve/Project.toml index fb8366065..a4976d168 100644 --- a/lib/BracketingNonlinearSolve/Project.toml +++ b/lib/BracketingNonlinearSolve/Project.toml @@ -1,7 +1,7 @@ name = "BracketingNonlinearSolve" uuid = "70df07ce-3d50-431d-a3e7-ca6ddb60ac1e" authors = ["Avik Pal and contributors"] -version = "1.3.0" +version = "1.3.1" [deps] CommonSolve = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" @@ -18,7 +18,6 @@ NonlinearSolveBase = {path = "../NonlinearSolveBase"} ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - [extensions] BracketingNonlinearSolveForwardDiffExt = "ForwardDiff" BracketingNonlinearSolveChainRulesCoreExt = ["ChainRulesCore", "ForwardDiff"] @@ -34,11 +33,11 @@ InteractiveUtils = "<0.0.1, 1" NonlinearSolveBase = "1.1" PrecompileTools = "1.2" Reexport = "1.2.2" -SciMLBase = "2.69" +SciMLBase = "2.116" Test = "1.10" TestItemRunner = "1" julia = "1.10" -Zygote = "0.6.69, 0.7" +Zygote = "0.7" [extras] Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" From 84bd88bf20f74f46e021c63c91809a492a7d4ab3 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 17:07:36 -0400 Subject: [PATCH 18/30] fix: more min compat --- lib/NonlinearSolveBase/Project.toml | 2 +- lib/NonlinearSolveQuasiNewton/Project.toml | 2 +- lib/SciMLJacobianOperators/Project.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/NonlinearSolveBase/Project.toml b/lib/NonlinearSolveBase/Project.toml index 499aacff2..233d2e5ba 100644 --- a/lib/NonlinearSolveBase/Project.toml +++ b/lib/NonlinearSolveBase/Project.toml @@ -70,7 +70,7 @@ Printf = "1.10" RecursiveArrayTools = "3" SciMLBase = "2.92" SciMLJacobianOperators = "0.1.1" -SciMLOperators = "0.4, 1.0" +SciMLOperators = "1.7" SparseArrays = "1.10" SparseMatrixColorings = "0.4.5" StaticArraysCore = "1.4" diff --git a/lib/NonlinearSolveQuasiNewton/Project.toml b/lib/NonlinearSolveQuasiNewton/Project.toml index 9b62ce4de..b5ade36d3 100644 --- a/lib/NonlinearSolveQuasiNewton/Project.toml +++ b/lib/NonlinearSolveQuasiNewton/Project.toml @@ -53,7 +53,7 @@ PrecompileTools = "1.2" ReTestItems = "1.24" Reexport = "1.2.2" SciMLBase = "2.69" -SciMLOperators = "0.4, 1" +SciMLOperators = "1.7" StableRNGs = "1" StaticArrays = "1.9.8" StaticArraysCore = "1.4.3" diff --git a/lib/SciMLJacobianOperators/Project.toml b/lib/SciMLJacobianOperators/Project.toml index e10136857..07cd086d4 100644 --- a/lib/SciMLJacobianOperators/Project.toml +++ b/lib/SciMLJacobianOperators/Project.toml @@ -30,7 +30,7 @@ InteractiveUtils = "<0.0.1, 1" LinearAlgebra = "1.10" ReverseDiff = "1.15" SciMLBase = "2.69" -SciMLOperators = "0.4, 1" +SciMLOperators = "1.7" Test = "1.10" TestItemRunner = "1" Tracker = "0.2.35" From c5876f05eee27203fbe08b20b3b29ef5d82fa998 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 17:08:05 -0400 Subject: [PATCH 19/30] Revert "ci: use specific branch (drop me)" This reverts commit 8298c02eb69715963c22c89bde671aabed1207eb. --- .github/workflows/CI_BracketingNonlinearSolve.yml | 4 ++-- .github/workflows/CI_NonlinearSolve.yml | 4 ++-- .github/workflows/CI_NonlinearSolveBase.yml | 4 ++-- .github/workflows/CI_NonlinearSolveFirstOrder.yml | 4 ++-- .github/workflows/CI_NonlinearSolveHomotopyContinuation.yml | 4 ++-- .github/workflows/CI_NonlinearSolveQuasiNewton.yml | 4 ++-- .github/workflows/CI_NonlinearSolveSciPy.yml | 4 ++-- .github/workflows/CI_NonlinearSolveSpectralMethods.yml | 4 ++-- .github/workflows/CI_SCCNonlinearSolve.yml | 4 ++-- .github/workflows/CI_SciMLJacobianOperators.yml | 4 ++-- .github/workflows/CI_SimpleNonlinearSolve.yml | 4 ++-- 11 files changed, 22 insertions(+), 22 deletions(-) diff --git a/.github/workflows/CI_BracketingNonlinearSolve.yml b/.github/workflows/CI_BracketingNonlinearSolve.yml index f54e2237e..53d928908 100644 --- a/.github/workflows/CI_BracketingNonlinearSolve.yml +++ b/.github/workflows/CI_BracketingNonlinearSolve.yml @@ -28,7 +28,7 @@ jobs: os: - ubuntu-latest - macos-latest - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main with: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} @@ -36,7 +36,7 @@ jobs: local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" downgrade: - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main with: julia_version: "1.11" project: "lib/BracketingNonlinearSolve" diff --git a/.github/workflows/CI_NonlinearSolve.yml b/.github/workflows/CI_NonlinearSolve.yml index c45e5518d..277a53256 100644 --- a/.github/workflows/CI_NonlinearSolve.yml +++ b/.github/workflows/CI_NonlinearSolve.yml @@ -47,7 +47,7 @@ jobs: # Don't run nopre tests on prerelease Julia - group: nopre version: "pre" - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main with: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} @@ -65,7 +65,7 @@ jobs: - wrappers - misc - nopre - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main with: project: "." julia_version: "1.11" diff --git a/.github/workflows/CI_NonlinearSolveBase.yml b/.github/workflows/CI_NonlinearSolveBase.yml index 3b9fa5b85..0ad5db8a0 100644 --- a/.github/workflows/CI_NonlinearSolveBase.yml +++ b/.github/workflows/CI_NonlinearSolveBase.yml @@ -27,7 +27,7 @@ jobs: os: - ubuntu-latest - macos-latest - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main with: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} @@ -35,7 +35,7 @@ jobs: local_dependencies: "lib/SciMLJacobianOperators" downgrade: - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main with: julia_version: "1.11" project: "lib/NonlinearSolveBase" diff --git a/.github/workflows/CI_NonlinearSolveFirstOrder.yml b/.github/workflows/CI_NonlinearSolveFirstOrder.yml index b93821047..2c5cceea3 100644 --- a/.github/workflows/CI_NonlinearSolveFirstOrder.yml +++ b/.github/workflows/CI_NonlinearSolveFirstOrder.yml @@ -28,7 +28,7 @@ jobs: os: - ubuntu-latest - macos-latest - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main with: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} @@ -36,7 +36,7 @@ jobs: local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" downgrade: - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main with: julia_version: "1.11" project: "lib/NonlinearSolveFirstOrder" diff --git a/.github/workflows/CI_NonlinearSolveHomotopyContinuation.yml b/.github/workflows/CI_NonlinearSolveHomotopyContinuation.yml index 14e7e70b4..9817e2f5c 100644 --- a/.github/workflows/CI_NonlinearSolveHomotopyContinuation.yml +++ b/.github/workflows/CI_NonlinearSolveHomotopyContinuation.yml @@ -27,7 +27,7 @@ jobs: os: - ubuntu-latest - macos-latest - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main with: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} @@ -35,7 +35,7 @@ jobs: local_dependencies: "lib/NonlinearSolveBase" downgrade: - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main with: julia_version: "1.11" project: "lib/NonlinearSolveHomotopyContinuation" diff --git a/.github/workflows/CI_NonlinearSolveQuasiNewton.yml b/.github/workflows/CI_NonlinearSolveQuasiNewton.yml index e7d093029..aa8018dc5 100644 --- a/.github/workflows/CI_NonlinearSolveQuasiNewton.yml +++ b/.github/workflows/CI_NonlinearSolveQuasiNewton.yml @@ -28,7 +28,7 @@ jobs: os: - ubuntu-latest - macos-latest - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main with: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} @@ -36,7 +36,7 @@ jobs: local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" downgrade: - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main with: julia_version: "1.11" project: "lib/NonlinearSolveQuasiNewton" diff --git a/.github/workflows/CI_NonlinearSolveSciPy.yml b/.github/workflows/CI_NonlinearSolveSciPy.yml index ccc37061f..f94d777fd 100644 --- a/.github/workflows/CI_NonlinearSolveSciPy.yml +++ b/.github/workflows/CI_NonlinearSolveSciPy.yml @@ -27,7 +27,7 @@ jobs: os: - ubuntu-latest - macos-latest - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main with: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} @@ -35,7 +35,7 @@ jobs: local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" downgrade: - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main with: julia_version: "1.11" project: "lib/NonlinearSolveSciPy" diff --git a/.github/workflows/CI_NonlinearSolveSpectralMethods.yml b/.github/workflows/CI_NonlinearSolveSpectralMethods.yml index 6afdebe2a..67d848026 100644 --- a/.github/workflows/CI_NonlinearSolveSpectralMethods.yml +++ b/.github/workflows/CI_NonlinearSolveSpectralMethods.yml @@ -28,7 +28,7 @@ jobs: os: - ubuntu-latest - macos-latest - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main with: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} @@ -36,7 +36,7 @@ jobs: local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" downgrade: - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main with: julia_version: "1.11" project: "lib/NonlinearSolveSpectralMethods" diff --git a/.github/workflows/CI_SCCNonlinearSolve.yml b/.github/workflows/CI_SCCNonlinearSolve.yml index 32e11ad02..8a35accf5 100644 --- a/.github/workflows/CI_SCCNonlinearSolve.yml +++ b/.github/workflows/CI_SCCNonlinearSolve.yml @@ -28,7 +28,7 @@ jobs: os: - ubuntu-latest - macos-latest - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main with: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} @@ -36,7 +36,7 @@ jobs: local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" downgrade: - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main with: julia_version: "1.11" project: "lib/SCCNonlinearSolve" diff --git a/.github/workflows/CI_SciMLJacobianOperators.yml b/.github/workflows/CI_SciMLJacobianOperators.yml index f4b3f7725..e031009d7 100644 --- a/.github/workflows/CI_SciMLJacobianOperators.yml +++ b/.github/workflows/CI_SciMLJacobianOperators.yml @@ -26,14 +26,14 @@ jobs: os: - ubuntu-latest - macos-latest - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main with: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} project: "lib/SciMLJacobianOperators" downgrade: - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main with: julia_version: "1.11" project: "lib/SciMLJacobianOperators" diff --git a/.github/workflows/CI_SimpleNonlinearSolve.yml b/.github/workflows/CI_SimpleNonlinearSolve.yml index 036762164..a622a8247 100644 --- a/.github/workflows/CI_SimpleNonlinearSolve.yml +++ b/.github/workflows/CI_SimpleNonlinearSolve.yml @@ -33,7 +33,7 @@ jobs: - core - adjoint - alloc_check - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main with: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} @@ -49,7 +49,7 @@ jobs: - core - adjoint - alloc_check - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@ap/ci + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main with: julia_version: "1.11" project: "lib/SimpleNonlinearSolve" From f05de750701a7bfd05b88710f328930b88d061f4 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 17:13:35 -0400 Subject: [PATCH 20/30] fix: more min compat --- Project.toml | 4 ++-- lib/NonlinearSolveFirstOrder/Project.toml | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Project.toml b/Project.toml index eeb940a4a..027f0db97 100644 --- a/Project.toml +++ b/Project.toml @@ -104,9 +104,9 @@ NLSolvers = "0.5" NLsolve = "4.5" NaNMath = "1" NonlinearProblemLibrary = "0.1.2" -NonlinearSolveBase = "1.4" +NonlinearSolveBase = "1.14" NonlinearSolveFirstOrder = "1.2" -NonlinearSolveQuasiNewton = "1.1" +NonlinearSolveQuasiNewton = "1.8" NonlinearSolveSpectralMethods = "1.1" OrdinaryDiffEqTsit5 = "1.1.0" PETSc = "0.3" diff --git a/lib/NonlinearSolveFirstOrder/Project.toml b/lib/NonlinearSolveFirstOrder/Project.toml index 4190d57c3..de15ab1bc 100644 --- a/lib/NonlinearSolveFirstOrder/Project.toml +++ b/lib/NonlinearSolveFirstOrder/Project.toml @@ -25,6 +25,7 @@ StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" [sources] NonlinearSolveBase = {path = "../NonlinearSolveBase"} +SciMLJacobianOperators = {path = "../SciMLJacobianOperators"} [compat] ADTypes = "1.9.0" From ff70a8b91f0b9c28f08d9e89deb313cf614520d0 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 17:16:27 -0400 Subject: [PATCH 21/30] fix: more min compat --- Project.toml | 8 ++++---- docs/Project.toml | 8 ++++---- lib/NonlinearSolveBase/Project.toml | 4 ++-- lib/NonlinearSolveFirstOrder/Project.toml | 4 ++-- lib/NonlinearSolveHomotopyContinuation/Project.toml | 2 +- lib/NonlinearSolveQuasiNewton/Project.toml | 4 ++-- lib/NonlinearSolveSciPy/Project.toml | 2 +- lib/NonlinearSolveSpectralMethods/Project.toml | 4 ++-- lib/SCCNonlinearSolve/Project.toml | 2 +- lib/SciMLJacobianOperators/Project.toml | 4 ++-- lib/SimpleNonlinearSolve/Project.toml | 6 +++--- 11 files changed, 24 insertions(+), 24 deletions(-) diff --git a/Project.toml b/Project.toml index 027f0db97..657241bc1 100644 --- a/Project.toml +++ b/Project.toml @@ -83,8 +83,8 @@ BenchmarkTools = "1.4" BracketingNonlinearSolve = "1" CommonSolve = "0.2.4" ConcreteStructs = "0.2.3" -DiffEqBase = "6.158.3" -DifferentiationInterface = "0.7" +DiffEqBase = "6.188" +DifferentiationInterface = "0.7.3" ExplicitImports = "1.5" FastClosures = "0.3.2" FastLevenbergMarquardt = "0.1" @@ -108,7 +108,7 @@ NonlinearSolveBase = "1.14" NonlinearSolveFirstOrder = "1.2" NonlinearSolveQuasiNewton = "1.8" NonlinearSolveSpectralMethods = "1.1" -OrdinaryDiffEqTsit5 = "1.1.0" +OrdinaryDiffEqTsit5 = "1.5" PETSc = "0.3" Pkg = "1.10" PolyesterForwardDiff = "0.1.3" @@ -118,7 +118,7 @@ Random = "1.10" ReTestItems = "1.24" Reexport = "1.2.2" SIAMFANLEquations = "1.0.1" -SciMLBase = "2.69" +SciMLBase = "2.116" SimpleNonlinearSolve = "2.1" SparseArrays = "1.10" SparseConnectivityTracer = "0.6.5, 1" diff --git a/docs/Project.toml b/docs/Project.toml index ffbcd2048..1668c04d3 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -51,8 +51,8 @@ AlgebraicMultigrid = "0.5, 0.6, 1" ArrayInterface = "6, 7" BenchmarkTools = "1" BracketingNonlinearSolve = "1" -DiffEqBase = "6.158.3" -DifferentiationInterface = "0.7" +DiffEqBase = "6.188" +DifferentiationInterface = "0.7.3" Documenter = "1" DocumenterCitations = "1" DocumenterInterLinks = "1.0.0" @@ -67,11 +67,11 @@ NonlinearSolveHomotopyContinuation = "0.1" NonlinearSolveQuasiNewton = "1" NonlinearSolveSciPy = "1" NonlinearSolveSpectralMethods = "1" -OrdinaryDiffEqTsit5 = "1.1.0" +OrdinaryDiffEqTsit5 = "1.5" PETSc = "0.3" Plots = "1" Random = "1.10" -SciMLBase = "2.69" +SciMLBase = "2.116" SciMLJacobianOperators = "0.1" SimpleNonlinearSolve = "2" SparseConnectivityTracer = "0.6.5, 1" diff --git a/lib/NonlinearSolveBase/Project.toml b/lib/NonlinearSolveBase/Project.toml index 233d2e5ba..197206db4 100644 --- a/lib/NonlinearSolveBase/Project.toml +++ b/lib/NonlinearSolveBase/Project.toml @@ -53,8 +53,8 @@ BandedMatrices = "1.5" CommonSolve = "0.2.4" Compat = "4.15" ConcreteStructs = "0.2.3" -DiffEqBase = "6.158.3" -DifferentiationInterface = "0.7" +DiffEqBase = "6.188" +DifferentiationInterface = "0.7.3" EnzymeCore = "0.8" ExplicitImports = "1.10.1" FastClosures = "0.3" diff --git a/lib/NonlinearSolveFirstOrder/Project.toml b/lib/NonlinearSolveFirstOrder/Project.toml index de15ab1bc..244e34b0b 100644 --- a/lib/NonlinearSolveFirstOrder/Project.toml +++ b/lib/NonlinearSolveFirstOrder/Project.toml @@ -35,7 +35,7 @@ BandedMatrices = "1.7.5" BenchmarkTools = "1.5.0" CommonSolve = "0.2.4" ConcreteStructs = "0.2.3" -DiffEqBase = "6.158.3" +DiffEqBase = "6.188" Enzyme = "0.13.12" ExplicitImports = "1.5" FiniteDiff = "2.24" @@ -54,7 +54,7 @@ PrecompileTools = "1.2" Random = "1.10" ReTestItems = "1.24" Reexport = "1.2.2" -SciMLBase = "2.69" +SciMLBase = "2.116" SciMLJacobianOperators = "0.1.0" Setfield = "1.1.1" SparseArrays = "1.10" diff --git a/lib/NonlinearSolveHomotopyContinuation/Project.toml b/lib/NonlinearSolveHomotopyContinuation/Project.toml index 13305ddd2..f011bb485 100644 --- a/lib/NonlinearSolveHomotopyContinuation/Project.toml +++ b/lib/NonlinearSolveHomotopyContinuation/Project.toml @@ -24,7 +24,7 @@ ADTypes = "1.11.0" Aqua = "0.8" CommonSolve = "0.2.4" ConcreteStructs = "0.2.3" -DifferentiationInterface = "0.7" +DifferentiationInterface = "0.7.3" DocStringExtensions = "0.9.3" Enzyme = "0.13" HomotopyContinuation = "2.12.0" diff --git a/lib/NonlinearSolveQuasiNewton/Project.toml b/lib/NonlinearSolveQuasiNewton/Project.toml index b5ade36d3..7a6194560 100644 --- a/lib/NonlinearSolveQuasiNewton/Project.toml +++ b/lib/NonlinearSolveQuasiNewton/Project.toml @@ -34,7 +34,7 @@ ArrayInterface = "7.16.0" BenchmarkTools = "1.5.0" CommonSolve = "0.2.4" ConcreteStructs = "0.2.3" -DiffEqBase = "6.158.3" +DiffEqBase = "6.188" Enzyme = "0.13.12" ExplicitImports = "1.5" FiniteDiff = "2.24" @@ -52,7 +52,7 @@ Pkg = "1.10" PrecompileTools = "1.2" ReTestItems = "1.24" Reexport = "1.2.2" -SciMLBase = "2.69" +SciMLBase = "2.116" SciMLOperators = "1.7" StableRNGs = "1" StaticArrays = "1.9.8" diff --git a/lib/NonlinearSolveSciPy/Project.toml b/lib/NonlinearSolveSciPy/Project.toml index ec97b3911..2745b8006 100644 --- a/lib/NonlinearSolveSciPy/Project.toml +++ b/lib/NonlinearSolveSciPy/Project.toml @@ -23,7 +23,7 @@ PrecompileTools = "1.2" PythonCall = "0.9" ReTestItems = "1.24" Reexport = "1.2.2" -SciMLBase = "2.69" +SciMLBase = "2.116" Test = "1.10" julia = "1.10" diff --git a/lib/NonlinearSolveSpectralMethods/Project.toml b/lib/NonlinearSolveSpectralMethods/Project.toml index 3232941bf..f4e17f1bc 100644 --- a/lib/NonlinearSolveSpectralMethods/Project.toml +++ b/lib/NonlinearSolveSpectralMethods/Project.toml @@ -28,7 +28,7 @@ Aqua = "0.8" BenchmarkTools = "1.5.0" CommonSolve = "0.2.4" ConcreteStructs = "0.2.3" -DiffEqBase = "6.158.3" +DiffEqBase = "6.188" ExplicitImports = "1.5" ForwardDiff = "0.10.36, 1" Hwloc = "3" @@ -41,7 +41,7 @@ Pkg = "1.10" PrecompileTools = "1.2" ReTestItems = "1.24" Reexport = "1.2.2" -SciMLBase = "2.69" +SciMLBase = "2.116" StableRNGs = "1" StaticArrays = "1.9.8" Test = "1.10" diff --git a/lib/SCCNonlinearSolve/Project.toml b/lib/SCCNonlinearSolve/Project.toml index 26ed1b04c..4c9a10b31 100644 --- a/lib/SCCNonlinearSolve/Project.toml +++ b/lib/SCCNonlinearSolve/Project.toml @@ -25,7 +25,7 @@ Pkg = "1.10" PrecompileTools = "1.2" ReTestItems = "1.24" Reexport = "1.2.2" -SciMLBase = "2.69" +SciMLBase = "2.116" StableRNGs = "1" StaticArrays = "1.9.8" SymbolicIndexingInterface = "0.3.36" diff --git a/lib/SciMLJacobianOperators/Project.toml b/lib/SciMLJacobianOperators/Project.toml index 07cd086d4..f2ccc0da3 100644 --- a/lib/SciMLJacobianOperators/Project.toml +++ b/lib/SciMLJacobianOperators/Project.toml @@ -20,7 +20,7 @@ Aqua = "0.8.7" ArrayInterface = "7.16" ConcreteStructs = "0.2.3" ConstructionBase = "1.5" -DifferentiationInterface = "0.7" +DifferentiationInterface = "0.7.3" Enzyme = "0.13.11" ExplicitImports = "1.9.0" FastClosures = "0.3.2" @@ -29,7 +29,7 @@ ForwardDiff = "0.10.36, 1" InteractiveUtils = "<0.0.1, 1" LinearAlgebra = "1.10" ReverseDiff = "1.15" -SciMLBase = "2.69" +SciMLBase = "2.116" SciMLOperators = "1.7" Test = "1.10" TestItemRunner = "1" diff --git a/lib/SimpleNonlinearSolve/Project.toml b/lib/SimpleNonlinearSolve/Project.toml index 6f55b87bd..e73fbfc42 100644 --- a/lib/SimpleNonlinearSolve/Project.toml +++ b/lib/SimpleNonlinearSolve/Project.toml @@ -49,8 +49,8 @@ BracketingNonlinearSolve = "1.1" ChainRulesCore = "1.24" CommonSolve = "0.2.4" ConcreteStructs = "0.2.3" -DiffEqBase = "6.158.3" -DifferentiationInterface = "0.7" +DiffEqBase = "6.188" +DifferentiationInterface = "0.7.3" Enzyme = "0.13.11" ExplicitImports = "1.9" FastClosures = "0.3.2" @@ -68,7 +68,7 @@ PrecompileTools = "1.2" Random = "1.10" Reexport = "1.2.2" ReverseDiff = "1.15" -SciMLBase = "2.69" +SciMLBase = "2.116" Setfield = "1.1.1" StaticArrays = "1.9" StaticArraysCore = "1.4.3" From 2384fc35b6b2ca949b4bf9fbe2af56fe065eca1f Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 19:18:49 -0400 Subject: [PATCH 22/30] fix: nonlinearsolve test fixes --- test/23_test_problems_tests.jl | 4 ++-- test/qa_tests.jl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/23_test_problems_tests.jl b/test/23_test_problems_tests.jl index ac0d5897d..30dfa66aa 100644 --- a/test/23_test_problems_tests.jl +++ b/test/23_test_problems_tests.jl @@ -154,8 +154,8 @@ end broken_tests[alg_ops[5]]=[1, 5, 11] end else - broken_tests[alg_ops[1]]=[1, 5, 11, 15] - broken_tests[alg_ops[3]]=[1, 5, 6, 9, 11, 16] + broken_tests[alg_ops[1]]=[1, 5, 11] + broken_tests[alg_ops[3]]=[1, 5, 6, 9, 11] broken_tests[alg_ops[5]]=[1, 5, 11] end diff --git a/test/qa_tests.jl b/test/qa_tests.jl index 7dce47324..a23d24513 100644 --- a/test/qa_tests.jl +++ b/test/qa_tests.jl @@ -2,7 +2,7 @@ using NonlinearSolve, SimpleNonlinearSolve, Aqua Aqua.test_all(NonlinearSolve; ambiguities = false, piracies = false, - stale_deps = false, deps_compat = false) + stale_deps = false, deps_compat = false, persistent_tasks = false) Aqua.test_ambiguities(NonlinearSolve; recursive = false) Aqua.test_stale_deps(SimpleNonlinearSolve; ignore = [:SciMLJacobianOperators]) Aqua.test_deps_compat(SimpleNonlinearSolve; ignore = [:SciMLJacobianOperators]) From d2dadc42fc1f427e989c7c9c67de670cc6bee13c Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 19:32:33 -0400 Subject: [PATCH 23/30] fix: first order tests --- Project.toml | 2 +- docs/Project.toml | 2 +- lib/NonlinearSolveFirstOrder/Project.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Project.toml b/Project.toml index 657241bc1..5a75e6126 100644 --- a/Project.toml +++ b/Project.toml @@ -121,7 +121,7 @@ SIAMFANLEquations = "1.0.1" SciMLBase = "2.116" SimpleNonlinearSolve = "2.1" SparseArrays = "1.10" -SparseConnectivityTracer = "0.6.5, 1" +SparseConnectivityTracer = "1" SparseMatrixColorings = "0.4.5" SpeedMapping = "0.3" StableRNGs = "1" diff --git a/docs/Project.toml b/docs/Project.toml index 1668c04d3..81af11dc5 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -74,7 +74,7 @@ Random = "1.10" SciMLBase = "2.116" SciMLJacobianOperators = "0.1" SimpleNonlinearSolve = "2" -SparseConnectivityTracer = "0.6.5, 1" +SparseConnectivityTracer = "1" StaticArrays = "1" SteadyStateDiffEq = "2" Sundials = "4.11" diff --git a/lib/NonlinearSolveFirstOrder/Project.toml b/lib/NonlinearSolveFirstOrder/Project.toml index 244e34b0b..4c1ac0bff 100644 --- a/lib/NonlinearSolveFirstOrder/Project.toml +++ b/lib/NonlinearSolveFirstOrder/Project.toml @@ -58,7 +58,7 @@ SciMLBase = "2.116" SciMLJacobianOperators = "0.1.0" Setfield = "1.1.1" SparseArrays = "1.10" -SparseConnectivityTracer = "0.6.8" +SparseConnectivityTracer = "1" SparseMatrixColorings = "0.4.5" StableRNGs = "1" StaticArrays = "1.9.8" From 5d68f63e24c78a0d0ba28d88b58234755c34b120 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 19:44:28 -0400 Subject: [PATCH 24/30] fix: more compat fixes --- lib/NonlinearSolveBase/Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/NonlinearSolveBase/Project.toml b/lib/NonlinearSolveBase/Project.toml index 197206db4..cf1b2b2b5 100644 --- a/lib/NonlinearSolveBase/Project.toml +++ b/lib/NonlinearSolveBase/Project.toml @@ -68,7 +68,7 @@ MaybeInplace = "0.1.4" Preferences = "1.4" Printf = "1.10" RecursiveArrayTools = "3" -SciMLBase = "2.92" +SciMLBase = "2.116" SciMLJacobianOperators = "0.1.1" SciMLOperators = "1.7" SparseArrays = "1.10" From 38a8c10c5c1c4f72a09e4e9a9cea50fedc7fa532 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 19:49:04 -0400 Subject: [PATCH 25/30] fix: missing sources --- .../workflows/CI_BracketingNonlinearSolve.yml | 1 - .github/workflows/CI_NonlinearSolve.yml | 1 - .github/workflows/CI_NonlinearSolveBase.yml | 1 - .../workflows/CI_NonlinearSolveFirstOrder.yml | 33 +++++++++---------- .../CI_NonlinearSolveHomotopyContinuation.yml | 1 - .../CI_NonlinearSolveQuasiNewton.yml | 1 - .github/workflows/CI_NonlinearSolveSciPy.yml | 1 - .../CI_NonlinearSolveSpectralMethods.yml | 1 - .github/workflows/CI_SCCNonlinearSolve.yml | 3 +- .github/workflows/CI_SimpleNonlinearSolve.yml | 1 - lib/NonlinearSolveFirstOrder/Project.toml | 4 ++- lib/SCCNonlinearSolve/Project.toml | 4 +++ 12 files changed, 24 insertions(+), 28 deletions(-) diff --git a/.github/workflows/CI_BracketingNonlinearSolve.yml b/.github/workflows/CI_BracketingNonlinearSolve.yml index 53d928908..57cfd2daf 100644 --- a/.github/workflows/CI_BracketingNonlinearSolve.yml +++ b/.github/workflows/CI_BracketingNonlinearSolve.yml @@ -41,4 +41,3 @@ jobs: julia_version: "1.11" project: "lib/BracketingNonlinearSolve" downgrade_testing: true - local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" diff --git a/.github/workflows/CI_NonlinearSolve.yml b/.github/workflows/CI_NonlinearSolve.yml index 277a53256..aeee30f84 100644 --- a/.github/workflows/CI_NonlinearSolve.yml +++ b/.github/workflows/CI_NonlinearSolve.yml @@ -70,5 +70,4 @@ jobs: project: "." julia_version: "1.11" downgrade_testing: true - local_dependencies: "lib/BracketingNonlinearSolve,lib/NonlinearSolveBase,lib/NonlinearSolveFirstOrder,lib/NonlinearSolveQuasiNewton,lib/NonlinearSolveSpectralMethods,lib/SimpleNonlinearSolve" test_args: "GROUP=${{ matrix.group }}" diff --git a/.github/workflows/CI_NonlinearSolveBase.yml b/.github/workflows/CI_NonlinearSolveBase.yml index 0ad5db8a0..456f981f9 100644 --- a/.github/workflows/CI_NonlinearSolveBase.yml +++ b/.github/workflows/CI_NonlinearSolveBase.yml @@ -40,4 +40,3 @@ jobs: julia_version: "1.11" project: "lib/NonlinearSolveBase" downgrade_testing: true - local_dependencies: "lib/SciMLJacobianOperators" diff --git a/.github/workflows/CI_NonlinearSolveFirstOrder.yml b/.github/workflows/CI_NonlinearSolveFirstOrder.yml index 2c5cceea3..4f75fd562 100644 --- a/.github/workflows/CI_NonlinearSolveFirstOrder.yml +++ b/.github/workflows/CI_NonlinearSolveFirstOrder.yml @@ -18,22 +18,22 @@ concurrency: cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} jobs: - test: - strategy: - fail-fast: false - matrix: - version: - - "1.10" - - "1" - os: - - ubuntu-latest - - macos-latest - uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main - with: - julia_version: ${{ matrix.version }} - os: ${{ matrix.os }} - project: "lib/NonlinearSolveFirstOrder" - local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" + # test: + # strategy: + # fail-fast: false + # matrix: + # version: + # - "1.10" + # - "1" + # os: + # - ubuntu-latest + # - macos-latest + # uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + # with: + # julia_version: ${{ matrix.version }} + # os: ${{ matrix.os }} + # project: "lib/NonlinearSolveFirstOrder" + # local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" downgrade: uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main @@ -41,4 +41,3 @@ jobs: julia_version: "1.11" project: "lib/NonlinearSolveFirstOrder" downgrade_testing: true - local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" diff --git a/.github/workflows/CI_NonlinearSolveHomotopyContinuation.yml b/.github/workflows/CI_NonlinearSolveHomotopyContinuation.yml index 9817e2f5c..ccf650c7d 100644 --- a/.github/workflows/CI_NonlinearSolveHomotopyContinuation.yml +++ b/.github/workflows/CI_NonlinearSolveHomotopyContinuation.yml @@ -40,4 +40,3 @@ jobs: julia_version: "1.11" project: "lib/NonlinearSolveHomotopyContinuation" downgrade_testing: true - local_dependencies: "lib/NonlinearSolveBase" diff --git a/.github/workflows/CI_NonlinearSolveQuasiNewton.yml b/.github/workflows/CI_NonlinearSolveQuasiNewton.yml index aa8018dc5..cf6a2038b 100644 --- a/.github/workflows/CI_NonlinearSolveQuasiNewton.yml +++ b/.github/workflows/CI_NonlinearSolveQuasiNewton.yml @@ -41,4 +41,3 @@ jobs: julia_version: "1.11" project: "lib/NonlinearSolveQuasiNewton" downgrade_testing: true - local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" diff --git a/.github/workflows/CI_NonlinearSolveSciPy.yml b/.github/workflows/CI_NonlinearSolveSciPy.yml index f94d777fd..6882d4fd9 100644 --- a/.github/workflows/CI_NonlinearSolveSciPy.yml +++ b/.github/workflows/CI_NonlinearSolveSciPy.yml @@ -40,4 +40,3 @@ jobs: julia_version: "1.11" project: "lib/NonlinearSolveSciPy" downgrade_testing: true - local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" diff --git a/.github/workflows/CI_NonlinearSolveSpectralMethods.yml b/.github/workflows/CI_NonlinearSolveSpectralMethods.yml index 67d848026..33180d05a 100644 --- a/.github/workflows/CI_NonlinearSolveSpectralMethods.yml +++ b/.github/workflows/CI_NonlinearSolveSpectralMethods.yml @@ -41,4 +41,3 @@ jobs: julia_version: "1.11" project: "lib/NonlinearSolveSpectralMethods" downgrade_testing: true - local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" diff --git a/.github/workflows/CI_SCCNonlinearSolve.yml b/.github/workflows/CI_SCCNonlinearSolve.yml index 8a35accf5..91868e87c 100644 --- a/.github/workflows/CI_SCCNonlinearSolve.yml +++ b/.github/workflows/CI_SCCNonlinearSolve.yml @@ -33,7 +33,7 @@ jobs: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} project: "lib/SCCNonlinearSolve" - local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" + local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators,lib/NonlinearSolveFirstOrder" downgrade: uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main @@ -41,4 +41,3 @@ jobs: julia_version: "1.11" project: "lib/SCCNonlinearSolve" downgrade_testing: true - local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" diff --git a/.github/workflows/CI_SimpleNonlinearSolve.yml b/.github/workflows/CI_SimpleNonlinearSolve.yml index a622a8247..72c0b3d5c 100644 --- a/.github/workflows/CI_SimpleNonlinearSolve.yml +++ b/.github/workflows/CI_SimpleNonlinearSolve.yml @@ -54,5 +54,4 @@ jobs: julia_version: "1.11" project: "lib/SimpleNonlinearSolve" downgrade_testing: true - local_dependencies: "lib/BracketingNonlinearSolve,lib/NonlinearSolveBase,lib/SciMLJacobianOperators" test_args: "GROUP=${{ matrix.group }}" diff --git a/lib/NonlinearSolveFirstOrder/Project.toml b/lib/NonlinearSolveFirstOrder/Project.toml index 4c1ac0bff..2199f97f9 100644 --- a/lib/NonlinearSolveFirstOrder/Project.toml +++ b/lib/NonlinearSolveFirstOrder/Project.toml @@ -35,6 +35,7 @@ BandedMatrices = "1.7.5" BenchmarkTools = "1.5.0" CommonSolve = "0.2.4" ConcreteStructs = "0.2.3" +DifferentiationInterface = "0.7.3" DiffEqBase = "6.188" Enzyme = "0.13.12" ExplicitImports = "1.5" @@ -71,6 +72,7 @@ julia = "1.10" Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" BandedMatrices = "aae01518-5342-5314-be14-df237901396f" BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" +DifferentiationInterface = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" ExplicitImports = "7d51a73a-1435-4ff3-83d9-f097790105c7" @@ -91,4 +93,4 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [targets] -test = ["Aqua", "BandedMatrices", "BenchmarkTools", "ForwardDiff", "Enzyme", "ExplicitImports", "Hwloc", "InteractiveUtils", "LineSearch", "LineSearches", "NonlinearProblemLibrary", "Pkg", "Random", "ReTestItems", "SparseArrays", "SparseConnectivityTracer", "SparseMatrixColorings", "StableRNGs", "StaticArrays", "Test", "Zygote"] +test = ["Aqua", "BandedMatrices", "BenchmarkTools", "DifferentiationInterface", "ForwardDiff", "Enzyme", "ExplicitImports", "Hwloc", "InteractiveUtils", "LineSearch", "LineSearches", "NonlinearProblemLibrary", "Pkg", "Random", "ReTestItems", "SparseArrays", "SparseConnectivityTracer", "SparseMatrixColorings", "StableRNGs", "StaticArrays", "Test", "Zygote"] diff --git a/lib/SCCNonlinearSolve/Project.toml b/lib/SCCNonlinearSolve/Project.toml index 4c9a10b31..f73735d55 100644 --- a/lib/SCCNonlinearSolve/Project.toml +++ b/lib/SCCNonlinearSolve/Project.toml @@ -32,6 +32,10 @@ SymbolicIndexingInterface = "0.3.36" Test = "1.10" julia = "1.10" +[sources] +NonlinearSolveBase = {path = "../NonlinearSolveBase"} +NonlinearSolveFirstOrder = {path = "../NonlinearSolveFirstOrder"} + [extras] Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" From c15e8f604145d27b3267f156f2aa732ff7ec944b Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 20:42:24 -0400 Subject: [PATCH 26/30] ci: fix --- .../workflows/CI_NonlinearSolveFirstOrder.yml | 32 +++++++++---------- .github/workflows/CI_SCCNonlinearSolve.yml | 2 +- Project.toml | 2 +- lib/NonlinearSolveBase/Project.toml | 2 +- lib/SCCNonlinearSolve/Project.toml | 2 +- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/CI_NonlinearSolveFirstOrder.yml b/.github/workflows/CI_NonlinearSolveFirstOrder.yml index 4f75fd562..27bc96312 100644 --- a/.github/workflows/CI_NonlinearSolveFirstOrder.yml +++ b/.github/workflows/CI_NonlinearSolveFirstOrder.yml @@ -18,22 +18,22 @@ concurrency: cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} jobs: - # test: - # strategy: - # fail-fast: false - # matrix: - # version: - # - "1.10" - # - "1" - # os: - # - ubuntu-latest - # - macos-latest - # uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main - # with: - # julia_version: ${{ matrix.version }} - # os: ${{ matrix.os }} - # project: "lib/NonlinearSolveFirstOrder" - # local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" + test: + strategy: + fail-fast: false + matrix: + version: + - "1.10" + - "1" + os: + - ubuntu-latest + - macos-latest + uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main + with: + julia_version: ${{ matrix.version }} + os: ${{ matrix.os }} + project: "lib/NonlinearSolveFirstOrder" + local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" downgrade: uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main diff --git a/.github/workflows/CI_SCCNonlinearSolve.yml b/.github/workflows/CI_SCCNonlinearSolve.yml index 91868e87c..2ec76b2fc 100644 --- a/.github/workflows/CI_SCCNonlinearSolve.yml +++ b/.github/workflows/CI_SCCNonlinearSolve.yml @@ -23,7 +23,7 @@ jobs: fail-fast: false matrix: version: - - "1.10" + - "lts" - "1" os: - ubuntu-latest diff --git a/Project.toml b/Project.toml index 5a75e6126..453e7a379 100644 --- a/Project.toml +++ b/Project.toml @@ -128,7 +128,7 @@ StableRNGs = "1" StaticArrays = "1.9" StaticArraysCore = "1.4" Sundials = "4.23.1" -SymbolicIndexingInterface = "0.3.36" +SymbolicIndexingInterface = "0.3.43" Test = "1.10" Zygote = "0.6.69, 0.7" julia = "1.10" diff --git a/lib/NonlinearSolveBase/Project.toml b/lib/NonlinearSolveBase/Project.toml index cf1b2b2b5..024ebdfff 100644 --- a/lib/NonlinearSolveBase/Project.toml +++ b/lib/NonlinearSolveBase/Project.toml @@ -74,7 +74,7 @@ SciMLOperators = "1.7" SparseArrays = "1.10" SparseMatrixColorings = "0.4.5" StaticArraysCore = "1.4" -SymbolicIndexingInterface = "0.3.39" +SymbolicIndexingInterface = "0.3.43" Test = "1.10" TimerOutputs = "0.5.23" julia = "1.10" diff --git a/lib/SCCNonlinearSolve/Project.toml b/lib/SCCNonlinearSolve/Project.toml index f73735d55..d08b959d5 100644 --- a/lib/SCCNonlinearSolve/Project.toml +++ b/lib/SCCNonlinearSolve/Project.toml @@ -28,7 +28,7 @@ Reexport = "1.2.2" SciMLBase = "2.116" StableRNGs = "1" StaticArrays = "1.9.8" -SymbolicIndexingInterface = "0.3.36" +SymbolicIndexingInterface = "0.3.43" Test = "1.10" julia = "1.10" From fa4dfd6a92bf670b7aa6d596328336ccfc559f8a Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 20:49:39 -0400 Subject: [PATCH 27/30] ci: fix --- .github/workflows/CI_SCCNonlinearSolve.yml | 2 +- Project.toml | 2 +- lib/NonlinearSolveBase/Project.toml | 2 +- lib/NonlinearSolveFirstOrder/Project.toml | 2 +- lib/SCCNonlinearSolve/Project.toml | 2 +- lib/SciMLJacobianOperators/Project.toml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/CI_SCCNonlinearSolve.yml b/.github/workflows/CI_SCCNonlinearSolve.yml index 2ec76b2fc..7b2b6b79f 100644 --- a/.github/workflows/CI_SCCNonlinearSolve.yml +++ b/.github/workflows/CI_SCCNonlinearSolve.yml @@ -33,7 +33,7 @@ jobs: julia_version: ${{ matrix.version }} os: ${{ matrix.os }} project: "lib/SCCNonlinearSolve" - local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators,lib/NonlinearSolveFirstOrder" + local_dependencies: "lib/NonlinearSolveBase,lib/SciMLJacobianOperators" downgrade: uses: LuxDL/Lux.jl/.github/workflows/CommonCI.yml@main diff --git a/Project.toml b/Project.toml index 453e7a379..90c87d393 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "NonlinearSolve" uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" authors = ["SciML"] -version = "4.10.0" +version = "4.10.1" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" diff --git a/lib/NonlinearSolveBase/Project.toml b/lib/NonlinearSolveBase/Project.toml index 024ebdfff..da80f2ec4 100644 --- a/lib/NonlinearSolveBase/Project.toml +++ b/lib/NonlinearSolveBase/Project.toml @@ -1,7 +1,7 @@ name = "NonlinearSolveBase" uuid = "be0214bd-f91f-a760-ac4e-3421ce2b2da0" authors = ["Avik Pal and contributors"] -version = "1.14.2" +version = "1.14.1" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" diff --git a/lib/NonlinearSolveFirstOrder/Project.toml b/lib/NonlinearSolveFirstOrder/Project.toml index 2199f97f9..37e5bd1ba 100644 --- a/lib/NonlinearSolveFirstOrder/Project.toml +++ b/lib/NonlinearSolveFirstOrder/Project.toml @@ -1,7 +1,7 @@ name = "NonlinearSolveFirstOrder" uuid = "5959db7a-ea39-4486-b5fe-2dd0bf03d60d" authors = ["Avik Pal and contributors"] -version = "1.8.0" +version = "1.8.1" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" diff --git a/lib/SCCNonlinearSolve/Project.toml b/lib/SCCNonlinearSolve/Project.toml index d08b959d5..1d39e5fed 100644 --- a/lib/SCCNonlinearSolve/Project.toml +++ b/lib/SCCNonlinearSolve/Project.toml @@ -1,7 +1,7 @@ name = "SCCNonlinearSolve" uuid = "9dfe8606-65a1-4bb3-9748-cb89d1561431" authors = ["Avik Pal and contributors"] -version = "1.4.0" +version = "1.4.1" [deps] CommonSolve = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" diff --git a/lib/SciMLJacobianOperators/Project.toml b/lib/SciMLJacobianOperators/Project.toml index f2ccc0da3..eb3ffa5dd 100644 --- a/lib/SciMLJacobianOperators/Project.toml +++ b/lib/SciMLJacobianOperators/Project.toml @@ -1,7 +1,7 @@ name = "SciMLJacobianOperators" uuid = "19f34311-ddf3-4b8b-af20-060888a46c0e" authors = ["Avik Pal and contributors"] -version = "0.1.11" +version = "0.1.12" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" From 1dfd7b7f8020b5ad40793dfb1af772fb3677156c Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 20:57:40 -0400 Subject: [PATCH 28/30] ci(buildkite): use sources --- .buildkite/pipeline.yml | 29 ++++------------------------- 1 file changed, 4 insertions(+), 25 deletions(-) diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index b74c820cc..9b5eb7c67 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -3,23 +3,13 @@ steps: plugins: - JuliaCI/julia#v1: version: "1" + - JuliaCI/julia-test#v1: + test_args: "GROUP=cuda" - JuliaCI/julia-coverage#v1: codecov: true dirs: - src - ext - command: | - julia --color=yes --code-coverage=user --depwarn=yes --project=. -e ' - import Pkg; - Pkg.Registry.update(); - # Install packages present in subdirectories - dev_pks = Pkg.PackageSpec[]; - for path in ("lib/SciMLJacobianOperators", "lib/BracketingNonlinearSolve", "lib/NonlinearSolveBase", "lib/SimpleNonlinearSolve", "lib/NonlinearSolveFirstOrder", "lib/NonlinearSolveSpectralMethods", "lib/NonlinearSolveQuasiNewton") - push!(dev_pks, Pkg.PackageSpec(; path)); - end - Pkg.develop(dev_pks); - Pkg.instantiate(); - Pkg.test(; coverage="user")' agents: queue: "juliagpu" cuda: "*" @@ -31,23 +21,13 @@ steps: plugins: - JuliaCI/julia#v1: version: "1" + - JuliaCI/julia-test#v1: + test_args: "GROUP=cuda" - JuliaCI/julia-coverage#v1: codecov: true dirs: - src - ext - command: | - julia --color=yes --code-coverage=user --depwarn=yes --project=lib/SimpleNonlinearSolve -e ' - import Pkg; - Pkg.Registry.update(); - # Install packages present in subdirectories - dev_pks = Pkg.PackageSpec[]; - for path in ("lib/NonlinearSolveBase", "lib/BracketingNonlinearSolve", "lib/SciMLJacobianOperators") - push!(dev_pks, Pkg.PackageSpec(; path)) - end - Pkg.develop(dev_pks); - Pkg.instantiate(); - Pkg.test(; coverage="user")' agents: queue: "juliagpu" cuda: "*" @@ -56,6 +36,5 @@ steps: if: build.message !~ /\[skip tests\]/ env: - GROUP: CUDA JULIA_PKG_SERVER: "" # it often struggles with our large artifacts SECRET_CODECOV_TOKEN: "HC7K/ymhi62KUQ5OLU4DOl+11gaQt4JhXX/2nfTGlTsBB8mEMxQ8R+sHIp/2HjEup5eSXAN2IWQDQ7RDBuQvVp0T1UVtr2e4YNZFztKnsJXrFO15hXxYShJodI//X/8DzhlQd/lyTDOAOJu3eznsc3sC2CUgJzXZxLUtQN9YaZ1i3a+NoN1mO5UpkkHVhXigwF5gjy+0tei8fCdcP+SIhG0EanS5yd9q/SurtCpMHsHyUG97+ZVPglSKgdaqr31+PdmiPJ+ynp4+Hnc/esosxUSHSIL+ryRTO+28RNwPTiNf99J51RJLQmz1knWTR1ky6tiYIZ5218O6wvNil0SqNw==;U2FsdGVkX18nBY3t4LZYlEIz3EVKjpqCd994JNeJGt006up+sAjXEssI0tgCVXnfXsenVsP3NCCEoOS1GXc44g==" From b0c65faee9b2190007cdf614b6b4080e66edd5c6 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 21:19:06 -0400 Subject: [PATCH 29/30] fix: simple nonlinear solve working in kernels again --- lib/NonlinearSolveBase/src/initialization.jl | 12 +++++------- lib/SimpleNonlinearSolve/src/SimpleNonlinearSolve.jl | 5 +++-- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/lib/NonlinearSolveBase/src/initialization.jl b/lib/NonlinearSolveBase/src/initialization.jl index a476eae9b..ac126f01d 100644 --- a/lib/NonlinearSolveBase/src/initialization.jl +++ b/lib/NonlinearSolveBase/src/initialization.jl @@ -1,11 +1,10 @@ struct NonlinearSolveDefaultInit <: SciMLBase.DAEInitializationAlgorithm end function run_initialization!(cache, initializealg = cache.initializealg, prob = cache.prob) - _run_initialization!(cache, initializealg, prob, Val(SciMLBase.isinplace(cache))) + _run_initialization!(cache, initializealg, prob, SciMLBase.isinplace(cache)) end -function _run_initialization!( - cache, ::NonlinearSolveDefaultInit, prob, isinplace::Union{Val{true}, Val{false}}) +function _run_initialization!(cache, ::NonlinearSolveDefaultInit, prob, isinplace::Bool) if SciMLBase.has_initialization_data(prob.f) && prob.f.initialization_data isa SciMLBase.OverrideInitData return _run_initialization!(cache, SciMLBase.OverrideInit(), prob, isinplace) @@ -14,7 +13,7 @@ function _run_initialization!( end function _run_initialization!(cache, initalg::SciMLBase.OverrideInit, prob, - isinplace::Union{Val{true}, Val{false}}) + isinplace::Bool) if cache isa AbstractNonlinearSolveCache && isdefined(cache.alg, :autodiff) autodiff = cache.alg.autodiff else @@ -24,9 +23,8 @@ function _run_initialization!(cache, initalg::SciMLBase.OverrideInit, prob, if alg === nothing && cache isa AbstractNonlinearSolveCache alg = cache.alg end - u0, p, - success = SciMLBase.get_initial_values( - prob, cache, prob.f, initalg, isinplace; nlsolve_alg = alg, + u0, p, success = SciMLBase.get_initial_values( + prob, cache, prob.f, initalg, Val(isinplace); nlsolve_alg = alg, abstol = get_abstol(cache), reltol = get_reltol(cache)) cache = update_initial_values!(cache, u0, p) if cache isa AbstractNonlinearSolveCache && isdefined(cache, :retcode) && !success diff --git a/lib/SimpleNonlinearSolve/src/SimpleNonlinearSolve.jl b/lib/SimpleNonlinearSolve/src/SimpleNonlinearSolve.jl index 1908a1131..7a8c5a308 100644 --- a/lib/SimpleNonlinearSolve/src/SimpleNonlinearSolve.jl +++ b/lib/SimpleNonlinearSolve/src/SimpleNonlinearSolve.jl @@ -92,10 +92,11 @@ end function CommonSolve.solve( prob::Union{ImmutableNonlinearProblem, NonlinearLeastSquaresProblem}, alg::AbstractSimpleNonlinearSolveAlgorithm, - args...; sensealg = nothing, u0 = nothing, p = nothing, kwargs... + args...; sensealg = nothing, u0 = nothing, p = nothing, + initializealg = SciMLBase.NoInit(), kwargs... ) alg = configure_autodiff(prob, alg) - cache = SciMLBase.__init(prob, alg, args...; kwargs...) + cache = SciMLBase.__init(prob, alg, args...; initializealg, kwargs...) prob = cache.prob if cache.retcode == ReturnCode.InitialFailure return SciMLBase.build_solution(prob, alg, prob.u0, From defd61f3b9d3d6cbbf2e27d13aac18d4597b969a Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 5 Sep 2025 21:40:07 -0400 Subject: [PATCH 30/30] ci: fix group for BVPs --- .github/workflows/Downstream.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Downstream.yml b/.github/workflows/Downstream.yml index 75d9b4507..d520a9516 100644 --- a/.github/workflows/Downstream.yml +++ b/.github/workflows/Downstream.yml @@ -26,7 +26,7 @@ jobs: - {user: SciML, repo: ModelingToolkit.jl, group: Initialization} - {user: SciML, repo: OrdinaryDiffEq.jl, group: Interface} - {user: SciML, repo: OrdinaryDiffEq.jl, group: Regression} - - {user: SciML, repo: BoundaryValueDiffEq.jl, group: ModelingToolkit} + - {user: SciML, repo: BoundaryValueDiffEq.jl, group: All} - {user: SciML, repo: DiffEqCallbacks.jl, group: Core} steps: - uses: actions/checkout@v4