Skip to content

Raise LuxTestUtils compat floor to 2.3.2 for JET 0.12 on Julia 1.13 - #254

Merged
ChrisRackauckas merged 1 commit into
mainfrom
agent/253-jet-compat
Oct 30, 2026
Merged

ChrisRackauckas merged 1 commit into
mainfrom
agent/253-jet-compat

Conversation

@ChrisRackauckas-Claude

@ChrisRackauckas-Claude ChrisRackauckas-Claude commented Oct 28, 2026 •

Copy link
Copy Markdown
Member

🚧 UNREVIEWED — awaiting review by @ChrisRackauckas. Filed by an AI agent running as @ChrisRackauckas; Chris has not seen this.
Harness: Devin CLI 3000.11.228 · Model: swe-2-high
Conversation: local job 253-devin (no session URL)

Summary

Raises the LuxTestUtils compat floor in Project.toml from "2" to "2.3.2" so the test environment can resolve JET 0.12 on Julia 1.13. The JET ceiling the issue describes does not live in this repo's [compat] — it is LuxTestUtils's own strong dependency (JET = "0.9.6 - 0.11" in every LuxTestUtils 2.x up to 2.3.1), and JET < 0.12 declares no Julia 1.13 support. LuxTestUtils 2.3.2 (registered 2026-10-27, from the lib/LuxTestUtils tree in LuxDL/Lux.jl) widened that to "0.9.6, 0.10, 0.11, 0.12", so the floor bump makes the fix a requirement instead of a resolution accident.

A literal JET = "0.12" compat entry was deliberately not added: JET 0.12 requires Julia ≥ 1.12, which would make the lts (1.10) test lane unresolvable. SciMLTesting needed no change — its JET weak-dep already permits 0.12 for all versions ≥ 2.6.2, and test/qa/Project.toml's SciMLTesting = "2.4" admits 2.13.x.

Risk assessment

  • Blast radius: test-only compat entry; the library [deps] are untouched. On Julia ≤ 1.12 this only excludes LuxTestUtils 2.0–2.3.1, all strictly older releases of the same line (2.3.2 supports Julia ≥ 1.10).
  • Rollback: one-line revert.
  • Residual risk: if a future LuxTestUtils yanks 2.3.2 the floor could be raised again trivially; no other change depends on this.

Verification

Julia 1.13.1 (the current julia 1 lane that CI fails on). Registry state includes LuxTestUtils 2.3.2 (registered 2026-10-27).

Before (failing resolve, reproduces the CI error): a scratch env pinned to LuxTestUtils = "=2.3.1" — the state the old LuxTestUtils = "2" compat permits — fails identically to CI run 39068336014:

$ julia +1.13 --project=. -e 'using Pkg; Pkg.resolve()'
ERROR: Unsatisfiable requirements detected for package JET [c3a54625]:
 JET [c3a54625] log:
 ├─possible versions are: 0.0.1 - 0.13.1 or uninstalled
 ├─restricted by compatibility requirements with LuxTestUtils [ac9de150] to versions: 0.9.6 - 0.11.6
 │ └─LuxTestUtils [ac9de150] log:
 │   ├─possible versions are: 0.1.0 - 2.3.2 or uninstalled
 │   └─restricted to versions 2.3.1 by project [560b1480], leaving only versions: 2.3.1
 └─restricted by julia compatibility requirements to versions: 0.12.0 - 0.13.1 or uninstalled — no versions left

After: with LuxTestUtils = "2.3.2" the same resolve succeeds:

Status `jetrepro/Manifest.toml`
⌅ [c3a54625] JET v0.12.3
  [ac9de150] LuxTestUtils v2.3.2

GROUP=QA julia +1.13 --project -e 'using Pkg; Pkg.test()' on this branch — resolves LuxTestUtils v2.3.2, JET v0.12.3, SciMLTesting v2.13.3, then runs to completion:

Test Summary: | Pass  Total     Time
QA            |   20     20  1m16.0s
     Testing DeepEquilibriumNetworks tests passed

Format/lint: runic --check over the diff (no .jl files touched — clean) and typos over Project.toml (clean).

