SciML / SciML/NeuralOperators.jl
Downgrade CI: Zygote (via LuxTestUtils) caps LogExpFunctions ≤0.3, conflicts with frozen 1.0.1 — transitive-dep wall, not floor-fixable
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 41
- Forks
- 15
- Avg merge
- 13h 14m
- Merged PRs (30d)
- 12
Description
Summary
The Downgrade workflow fails at the julia-actions/julia-runtest re-resolve step (before any test runs) with an Unsatisfiable requirements detected for package Zygote error. This is a transitive-dependency downgrade wall, not a floor we can raise inside this repo.
Latest failing run: https://github.com/SciML/NeuralOperators.jl/actions/runs/27271571329 (job Downgrade / Downgrade Tests).
Note: the main env downgrade resolves fine (Successfully resolved minimal versions for .). The failure is only in the strict test-sandbox re-resolve.
Root cause (verified against the live General registry)
The conflict is LogExpFunctions pulled in two incompatible directions:
-
The strict downgrade (
allow_reresolve=falsein the centralizeddowngrade.yml) freezesLogExpFunctions v1.0.1from the main environment into the test sandbox (the modern Enzyme/Lux/NonlinearSolve stack floats it to 1.0.1; nothing in the main env forces it down). -
LuxTestUtils(test-only dep) transitively pulls inZygote. Every Zygote version up to and including the latest 0.7.10 declares:["0.6.41-0"] LogExpFunctions = "0.3.1-0.3"i.e. Zygote caps
LogExpFunctionsat0.3(resolver-expanded to ≤ 0.6.40). No Zygote release — not even the newest — acceptsLogExpFunctions1.x.
So the resolver sees LogExpFunctions = 1.0.1 (frozen, required by Enzyme ≥ 0.13.152) vs LogExpFunctions ≤ 0.6.40 (required by every available Zygote) → empty intersection → Unsatisfiable.
Exact resolver log:
ERROR: LoadError: Unsatisfiable requirements detected for package Zygote [e88e6eb3]:
Zygote [e88e6eb3] log:
├─possible versions are: 0.1.0-0.7.10 or uninstalled
├─restricted by compatibility requirements with LogExpFunctions to versions: 0.1.0-0.6.40 or uninstalled
│ └─restricted to versions 1.0.1 by an explicit requirement, leaving only versions: 1.0.1
...
└─restricted by compatibility requirements with LuxTestUtils to versions: 0.6.70-0.7.10 — no versions left
Why this is not floor-fixable here
Zygoteis not a direct dependency of NeuralOperators (root ortest/Project.toml); it is transitive viaLuxTestUtils. There is no compat entry to raise.- Zygote is already at its newest version (0.7.10) in the resolve, and even that newest version caps
LogExpFunctions ≤ 0.3. Raising any NeuralOperators direct-dep floor cannot make Zygote acceptLogExpFunctions1.x. - This is the same family as the fleet-wide ForwardDiff/LogExpFunctions strict-downgrade wall; here the capper is Zygote.
Suggested upstream fix (not in this repo)
One of:
Zygotewidens itsLogExpFunctionscompat to allow 1.x (its actual usage is almost certainly compatible); orLuxTestUtilsstops transitively requiringZygoteon the downgrade path / loosens it.
Until an upstream release lands, this downgrade job is expected to be RED for a transitive-dependency reason; it does not reflect a NeuralOperators floor problem.
Separately (not this issue): master Core tests are also red
The regular (latest-versions) Tests / Core jobs are also failing on main, but for an unrelated reason — a genuine test assertion failure (test/layers/layers_testsetup.jl:41, test/models/fno_tests.jl:56), after a successful resolve where LogExpFunctions floats to 0.3.29. That is a separate problem from this downgrade resolution wall.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Downgrade workflow run and the centralized downgrade.yml setting allow_reresolve=false, then inspect the resolver output for Zygote, LuxTestUtils, and LogExpFunctions. Done requires an upstream compatibility or dependency change; the issue states that the fix is not in NeuralOperators.jl, so there is no in-repository patch to verify.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- ci-cd
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100