From b874c02398e3104b143e397728e2687419399376 Mon Sep 17 00:00:00 2001 From: Guillaume Dalle <22795598+gdalle@users.noreply.github.com> Date: Mon, 27 Apr 2026 15:41:28 +0200 Subject: [PATCH 1/5] fix: make DI compatible with latest Mooncake friendly tangents --- .github/workflows/Test.yml | 61 +++++++++---------- .../DifferentiationInterfaceMooncakeExt.jl | 5 +- .../utils.jl | 11 +++- .../test/Back/Mooncake-old/Project.toml | 13 ++++ .../test/Back/Mooncake-old/test.jl | 1 + .../test/Back/Mooncake/Project.toml | 3 + 6 files changed, 58 insertions(+), 36 deletions(-) create mode 100644 DifferentiationInterface/test/Back/Mooncake-old/Project.toml create mode 120000 DifferentiationInterface/test/Back/Mooncake-old/test.jl diff --git a/.github/workflows/Test.yml b/.github/workflows/Test.yml index 57d060829..76e2d7c7d 100644 --- a/.github/workflows/Test.yml +++ b/.github/workflows/Test.yml @@ -4,9 +4,9 @@ on: push: branches: - main - tags: ['*'] + tags: [ '*' ] pull_request: - types: [opened, reopened, synchronize, ready_for_review] + types: [ opened, reopened, synchronize, ready_for_review ] workflow_dispatch: concurrency: @@ -21,7 +21,8 @@ jobs: runs-on: ubuntu-latest if: ${{ !contains(github.event.pull_request.labels.*.name, 'skipci') }} timeout-minutes: 180 - permissions: # needed to allow julia-actions/cache to proactively delete old caches that it has created + permissions: + # needed to allow julia-actions/cache to proactively delete old caches that it has created actions: write contents: read strategy: @@ -56,22 +57,15 @@ jobs: arch: x64 - uses: julia-actions/cache@v3 - name: Install dependencies & run tests - run: julia --color=yes -e ' - using Pkg; - Pkg.activate("./DifferentiationInterface/test"); - if VERSION < v"1.11"; - Pkg.rm("DifferentiationInterfaceTest"); - Pkg.resolve(); - else; - Pkg.develop(; path="./DifferentiationInterfaceTest"); - end; - Pkg.activate("./DifferentiationInterface"); - test_kwargs = (; allow_reresolve=false, coverage=true); - if ENV["JULIA_DI_PR_DRAFT"] == "true"; - Pkg.test("DifferentiationInterface"; julia_args=["-O1"], test_kwargs...); - else; - Pkg.test("DifferentiationInterface"; test_kwargs...); - end;' + run: julia --color=yes -e ' using Pkg; + Pkg.activate("./DifferentiationInterface/test"); if VERSION < v"1.11"; + Pkg.rm("DifferentiationInterfaceTest"); Pkg.resolve(); else; + Pkg.develop(; path="./DifferentiationInterfaceTest"); end; + Pkg.activate("./DifferentiationInterface"); test_kwargs = (; + allow_reresolve=false, coverage=true); if ENV["JULIA_DI_PR_DRAFT"] == + "true"; Pkg.test("DifferentiationInterface"; julia_args=["-O1"], + test_kwargs...); else; Pkg.test("DifferentiationInterface"; + test_kwargs...); end;' - uses: julia-actions/julia-processcoverage@v1 with: directories: ./DifferentiationInterface/src,./DifferentiationInterface/ext,./DifferentiationInterface/test @@ -87,7 +81,8 @@ jobs: runs-on: ubuntu-latest if: ${{ !contains(github.event.pull_request.labels.*.name, 'skipci') }} timeout-minutes: 120 - permissions: # needed to allow julia-actions/cache to proactively delete old caches that it has created + permissions: + # needed to allow julia-actions/cache to proactively delete old caches that it has created actions: write contents: read strategy: @@ -108,6 +103,7 @@ jobs: - ForwardDiff - GTPSA - Mooncake + - Mooncake-old - PolyesterForwardDiff - ReverseDiff - SparsityDetector @@ -137,11 +133,11 @@ jobs: arch: x64 - uses: julia-actions/cache@v3 - name: Install dependencies & run tests - run: julia --code-coverage=user --color=yes -e ' - using Pkg; - group = ENV["JULIA_DI_TEST_GROUP"]; + run: julia --code-coverage=user --color=yes -e ' using Pkg; group = + ENV["JULIA_DI_TEST_GROUP"]; Pkg.activate("./DifferentiationInterface/test/Back/$group"); - Pkg.develop([PackageSpec(path="./DifferentiationInterface"), PackageSpec(path="./DifferentiationInterfaceTest")]); + Pkg.develop([PackageSpec(path="./DifferentiationInterface"), + PackageSpec(path="./DifferentiationInterfaceTest")]); include("./DifferentiationInterface/test/Back/run_backend.jl");' - uses: julia-actions/julia-processcoverage@v1 with: @@ -158,7 +154,8 @@ jobs: runs-on: ubuntu-latest if: ${{ !contains(github.event.pull_request.labels.*.name, 'skipci') }} timeout-minutes: 60 - permissions: # needed to allow julia-actions/cache to proactively delete old caches that it has created + permissions: + # needed to allow julia-actions/cache to proactively delete old caches that it has created actions: write contents: read strategy: @@ -193,15 +190,13 @@ jobs: arch: x64 - uses: julia-actions/cache@v3 - name: Install dependencies & run tests - run: julia --project=./DifferentiationInterfaceTest --color=yes -e ' - using Pkg; - Pkg.Registry.update(); - Pkg.develop(path="./DifferentiationInterface"); + run: julia --project=./DifferentiationInterfaceTest --color=yes -e ' using Pkg; + Pkg.Registry.update(); Pkg.develop(path="./DifferentiationInterface"); if ENV["JULIA_DI_PR_DRAFT"] == "true"; - Pkg.test("DifferentiationInterfaceTest"; allow_reresolve=false, coverage=true, julia_args=["-O1"]); - else; - Pkg.test("DifferentiationInterfaceTest"; allow_reresolve=false, coverage=true); - end;' + Pkg.test("DifferentiationInterfaceTest"; allow_reresolve=false, + coverage=true, julia_args=["-O1"]); else; + Pkg.test("DifferentiationInterfaceTest"; allow_reresolve=false, + coverage=true); end;' - uses: julia-actions/julia-processcoverage@v1 with: directories: ./DifferentiationInterfaceTest/src,./DifferentiationInterfaceTest/ext,./DifferentiationInterfaceTest/test diff --git a/DifferentiationInterface/ext/DifferentiationInterfaceMooncakeExt/DifferentiationInterfaceMooncakeExt.jl b/DifferentiationInterface/ext/DifferentiationInterfaceMooncakeExt/DifferentiationInterfaceMooncakeExt.jl index 3513d548c..db3cdebbc 100644 --- a/DifferentiationInterface/ext/DifferentiationInterfaceMooncakeExt/DifferentiationInterfaceMooncakeExt.jl +++ b/DifferentiationInterface/ext/DifferentiationInterfaceMooncakeExt/DifferentiationInterfaceMooncakeExt.jl @@ -29,14 +29,15 @@ using Mooncake: NoRData, primal, _copy_output, - _copy_to_output!!, - tangent_to_primal!! + _copy_to_output!! const AnyAutoMooncake{C} = Union{AutoMooncake{C}, AutoMooncakeForward{C}} DI.check_available(::AnyAutoMooncake{C}) where {C} = true DI.inner_preparation_behavior(::AutoMooncakeForward) = DI.PrepareInnerSimple() +@inline new_friendly_tangents() = isdefined(Mooncake, :FriendlyTangentCache) + include("utils.jl") include("onearg.jl") include("twoarg.jl") diff --git a/DifferentiationInterface/ext/DifferentiationInterfaceMooncakeExt/utils.jl b/DifferentiationInterface/ext/DifferentiationInterfaceMooncakeExt/utils.jl index b22d8d49b..b6ec0c452 100644 --- a/DifferentiationInterface/ext/DifferentiationInterfaceMooncakeExt/utils.jl +++ b/DifferentiationInterface/ext/DifferentiationInterfaceMooncakeExt/utils.jl @@ -9,10 +9,19 @@ function call_and_return(f!::F, y, x, contexts...) where {F} return y end +function adaptive_tangent_to_primal!!(primal, tangent) + @static if new_friendly_tangents() + # TODO: optimize performance by allocating cache during prep + return Mooncake.tangent_to_friendly!!(primal, tangent) + else + return Mooncake.tangent_to_primal!!(primal, tangent) + end +end + function zero_tangent_or_primal(x, backend::AnyAutoMooncake) if get_config(backend).friendly_tangents # zero(x) but safer - return tangent_to_primal!!(_copy_output(x), zero_tangent(x)) + return adaptive_tangent_to_primal!!(_copy_output(x), zero_tangent(x)) else return zero_tangent(x) end diff --git a/DifferentiationInterface/test/Back/Mooncake-old/Project.toml b/DifferentiationInterface/test/Back/Mooncake-old/Project.toml new file mode 100644 index 000000000..8ed2b0166 --- /dev/null +++ b/DifferentiationInterface/test/Back/Mooncake-old/Project.toml @@ -0,0 +1,13 @@ +[deps] +ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" +DifferentiationInterface = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" +DifferentiationInterfaceTest = "a82114a7-5aa3-49a8-9643-716bb13727a3" +ExplicitImports = "7d51a73a-1435-4ff3-83d9-f097790105c7" +Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" +SparseConnectivityTracer = "9f842d2f-2579-4b1d-911e-f412cf18a3f5" +SparseMatrixColorings = "0a514795-09f3-496d-8182-132a7b665d35" +StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" +Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[compat] +Mooncake = "<0.5.25" diff --git a/DifferentiationInterface/test/Back/Mooncake-old/test.jl b/DifferentiationInterface/test/Back/Mooncake-old/test.jl new file mode 120000 index 000000000..ec8c9b78c --- /dev/null +++ b/DifferentiationInterface/test/Back/Mooncake-old/test.jl @@ -0,0 +1 @@ +../Mooncake/test.jl \ No newline at end of file diff --git a/DifferentiationInterface/test/Back/Mooncake/Project.toml b/DifferentiationInterface/test/Back/Mooncake/Project.toml index f13f37c5b..c70ac73e6 100644 --- a/DifferentiationInterface/test/Back/Mooncake/Project.toml +++ b/DifferentiationInterface/test/Back/Mooncake/Project.toml @@ -8,3 +8,6 @@ SparseConnectivityTracer = "9f842d2f-2579-4b1d-911e-f412cf18a3f5" SparseMatrixColorings = "0a514795-09f3-496d-8182-132a7b665d35" StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[compat] +Mooncake = ">=0.5.25" From 2703acb6002b814c945e6f5b13adcff1704b9918 Mon Sep 17 00:00:00 2001 From: Guillaume Dalle <22795598+gdalle@users.noreply.github.com> Date: Mon, 27 Apr 2026 15:42:30 +0200 Subject: [PATCH 2/5] Disable tests --- .github/workflows/Test.yml | 261 ++++++++++++++++++------------------- 1 file changed, 130 insertions(+), 131 deletions(-) diff --git a/.github/workflows/Test.yml b/.github/workflows/Test.yml index 76e2d7c7d..65f04df03 100644 --- a/.github/workflows/Test.yml +++ b/.github/workflows/Test.yml @@ -16,65 +16,65 @@ concurrency: cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} jobs: - test-DI-Core: - name: ${{ matrix.version }} - DI Core (${{ matrix.group }}) - runs-on: ubuntu-latest - if: ${{ !contains(github.event.pull_request.labels.*.name, 'skipci') }} - timeout-minutes: 180 - permissions: - # needed to allow julia-actions/cache to proactively delete old caches that it has created - actions: write - contents: read - strategy: - fail-fast: false # TODO: toggle - matrix: - version: - - '1.10' - - '1.11' - - '1.12' - group: - - Internals - - SimpleFiniteDiff - - ZeroBackends - skip_lts: - - ${{ github.event.pull_request.draft }} - skip_pre: - - ${{ github.event.pull_request.draft }} - exclude: - - skip_lts: true - version: '1.10' - - skip_pre: true - version: '1.12' - env: - JULIA_DI_TEST_TYPE: 'Core' - JULIA_DI_TEST_GROUP: ${{ matrix.group }} - JULIA_DI_PR_DRAFT: ${{ github.event.pull_request.draft }} - steps: - - uses: actions/checkout@v6 - - uses: julia-actions/setup-julia@v3 - with: - version: ${{ matrix.version }} - arch: x64 - - uses: julia-actions/cache@v3 - - name: Install dependencies & run tests - run: julia --color=yes -e ' using Pkg; - Pkg.activate("./DifferentiationInterface/test"); if VERSION < v"1.11"; - Pkg.rm("DifferentiationInterfaceTest"); Pkg.resolve(); else; - Pkg.develop(; path="./DifferentiationInterfaceTest"); end; - Pkg.activate("./DifferentiationInterface"); test_kwargs = (; - allow_reresolve=false, coverage=true); if ENV["JULIA_DI_PR_DRAFT"] == - "true"; Pkg.test("DifferentiationInterface"; julia_args=["-O1"], - test_kwargs...); else; Pkg.test("DifferentiationInterface"; - test_kwargs...); end;' - - uses: julia-actions/julia-processcoverage@v1 - with: - directories: ./DifferentiationInterface/src,./DifferentiationInterface/ext,./DifferentiationInterface/test - - uses: codecov/codecov-action@v6 - with: - files: lcov.info - flags: DI - token: ${{ secrets.CODECOV_TOKEN }} - fail_ci_if_error: false + # test-DI-Core: + # name: ${{ matrix.version }} - DI Core (${{ matrix.group }}) + # runs-on: ubuntu-latest + # if: ${{ !contains(github.event.pull_request.labels.*.name, 'skipci') }} + # timeout-minutes: 180 + # permissions: + # # needed to allow julia-actions/cache to proactively delete old caches that it has created + # actions: write + # contents: read + # strategy: + # fail-fast: false # TODO: toggle + # matrix: + # version: + # - '1.10' + # - '1.11' + # - '1.12' + # group: + # - Internals + # - SimpleFiniteDiff + # - ZeroBackends + # skip_lts: + # - ${{ github.event.pull_request.draft }} + # skip_pre: + # - ${{ github.event.pull_request.draft }} + # exclude: + # - skip_lts: true + # version: '1.10' + # - skip_pre: true + # version: '1.12' + # env: + # JULIA_DI_TEST_TYPE: 'Core' + # JULIA_DI_TEST_GROUP: ${{ matrix.group }} + # JULIA_DI_PR_DRAFT: ${{ github.event.pull_request.draft }} + # steps: + # - uses: actions/checkout@v6 + # - uses: julia-actions/setup-julia@v3 + # with: + # version: ${{ matrix.version }} + # arch: x64 + # - uses: julia-actions/cache@v3 + # - name: Install dependencies & run tests + # run: julia --color=yes -e ' using Pkg; + # Pkg.activate("./DifferentiationInterface/test"); if VERSION < v"1.11"; + # Pkg.rm("DifferentiationInterfaceTest"); Pkg.resolve(); else; + # Pkg.develop(; path="./DifferentiationInterfaceTest"); end; + # Pkg.activate("./DifferentiationInterface"); test_kwargs = (; + # allow_reresolve=false, coverage=true); if ENV["JULIA_DI_PR_DRAFT"] == + # "true"; Pkg.test("DifferentiationInterface"; julia_args=["-O1"], + # test_kwargs...); else; Pkg.test("DifferentiationInterface"; + # test_kwargs...); end;' + # - uses: julia-actions/julia-processcoverage@v1 + # with: + # directories: ./DifferentiationInterface/src,./DifferentiationInterface/ext,./DifferentiationInterface/test + # - uses: codecov/codecov-action@v6 + # with: + # files: lcov.info + # flags: DI + # token: ${{ secrets.CODECOV_TOKEN }} + # fail_ci_if_error: false test-DI-Backend: name: ${{ matrix.version }} - DI Back (${{ matrix.group }}) @@ -93,23 +93,23 @@ jobs: - '1.11' - '1.12' group: - - ChainRules - - DifferentiateWith + # - ChainRules + # - DifferentiateWith # - Diffractor - - Enzyme - - FastDifferentiation - - FiniteDiff - - FiniteDifferences - - ForwardDiff - - GTPSA + # - Enzyme + # - FastDifferentiation + # - FiniteDiff + # - FiniteDifferences + # - ForwardDiff + # - GTPSA - Mooncake - Mooncake-old - - PolyesterForwardDiff - - ReverseDiff - - SparsityDetector - - Symbolics - - Tracker - - Zygote + # - PolyesterForwardDiff + # - ReverseDiff + # - SparsityDetector + # - Symbolics + # - Tracker + # - Zygote skip_lts: - ${{ github.event.pull_request.draft }} skip_pre: @@ -148,61 +148,60 @@ jobs: flags: DI token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: false - - test-DIT: - name: ${{ matrix.version }} - DIT (${{ matrix.group }}) - runs-on: ubuntu-latest - if: ${{ !contains(github.event.pull_request.labels.*.name, 'skipci') }} - timeout-minutes: 60 - permissions: - # needed to allow julia-actions/cache to proactively delete old caches that it has created - actions: write - contents: read - strategy: - fail-fast: false # TODO: toggle - matrix: - version: - - '1.10' - - '1.11' - - '1.12' - group: - - Formalities - - Zero - - Standard - - Weird - skip_lts: - - ${{ github.event.pull_request.draft }} - skip_pre: - - ${{ github.event.pull_request.draft }} - exclude: - - skip_lts: true - version: '1.10' - - skip_pre: true - version: '1.12' - env: - JULIA_DIT_TEST_GROUP: ${{ matrix.group }} - JULIA_DI_PR_DRAFT: ${{ github.event.pull_request.draft }} - steps: - - uses: actions/checkout@v6 - - uses: julia-actions/setup-julia@v3 - with: - version: ${{ matrix.version }} - arch: x64 - - uses: julia-actions/cache@v3 - - name: Install dependencies & run tests - run: julia --project=./DifferentiationInterfaceTest --color=yes -e ' using Pkg; - Pkg.Registry.update(); Pkg.develop(path="./DifferentiationInterface"); - if ENV["JULIA_DI_PR_DRAFT"] == "true"; - Pkg.test("DifferentiationInterfaceTest"; allow_reresolve=false, - coverage=true, julia_args=["-O1"]); else; - Pkg.test("DifferentiationInterfaceTest"; allow_reresolve=false, - coverage=true); end;' - - uses: julia-actions/julia-processcoverage@v1 - with: - directories: ./DifferentiationInterfaceTest/src,./DifferentiationInterfaceTest/ext,./DifferentiationInterfaceTest/test - - uses: codecov/codecov-action@v6 - with: - files: lcov.info - flags: DIT - token: ${{ secrets.CODECOV_TOKEN }} - fail_ci_if_error: false + # test-DIT: + # name: ${{ matrix.version }} - DIT (${{ matrix.group }}) + # runs-on: ubuntu-latest + # if: ${{ !contains(github.event.pull_request.labels.*.name, 'skipci') }} + # timeout-minutes: 60 + # permissions: + # # needed to allow julia-actions/cache to proactively delete old caches that it has created + # actions: write + # contents: read + # strategy: + # fail-fast: false # TODO: toggle + # matrix: + # version: + # - '1.10' + # - '1.11' + # - '1.12' + # group: + # - Formalities + # - Zero + # - Standard + # - Weird + # skip_lts: + # - ${{ github.event.pull_request.draft }} + # skip_pre: + # - ${{ github.event.pull_request.draft }} + # exclude: + # - skip_lts: true + # version: '1.10' + # - skip_pre: true + # version: '1.12' + # env: + # JULIA_DIT_TEST_GROUP: ${{ matrix.group }} + # JULIA_DI_PR_DRAFT: ${{ github.event.pull_request.draft }} + # steps: + # - uses: actions/checkout@v6 + # - uses: julia-actions/setup-julia@v3 + # with: + # version: ${{ matrix.version }} + # arch: x64 + # - uses: julia-actions/cache@v3 + # - name: Install dependencies & run tests + # run: julia --project=./DifferentiationInterfaceTest --color=yes -e ' using Pkg; + # Pkg.Registry.update(); Pkg.develop(path="./DifferentiationInterface"); + # if ENV["JULIA_DI_PR_DRAFT"] == "true"; + # Pkg.test("DifferentiationInterfaceTest"; allow_reresolve=false, + # coverage=true, julia_args=["-O1"]); else; + # Pkg.test("DifferentiationInterfaceTest"; allow_reresolve=false, + # coverage=true); end;' + # - uses: julia-actions/julia-processcoverage@v1 + # with: + # directories: ./DifferentiationInterfaceTest/src,./DifferentiationInterfaceTest/ext,./DifferentiationInterfaceTest/test + # - uses: codecov/codecov-action@v6 + # with: + # files: lcov.info + # flags: DIT + # token: ${{ secrets.CODECOV_TOKEN }} + # fail_ci_if_error: false From 14eb8d388defc7b9f2dea74905f49a4e16a6e285 Mon Sep 17 00:00:00 2001 From: Guillaume Dalle <22795598+gdalle@users.noreply.github.com> Date: Mon, 27 Apr 2026 15:57:00 +0200 Subject: [PATCH 3/5] Bump --- DifferentiationInterface/Project.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DifferentiationInterface/Project.toml b/DifferentiationInterface/Project.toml index 3e01e2c03..2fd7884ce 100644 --- a/DifferentiationInterface/Project.toml +++ b/DifferentiationInterface/Project.toml @@ -1,6 +1,6 @@ name = "DifferentiationInterface" uuid = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" -version = "0.7.16" +version = "0.7.17" authors = ["Guillaume Dalle", "Adrian Hill"] [deps] @@ -71,7 +71,7 @@ ForwardDiff = "0.10.36,1" GPUArraysCore = "0.2" GTPSA = "1.4.0" LinearAlgebra = "1" -Mooncake = "0.5.1 - 0.5.24" +Mooncake = "0.5.1" PolyesterForwardDiff = "0.1.2" ReverseDiff = "1.15.1" SparseArrays = "1" From 4d3adb0e746a1fd8b8b18862352e53e461a33fba Mon Sep 17 00:00:00 2001 From: Guillaume Dalle <22795598+gdalle@users.noreply.github.com> Date: Tue, 28 Apr 2026 11:45:33 +0200 Subject: [PATCH 4/5] Test barrier --- .../test/Back/Mooncake/test.jl | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/DifferentiationInterface/test/Back/Mooncake/test.jl b/DifferentiationInterface/test/Back/Mooncake/test.jl index d531e542a..eb80af551 100644 --- a/DifferentiationInterface/test/Back/Mooncake/test.jl +++ b/DifferentiationInterface/test/Back/Mooncake/test.jl @@ -74,9 +74,12 @@ test_differentiation( @test grad.B == ps.A end -test_differentiation( - backends[3:4], - nomatrix(static_scenarios()); - logging = LOGGING, - excluded = SECOND_ORDER -) +# see https://github.com/JuliaDiff/DifferentiationInterface.jl/issues/986 +if pkgversion(Mooncake) < v"0.5.25" + test_differentiation( + backends[3:4], + nomatrix(static_scenarios()); + logging = LOGGING, + excluded = SECOND_ORDER + ) +end From 74ac5eaf8195ed65404ea954c4ea7c3d2be97424 Mon Sep 17 00:00:00 2001 From: Guillaume Dalle <22795598+gdalle@users.noreply.github.com> Date: Tue, 28 Apr 2026 11:51:23 +0200 Subject: [PATCH 5/5] Changelog --- .github/workflows/Test.yml | 3 ++- DifferentiationInterface/CHANGELOG.md | 10 +++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/Test.yml b/.github/workflows/Test.yml index efc61869d..1e1c84713 100644 --- a/.github/workflows/Test.yml +++ b/.github/workflows/Test.yml @@ -93,7 +93,7 @@ jobs: group: - ChainRules - DifferentiateWith - - Diffractor + # - Diffractor - Enzyme - FastDifferentiation - FiniteDiff @@ -153,6 +153,7 @@ jobs: flags: DI token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: false + test-DIT: name: ${{ matrix.version }} - DIT (${{ matrix.group }}) runs-on: ubuntu-latest diff --git a/DifferentiationInterface/CHANGELOG.md b/DifferentiationInterface/CHANGELOG.md index d60b733ec..2b8ccd7cc 100644 --- a/DifferentiationInterface/CHANGELOG.md +++ b/DifferentiationInterface/CHANGELOG.md @@ -5,7 +5,15 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased](https://github.com/JuliaDiff/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.7.16...main) +## [Unreleased](https://github.com/JuliaDiff/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.7.17...main) + +## [0.7.17](https://github.com/JuliaDiff/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.7.16...DifferentiationInterface-v0.7.17) + +### Fixed + +- Make DI compatible with latest Mooncake friendly tangents ([#1001](https://github.com/JuliaDiff/DifferentiationInterface.jl/pull/1001)) +- Add docstrings to the result anlysis methods for sparse matrix preparations ([#984](https://github.com/JuliaDiff/DifferentiationInterface.jl/pull/984)) +- Make wrong-mode pushforward/pullback return the correct array type ([#974](https://github.com/JuliaDiff/DifferentiationInterface.jl/pull/974)) ## [0.7.16](https://github.com/JuliaDiff/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.7.15...DifferentiationInterface-v0.7.16)