From 15f9d81d056d1bc982ac8f784e76a4542eee2b68 Mon Sep 17 00:00:00 2001 From: John Siirola Date: Wed, 15 Jan 2025 15:36:32 -0700 Subject: [PATCH 01/10] Skip XPRESS 9.5.1 on conda/windows/python 3.1[01] due to init() hang --- .github/workflows/test_branches.yml | 9 ++++++++- .github/workflows/test_pr_and_main.yml | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test_branches.yml b/.github/workflows/test_branches.yml index 653ef6eba54..24f9cc7148e 100644 --- a/.github/workflows/test_branches.yml +++ b/.github/workflows/test_branches.yml @@ -365,9 +365,16 @@ jobs: # possibly if it outputs messages to stderr) conda install --update-deps -q -y $CONDA_DEPENDENCIES if test -z "${{matrix.slim}}"; then + # xpress.init() (from conda) hangs indefinitely on GHA/Windows under + # Python 3.10 and 3.11. Exclude that release on that platform. + if [[ ${{matrix.TARGET}} == win && ${{matrix.python}} =~ 3.1[01] ]]; then + XPRESS='xpress!=9.5.1' + else + XPRESS='xpress' + fi PYVER=$(echo "py${{matrix.python}}" | sed 's/\.//g') echo "Installing for $PYVER" - for PKG in 'cplex>=12.10' docplex gurobi xpress cyipopt pymumps scip; do + for PKG in 'cplex>=12.10' docplex gurobi "$XPRESS" cyipopt pymumps scip; do echo "" echo "*** Install $PKG ***" # conda can literally take an hour to determine that a diff --git a/.github/workflows/test_pr_and_main.yml b/.github/workflows/test_pr_and_main.yml index 2506573db4d..2c38995b9eb 100644 --- a/.github/workflows/test_pr_and_main.yml +++ b/.github/workflows/test_pr_and_main.yml @@ -397,9 +397,16 @@ jobs: # possibly if it outputs messages to stderr) conda install --update-deps -q -y $CONDA_DEPENDENCIES if test -z "${{matrix.slim}}"; then + # xpress.init() (from conda) hangs indefinitely on GHA/Windows under + # Python 3.10 and 3.11. Exclude that release on that platform. + if [[ ${{matrix.TARGET}} == win && ${{matrix.python}} =~ 3.1[01] ]]; then + XPRESS='xpress!=9.5.1' + else + XPRESS='xpress' + fi PYVER=$(echo "py${{matrix.python}}" | sed 's/\.//g') echo "Installing for $PYVER" - for PKG in 'cplex>=12.10' docplex gurobi xpress cyipopt pymumps scip; do + for PKG in 'cplex>=12.10' docplex gurobi "$XPRESS" cyipopt pymumps scip; do echo "" echo "*** Install $PKG ***" # conda can literally take an hour to determine that a From b2064b259519ae944f7e805443ffae87706425e5 Mon Sep 17 00:00:00 2001 From: John Siirola Date: Wed, 15 Jan 2025 15:37:51 -0700 Subject: [PATCH 02/10] Rearrange some python versions, remove unnecessary quotation --- .github/workflows/test_branches.yml | 12 ++++++------ .github/workflows/test_pr_and_main.yml | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/test_branches.yml b/.github/workflows/test_branches.yml index 24f9cc7148e..8c8c18ddc25 100644 --- a/.github/workflows/test_branches.yml +++ b/.github/workflows/test_branches.yml @@ -71,29 +71,29 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest] - python: ['3.13'] + python: [3.13] other: [""] category: [""] include: - os: ubuntu-latest - python: '3.13' + python: 3.13 TARGET: linux PYENV: pip - os: macos-latest - python: '3.11' + python: 3.12 TARGET: osx PYENV: pip - os: windows-latest - python: 3.9 + python: 3.11 TARGET: win PYENV: conda PACKAGES: glpk pytest-qt filelock - os: ubuntu-latest - python: '3.11' + python: 3.11 other: /conda skip_doctest: 1 TARGET: linux @@ -110,7 +110,7 @@ jobs: PACKAGES: openmpi mpi4py - os: ubuntu-latest - python: '3.12' + python: 3.12 other: /cython setup_options: --with-cython skip_doctest: 1 diff --git a/.github/workflows/test_pr_and_main.yml b/.github/workflows/test_pr_and_main.yml index 2c38995b9eb..aa9e419b944 100644 --- a/.github/workflows/test_pr_and_main.yml +++ b/.github/workflows/test_pr_and_main.yml @@ -68,7 +68,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] - python: [ 3.9, '3.10', '3.11', '3.12', '3.13' ] + python: [ 3.9, '3.10', 3.11, 3.12, 3.13 ] other: [""] category: [""] @@ -87,7 +87,7 @@ jobs: PACKAGES: glpk pytest-qt filelock - os: ubuntu-latest - python: '3.11' + python: 3.11 other: /conda skip_doctest: 1 TARGET: linux @@ -104,7 +104,7 @@ jobs: PACKAGES: openmpi mpi4py - os: ubuntu-latest - python: '3.12' + python: 3.12 other: /cython setup_options: --with-cython skip_doctest: 1 @@ -113,14 +113,14 @@ jobs: PACKAGES: cython - os: windows-latest - python: 3.9 + python: '3.10' other: /pip skip_doctest: 1 TARGET: win PYENV: pip - os: ubuntu-latest - python: '3.11' + python: 3.11 other: /singletest category: "-m 'neos or importtest'" skip_doctest: 1 From 72b91b54479f734cd45a5a375dc739e9adb97928 Mon Sep 17 00:00:00 2001 From: John Siirola Date: Wed, 15 Jan 2025 15:39:51 -0700 Subject: [PATCH 03/10] Remove unnecessary highspy version specifier (the default release is > 1.7.x) --- .github/workflows/test_pr_and_main.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/test_pr_and_main.yml b/.github/workflows/test_pr_and_main.yml index aa9e419b944..a078da643cf 100644 --- a/.github/workflows/test_pr_and_main.yml +++ b/.github/workflows/test_pr_and_main.yml @@ -661,8 +661,7 @@ jobs: if: ${{ ! matrix.slim }} shell: bash run: | - echo "NOTE: temporarily pinning to highspy pre-release for testing" - $PYTHON_EXE -m pip install --cache-dir cache/pip "highspy>=1.7.1.dev1" \ + $PYTHON_EXE -m pip install --cache-dir cache/pip highspy \ || echo "WARNING: highspy is not available" - name: Set up coverage tracking From 2be3bcc37441c37b93aa720b6cee47d286a51fbb Mon Sep 17 00:00:00 2001 From: John Siirola Date: Wed, 15 Jan 2025 15:40:41 -0700 Subject: [PATCH 04/10] Synchronize build workflows --- .github/workflows/test_branches.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test_branches.yml b/.github/workflows/test_branches.yml index 8c8c18ddc25..78cc9af7608 100644 --- a/.github/workflows/test_branches.yml +++ b/.github/workflows/test_branches.yml @@ -711,6 +711,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: ${{github.job}}_${{env.GHA_JOBGROUP}}-${{env.GHA_JOBNAME}} + include-hidden-files: true path: | .coverage coverage.xml From 00d6a7752b4242e6f037c8c146b0ed55080574d2 Mon Sep 17 00:00:00 2001 From: John Siirola Date: Wed, 15 Jan 2025 16:35:27 -0700 Subject: [PATCH 05/10] conda doesn't support != --- .github/workflows/test_branches.yml | 2 +- .github/workflows/test_pr_and_main.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test_branches.yml b/.github/workflows/test_branches.yml index 78cc9af7608..41054678a6a 100644 --- a/.github/workflows/test_branches.yml +++ b/.github/workflows/test_branches.yml @@ -368,7 +368,7 @@ jobs: # xpress.init() (from conda) hangs indefinitely on GHA/Windows under # Python 3.10 and 3.11. Exclude that release on that platform. if [[ ${{matrix.TARGET}} == win && ${{matrix.python}} =~ 3.1[01] ]]; then - XPRESS='xpress!=9.5.1' + XPRESS='xpress<9.5.1|>9.5.1' else XPRESS='xpress' fi diff --git a/.github/workflows/test_pr_and_main.yml b/.github/workflows/test_pr_and_main.yml index a078da643cf..21cfcd85aa7 100644 --- a/.github/workflows/test_pr_and_main.yml +++ b/.github/workflows/test_pr_and_main.yml @@ -400,7 +400,7 @@ jobs: # xpress.init() (from conda) hangs indefinitely on GHA/Windows under # Python 3.10 and 3.11. Exclude that release on that platform. if [[ ${{matrix.TARGET}} == win && ${{matrix.python}} =~ 3.1[01] ]]; then - XPRESS='xpress!=9.5.1' + XPRESS='xpress<9.5.1|>9.5.1' else XPRESS='xpress' fi From 202951ae5376bec140eb289f9ec60fe31d080473 Mon Sep 17 00:00:00 2001 From: John Siirola Date: Wed, 15 Jan 2025 17:09:15 -0700 Subject: [PATCH 06/10] Update xpress version spec --- .github/workflows/test_branches.yml | 2 +- .github/workflows/test_pr_and_main.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test_branches.yml b/.github/workflows/test_branches.yml index 41054678a6a..19e27a56a24 100644 --- a/.github/workflows/test_branches.yml +++ b/.github/workflows/test_branches.yml @@ -368,7 +368,7 @@ jobs: # xpress.init() (from conda) hangs indefinitely on GHA/Windows under # Python 3.10 and 3.11. Exclude that release on that platform. if [[ ${{matrix.TARGET}} == win && ${{matrix.python}} =~ 3.1[01] ]]; then - XPRESS='xpress<9.5.1|>9.5.1' + XPRESS='xpress<=9.5.0|>9.5.1' else XPRESS='xpress' fi diff --git a/.github/workflows/test_pr_and_main.yml b/.github/workflows/test_pr_and_main.yml index 21cfcd85aa7..88fe73ec5bc 100644 --- a/.github/workflows/test_pr_and_main.yml +++ b/.github/workflows/test_pr_and_main.yml @@ -400,7 +400,7 @@ jobs: # xpress.init() (from conda) hangs indefinitely on GHA/Windows under # Python 3.10 and 3.11. Exclude that release on that platform. if [[ ${{matrix.TARGET}} == win && ${{matrix.python}} =~ 3.1[01] ]]; then - XPRESS='xpress<9.5.1|>9.5.1' + XPRESS='xpress<=9.5.0|>9.5.1' else XPRESS='xpress' fi From 3f81bbecbc0ab2139366825ee0380305c456a9ea Mon Sep 17 00:00:00 2001 From: John Siirola Date: Wed, 15 Jan 2025 17:10:50 -0700 Subject: [PATCH 07/10] Add some log formatting --- .github/workflows/test_branches.yml | 2 ++ .github/workflows/test_pr_and_main.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/test_branches.yml b/.github/workflows/test_branches.yml index 19e27a56a24..e7d3aaed58e 100644 --- a/.github/workflows/test_branches.yml +++ b/.github/workflows/test_branches.yml @@ -377,6 +377,7 @@ jobs: for PKG in 'cplex>=12.10' docplex gurobi "$XPRESS" cyipopt pymumps scip; do echo "" echo "*** Install $PKG ***" + echo "" # conda can literally take an hour to determine that a # package is not available. Perform a quick search to see # if the package is available for this interpreter before @@ -398,6 +399,7 @@ jobs: conda install -y "$PKG" || _BUILDS="" fi fi + echo "" if test -z "$_BUILDS"; then echo "WARNING: $PKG is not available" fi diff --git a/.github/workflows/test_pr_and_main.yml b/.github/workflows/test_pr_and_main.yml index 88fe73ec5bc..357d9afbd3f 100644 --- a/.github/workflows/test_pr_and_main.yml +++ b/.github/workflows/test_pr_and_main.yml @@ -409,6 +409,7 @@ jobs: for PKG in 'cplex>=12.10' docplex gurobi "$XPRESS" cyipopt pymumps scip; do echo "" echo "*** Install $PKG ***" + echo "" # conda can literally take an hour to determine that a # package is not available. Perform a quick search to see # if the package is available for this interpreter before @@ -430,6 +431,7 @@ jobs: conda install -y "$PKG" || _BUILDS="" fi fi + echo "" if test -z "$_BUILDS"; then echo "WARNING: $PKG is not available" fi From deac4651034965cdf4f6d11549573b56e31f42ae Mon Sep 17 00:00:00 2001 From: John Siirola Date: Wed, 15 Jan 2025 17:35:29 -0700 Subject: [PATCH 08/10] Alternate approach for specifying xpress version --- .github/workflows/test_branches.yml | 6 +++++- .github/workflows/test_pr_and_main.yml | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test_branches.yml b/.github/workflows/test_branches.yml index e7d3aaed58e..74118e5756b 100644 --- a/.github/workflows/test_branches.yml +++ b/.github/workflows/test_branches.yml @@ -368,7 +368,11 @@ jobs: # xpress.init() (from conda) hangs indefinitely on GHA/Windows under # Python 3.10 and 3.11. Exclude that release on that platform. if [[ ${{matrix.TARGET}} == win && ${{matrix.python}} =~ 3.1[01] ]]; then - XPRESS='xpress<=9.5.0|>9.5.1' + # We would like to just use something like: + # - "!=9.5.1" (conda errors) + # - "<9.5.1|>9.5.1" (conda installs 9.1.2, which also hangs) + # - "<=9.5.0|>9.5.1" (conda seg faults) + XPRESS='xpress=9.5.0|>9.5.1' else XPRESS='xpress' fi diff --git a/.github/workflows/test_pr_and_main.yml b/.github/workflows/test_pr_and_main.yml index 357d9afbd3f..15de5cb0873 100644 --- a/.github/workflows/test_pr_and_main.yml +++ b/.github/workflows/test_pr_and_main.yml @@ -400,7 +400,11 @@ jobs: # xpress.init() (from conda) hangs indefinitely on GHA/Windows under # Python 3.10 and 3.11. Exclude that release on that platform. if [[ ${{matrix.TARGET}} == win && ${{matrix.python}} =~ 3.1[01] ]]; then - XPRESS='xpress<=9.5.0|>9.5.1' + # We would like to just use something like: + # - "!=9.5.1" (conda errors) + # - "<9.5.1|>9.5.1" (conda installs 9.1.2, which also hangs) + # - "<=9.5.0|>9.5.1" (conda seg faults) + XPRESS='xpress=9.5.0|>9.5.1' else XPRESS='xpress' fi From f9b7b0d2650aa95baed62ad3e6f081e83dfc9bf5 Mon Sep 17 00:00:00 2001 From: John Siirola Date: Wed, 15 Jan 2025 17:59:06 -0700 Subject: [PATCH 09/10] Pin xpress in certain conditions --- .github/workflows/test_branches.yml | 2 +- .github/workflows/test_pr_and_main.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test_branches.yml b/.github/workflows/test_branches.yml index 74118e5756b..87806e4f297 100644 --- a/.github/workflows/test_branches.yml +++ b/.github/workflows/test_branches.yml @@ -372,7 +372,7 @@ jobs: # - "!=9.5.1" (conda errors) # - "<9.5.1|>9.5.1" (conda installs 9.1.2, which also hangs) # - "<=9.5.0|>9.5.1" (conda seg faults) - XPRESS='xpress=9.5.0|>9.5.1' + XPRESS='xpress=9.5.0' else XPRESS='xpress' fi diff --git a/.github/workflows/test_pr_and_main.yml b/.github/workflows/test_pr_and_main.yml index 15de5cb0873..cd9038f8c50 100644 --- a/.github/workflows/test_pr_and_main.yml +++ b/.github/workflows/test_pr_and_main.yml @@ -404,7 +404,7 @@ jobs: # - "!=9.5.1" (conda errors) # - "<9.5.1|>9.5.1" (conda installs 9.1.2, which also hangs) # - "<=9.5.0|>9.5.1" (conda seg faults) - XPRESS='xpress=9.5.0|>9.5.1' + XPRESS='xpress=9.5.0' else XPRESS='xpress' fi From e85ec04c121ed48571ecfee5466ad90afcf4193e Mon Sep 17 00:00:00 2001 From: John Siirola Date: Thu, 16 Jan 2025 10:16:43 -0700 Subject: [PATCH 10/10] Ensure one branches test covers python 3.9 --- .github/workflows/test_branches.yml | 2 +- .github/workflows/test_pr_and_main.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test_branches.yml b/.github/workflows/test_branches.yml index 87806e4f297..caedbfc8fdd 100644 --- a/.github/workflows/test_branches.yml +++ b/.github/workflows/test_branches.yml @@ -119,7 +119,7 @@ jobs: PACKAGES: cython - os: windows-latest - python: '3.10' + python: 3.9 other: /pip skip_doctest: 1 TARGET: win diff --git a/.github/workflows/test_pr_and_main.yml b/.github/workflows/test_pr_and_main.yml index cd9038f8c50..0bd5cac42ea 100644 --- a/.github/workflows/test_pr_and_main.yml +++ b/.github/workflows/test_pr_and_main.yml @@ -113,7 +113,7 @@ jobs: PACKAGES: cython - os: windows-latest - python: '3.10' + python: 3.9 other: /pip skip_doctest: 1 TARGET: win