ModelingToolkitBase: allow DomainSets 0.8#4586
Merged
ChrisRackauckas merged 1 commit intoJun 4, 2026
Merged
Conversation
ModelingToolkitBase only uses `DomainSets.Interval` and `DomainSets.endpoints`, both fully qualified and still exported in DomainSets 0.8. The breaking changes in DomainSets 0.8 (removal of the old `×` type piracy and unexporting some internals now living in FunctionMaps.jl) do not affect this code, so only the compat bound needs widening to admit 0.8. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
This was referenced Jun 4, 2026
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.
Please ignore until reviewed by @ChrisRackauckas.
What
Widen the
ModelingToolkitBaseDomainSetscompat bound from0.6, 0.7to0.6, 0.7, 0.8(and bump the version1.42.1 -> 1.42.2).Why
This is required to unblock the DomainSets
0.7 -> 0.8dependabot bump in MethodOfLines.jl (SciML/MethodOfLines.jl#564). While diagnosing that PR I found that PDEBase was not the only blocker: ModelingToolkitBase also pinsDomainSets = "0.6, 0.7", so any package that pulls ModelingToolkit (PDEBase, MethodOfLines, ...) cannot resolve DomainSets 0.8. Forcing DomainSets 0.8 in a MethodOfLines test environment produces:Symbolics already supports DomainSets 0.8 (
DomainSets = "0.6 - 0.8"from Symbolics 7.18.1), so ModelingToolkitBase is the last piece of the core MTK stack still capping it at 0.7.DomainSets 0.8 breaking changes and why they don't affect ModelingToolkitBase
DomainSets v0.8.0 (JuliaApproximation/DomainSets.jl#178):
DomainSets.×andLinearAlgebra.×are now distinct functions.ModelingToolkitBase's only DomainSets usage is in
lib/ModelingToolkitBase/src/utils.jl(andimport DomainSetsin the module):DomainSets.IntervalandDomainSets.endpointsare fully qualified and remain exported/defined in DomainSets 0.8 (verified locally below). No bare×and no unexported internals are used, so no source changes are required — only the compat bound.Local verification
DomainSets 0.8.0 provides every name ModelingToolkitBase uses:
With this ModelingToolkitBase branch + a DomainSets-0.8-compatible PDEBase developed into a MethodOfLines test environment, resolution succeeds and selects DomainSets 0.8.0, ModelingToolkitBase 1.42.2, and the full MTK/OrdinaryDiffEq/NonlinearSolve stack precompiles cleanly. ModelingToolkitBase precompiled successfully against DomainSets 0.8.0 (the pre-existing
@nospecialize annotation only supported on the first 32 argumentswarning is unrelated to this change). See the MethodOfLines PR for the full passing test output.🤖 Generated with Claude Code
Part of the DomainSets 0.8 set: SciML/MethodOfLines.jl#565 (consumer), SciML/PDEBase.jl#81 (the other 0.7 pin).