From 8c76346b42e8ff4b555ba40a7a163921c21e827d Mon Sep 17 00:00:00 2001 From: Julian Hall Date: Thu, 17 Jul 2025 11:03:49 +0100 Subject: [PATCH 01/14] Update other.md Updated information on HiGHSMEX: it should work on all architectures, has been tested on Windows and MacOS, and has instructions for building from source in its README.md --- docs/src/interfaces/other.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/src/interfaces/other.md b/docs/src/interfaces/other.md index 298d1706562..863cc3f1e2d 100644 --- a/docs/src/interfaces/other.md +++ b/docs/src/interfaces/other.md @@ -24,7 +24,9 @@ including [pre-build libraries](https://github.com/coin-or/GAMSlinks/releases). ## MATLAB -* [HiGHSMEX](https://github.com/savyasachi/HiGHSMEX) is a MATLAB interface for Windows to provide all the functionality of HiGHS, except the following: Reading problem data from a model file; Setting names for the rows and columns of the model, or setting name for the objective; Advanced features such as solution of systems using the current basis matrix. +* [HiGHSMEX](https://github.com/savyasachi/HiGHSMEX) is a MATLAB interface that provides all the functionality of HiGHS, except the following: Reading problem data from a model file; Setting names for the rows and columns of the model, or setting name for the objective; Advanced features such as solution of systems using the current basis matrix. + + The interface is avalailable for Windows, MacOS and Linux, and has been tested on Windows and MacOS. Pre-built binaries (mex files) for Windows and MacOS are available in the repository, which also includes instructions for building from source in [README.md](https://github.com/savyasachi/HiGHSMEX/blob/main/README.md). * The HiGHS MIP and dual simplex LP solvers have been used _within_ MATLAB (so for all architectures) by default since release 2024a. From ff250ac08ded9e8385d45f79f14793b12fb5cfab Mon Sep 17 00:00:00 2001 From: Marius Merschformann Date: Fri, 3 Oct 2025 02:53:19 +0200 Subject: [PATCH 02/14] Moving away from deprecated macos-13 runner to macos-15-intel runner --- .github/workflows/build-nuget-package.yml | 14 +++++++------- .github/workflows/build-python-package.yml | 10 ++++------ .github/workflows/build-wheels-push.yml | 2 +- .github/workflows/build-wheels.yml | 2 +- .github/workflows/test-fortran-macos.yml | 2 +- .github/workflows/test-nuget-macos.yml | 10 ++++------ .github/workflows/test-nuget-package.yml | 10 ++++------ 7 files changed, 22 insertions(+), 28 deletions(-) diff --git a/.github/workflows/build-nuget-package.yml b/.github/workflows/build-nuget-package.yml index 390132b1a04..426fcb1a26d 100644 --- a/.github/workflows/build-nuget-package.yml +++ b/.github/workflows/build-nuget-package.yml @@ -7,9 +7,9 @@ concurrency: cancel-in-progress: true jobs: - # macos 13 is Intel - build_macos_13: - runs-on: macos-13 + # Build macos intel + build_macos_intel: + runs-on: macos-15-intel # strategy: # matrix: # python: [3.11] @@ -32,9 +32,9 @@ jobs: name: macos-x64 path: ${{runner.workspace}}/build/dotnet/Highs.Native/runtimes - # macos 14 is M1 - build_macos_14: - runs-on: macos-14 + # Build macos arm64 + build_macos_arm: + runs-on: macos-14 # macos-14 is arm64 steps: - uses: actions/checkout@v4 - name: Build HiGHS @@ -126,7 +126,7 @@ jobs: build_windows: runs-on: windows-latest - needs: [build_macos_13, build_macos_14, build_windows_32, build_linux, build_linux_arm64] + needs: [build_macos_intel, build_macos_arm, build_windows_32, build_linux, build_linux_arm64] steps: - uses: actions/checkout@v4 - name: Build HiGHS Windows native diff --git a/.github/workflows/build-python-package.yml b/.github/workflows/build-python-package.yml index 595c5f4103a..7b9a4b55327 100644 --- a/.github/workflows/build-python-package.yml +++ b/.github/workflows/build-python-package.yml @@ -132,9 +132,8 @@ jobs: python3 -m pip install pytest python3 -m pytest $GITHUB_WORKSPACE - # macos 13 is Intel - build_wheel_macos_13: - runs-on: macos-13 + build_wheel_macos_intel: + runs-on: macos-15-intel strategy: matrix: python: [3.11] @@ -163,9 +162,8 @@ jobs: python3 -m pip install pytest python3 -m pytest $GITHUB_WORKSPACE - # macos 14 is M1 - build_wheel_macos_14: - runs-on: macos-14 + build_wheel_macos_arm: + runs-on: macos-14 # macos-14 is arm64 strategy: matrix: python: [3.11] diff --git a/.github/workflows/build-wheels-push.yml b/.github/workflows/build-wheels-push.yml index 51ba663730d..6de9d69b0d7 100644 --- a/.github/workflows/build-wheels-push.yml +++ b/.github/workflows/build-wheels-push.yml @@ -49,7 +49,7 @@ jobs: - [ubuntu-24.04, musllinux_x86_64] # No OpenBlas, no test - [ubuntu-24.04, musllinux_i686] - [ubuntu-24.04-arm, musllinux_aarch64] - - [macos-13, macosx_x86_64] + - [macos-15-intel, macosx_x86_64] - [macos-14, macosx_arm64] - [windows-2022, win_amd64] - [windows-2022, win32] diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 99a332b61ca..90f7acc953b 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -38,7 +38,7 @@ jobs: - [ubuntu-24.04, musllinux_x86_64] # No OpenBlas, no test - [ubuntu-24.04, musllinux_i686] - [ubuntu-24.04-arm, musllinux_aarch64] - - [macos-13, macosx_x86_64] + - [macos-15-intel, macosx_x86_64] - [macos-14, macosx_arm64] - [windows-2022, win_amd64] - [windows-2022, win32] diff --git a/.github/workflows/test-fortran-macos.yml b/.github/workflows/test-fortran-macos.yml index 599e1f10430..38f110fffd6 100644 --- a/.github/workflows/test-fortran-macos.yml +++ b/.github/workflows/test-fortran-macos.yml @@ -4,7 +4,7 @@ on: [push, pull_request] jobs: fast_build_release: - runs-on: [macos-13] + runs-on: [macos-15-intel] steps: diff --git a/.github/workflows/test-nuget-macos.yml b/.github/workflows/test-nuget-macos.yml index 24e466e0f52..6f73616740f 100644 --- a/.github/workflows/test-nuget-macos.yml +++ b/.github/workflows/test-nuget-macos.yml @@ -7,9 +7,8 @@ concurrency: cancel-in-progress: true jobs: - # macos 13 is Intel - build_macos_13: - runs-on: macos-13 + build_macos_intel: + runs-on: macos-15-intel # strategy: # matrix: # python: [3.11] @@ -55,9 +54,8 @@ jobs: dotnet run - # macos 14 is M1 - build_macos_14: - runs-on: macos-14 + build_macos_arm: + runs-on: macos-14 # macos-14 is arm64 steps: - uses: actions/checkout@v4 - name: Build HiGHS diff --git a/.github/workflows/test-nuget-package.yml b/.github/workflows/test-nuget-package.yml index a7aa3f44db7..435e840cddd 100644 --- a/.github/workflows/test-nuget-package.yml +++ b/.github/workflows/test-nuget-package.yml @@ -7,9 +7,8 @@ concurrency: cancel-in-progress: true jobs: - # macos 13 is Intel - build_macos_13: - runs-on: macos-13 + build_macos_intel: + runs-on: macos-15-intel # strategy: # matrix: # python: [3.11] @@ -56,9 +55,8 @@ jobs: - # macos 14 is M1 - build_macos_14: - runs-on: macos-14 + build_macos_arm: + runs-on: macos-14 # macos-14 is arm64 steps: - uses: actions/checkout@v4 - name: Build HiGHS From a7ab20cb54861f8d9d2fa1939882faee282f8b3d Mon Sep 17 00:00:00 2001 From: Somesh-Kennedy Date: Tue, 7 Oct 2025 12:42:12 -0500 Subject: [PATCH 03/14] Update README.md Add link to CONTRIBUTING.md for Meson build methods. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1837c01d050..fa5deb40767 100644 --- a/README.md +++ b/README.md @@ -84,7 +84,7 @@ As an alternative, HiGHS can be installed using the `meson` build interface: meson setup bbdir -Dwith_tests=True meson test -C bbdir ``` -_The meson build files are provided by the community and are not officially supported by the HiGHS development team._ +_The meson build files are provided by the community and are not officially supported by the HiGHS development team._ **If you use this method and encounter issues, please consider contributing fixes or updates by checking the [HiGHS Contribution Guide](https://github.com/ERGO-Code/HiGHS/blob/master/CONTRIBUTING.md).** #### Build with Nix From 17edb3bdb9e4d9c3fd9835f3d13d45f3f5dcd555 Mon Sep 17 00:00:00 2001 From: Ivet Galabova Date: Wed, 8 Oct 2025 18:43:04 +0100 Subject: [PATCH 04/14] add fortran language explicitly to fortrantest --- check/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/check/CMakeLists.txt b/check/CMakeLists.txt index 3b4e646a458..7b7ddc9ccc5 100644 --- a/check/CMakeLists.txt +++ b/check/CMakeLists.txt @@ -3,6 +3,7 @@ include(CTest) if (FORTRAN AND NOT BUILD_EXTRA_UNIT_ONLY) set(CMAKE_Fortran_MODULE_DIRECTORY ${HIGHS_BINARY_DIR}/modules) add_executable(fortrantest TestFortranAPI.f90) + set_target_properties(fortrantest PROPERTIES LINKER_LANGUAGE Fortran) if (NOT FAST_BUILD) target_link_libraries(fortrantest libhighs FortranHighs) else() From af2c46fc46d9ae1cd50753a642f66ea276c3bb24 Mon Sep 17 00:00:00 2001 From: Ivet Galabova Date: Wed, 8 Oct 2025 18:52:38 +0100 Subject: [PATCH 05/14] gcc 13 --- .github/workflows/test-fortran-macos.yml | 2 +- check/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-fortran-macos.yml b/.github/workflows/test-fortran-macos.yml index 38f110fffd6..4628f96b423 100644 --- a/.github/workflows/test-fortran-macos.yml +++ b/.github/workflows/test-fortran-macos.yml @@ -14,7 +14,7 @@ jobs: id: setup-fortran with: compiler: gcc - version: 11 + version: 13 # - name: Install GFortran # run: brew install gfortran gcc diff --git a/check/CMakeLists.txt b/check/CMakeLists.txt index 7b7ddc9ccc5..f5e7cd37915 100644 --- a/check/CMakeLists.txt +++ b/check/CMakeLists.txt @@ -3,7 +3,7 @@ include(CTest) if (FORTRAN AND NOT BUILD_EXTRA_UNIT_ONLY) set(CMAKE_Fortran_MODULE_DIRECTORY ${HIGHS_BINARY_DIR}/modules) add_executable(fortrantest TestFortranAPI.f90) - set_target_properties(fortrantest PROPERTIES LINKER_LANGUAGE Fortran) + # set_target_properties(fortrantest PROPERTIES LINKER_LANGUAGE Fortran) if (NOT FAST_BUILD) target_link_libraries(fortrantest libhighs FortranHighs) else() From 9c1c31ac16befec39fc5ae7bcc9ff0770fd76f3f Mon Sep 17 00:00:00 2001 From: Ivet Galabova Date: Wed, 8 Oct 2025 18:53:01 +0100 Subject: [PATCH 06/14] setup-fortran v1 --- .github/workflows/test-fortran-macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-fortran-macos.yml b/.github/workflows/test-fortran-macos.yml index 4628f96b423..8c13633dfca 100644 --- a/.github/workflows/test-fortran-macos.yml +++ b/.github/workflows/test-fortran-macos.yml @@ -10,7 +10,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: fortran-lang/setup-fortran@v1.6 + - uses: fortran-lang/setup-fortran@v1 id: setup-fortran with: compiler: gcc From db297c3f218098d76742927f1a851eb710904d2b Mon Sep 17 00:00:00 2001 From: Ivet Galabova Date: Wed, 8 Oct 2025 18:55:44 +0100 Subject: [PATCH 07/14] gf13 --- .github/workflows/test-fortran-macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-fortran-macos.yml b/.github/workflows/test-fortran-macos.yml index 8c13633dfca..596ca225da8 100644 --- a/.github/workflows/test-fortran-macos.yml +++ b/.github/workflows/test-fortran-macos.yml @@ -27,7 +27,7 @@ jobs: working-directory: ${{runner.workspace}}/build run: | cmake --version - gfortran-11 --version + gfortran-13 --version cmake $GITHUB_WORKSPACE -DFORTRAN=ON - name: Build From b730745d448ff0341a82633f39a52d054ed84d89 Mon Sep 17 00:00:00 2001 From: Ivet Galabova Date: Wed, 8 Oct 2025 18:57:11 +0100 Subject: [PATCH 08/14] try latest --- .github/workflows/test-fortran-macos.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-fortran-macos.yml b/.github/workflows/test-fortran-macos.yml index 596ca225da8..3e56321815b 100644 --- a/.github/workflows/test-fortran-macos.yml +++ b/.github/workflows/test-fortran-macos.yml @@ -14,7 +14,7 @@ jobs: id: setup-fortran with: compiler: gcc - version: 13 + version: latest # - name: Install GFortran # run: brew install gfortran gcc @@ -27,7 +27,7 @@ jobs: working-directory: ${{runner.workspace}}/build run: | cmake --version - gfortran-13 --version + gfortran --version cmake $GITHUB_WORKSPACE -DFORTRAN=ON - name: Build From 21eb81c76022f1b93e0bf8537466dfe85ffe6d2d Mon Sep 17 00:00:00 2001 From: Ivet Galabova Date: Wed, 8 Oct 2025 19:02:35 +0100 Subject: [PATCH 09/14] try gf14 --- .github/workflows/test-fortran-macos.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-fortran-macos.yml b/.github/workflows/test-fortran-macos.yml index 3e56321815b..9e5fe5a514a 100644 --- a/.github/workflows/test-fortran-macos.yml +++ b/.github/workflows/test-fortran-macos.yml @@ -14,7 +14,7 @@ jobs: id: setup-fortran with: compiler: gcc - version: latest + version: 14 # - name: Install GFortran # run: brew install gfortran gcc @@ -27,7 +27,7 @@ jobs: working-directory: ${{runner.workspace}}/build run: | cmake --version - gfortran --version + gfortran-14 --version cmake $GITHUB_WORKSPACE -DFORTRAN=ON - name: Build From eb86d49c621b3342d642dea1cb5918cbe64ff645 Mon Sep 17 00:00:00 2001 From: Ivet Galabova Date: Wed, 8 Oct 2025 19:03:21 +0100 Subject: [PATCH 10/14] try 14 and LINKER_LANGUAGE --- .github/workflows/test-fortran-macos.yml | 2 +- check/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-fortran-macos.yml b/.github/workflows/test-fortran-macos.yml index 9e5fe5a514a..16684d6fcd0 100644 --- a/.github/workflows/test-fortran-macos.yml +++ b/.github/workflows/test-fortran-macos.yml @@ -10,7 +10,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: fortran-lang/setup-fortran@v1 + - uses: fortran-lang/setup-fortran@v1.8 id: setup-fortran with: compiler: gcc diff --git a/check/CMakeLists.txt b/check/CMakeLists.txt index f5e7cd37915..7b7ddc9ccc5 100644 --- a/check/CMakeLists.txt +++ b/check/CMakeLists.txt @@ -3,7 +3,7 @@ include(CTest) if (FORTRAN AND NOT BUILD_EXTRA_UNIT_ONLY) set(CMAKE_Fortran_MODULE_DIRECTORY ${HIGHS_BINARY_DIR}/modules) add_executable(fortrantest TestFortranAPI.f90) - # set_target_properties(fortrantest PROPERTIES LINKER_LANGUAGE Fortran) + set_target_properties(fortrantest PROPERTIES LINKER_LANGUAGE Fortran) if (NOT FAST_BUILD) target_link_libraries(fortrantest libhighs FortranHighs) else() From f4b551a938196c81d7a79e2816e82d974377f51e Mon Sep 17 00:00:00 2001 From: Ivet Galabova Date: Wed, 8 Oct 2025 19:08:11 +0100 Subject: [PATCH 11/14] fortran compiler --- .github/workflows/test-fortran-macos.yml | 2 +- check/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-fortran-macos.yml b/.github/workflows/test-fortran-macos.yml index 16684d6fcd0..6ae5fd5975e 100644 --- a/.github/workflows/test-fortran-macos.yml +++ b/.github/workflows/test-fortran-macos.yml @@ -28,7 +28,7 @@ jobs: run: | cmake --version gfortran-14 --version - cmake $GITHUB_WORKSPACE -DFORTRAN=ON + cmake $GITHUB_WORKSPACE -DFORTRAN=ON -DCMAKE_Fortran_COMPILER=fortran-14 - name: Build shell: bash diff --git a/check/CMakeLists.txt b/check/CMakeLists.txt index 7b7ddc9ccc5..f5e7cd37915 100644 --- a/check/CMakeLists.txt +++ b/check/CMakeLists.txt @@ -3,7 +3,7 @@ include(CTest) if (FORTRAN AND NOT BUILD_EXTRA_UNIT_ONLY) set(CMAKE_Fortran_MODULE_DIRECTORY ${HIGHS_BINARY_DIR}/modules) add_executable(fortrantest TestFortranAPI.f90) - set_target_properties(fortrantest PROPERTIES LINKER_LANGUAGE Fortran) + # set_target_properties(fortrantest PROPERTIES LINKER_LANGUAGE Fortran) if (NOT FAST_BUILD) target_link_libraries(fortrantest libhighs FortranHighs) else() From e83caabdc04266457918431fffd05f806fdd4573 Mon Sep 17 00:00:00 2001 From: Ivet Galabova Date: Wed, 8 Oct 2025 19:09:49 +0100 Subject: [PATCH 12/14] fortran compile --- .github/workflows/test-fortran-macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-fortran-macos.yml b/.github/workflows/test-fortran-macos.yml index 6ae5fd5975e..3ecf6d8edb8 100644 --- a/.github/workflows/test-fortran-macos.yml +++ b/.github/workflows/test-fortran-macos.yml @@ -28,7 +28,7 @@ jobs: run: | cmake --version gfortran-14 --version - cmake $GITHUB_WORKSPACE -DFORTRAN=ON -DCMAKE_Fortran_COMPILER=fortran-14 + cmake $GITHUB_WORKSPACE -DFORTRAN=ON -DCMAKE_Fortran_COMPILER=gfortran-14 - name: Build shell: bash From 0a841db44551e90cd740387657c835f4c3488773 Mon Sep 17 00:00:00 2001 From: Ivet Galabova Date: Wed, 8 Oct 2025 19:56:03 +0100 Subject: [PATCH 13/14] gfortran OK --- check/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/check/CMakeLists.txt b/check/CMakeLists.txt index f5e7cd37915..3b4e646a458 100644 --- a/check/CMakeLists.txt +++ b/check/CMakeLists.txt @@ -3,7 +3,6 @@ include(CTest) if (FORTRAN AND NOT BUILD_EXTRA_UNIT_ONLY) set(CMAKE_Fortran_MODULE_DIRECTORY ${HIGHS_BINARY_DIR}/modules) add_executable(fortrantest TestFortranAPI.f90) - # set_target_properties(fortrantest PROPERTIES LINKER_LANGUAGE Fortran) if (NOT FAST_BUILD) target_link_libraries(fortrantest libhighs FortranHighs) else() From d9337bf92775a339845a4155262a75a8c4c45ed6 Mon Sep 17 00:00:00 2001 From: Ivet Galabova Date: Wed, 8 Oct 2025 20:04:27 +0100 Subject: [PATCH 14/14] clean up --- .github/workflows/build-nuget-package.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/build-nuget-package.yml b/.github/workflows/build-nuget-package.yml index 426fcb1a26d..8d868a5fe0c 100644 --- a/.github/workflows/build-nuget-package.yml +++ b/.github/workflows/build-nuget-package.yml @@ -10,9 +10,6 @@ jobs: # Build macos intel build_macos_intel: runs-on: macos-15-intel - # strategy: - # matrix: - # python: [3.11] steps: - uses: actions/checkout@v4 - name: Build HiGHS