Skip to content

Fix update_weekly: resolve all six unsatisfiable benchmark folders + run update job on Julia 1.12 - #1602

Merged
ChrisRackauckas merged 3 commits into
SciML:masterfrom
ChrisRackauckas-Claude:fix/bayesianinference-rat-compat
Jun 23, 2026
Merged

Fix update_weekly: resolve all six unsatisfiable benchmark folders + run update job on Julia 1.12#1602
ChrisRackauckas merged 3 commits into
SciML:masterfrom
ChrisRackauckas-Claude:fix/bayesianinference-rat-compat

Conversation

@ChrisRackauckas-Claude

@ChrisRackauckas-Claude ChrisRackauckas-Claude commented Jun 19, 2026

Copy link
Copy Markdown
Member

Problem

The default-branch Weekly Update workflow (update_weekly) is red on master. The job (.github/workflows/update.jl) runs Pkg.update() in every benchmarks/* folder in a single Julia process and aborts on the first unresolvable environment. It died first on BayesianInference, but a full resolution audit (Julia 1.10) showed six folders whose [compat] is unsatisfiable — so fixing BayesianInference alone would have just moved the crash to the next folder.

Root cause

Commit fb9a3b66 mechanically bumped every benchmark Project.toml to the v7 / SciMLBase-3 / RecursiveArrayTools-4 stack. Six folders depend on something that cannot live in that stack, or on a package not available on the job's Julia version:

folder conflict
BayesianInference Turing/DiffEqBayes pin SciMLBase ≤2; RAT 4/ODE 7 need SciMLBase 3
Bio ReactionNetworkImporters 0.15 needs MTK 9; project pins ModelingToolkit 11
HybridJumps PiecewiseDeterministicMarkovProcesses 0.0.10RecursiveArrayTools 4
Jumps JumpProblemLibrary 1 needs Catalyst 2; project pins Catalyst 16 (+ PDMP 0.0.10 ⊥ RAT 4)
ParameterEstimation DiffEqParamEstim 2 pins SciMLBase ≤2 (no SciMLBase-3 release exists); project pins MTK 11 / ODE 7 / RAT 4
LinearSolve ParU_jll only has 1.0.0/1.0.1, both requiring Julia ≥1.12; the job ran on 1.10

Fix

Compat adjustments (tightest bound that restores a satisfiable resolution, keeping deps as new as possible):

  • BayesianInference: OrdinaryDiffEq 7→6, RecursiveArrayTools 4→3 (back to the SciMLBase-2 generation Turing/DiffEqBayes require).
  • Bio: ReactionNetworkImporters 0.15→1 (RNI 1 supports Catalyst 16 and the MTK-11 generation — keeps the SciMLBase-3 stack).
  • HybridJumps: PiecewiseDeterministicMarkovProcesses 0.0.10→0.0.12 (floor bump; 0.0.12 supports RAT 4 / SciMLBase 3 / Sundials 6).
  • Jumps: JumpProblemLibrary 1.0.0→2 (supports Catalyst 16); PDMP 0.0.10→0.0.12.
  • ParameterEstimation: ModelingToolkit 11→9, OrdinaryDiffEq 7→6, RecursiveArrayTools 4→3 (DiffEqParamEstim has no SciMLBase-3 release; revert to the SciMLBase-2 generation matching the last-working Manifest — MTK 9.61 / ODE 6.90 / RAT 3.27 / SciMLBase 2.72).

Harness change for LinearSolve:

  • .github/workflows/update.yml: bump the Weekly Update job from Julia 1.10 → 1.12. ParU_jll (used by ParUFactorization() in the LinearSolve benchmark) requires Julia ≥1.12, and LinearSolve's committed Manifest.toml already declares julia_version = "1.12.4". Dropping ParU would weaken the benchmark, so instead the update job is moved to the Julia version the stack now targets.

Local verification (resolution-only, mirroring the job's Pkg.update resolver)

  • Reproduced each Unsatisfiable failure on the unmodified Project.tomls on Julia 1.10 (matches the exact resolver error in the failing CI log).
  • With these fixes, all 38 benchmark folders resolve cleanly on Julia 1.12 (38/38 OK), including the six above (also confirmed individually).
  • update.jl's preamble (Pkg.add(["Git","GitHub","Dates"])) resolves and installs on 1.12.

Note: only resolvability (what update_weekly exercises) was verified. The benchmark *.jmd scripts were not executed against the bumped deps — Bio/Jumps run heavy models on self-hosted runners — so the per-benchmark "Run:" PR checks should be watched on review.

Please ignore until reviewed by @ChrisRackauckas

ChrisRackauckas and others added 3 commits June 19, 2026 06:24
…-2 stack

The Weekly Update job (update_weekly) goes red because the per-folder
Pkg.update() of benchmarks/BayesianInference fails to resolve:

  Unsatisfiable requirements detected for package SciMLBase:
   - Turing 0.42 (pinned, latest DiffEqBayes 3.13 still requires Turing 0.42)
     => SciMLBase = 2
   - RecursiveArrayTools 4 (compat) => SciMLBase 3 only
   - OrdinaryDiffEq 7 (compat)       => SciMLBase 3 only

Commit fb9a3b6 mechanically bumped every benchmark Project.toml to the
OrdinaryDiffEq v7 / SciMLBase v3 / RecursiveArrayTools v4 stack. That stack
is unreachable for this folder: DiffEqBayes/Turing are still pinned to
SciMLBase 2, so OrdinaryDiffEq must stay on v6 and RecursiveArrayTools on v3.
The committed Manifest was never actually migrated (it is still SciMLBase
2.144.0 / OrdinaryDiffEq 6.108.0 / RAT 3.48.0), so only the [compat] section
was inconsistent.

Revert the two offending compat entries for this folder:
  OrdinaryDiffEq      "7" -> "6"
  RecursiveArrayTools "4" -> "3"

Verified locally on Julia 1.10 (the update job's version): Pkg.update()
now resolves cleanly (SciMLBase 2.153.1, OrdinaryDiffEq 6.111.0, RAT 3.54.0,
Turing 0.42.9, DiffEqBayes 3.13.0), and Pkg.resolve() against the committed
Manifest reports no Project changes. Benchmark scripts only use Tsit5/Vern9
and VectorOfArray, which are unchanged across the 6/7 and 3/4 boundaries.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Fixes genuine typos in benchmark prose/code (choses->chooses,
reffer->refer, turqoise->turquoise, acelerations->accelerations,
alorithms->algorithms, dinamics->dynamics) and adds legitimate
domain words / false positives to .typos.toml (opf/OPF for Optimal
Power Flow, MEK kinase, ein/pn/Pn/dbe identifiers and name/UUID
substrings). Excludes vendored pglib-opf opf_data/ .m files
(third-party license-header 'inquries').

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… 1.12

The Weekly Update job runs Pkg.update() in every benchmarks/* folder in one
process and aborts on the first unresolvable environment. After the
BayesianInference fix it still crashed on later folders. A full resolution
audit (Julia 1.10) found six folders whose [compat] is unsatisfiable:

  BayesianInference  (fixed earlier in this PR; SciMLBase 2 vs 3)
  Bio                ReactionNetworkImporters 0.15 needs MTK 9, project pins MTK 11
  HybridJumps        PiecewiseDeterministicMarkovProcesses 0.0.10 ⊥ RecursiveArrayTools 4
  Jumps              JumpProblemLibrary 1 needs Catalyst 2, project pins Catalyst 16
                     (+ PDMP 0.0.10 ⊥ RAT 4)
  ParameterEstimation DiffEqParamEstim 2 pins SciMLBase ≤2, project pins MTK 11/ODE 7/RAT 4
  LinearSolve        ParU_jll 1.0.x requires Julia ≥1.12; job ran on 1.10

Fixes (minimal, tightest bound that restores a satisfiable resolution):

  Bio                 ReactionNetworkImporters "0.15" -> "1"   (RNI 1 supports Catalyst 16 + the MTK-11 generation; keeps the SciMLBase-3 stack)
  HybridJumps         PiecewiseDeterministicMarkovProcesses "0.0.10" -> "0.0.12"  (floor bump; 0.0.12 supports RAT 4 / SciMLBase 3 / Sundials 6)
  Jumps               JumpProblemLibrary "1.0.0" -> "2" (supports Catalyst 16); PDMP "0.0.10" -> "0.0.12"
  ParameterEstimation OrdinaryDiffEq "7"->"6", RecursiveArrayTools "4"->"3", ModelingToolkit "11"->"9"
                      (DiffEqParamEstim has no SciMLBase-3 release; revert to the SciMLBase-2 generation
                       matching the last-working Manifest: MTK 9.61 / ODE 6.90 / RAT 3.27 / SciMLBase 2.72)

LinearSolve cannot resolve on Julia 1.10: ParU_jll (used by ParUFactorization()
in the benchmark) only has versions 1.0.0/1.0.1, both requiring julia ≥1.12, and
its Manifest already declares julia_version 1.12.4. Rather than weaken the
benchmark by dropping ParU, bump the Weekly Update job from Julia 1.10 to 1.12 to
match where the benchmark stack now lives.

Local verification (resolution-only, mirrors the job's Pkg.update resolver):
- Reproduced each Unsatisfiable failure on the unmodified Project.tomls (Julia 1.10).
- With these fixes, all 38 benchmark folders resolve cleanly on Julia 1.12 (38/38 OK),
  including the six above; the six also confirmed individually.
- update.jl's preamble (Pkg.add Git/GitHub/Dates) resolves and installs on 1.12.
Note: the benchmark *.jmd scripts were not executed against the bumped deps
(Bio/Jumps run heavy models on self-hosted runners); only resolvability — what
update_weekly actually exercises — was verified.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas-Claude ChrisRackauckas-Claude changed the title Fix update_weekly red: BayesianInference v7/SciMLBase-3 compat is unsatisfiable Fix update_weekly: resolve all six unsatisfiable benchmark folders + run update job on Julia 1.12 Jun 20, 2026
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Expanded this PR to fully green update_weekly (commit 6732675). A resolution audit of all 38 benchmarks/* folders showed the BayesianInference-only fix was insufficient — the single-process Pkg.update() loop would have crashed next on Bio, HybridJumps, Jumps, ParameterEstimation (all unsatisfiable [compat]), and on LinearSolve (ParU_jll needs Julia ≥1.12 but the job ran on 1.10).

Added minimal compat fixes for the four, and bumped .github/workflows/update.yml from Julia 1.10→1.12 for LinearSolve (its Manifest already targets 1.12.4). Verified locally: all 38 folders now resolve cleanly on Julia 1.12 (38/38). Only resolvability was checked — the heavy .jmd benchmarks were not run against the bumped deps.

@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review June 23, 2026 00:59
@ChrisRackauckas
ChrisRackauckas merged commit 68108b8 into SciML:master Jun 23, 2026
6 of 17 checks passed
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.

2 participants