build: migrate to Symbolics 7 / SciMLBase 3 / MTKBase stack#125
Merged
Conversation
Compat bumps: Symbolics 7, SymbolicUtils 4, SciMLBase 3, OrdinaryDiffEqTsit5 2,
OrdinaryDiffEqRosenbrock 2, ModelingToolkitBase 1, HarmonicBalance 0.17,
QuestBase 0.4. LinearSolve, NonlinearSolve, and SteadyStateDiffEq are pinned
to the versions that widen their SciMLBase compat to 3 (3.75 / 4.17 / 2.10).
Bump HSS itself to v0.5.0.
ModelingToolkit weakdep is replaced with ModelingToolkitBase across the
SteadyStateDiffEq extension test, which now uses `mtkcompile` instead of the
removed `structural_simplify`.
Latexify is no longer re-exported from Symbolics 7, so it is added as a
direct weakdep and the PlotsExt trigger becomes `[Plots, Latexify]`.
QuantumCumulants extension and its tests (`input_output.jl`) are temporarily
disabled because the latest QC release (0.4.3) caps SymbolicUtils at 3 and
SciMLBase at 2. Re-enable when QC supports the new stack.
Symbolics 7's `substitute` no longer auto-folds numeric Const wrappers, so
the numerical extraction points (`transform_solutions`, `Lorentzian_spectrum`,
LinearResponse `response.jl`, and TimeEvolution `ODEProblem`) now go through
`Symbolics.substitute(...; fold=Val{true}())` plus `Symbolics.value` (or
`SymbolicUtils.unwrap_const`) to return concrete `Float64`s.
A `[sources]` block points test sandboxes at the local HarmonicBalance and
QuestBase clones so the upgrade can be validated end to end without
registering the bumped versions first.
Switch [sources] from local paths to git url and branch rev so CI can resolve the unreleased QuestBase 0.4 and HarmonicBalance. Set julia compat to 1.12 and run Tests and Documentation on 1.12 only. Widen BijectiveHilbert to allow 0.6 and OrderedCollections to allow v2. Add the QuestBase source to the docs environment. Add an informational codecov config. Apply JuliaFormatter v2.
PlotsExt is not loaded in the docs environment because its Latexify trigger is absent, so Base.get_extension returned nothing and makedocs rejected the modules vector with a TypeError. Filter nothing out of the modules list.
API.md documents PlotsExt functions (plot, plot_phase_diagram, plot_spaghetti, ...). PlotsExt only loads when both Plots and Latexify are present, so without Latexify the @docs blocks failed with a docs_block error. Add Latexify to the docs environment and load it in make.jl, and build the makedocs modules list as a Vector{Module} filtered of unloaded extensions.
…r cumulants Re-enable the QuantumCumulants weak dependency, extension and tests, which were dropped during the Symbolics 7 migration because QuantumCumulants 0.4 capped SymbolicUtils and SciMLBase. QuantumCumulants 0.7 supports the new stack. Fix the moment-to-real-variable conversion for QuantumCumulants 0.7: averages now render operator products with spaces and use an ASCII apostrophe for the adjoint. Strip spaces and map both the apostrophe and the prime to the superscript plus when building variable names, so second-order cumulants (e.g. a⁺aᵣ) work in addition to first order. Update examples and tests to the QuantumCumulants 0.7 parameter idiom (@variables instead of the removed @rnumbers / @cnumbers).
QuestBase 0.4.0 solves symbolic systems with `Symbolics.symbolic_linear_solve`, whose nested fraction denominators grow without bound on the van der Pol limit cycle system. That exhausted the CI runner's memory and killed the job partway through the limit cycle tests. 0.4.1 solves via fraction-free Bareiss elimination instead, so require it rather than letting the resolver pick 0.4.0. The docs environment pinned QuestBase to a git branch that no longer exists now that the work is released; use the registered version there too.
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.
Compat bumps: Symbolics 7, SymbolicUtils 4, SciMLBase 3, OrdinaryDiffEqTsit5 2, OrdinaryDiffEqRosenbrock 2, ModelingToolkitBase 1, HarmonicBalance 0.17, QuestBase 0.4. LinearSolve, NonlinearSolve, and SteadyStateDiffEq are pinned to the versions that widen their SciMLBase compat to 3 (3.75 / 4.17 / 2.10). Bump HSS itself to v0.5.0.
ModelingToolkit weakdep is replaced with ModelingToolkitBase across the SteadyStateDiffEq extension test, which now uses
mtkcompileinstead of the removedstructural_simplify.Latexify is no longer re-exported from Symbolics 7, so it is added as a direct weakdep and the PlotsExt trigger becomes
[Plots, Latexify].QuantumCumulants extension and its tests (
input_output.jl) are temporarily disabled because the latest QC release (0.4.3) caps SymbolicUtils at 3 and SciMLBase at 2. Re-enable when QC supports the new stack.Symbolics 7's
substituteno longer auto-folds numeric Const wrappers, so the numerical extraction points (transform_solutions,Lorentzian_spectrum, LinearResponseresponse.jl, and TimeEvolutionODEProblem) now go throughSymbolics.substitute(...; fold=Val{true}())plusSymbolics.value(orSymbolicUtils.unwrap_const) to return concreteFloat64s.A
[sources]block points test sandboxes at the local HarmonicBalance and QuestBase clones so the upgrade can be validated end to end without registering the bumped versions first.Checklist
Thank you for contributing to
HarmonicSteadyState.jl! Please make sure you have finished the following tasks before finishing the PR.make test.juliaformatted by running:make format.docs/folder) related to code changes were updated and able to build locally by running:make docs.Request for a review after you have completed all the tasks. If you have not finished them all, you can also open a Draft Pull Request to let the others know this on-going work.
Description
Describe the proposed change here.
Related issues or PRs
Please mention the related issues or PRs here. If the PR fixes an issue, use the keyword close/closes/closed/fix/fixes/fixed/resolve/resolves/resolved followed by the issue id, e.g. fix #[id]
Additional context