StochasticPrograms.jl icon indicating copy to clipboard operation
StochasticPrograms.jl copied to clipboard

Update to JuMP 1.2.1, MOI 1.3.0 and MA 1.0.4

Open iSoron opened this issue 3 years ago • 1 comments

@martinbiel @odow This PR attempts to make StochasticPrograms.jl compatible with the latest version of JuMP. I have been working on this because we are considering adding this package as a dependency of UnitCommitment.jl and RELOG. A few comments:

  • In this PR, I have only made the changes necessary to make the tests pass, not any significant redesigns. Although all tests now pass, it is still possible that some functionality is still broken, since the tests only cover about 60% of the codebase.
  • Because SPjl depends heavily on internal and undocumented JuMP/MOI functions, even minor version increments (e.g. MOI 1.3 to MOI 1.7) causes the package to break, with non-trivial fixes required sometimes. It appears to me that maintaining this package would require a significant amount of effort moving forward, despite JuMP/MOI reaching a stable API.

Fixes #40.

Edit: You can see that tests are passing here: https://github.com/iSoron/StochasticPrograms.jl/runs/8118666290

iSoron avatar Aug 31 '22 14:08 iSoron

because we are considering adding this package as a dependency

I don't think @martinbiel is planning on putting a lot of effort into StochasticPrograms in the long-term, so I'd say this is high-risk. You'd essentially need to take ownership of ongoing support and maintenance.

Because SPjl depends heavily on internal and undocumented JuMP/MOI functions, even minor version increments

Yeah, this isn't ideal. Some of the JuMP._ functions we can probably copy-paste into StochasticPrograms. But there's a lot of work to update everything.

odow avatar Aug 31 '22 21:08 odow

Thank you very much for your efforts.

The dependence on internal JuMP/MOI functions is unfortunate. Its a solution I opted for in the first major redesign of SPjl, when MathProgBase was replaced by MathOptInterface. My plan was to wait for the stable versions of JuMP/MOI to release and then look into a redesign that would be more stable going forward. This has however been postponed due to life-changes (father to twins :sweat_smile:).

The changes look fine and I am tempted to merge this and tag a new patch release, so that others can identify further issues. A more complete test suite is also on the backlog... Thanks again for the fixes :slightly_smiling_face:

martinbiel avatar Sep 04 '22 10:09 martinbiel