ZIB-IOL/Boscia.jl

Move MOI, SCIP and HiGHS to extension folder

Closed this issue · 4 comments

Get rid of the direct dependencies MathOptInterface, SCIP and HiGHS.

That includes the integer bounds. These can just be a dictionaries of Int and Float.

Related to #144

Update: We can move SCIP and HiGHS into the extensions but not MathOptInterface.

According to this discussion JuliaLang/Pkg.jl#3499 one is not supposed to define new structs in an extension but only overwrite functions from the main package.

An alternative could be to create a BosciaExtras package. This would be a separate package that the user only has to load if they need it.

PS.: Apparently, there is a somewhat hack-y way of defining structs in extensions, see https://discourse.julialang.org/t/are-extension-packages-importable/92527/17.
I would opt for the stable, albeit dependency-heavier, option of leaving MathOptInterface as a proper dependency and having the MathOptBLMO directly defined in Boscia.

For now, let's watch the discussion and see how the extension feature is developing.

If, at one point, there is a nice way of defining structs in extension, we can do that. This shouldn't be a lot of work.

Else, if we have a lot of predefined BLMOs, maybe for graphs etc, we can always think about outsourcing those into an Extra package.