Widen LinearMPC compat to 0.8, 0.9 and 0.10 - #153
Merged
Conversation
`LinearMPC = "0.7"` pins any environment that loads this extension to LinearMPC 0.7.x, and LinearMPC 0.7.x requires DAQPBase 0.3. That makes DAQPBase 0.5 (and so DAQP 0.9) unreachable alongside RobustAndOptimalControl >= 0.4.47, which is where the extension was added. Downstream, DyadControlSystems.jl cannot take DAQP 0.9 without rolling RobustAndOptimalControl back to 0.4.46 — and with it Optim to 1.x and ControlSystemIdentification to 2.11.x. Nothing in the extension needed changing: it only calls `LinearMPC.MPC(F, G; ...)`, `set_objective!` and `set_bounds!`, all of which are unchanged across the 0.7 - 0.10 range. test_linearmpc_ext.jl passes 15/15 against LinearMPC 0.7.3, 0.8.0, 0.8.3, 0.9.0 and 0.10.0. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.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.
LinearMPC = "0.7"in[compat](registered asWeakCompatfor["0.4.47 - 0"], i.e. every version that has the extension) pins any environment loadingRobustAndOptimalControlLinearMPCExtto LinearMPC 0.7.x. That has a consequence well outside this package:DAQPBase = "0.3"(0.8 →0.3.5 - 0.3, 0.9 →0.4.4 - 0.4, 0.10 →0.5).Optim = "1.5.0 - 1", a downstream package that wants DAQP 0.9 has to roll RobustAndOptimalControl back to 0.4.46, taking Optim down to 1.x and ControlSystemIdentification to 2.11.x with it.That is exactly what JuliaComputing/DyadControlSystems.jl hit: DAQP 0.9 is unmergeable there today, and this compat bound is the reason.
No code change needed
The extension only touches three LinearMPC entry points —
LinearMPC.MPC(F, G; Ts, C, Np, Nc, kwargs...),LinearMPC.set_objective!andLinearMPC.set_bounds!— and all three are unchanged across 0.7–0.10.LinearMPC.Simulation(used by the tests and the docstring example) is unchanged too.Testing
test/test_linearmpc_ext.jlrun against each version in the widened range:Julia 1.12.6. Patch version bumped to 0.4.52 so the widened bound can be registered.
🤖 Generated with Claude Code