I’m trying to develop on a fork of the ForwardDiff.jl package (current master commit). When I try to add the repo to my dependencies I get the following compatibility error:
(@v1.9) pkg> dev /Users/olly/.julia/dev/ForwardDiff.jl
Resolving package versions...
ERROR: Unsatisfiable requirements detected for package Zygote [e88e6eb3]:
Zygote [e88e6eb3] log:
├─possible versions are: 0.1.0-0.6.60 or uninstalled
├─restricted by compatibility requirements with SpecialFunctions [276daf66] to versions: [0.4.21-0.5.1, 0.5.13-0.6.60] or uninstalled, leaving only versions: [0.4.21-0.5.1, 0.5.13-0.6.60]
│ └─SpecialFunctions [276daf66] log:
│ ├─possible versions are: 0.7.0-2.2.0 or uninstalled
│ └─restricted to versions 1-2 by ForwardDiff [f6369f11], leaving only versions: 1.0.0-2.2.0
│ └─ForwardDiff [f6369f11] log:
│ ├─possible versions are: 0.11.0 or uninstalled
│ └─ForwardDiff [f6369f11] is fixed to version 0.11.0-DEV
├─restricted by compatibility requirements with NaNMath [77ba4419] to versions: [0.4.21-0.5.1, 0.6.35-0.6.60] or uninstalled, leaving only versions: [0.4.21-0.5.1, 0.6.35-0.6.60]
│ └─NaNMath [77ba4419] log:
│ ├─possible versions are: 0.3.2-1.0.2 or uninstalled
│ └─restricted to versions 1 by ForwardDiff [f6369f11], leaving only versions: 1.0.0-1.0.2
│ └─ForwardDiff [f6369f11] log: see above
└─restricted by compatibility requirements with ForwardDiff [f6369f11] to versions: uninstalled — no versions left
└─ForwardDiff [f6369f11] log: see above
I don’t understand why this error is happening. I do not see any references to compatibility versions for Zygote in the project.toml file.
I get a similar issue for LoopVectorization.jl when trying to use this local version of ForwardDiff.jl in another project. Again, there is no mention of LoopVectorization in the [compat] section of ForwardDiff’s project.toml file.
(NLLSsolver) pkg> dev /Users/olly/.julia/dev/ForwardDiff.jl
Resolving package versions...
ERROR: Unsatisfiable requirements detected for package LoopVectorization [bdcacae8]:
LoopVectorization [bdcacae8] log:
├─possible versions are: 0.1.0-0.12.159 or uninstalled
├─restricted by julia compatibility requirements to versions: 0.9.0-0.12.159 or uninstalled
├─restricted by compatibility requirements with ForwardDiff [f6369f11] to versions: 0.1.0-0.12.99 or uninstalled, leaving only versions: 0.9.0-0.12.99 or uninstalled
│ └─ForwardDiff [f6369f11] log:
│ ├─possible versions are: 0.11.0 or uninstalled
│ └─ForwardDiff [f6369f11] is fixed to version 0.11.0-DEV
├─restricted by compatibility requirements with VectorizationBase [3d5dd08c] to versions: 0.12.19-0.12.159 or uninstalled, leaving only versions: 0.12.19-0.12.99 or uninstalled
│ └─VectorizationBase [3d5dd08c] log:
│ ├─possible versions are: 0.1.0-0.21.64 or uninstalled
│ ├─restricted by julia compatibility requirements to versions: 0.20.8-0.21.64 or uninstalled
│ └─restricted by compatibility requirements with ArrayInterface [4fba245c] to versions: [0.1.0-0.12.33, 0.21.59-0.21.64] or uninstalled, leaving only versions: 0.21.59-0.21.64 or uninstalled
│ └─ArrayInterface [4fba245c] log:
│ ├─possible versions are: 0.0.1-7.4.3 or uninstalled
│ └─restricted by compatibility requirements with LinearSolve [7ed4a6bd] to versions: 7.3.0-7.4.3
│ └─LinearSolve [7ed4a6bd] log:
│ ├─possible versions are: 0.1.0-1.42.0 or uninstalled
│ └─restricted to versions 1.41.1-1 by NLLSsolver [50b5cf9e], leaving only versions: 1.41.1-1.42.0
│ └─NLLSsolver [50b5cf9e] log:
│ ├─possible versions are: 2.0.0 or uninstalled
│ └─NLLSsolver [50b5cf9e] is fixed to version 2.0.0
├─restricted by compatibility requirements with ArrayInterface [4fba245c] to versions: [0.1.0-0.8.26, 0.12.151-0.12.159] or uninstalled, leaving only versions: uninstalled
│ └─ArrayInterface [4fba245c] log: see above
└─restricted by compatibility requirements with RecursiveFactorization [f2c3362d] to versions: 0.10.0-0.12.159 — no versions left
└─RecursiveFactorization [f2c3362d] log:
├─possible versions are: 0.0.1-0.2.18 or uninstalled
└─restricted by compatibility requirements with LinearSolve [7ed4a6bd] to versions: 0.2.8-0.2.18
└─LinearSolve [7ed4a6bd] log: see above
I do not understand where the following requirments on LoopVectorization come from:
restricted by compatibility requirements with ForwardDiff [f6369f11] to versions: 0.1.0-0.12.99 or uninstalled
As I say, there is nothing about this in the project.toml file, so I don’t understand where it comes from.
I have deleted (then regenerated) the auto-generated manifest.toml files from the relevant projects, but this doesn’t fix the issue. The errors remain the same.
What you’re seeing is conflicts from packages which depend on ForwardDiff (Zygote, LoopVectorization) and not the other way around. The first error should be easy enough to fix by removing non-utility packages like Zygote from your global environment and/or ] deving packages into a separate environment. However, that’s exactly what you’ve done for the second error (separate environment), and it looks like you’ve found the compat issue
It’s not very SemVer friendly, because ForwardDiff 0.9 → 0.10 → 0.11 are all breaking changes.