gdalle
November 25, 2024, 8:47am
4
In my package DifferentiationInterface.jl, the Zygote extension also depends explicitly on ForwardDiff, even though ForwardDiff is a dependency of Zygote too:
DifferentiationInterfaceFiniteDifferencesExt = "FiniteDifferences"
DifferentiationInterfaceForwardDiffExt = "ForwardDiff"
DifferentiationInterfaceMooncakeExt = "Mooncake"
DifferentiationInterfacePolyesterForwardDiffExt = "PolyesterForwardDiff"
DifferentiationInterfaceReverseDiffExt = "ReverseDiff"
DifferentiationInterfaceSparseArraysExt = "SparseArrays"
DifferentiationInterfaceSparseMatrixColoringsExt = "SparseMatrixColorings"
DifferentiationInterfaceStaticArraysExt = "StaticArrays"
DifferentiationInterfaceSymbolicsExt = "Symbolics"
DifferentiationInterfaceTrackerExt = "Tracker"
DifferentiationInterfaceZygoteExt = ["Zygote", "ForwardDiff"]
[compat]
ADTypes = "1.9.0"
ChainRulesCore = "1.23.0"
Diffractor = "=0.2.6"
Enzyme = "0.13.6"
ExplicitImports = "1.10.1"
FastDifferentiation = "0.4.1"
FiniteDiff = "2.23.1"
FiniteDifferences = "0.12.31"
This allows me to do import ForwardDiff in the extension instead of import Zygote.ForwardDiff