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

Open
#143 0 comments 0 reactions 0 assignees View on GitHub

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=false in the centralized downgrade.yml) freezes LogExpFunctions v1.0.1 from 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 in Zygote. 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 LogExpFunctions at 0.3 (resolver-expanded to ≤ 0.6.40). No Zygote release — not even the newest — accepts LogExpFunctions 1.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

  • Zygote is not a direct dependency of NeuralOperators (root or test/Project.toml); it is transitive via LuxTestUtils. 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 accept LogExpFunctions 1.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:

  • Zygote widens its LogExpFunctions compat to allow 1.x (its actual usage is almost certainly compatible); or
  • LuxTestUtils stops transitively requiring Zygote on 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.