Fix minimum version bounds and NullParameters bug#29
Merged
ChrisRackauckas merged 3 commits intoJun 26, 2026
Merged
Conversation
- 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>
2efc907 to
52a5873
Compare
ChrisRackauckas-Claude
pushed a commit
to ChrisRackauckas-Claude/FiniteStateProjection.jl
that referenced
this pull request
Jul 3, 2026
Resolve the Project.toml [compat] conflict by keeping the PR's SparseArrays = "1" entry (added so Aqua deps_compat stops flagging the missing bound) alongside main's SteadyStateDiffEq = "2.5" / DiffEqBase = "6.165, 7" floors and the v0.3.4 release bump from SciML#62/SciML#63. main's SciML#29 already re-qualified the FSP method extensions to SciMLBase.ODEProblem / SciMLBase.SteadyStateProblem with SciMLBase.NullParameters() defaults; those forms come in via the merge. The run_qa NullParameters ignore added here stays correct: NullParameters is still non-public in the Catalyst-15-pinned SciMLBase 2.153.1, so the all_qualified_accesses_are_public check still flags the SciMLBase.NullParameters qualified access. Verified on Julia 1.12.6 against the merged tree with released SciMLTesting 1.7.0 / JET 0.11.5 / ExplicitImports 1.15.0 (resolved Catalyst 15.0.11, SciMLBase 2.153.1): Quality Assurance 13 Pass, 5 Broken, 0 Fail, 0 Error. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two genuine fixes that let FiniteStateProjection build and pass its test suite on Julia 1.10 through 1.12:
NullParametersqualification (build_rhs.jl,build_rhs_ss.jl) —NullParametersis not exported from DiffEqBase, so the unqualified default-argument reference (pmap = NullParameters()) is anUndefVarErrorwaiting to happen. Qualified asDiffEqBase.NullParameters().DiffEqBase compat floor — bumped to
6.165to match what Catalyst 15 actually requires transitively, so the stated minimum is resolvable.Julia 1.12
MacroTools.prettifycrash (build_rhs.jl,build_rhs_ss.jl) — the RHS builders piped the generated expression throughMacroTools.prettify, which callsunresolve→unresolve1(f::Function) = methods(f).mt.name. On Julia 1.12 this throwsFieldError: type Base.MethodList has no field mtbecause themtfield was removed. The latest registered MacroTools (0.5.16) still contains this unguarded code; the upstream fix (Fix Julia 1.12 compatibility for MethodList API change FluxML/MacroTools.jl#217) is merged tomasteronly and has not been released (masterProject.tomlstill says0.5.16).Rather than block on an unreleased upstream package, this fixes the real cause in-repo: the
unresolvepass only rewrites interpolatedFunctionvalues to their symbolic names for display — it is unnecessary for expressions compiled via@RuntimeGeneratedFunction. A localprettify_rhsapplies the same cosmetic transforms (flatten,resyntax,alias_gensyms) but skipsunresolve, so FSP works on Julia 1.12 with any MacroTools 0.5.x.Verification (run locally)
Pkg.test()— Telegraph 17/17, FeedbackLoop 12/12, BirthDeath2D 18/18, "tests passed". (Previously errored with theBase.MethodListFieldError.)Pkg.test()— Telegraph 17/17, FeedbackLoop 12/12, BirthDeath2D 18/18, "tests passed". No regression.This PR should be ignored until reviewed by @ChrisRackauckas.
🤖 Generated with Claude Code