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.
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.