Not verified

  • The Core/GPU test groups on Julia 1.13 were not run to completion (only the shared Pkg.test resolve+precompile stage, which is what was failing); QA is the group this issue tracks. GROUP=GPU needs a self-hosted CUDA runner — not available locally.
  • Julia lts (1.10) lane not rerun; the change only raises a floor already satisfiable on 1.10.

Focus

  • Whether a floor bump is wanted at all: with 2.3.2 registered, a fresh resolve picks it anyway, so strictly no repo change is required for CI to go green — the floor encodes the requirement and protects manifest-pinned envs.
  • The issue's stated mechanism ("JET = \"0.9 - 0.11\" in test extras [compat]") does not exist in this repo; the actual pin is upstream in LuxTestUtils. This PR treats the floor bump as the in-repo fix; an alternative would be dropping LuxTestUtils/@jet from tests entirely (bigger change, not done here).

Closes #253


🤖 Posted by an AI agent — harness: Devin CLI 3000.11.228 · model: swe-2-high
Conversation: local job 253-devin (no session URL)

🤖 Automated review section from an AI agent running as Chris Rackauckas's account — not written or reviewed by Chris.

Risk assessment (independent review, Codex gpt-6.1-sol, head e9c37df)

  • Risk: medium-low (ML4: raises a compatibility lower bound; L3 also matches test-environment compat, but ML4 is the higher matched criterion).
  • Blast radius: Test environment resolution only: LuxTestUtils 2.0–2.3.1 become ineligible. LuxTestUtils remains an extra, the runtime dependency set and Julia support floor are unchanged, and no public names, signatures, numerical behavior, or shared state change. No new dependency, copyleft dependency, skipped assertion, or relaxed tolerance is introduced; no API version bump or new API documentation is required.
  • Evidence: Read the linked issue, complete diff (git diff origin/HEAD...HEAD), test setup, QA environment, and the full risk policy. git diff --check origin/HEAD...HEAD exited 0. gh pr checks 254 --repo SciML/DeepEquilibriumNetworks.jl reported all checks passing; gh run view 40685449052 --repo SciML/DeepEquilibriumNetworks.jl --json headSha,conclusion,jobs confirmed success at full head e9c37df. Read the job logs using gh run view ... --job ... --log: QA job 122806646070 selected LuxTestUtils 2.3.2/JET 0.12.3 and passed 20/20; LTS job 122806646199 selected LuxTestUtils 2.3.2 and passed Utils 15/15 and Layers 1538/1538. The historical default-branch run 39068336014 is bound to origin/HEAD commit 4b559cb; its QA job 117521796866 explicitly failed because LuxTestUtils restricted JET to 0.9.6–0.11.6 while Julia required 0.12.0–0.12.3. Upstream LuxTestUtils Project.toml fetched read-only confirms version 2.3.2 permits JET 0.12 and Julia 1.10. G1: not applicable (no numerical changes). G2: not applicable (no GPU kernels, AD rules, Reactant tracing, or MPI paths changed; see GPU coverage limitation below). G3: not applicable (no shared-state changes).
  • Verdict: MERGE
  • Merge: merge

🤖 Posted by an AI agent — harness: Codex CLI · model: gpt-6.1-sol (independent review, submitted by sciml-submaster, Claude Code claude-sonnet-5-5)
Conversation: https://claude.ai/code/session_01379heia6cKWmdtNob6NGzg

LuxTestUtils < 2.3.2 pins JET to 0.9.6-0.11, and JET < 0.12 declares
no Julia 1.13 support, so the test env cannot resolve on the current
julia 1 lane. LuxTestUtils 2.3.2 permits JET 0.12.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Devin <noreply@cognition.ai>
Agent-Harness: Devin CLI 3000.11.228
Agent-Model: swe-2-high
Agent-Session: local job 253-devin (no session URL)
@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review October 30, 2026 12:10
@ChrisRackauckas
ChrisRackauckas merged commit db30110 into main Oct 30, 2026
14 checks passed
@ChrisRackauckas
ChrisRackauckas deleted the agent/253-jet-compat branch October 30, 2026 12:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

QA test-env cannot resolve JET on Julia 1.13: compat ceiling 0.11 excludes the only 1.13-compatible versions

2 participants