-
-
Notifications
You must be signed in to change notification settings - Fork 411
Description
We're now at a point where the "big" points on our Roadmap are complete, so it's time to start actively planning the release of JuMP 1.0.
We should prioritize our attention on things that need to be fixed before JuMP 1.0. Things that can be fixed afterwards can wait.
Step: Release MOI 0.10.0
There are a bunch of MOI breaking changes that have been piling up. We should:
- Release 0.9.21, then start breaking. Prep for 0.9.21 MathOptInterface.jl#1301
- Resolve milestone issues https://github.com/jump-dev/MathOptInterface.jl/milestone/7
- Tag 0.10: New version: MathOptInterface v0.10.0 JuliaRegistries/General#44335
Step: Update all packages to MOI 0.10.0
Once MOI 0.10.0 is released, we need to go through (almost) every solver and update any breakages.
To help update, read the MOI release notes.
The new test suite will likely expose some bugs in the solver wrappers. For now it's okay to skip these failing tests. The main emphasis is to get things mostly working. We can fix previously undetected bugs at a later date.
- BARON (@joaquimg) MOI 0.10 (and fixes) BARON.jl#52
- Cbc (@odow) Breaking changes for MOI 0.10.0 Cbc.jl#169
- CDCS Update to MOI v1 oxfordcontrol/CDCS.jl#11
- CDDLib (@blegat) Update to MOI v0.10 JuliaPolyhedra/CDDLib.jl#69
- Clp (@odow) Breaking changes for MOI 0.10.0 Clp.jl#114
- ComplexOptInterface (@blegat) Update to MOI v0.10 ComplexOptInterface.jl#7
- Convex.jl (@ericphanson) Update to MOI v0.10 Convex.jl#467
- CPLEX (@odow) Breaking changes for MOI 0.10.0 CPLEX.jl#370
- CSDP (@blegat) DNMY: Breaking changes for MOI 0.10.0 CSDP.jl#69
- DSDP (@blegat) Update to MOI v0.10 DSDP.jl#15
- EAGO (@mewilhel) v0.7 preliminary pull PSORLab/EAGO.jl#102
- ECOS (@blegat) WIP: breaking changes for MOI 0.10.0 ECOS.jl#119
- GLPK (@odow) Breaking changes for MOI 0.10.0 GLPK.jl#178
- Gurobi (@odow) Breaking changes for MOI 0.10.0 Gurobi.jl#422
- Highs (@odow) Breaking changes for MOI 0.10.0 HiGHS.jl#50
- Ipopt (@odow) Breaking changes for MOI 0.10.0 Ipopt.jl#272
- KNITRO (@frapac) Add support to MOI 0.10 KNITRO.jl#193
- MadNLP (@frapac) Port MadNLP to MOI 0.10 and JuMP 0.22 MadNLP/MadNLP.jl#117
- MatrixOptInterface (@frapac) Add support to MOI 0.10 MatrixOptInterface.jl#28
- MCPSD (@blegat) Add cache tests blegat/MCPSD.jl#1
- MosekTools (@matbesancon) Moi 10 MosekTools.jl#75
- NLopt (@blegat) Breaking changes for MOI 0.10.0 NLopt.jl#175
- OSQP (@blegat) Breaking changes for MOI 0.10.0 osqp/OSQP.jl#97
- ParametricOptInterface (@guilhermebodin) update to MOI 0.10 ParametricOptInterface.jl#65
- Pavito (@blegat) Update to MOI v0.10 Pavito.jl#40
- Penopt (@blegat) Update to MOI v0.10 Penopt.jl#8
- ProxSDP (@joaquimg) MOI 0.10 mariohsouto/ProxSDP.jl#90
- QuadraticToBinary (@joaquimg) MOI 0.10 joaquimg/QuadraticToBinary.jl#16
- SCS (@blegat @odow) Breaking changes for MOI 0.10 SCS.jl#219
- SCIP (@matbesancon) upgrade to MOI 10 scipopt/SCIP.jl#203
- SDPA (@blegat) DNMY: Breaking changes for MOI 0.10.0 SDPA.jl#35
- SDPNAL (@blegat) Update to MOI v1 SDPNAL.jl#13
- SDPT3 (@blegat) Update to MOI v0.10 SDPT3.jl#13, DeprecatedTest -> Test SDPT3.jl#15
- SeDuMi (@blegat) Update to MOI v0.10 SeDuMi.jl#19
- Tulip (@matbesancon) MOI 0.10 upgrade ds4dm/Tulip.jl#105
- Xpress (@metab0t @joaquimg) Breaking changes for MOI v0.10 Xpress.jl#147
Step: Release JuMP 0.22.0
- Update to MOI 0.10.0
- Fix milestone issues https://github.com/jump-dev/JuMP.jl/milestone/12
Solvers which require MOI and JuMP
These packages have a dependency on MOI and JuMP. That makes it hard to update them sequentially. We may be better off waiting until MOI and JuMP are both at v1.0.
- AmplNLWriter (@odow) Breaking changes for MOI 0.10.0 AmplNLWriter.jl#141
- DiffOpt (@matbesancon @blegat) Upgrading DiffOpt to MOI 0.10 DiffOpt.jl#150
- Dualization (@guilhermebodin) Fixes for JuMP 0.22 and MOI 0.10 Dualization.jl#127
- Hypatia (@matbesancon) MOI to 0.10 Hypatia.jl#754
- PolyJuMP (@matbesancon) up version PolyJuMP.jl#66
- SumOfSquares (@blegat) Update to JuMP v0.22, MOI v0.14, MP v0.4, MA, v0.3 SumOfSquares.jl#224
- Juniper (@Wikunia @odow) Moi v0.10 lanl-ansi/Juniper.jl#220
- Alpine (@odow) Update to MOI v1.0 lanl-ansi/Alpine.jl#188
- Polyhedra (@blegat) Update to JuMP v0.22 and MOI v0.10 JuliaPolyhedra/Polyhedra.jl#277
- Pavito (@blegat) Update to MOI v0.10 Pavito.jl#40
Step: Release MOI 1.0.0
- This should be non-breaking compared to 0.10.0, just with deprecations removed.
Step: Update all solvers to MOI 1.0.0
Updating checklist
- Update minimum Julia 1.6
- Drop all support for BinaryProvider and custom binaries via ENV overloads
- Use an
__init__to set the jll path if using JLLs: Finding the artifact path on initialization improves relocatability ECOS.jl#134
- Use an
Optimizerhas a docstring, and that docstring goes on themutable struct, not the inner constructorOptimizerdoesn't accept kwargs- All deprecation warnings removed
- Uses JuliaFormatter
- Follows JuMP style guide
_privatenames are particularly important to allow breakages in the post 1.0 world
Tag 1.0 releases of all solvers:
- BARON (@joaquimg) MOI 1.0 and JuMP 0.23 BARON.jl#53
- Cbc (@odow) Prep for v1.0 Cbc.jl#188
- CDCS Update to MOI v1 oxfordcontrol/CDCS.jl#11
- CDDLib (@blegat) Update to MOI v0.10 JuliaPolyhedra/CDDLib.jl#69
- Clp (@odow) Prep for v1.0 release Clp.jl#129
- ComplexOptInterface (@blegat) MOI v1 and Julia v1.6 ComplexOptInterface.jl#9
- Convex.jl (@odow) Update to MOI v1.0 Convex.jl#476
- CPLEX (@odow) WIP: prep for v1.0 CPLEX.jl#386 tagged as v0.9.0
- CSDP (@odow) Prep for v1.0 release CSDP.jl#72
- DSDP (@blegat) Update to MOI v1 DSDP.jl#16
- EAGO (@mewilhel) v0.7 preliminary pull PSORLab/EAGO.jl#102
- ECOS (@odow) Update to MOI v1.0 ECOS.jl#136
- GLPK (@odow) Update to MOI v1.0 GLPK.jl#211
- Gurobi (@odow) WIP: prep for v1.0 Gurobi.jl#451 tagged as v0.11.0
- Highs (@odow) Update to MOI v1.0 HiGHS.jl#85
- Ipopt (@odow) Prep for v1.0 Ipopt.jl#301
- KNITRO (@frapac) Add support to MOI 1.0 KNITRO.jl#213
- MadNLP (@frapac) add support to MOI 1.0 MadNLP/MadNLP.jl#148
- MathOptSetDistances (@joaquimg) MOI 1.0 matbesancon/MathOptSetDistances.jl#60
- MatrixOptInterface (@joaquimg) MOI 1.0 MatrixOptInterface.jl#29
- MCPSD (@blegat) Update to MOI v1 blegat/MCPSD.jl#5
- MosekTools (@matbesancon) bump MOI 1 MosekTools.jl#91
- NLopt (@odow) Update support to MOI v1.0 NLopt.jl#182
- OSQP (@blegat) Update to MOI v1.0 osqp/OSQP.jl#110
- ParametricOptInterface (@guilhermebodin) MOI 1.0, format check, CI ParametricOptInterface.jl#67
- PATHSolver (@odow) https://github.com/chkwon/PATHSolver.jl
- Penopt (@blegat) Update to MOI v1 Penopt.jl#10
- ProxSDP (@joaquimg) MOI 1.0 mariohsouto/ProxSDP.jl#91
- QuadraticToBinary (@joaquimg) MOI 1.0 joaquimg/QuadraticToBinary.jl#17
- SCS (@odow) Update to MOI v1.0 SCS.jl#250
- SCIP (@matbesancon) bump moi scipopt/SCIP.jl#220
- SDPA (@blegat) Update to MOI v1 SDPA.jl#36
- SDPNAL (@blegat) Update to MOI v1 SDPNAL.jl#13
- SDPT3 (@blegat) DeprecatedTest -> Test SDPT3.jl#15
- SeDuMi (@blegat) Update to MOI v1 SeDuMi.jl#20
- Tulip (@mtanneau) CompatHelper: bump compat for MathOptInterface to 1, (keep existing compat) ds4dm/Tulip.jl#114
- Xpress (@joaquimg) MOI 1.0 Xpress.jl#159 tagged as v0.15.0
Step: Release JuMP 0.23.0
- With some minor breaking changes compared to v0.22
Solvers which require MOI and JuMP v0.23
These packages have a dependency on MOI and JuMP. That makes it hard to update them sequentially. We may be better off waiting until MOI and JuMP are both at v1.0.
- MINLPTests (@odow) Update compat MINLPTests.jl#36
- AmplNLWriter (@odow) Bump MOI support to v1 AmplNLWriter.jl#151
- NEOS.jl
- DiffOpt (@blegat) Update to MOI v1 and JuMP v0.23 DiffOpt.jl#190
- Dualization (@joaquimg @guilhermebodin) MOI 1.0 and JuMP 0.23 Dualization.jl#128
- Hypatia (@chriscoey) update MOI to 1, fix error in classicalquantum example Hypatia.jl#811
- PolyJuMP (@blegat) Update to JuMP v0.23 and MOI v1 PolyJuMP.jl#71
- SumOfSquares (@blegat) Update to MOI v1 and JuMP v0.23 SumOfSquares.jl#238
- Juniper (@odow) Update to JuMP v0.23 and switch from Cbc to HiGHS lanl-ansi/Juniper.jl#232
- Alpine (@odow) Update to MOI v1.0 lanl-ansi/Alpine.jl#188
- Polyhedra (@blegat) Update to JuMP v0.23 and MA v1 JuliaPolyhedra/Polyhedra.jl#292
- Pavito (@odow) Update compat for MOI v1 Pavito.jl#61
- PiecewiseLinearOpt (@chriscoey) (update to MOI 1 and delete Manifest.toml PiecewiseLinearOpt.jl#45)
- SetProg (@blegat) Update to MOI v1 blegat/SetProg.jl#35
- SDDP (@odow) Update to JuMP v0.23 odow/SDDP.jl#514
- SwitchOnSafety (@blegat) Update to JuMP v0.23 and MOI v1 blegat/SwitchOnSafety.jl#27
Step: Release JuMP 1.0.0
- This should be non-breaking compared to 0.23.0, just with deprecations removed Prep for v1.0 release #2925
Solvers which require MOI and JuMP v1.0
These packages have a dependency on MOI and JuMP.
- MINLPTests Update to JuMP 1.0 MINLPTests.jl#37
- AmplNLWriter BuMP JuMP support to 1.0 AmplNLWriter.jl#152
- NEOS.jl Prep for v1.0 release NEOSServer.jl#37
- DiffOpt Update to JuMP v1 DiffOpt.jl#203
- Dualization JuMP 1.0 Dualization.jl#130
- PolyJuMP Update to JuMP v1 PolyJuMP.jl#72
- SumOfSquares Add support for JuMP 1.0 SumOfSquares.jl#248
- Juniper Bump to JuMP 1.0 lanl-ansi/Juniper.jl#244
- Alpine Update to JuMP v1.0 and Changelog lanl-ansi/Alpine.jl#193
- Polyhedra Update to JuMP v1 JuliaPolyhedra/Polyhedra.jl#296
- ParameterJuMP Update Project.toml to JuMP 1.0 JuliaStochOpt/ParameterJuMP.jl#89
- Pavito Add support for JuMP 1.0 Pavito.jl#63
- PiecewiseLinearOpt Bump compat to JuMP 1.0 PiecewiseLinearOpt.jl#47
- SetProg Add support for JuMP 1.0 blegat/SetProg.jl#38
- SDDP Update to JuMP 1.0 odow/SDDP.jl#517
- SwitchOnSafety CompatHelper: bump compat for JuMP to 1, (keep existing compat) blegat/SwitchOnSafety.jl#48