Skip to content

Conversation

@ChrisRackauckas-Claude
Copy link
Contributor

Summary

  • Update DiffEqBase minimum version from "6" to "6.165" - Catalyst 15 requires DiffEqBase >= 6.165 through its dependency chain, making the old bound incorrect
  • Fix unqualified NullParameters reference in build_rhs.jl and build_rhs_ss.jl - NullParameters is not exported from DiffEqBase and must be qualified as DiffEqBase.NullParameters()

Details

DiffEqBase Minimum Version

When attempting to resolve with the minimum DiffEqBase version (6.0), the package resolver fails because Catalyst 15 transitively requires DiffEqBase >= 6.165. This PR updates the bound to accurately reflect this constraint.

NullParameters Bug

The code was using an unqualified NullParameters() in default function arguments:

function DiffEqBase.ODEProblem(sys::FSPSystem, u0, tint, pmap = NullParameters())

This causes an UndefVarError at runtime because NullParameters is not exported from DiffEqBase. The fix qualifies it as DiffEqBase.NullParameters().

Test Plan

  • Tests pass with MacroTools master (required for Julia 1.12 compatibility)
  • CI should pass once MacroTools 0.5.17+ is released (see note below)

Note on Julia 1.12 Compatibility

Tests on Julia 1.12 currently require MacroTools from master due to a MethodList API change in Julia 1.12. The fix was merged to MacroTools in PR #217 but has not yet been released. Once MacroTools 0.5.17+ is released, CI should pass on Julia 1.12.

cc @ChrisRackauckas

🤖 Generated with Claude Code

- Update DiffEqBase minimum version from 6 to 6.165
  - Catalyst 15 requires DiffEqBase >= 6.165, so the previous bound was too low
- Fix unqualified NullParameters reference in build_rhs.jl and build_rhs_ss.jl
  - NullParameters is not exported from DiffEqBase, so it must be qualified as
    DiffEqBase.NullParameters()

Note: Tests require MacroTools >= 0.5.17 (unreleased) or master for Julia 1.12
compatibility due to MethodList API changes in Julia 1.12.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
first and then use that to create `ODEProblem`s.
"""
function DiffEqBase.ODEProblem(sys::FSPSystem, u0, tint, pmap = NullParameters())
function DiffEqBase.ODEProblem(sys::FSPSystem, u0, tint, pmap = DiffEqBase.NullParameters())
Copy link
Member

@ChrisRackauckas ChrisRackauckas Dec 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
function DiffEqBase.ODEProblem(sys::FSPSystem, u0, tint, pmap = DiffEqBase.NullParameters())
function SciMLBase.ODEProblem(sys::FSPSystem, u0, tint, pmap = SciMLBase.NullParameters())

Return a `SteadyStateProblem` for use in `DifferentialEquations.
"""
function DiffEqBase.SteadyStateProblem(sys::FSPSystem, u0, pmap = NullParameters())
function DiffEqBase.SteadyStateProblem(sys::FSPSystem, u0, pmap = DiffEqBase.NullParameters())
Copy link
Member

@ChrisRackauckas ChrisRackauckas Dec 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
function DiffEqBase.SteadyStateProblem(sys::FSPSystem, u0, pmap = DiffEqBase.NullParameters())
function SciMLBase.SteadyStateProblem(sys::FSPSystem, u0, pmap = SciMLBase.NullParameters())

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