jump-dev / HiGHS.jl

A Julia interface to the HiGHS solver
https://highs.dev
MIT License
103 stars 14 forks source link

Updating to latest HiGHS master #75

Closed DillonJ closed 2 years ago

DillonJ commented 2 years ago

Hi folks - we are testing out HiGHS within the Spine energy system modelling framework (https://github.com/Spine-project) and so far, it looks very promising. Within Spine, we have a very powerful Julia interface (https://github.com/Spine-project/SpineInterface.jl) which allows you to quickly develop optimisation models in Julia along with a supporting data management framework.

Anyway, the point of this issue, is that I'm wondering what the process is for keeping HiGHS.jl up to date with the HiGHS project itself. In particular there have been a few recent changes including the introduction of the mip_gap_limit option https://github.com/ERGO-Code/HiGHS/pull/647 which was very kindly implemented after an enquiry from myself.

I would even offer to help with the process but I am a little unsure how everything fits together, in particular the compilation of the binaries etc.

Thanks in advance

odow commented 2 years ago

I'm in the process of updating to v1.1.1 https://github.com/JuliaPackaging/Yggdrasil/pull/4156. In future we will only be building off tagged versions, not off an arbitrary commit to master.

odow commented 2 years ago

Okay so I didn't quite realize, @jajhall tagged a v1.1.1 release, but it's actually from 27/09/2021. We'll need him to tag a new 1.2.0 release if you want the changes since then.

@DillonJ: If you want to use a custom binary in the mean time, see https://jump.dev/JuMP.jl/dev/developers/custom_solver_binaries/

DillonJ commented 2 years ago

Thanks @odow that's perfectly reasonable.

Thanks for pointing me to the custom binary article - that's very helpful. I actually did try to compile the HiGHS binaries in windows with CodeBlocks, CMake and MinGW but got compilation errors for some of the build targets... perhaps I should persevere. Any suggestions where one might look for help here?

odow commented 2 years ago

See the build script here: https://github.com/JuliaPackaging/Yggdrasil/blob/75504aaccbbb0183749d9872f335689191d361b6/H/HiGHS/build_tarballs.jl#L27-L43

But this is for cross-compiling on Linux. I haven't tried compiling on Windows.

odow commented 2 years ago

Upstream are planning to make a v1.2.0 release in the near future and I'll handle the Yggdrasil build once that's released. The C API hasn't changed, so it should be a smooth update on this end (probably just bumping the compat bounds).

I'm going to close this issue for now since we won't be updating to the latest master going forward. If future readers want to use an unreleased version of HiGHS, use a custom binary: https://jump.dev/JuMP.jl/dev/developers/custom_solver_binaries/.