Upgrade to Catalyst 16 / Oscar 1.7 (handles #61; unblocked by CDDLib 0.10.3)#62
Conversation
Updates the requirements on [CDDLib](https://github.com/JuliaPolyhedra/CDDLib.jl), [ReactionNetworkImporters](https://github.com/SciML/ReactionNetworkImporters.jl), [Polyhedra](https://github.com/JuliaPolyhedra/Polyhedra.jl), [Catalyst](https://github.com/SciML/Catalyst.jl), [Combinatorics](https://github.com/JuliaMath/Combinatorics.jl), [SymbolicUtils](https://github.com/JuliaSymbolics/SymbolicUtils.jl), [ModelingToolkit](https://github.com/SciML/ModelingToolkit.jl), [Nemo](https://github.com/Nemocas/Nemo.jl) and [Hecke](https://github.com/thofma/Hecke.jl) to permit the latest version. Updates `CDDLib` to 0.10.2 - [Release notes](https://github.com/JuliaPolyhedra/CDDLib.jl/releases) - [Commits](JuliaPolyhedra/CDDLib.jl@v0.9.4...v0.10.2) Updates `ReactionNetworkImporters` to 1.3.0 - [Release notes](https://github.com/SciML/ReactionNetworkImporters.jl/releases) - [Changelog](https://github.com/SciML/ReactionNetworkImporters.jl/blob/master/HISTORY.md) - [Commits](SciML/ReactionNetworkImporters.jl@v0.15.1...v1.3.0) Updates `Polyhedra` to 0.8.1 - [Release notes](https://github.com/JuliaPolyhedra/Polyhedra.jl/releases) - [Changelog](https://github.com/JuliaPolyhedra/Polyhedra.jl/blob/master/NEWS.md) - [Commits](JuliaPolyhedra/Polyhedra.jl@v0.7.8...v0.8.1) Updates `Catalyst` to 16.1.2 - [Release notes](https://github.com/SciML/Catalyst.jl/releases) - [Changelog](https://github.com/SciML/Catalyst.jl/blob/master/HISTORY.md) - [Commits](SciML/Catalyst.jl@v14.4.1...v16.1.2) Updates `Combinatorics` to 1.1.0 - [Release notes](https://github.com/JuliaMath/Combinatorics.jl/releases) - [Commits](JuliaMath/Combinatorics.jl@v0.0.1...v1.1.0) Updates `SymbolicUtils` to 4.33.1 - [Release notes](https://github.com/JuliaSymbolics/SymbolicUtils.jl/releases) - [Commits](JuliaSymbolics/SymbolicUtils.jl@v3.7.2...v4.33.1) Updates `ModelingToolkit` to 11.26.7 - [Release notes](https://github.com/SciML/ModelingToolkit.jl/releases) - [Changelog](https://github.com/SciML/ModelingToolkit.jl/blob/master/NEWS.md) - [Commits](SciML/ModelingToolkit.jl@v9.46.1...v11.26.7) Updates `Nemo` to 0.55.1 - [Release notes](https://github.com/Nemocas/Nemo.jl/releases) - [Changelog](https://github.com/Nemocas/Nemo.jl/blob/master/CHANGELOG.md) - [Commits](Nemocas/Nemo.jl@v0.47.0...v0.55.1) Updates `Hecke` to 0.39.17 - [Release notes](https://github.com/thofma/Hecke.jl/releases) - [Changelog](https://github.com/thofma/Hecke.jl/blob/master/CHANGELOG.md) - [Commits](thofma/Hecke.jl@v0.34.0...v0.39.17) --- updated-dependencies: - dependency-name: CDDLib dependency-version: 0.10.2 dependency-type: direct:production dependency-group: all-julia-packages - dependency-name: ReactionNetworkImporters dependency-version: 1.3.0 dependency-type: direct:production dependency-group: all-julia-packages - dependency-name: Polyhedra dependency-version: 0.8.1 dependency-type: direct:production dependency-group: all-julia-packages - dependency-name: Catalyst dependency-version: 16.1.2 dependency-type: direct:production dependency-group: all-julia-packages - dependency-name: Combinatorics dependency-version: 1.1.0 dependency-type: direct:production dependency-group: all-julia-packages - dependency-name: SymbolicUtils dependency-version: 4.33.1 dependency-type: direct:production dependency-group: all-julia-packages - dependency-name: ModelingToolkit dependency-version: 11.26.7 dependency-type: direct:production dependency-group: all-julia-packages - dependency-name: Nemo dependency-version: 0.55.1 dependency-type: direct:production dependency-group: all-julia-packages - dependency-name: Hecke dependency-version: 0.39.17 dependency-type: direct:production dependency-group: all-julia-packages ... Signed-off-by: dependabot[bot] <support@github.com>
The dependabot bump in SciML#61 (Catalyst 16, ModelingToolkit 11, SymbolicUtils 4, ReactionNetworkImporters 1.3, Hecke 0.39, Nemo 0.55, ...) cannot currently be satisfied. Catalyst 16 (Symbolics 7) requires Nemo >= 0.52, which requires Oscar >= 1.5; Oscar >= 1.5 uses polymake_jll >= 400.1400, which requires cddlib_jll 0.94.15; but CDDLib (all released versions, and even master) pins cddlib_jll = "=0.94.14". So Catalyst 16 + Oscar + CDDLib is an unsatisfiable set until CDDLib releases support for cddlib_jll 0.94.15. This commit keeps the package on its working baseline (Catalyst 14.4.1, MTK 9.46.1, SymbolicUtils 3.7.2, Oscar 1.1.1, Nemo 0.47, Hecke 0.34, RNI 0.15.1) and applies only the bumps that resolve and require no source migration: - CDDLib 0.9.4 -> also allow 0.10 - Polyhedra 0.7.8 -> also allow 0.8 - add a Combinatorics = "1" compat bound (dep previously had none) Also fixes the `speices` -> `species` typo flagged by the SpellCheck CI job. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Local verification output (Julia 1.11)
Full
rn = @reaction_network begin
(k1, k2), A <--> B
(k3, k4), B <--> C
(k5, k6), C <--> A
end
elementary_flux_modes(rn) # -> 6x5 Matrix{Int64}, EFMs computed OK
Full |
Full
|
Baseline confirmation: the 6 failures are pre-existing on
|
…0.3) The full bump from SciML#61 is now resolvable: CDDLib 0.10.3 allows cddlib_jll 0.94.15, which Oscar >= 1.5 (required transitively by Catalyst 16 -> Symbolics 7 -> Nemo >= 0.52) needs. Resolves to Catalyst 16.2, ModelingToolkit 11.26, Oscar 1.7.3, Nemo 0.54, Hecke 0.39, SymbolicUtils 4.34, CDDLib 0.10.3, Polyhedra 0.8, ReactionNetworkImporters 1.3. Compat corrections vs the naive SciML#61 bump: - Combinatorics = "1" (not 1.1.0; SymbolicUtils 4 caps it at 1.0.2) - Nemo = "0.47, 0.54" (0.55 is unsupported by any Oscar) - Oscar bumped to allow 1.7 (Catalyst 16 needs Oscar >= 1.5) Source migration for the new stack: - Catalyst 16 no longer exports symmap_to_varmap; qualify as Catalyst.symmap_to_varmap. - Oscar 1.7 now exports combinations, making the unqualified name ambiguous with Combinatorics; qualify as Combinatorics.combinations (matching utils.jl). Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Updated: this now performs the full Catalyst 16 upgrade (the #61 goal)The upstream blocker is resolved. CDDLib v0.10.3 (released today, via JuliaPolyhedra/CDDLib.jl#108) bumps its New commit Resolved stack (verified locally, Julia 1.11): Catalyst 16.2.0, ModelingToolkit 11.26.7, Oscar 1.7.3, Nemo 0.54.2, Hecke 0.39.15, SymbolicUtils 4.34.2, Symbolics 7.26.0, CDDLib 0.10.3, cddlib_jll 0.94.15, Polyhedra 0.8.1, ReactionNetworkImporters 1.3.0, SBMLToolkit 0.1.33, Combinatorics 1.0.2. Compat corrections vs the naive #61 bump
Source migration (needed by the new stack; backward-compatible with Catalyst 14)
Test results (
|
Warning
Please ignore until reviewed by @ChrisRackauckas.
Follow-up to the dependabot bump in #61 (
dependabot/julia/all-julia-packages-beba857eae).TL;DR
The large bump in #61 (Catalyst 16, ModelingToolkit 11, SymbolicUtils 4, ReactionNetworkImporters 1.3, Hecke 0.39, Nemo 0.55, CDDLib 0.10, Polyhedra 0.8, Combinatorics added) cannot currently be satisfied: getting to Catalyst 16 forces an Oscar version that is mutually exclusive with CDDLib through
cddlib_jll. This PR therefore:speices->speciestypo that fails the SpellCheck CI job.CDDLib = "0.9.4, 0.10"Polyhedra = "0.7.8, 0.8"Combinatorics = "1"(the dep previously had no compat bound).No source migration was performed because Catalyst 16 / MTK 11 / SymbolicUtils 4 is not reachable (see below), so any
states->unknowns/ SymbolicUtils-4 changes would be untestable here.Resolution analysis (why Catalyst 16 is blocked)
Verified locally on Julia 1.11 with
Pkg.resolveagainst the General registry. The constraint chain is:ModelingToolkitBase(notModelingToolkitdirectly anymore),Symbolics = "7.13.0 - 7",SymbolicUtils = "4.9.1 - 4".Catalyst 16.1 + Nemopicks Nemo 0.55.1; pinning Nemo to 0.50 or 0.51 is unsatisfiable (Catalyst 16 -> Symbolics 7 transitively requires Nemo >= 0.52, via the Symbolics/Groebner stack). Confirmed:Nemo = 0.52resolves with Catalyst 16,Nemo = 0.50/0.51do not.cddlib_jll = "0.94.15".master) pinscddlib_jll = "=0.94.14"(exact pin).cddlib_jll0.94.14 and 0.94.15 are mutually exclusive => unsatisfiable.Net: Catalyst 16 + Oscar + CDDLib is currently an unsatisfiable set. CDDLib is a real dependency —
src/cycles.jl::elementary_flux_modesusesCDDLib.Library()as the exact-arithmetic polyhedron backend — so it cannot simply be dropped. The block is upstream: CDDLib has not released (and master does not yet support)cddlib_jll0.94.15.Two ways to unblock Catalyst 16 in the future, both out of scope for a dependency-bump PR:
cddlib_jll0.94.15 (the real upstream fix), orelementary_flux_modesoff CDDLib to another exact polyhedra backend compatible with Oscar 1.5+ (an architectural change that needs its own review + EFM-correctness validation).Other secondary issues found in #61's compat (would have failed even without the CDDLib block):
ModelingToolkit = "...11.26"— 11.26 does not exist in the registry (latest is 11.25). Catalyst 16 no longer depends on ModelingToolkit directly anyway.Nemo = "...0.55"— no Oscar version supports Nemo 0.55 (max is Oscar 1.7 -> Nemo 0.54).Combinatorics = "1.1.0"— conflicts with SymbolicUtils 4 (SymbolicUtils 3.32-4 requiresCombinatorics = "1 - 1.0.2").SBMLToolkit = "0.1.29"was not bumped; Catalyst 16 needs SBMLToolkit >= 0.1.32 (Catalyst = "14 - 16").SBMLImporterneeds v4 for Catalyst 16. (Moot here since Catalyst 16 is blocked.)Source migration
None required: staying on Catalyst 14.4.1 means no Catalyst-16 / SymbolicUtils-4 API changes apply. Reviewed
src/forstates->unknowns,istree/iscall, and Catalyst accessor changes — none are needed on the current stack. The only source change is the comment typo fix.CDDLib 0.10 / Polyhedra 0.8 breaking changes (Julia >=1.10 floor, JuMP export removal, Mesh moved to an extension) do not touch the API used in
cycles.jl(CDDLib.Library(),polyhedron,hrep,vrep,HyperPlane,HalfSpace,rays).Local verification (Julia 1.11)
Pkg.resolve()on this branch: OK.using CatalystNetworkAnalysis+ anelementary_flux_modessmoke test exercising CDDLib 0.10 / Polyhedra 0.8: see results posted below / in CI.runic --check srcis clean (exit 0).Notes
invalid subtyping in definition of StdString with supertype CppBasicString-> failed to precompile CxxWrap). This is an upstream Oscar/CxxWrap-on-1.12 binary issue, not a source bug. It does not reproduce on Julia 1.11.🤖 Generated with Claude Code