From fe9654f2c8942bb408d1ec98705b9172148d735e Mon Sep 17 00:00:00 2001 From: jlnav Date: Wed, 14 Jan 2026 14:17:34 -0600 Subject: [PATCH 1/8] add many "extra" deps with resolutions to pyproject.toml and the lockfile. Refactor extra.yml for running extra tests --- .github/workflows/extra.yml | 93 +++++++++++-------------------------- pixi.lock | 4 +- pyproject.toml | 5 +- 3 files changed, 32 insertions(+), 70 deletions(-) diff --git a/.github/workflows/extra.yml b/.github/workflows/extra.yml index 84392f2cc..37beedef2 100644 --- a/.github/workflows/extra.yml +++ b/.github/workflows/extra.yml @@ -11,24 +11,24 @@ jobs: matrix: os: [ubuntu-latest] mpi-version: [mpich] - python-version: ['3.10', '3.11', '3.12', '3.13'] + python-version: ["py310", "py311", "py312", "py313", "py314"] comms-type: [m, l] include: - os: macos-latest - python-version: '3.13' + python-version: "py313" mpi-version: mpich comms-type: m - os: macos-latest - python-version: '3.13' + python-version: "py313" mpi-version: mpich comms-type: l - os: ubuntu-latest - python-version: '3.12' + python-version: "py312" mpi-version: mpich comms-type: t - os: ubuntu-latest - mpi-version: 'openmpi' - python-version: '3.12' + mpi-version: openmpi + python-version: "py312" comms-type: l env: @@ -42,65 +42,23 @@ jobs: steps: - uses: actions/checkout@v6 - - name: Setup conda - Python ${{ matrix.python-version }} - uses: conda-incubator/setup-miniconda@v3 with: - activate-environment: condaenv - miniconda-version: 'latest' - python-version: ${{ matrix.python-version }} - channels: conda-forge - channel-priority: strict - auto-update-conda: true - - - name: Force-update certifi - run: | - python --version - pip install -I --upgrade certifi - - - name: Install Ubuntu compilers - if: matrix.os == 'ubuntu-latest' - run: | - conda install -c conda-forge gcc_linux-64 - pip install nlopt==2.9.0 - - # Roundabout solution on macos for proper linking with mpicc - - name: Install macOS compilers - if: matrix.os == 'macos-latest' - run: | - conda install clang_osx-64 - pip install nlopt==2.8.0 - - - name: Install mpi4py and MPI from conda - run: | - conda install mpi4py ${{ matrix.mpi-version }} + lfs: true - - name: Install generator dependencies - run: | - conda env update --file install/gen_deps_environment.yml - - - name: Install gpcam and octave # Neither yet support 3.13 - if: matrix.python-version <= '3.12' - run: | - pip install gpcam==8.1.13 - conda install octave + - name: Checkout lockfile + run: git lfs checkout - - name: Install surmise and Tasmanian - if: matrix.os == 'ubuntu-latest' - run: | - pip install --upgrade git+https://github.com/bandframework/surmise.git - pip install Tasmanian --user - - - name: Install generator dependencies for Ubuntu tests - if: matrix.os == 'ubuntu-latest' && matrix.python-version <= '3.12' - run: | - pip install scikit-build packaging + - uses: prefix-dev/setup-pixi@v0.9.2 + with: + pixi-version: v0.55.0 + cache: true + frozen: true + environments: ${{ matrix.python-version }} + activate-environment: ${{ matrix.python-version }} - name: Install other testing dependencies run: | - pip install -r install/testing_requirements.txt - pip install -r install/misc_feature_requirements.txt - source install/install_ibcdfo.sh - conda install numpy scipy + pixi run -e ${{ matrix.python-version }} install/install_ibcdfo.sh - name: Install libEnsemble, flake8, lock environment run: | @@ -108,26 +66,27 @@ jobs: flake8 libensemble - name: Remove test using octave, gpcam on Python 3.13 - if: matrix.python-version >= '3.13' + if: matrix.python-version == "py313" || matrix.python-version == "py314" run: | rm ./libensemble/tests/regression_tests/test_persistent_fd_param_finder.py # needs octave, which doesn't yet support 3.13 rm ./libensemble/tests/regression_tests/test_persistent_aposmm_external_localopt.py # needs octave, which doesn't yet support 3.13 rm ./libensemble/tests/regression_tests/test_gpCAM.py # needs gpcam, which doesn't build on 3.13 - - name: Install redis/proxystore - run: | - pip install redis - pip install proxystore==0.7.0 - - name: Start Redis if: matrix.os == 'ubuntu-latest' uses: supercharge/redis-github-action@v2 with: redis-version: 7 - - name: Run extensive tests + - name: Run extensive tests, Ubuntu + if: matrix.os == 'ubuntu-latest' + run: | + ./libensemble/tests/run_tests.py -e -A "-W error" -${{ matrix.comms-type }} + + - name: Run extensive tests, macOS + if: matrix.os == 'macos-latest' run: | - ./libensemble/tests/run_tests.py -e -${{ matrix.comms-type }} + pixi run -e ${{ matrix.python-version }} ./libensemble/tests/run_tests.py -e -A "-W error" -${{ matrix.comms-type }} - name: Merge coverage run: | diff --git a/pixi.lock b/pixi.lock index c7ebed04e..bee3c47f8 100644 --- a/pixi.lock +++ b/pixi.lock @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:751e13cc32dc1d88c00f1e2e9c2b029d20a5884d43f86e1b67ced74b8015823b -size 1089301 +oid sha256:bae7cc2a346d85a2b4dd59415a86b7ca6a886a26e174b66f77b007e53240805b +size 1241577 diff --git a/pyproject.toml b/pyproject.toml index 271c171b4..a1b6fc8ee 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -143,6 +143,9 @@ packaging = "*" octave = ">=9.4.0,<11" pyzmq = ">=26.4.0,<28" +[tool.pixi.feature.extra.target.linux-64.pypi-dependencies] +tasmanian = ">=8.2, <9" + # Python versions [tool.pixi.feature.py310.dependencies] python = "3.10.*" @@ -205,7 +208,7 @@ extra = [ "pyenchant==3.2.2", "enchant>=0.0.1,<0.0.2", "proxystore>=0.8.3,<0.9", - "redis>=7.1.0,<8", + "redis>=7.1.0,<8", "gpcam>=7.4.2,<9", "surmise>=0.3.0,<0.4", ] dev = ["wat>=0.7.0,<0.8"] From e70db086e5b4c06332ea43414e86fedf3d8c1353 Mon Sep 17 00:00:00 2001 From: jlnav Date: Wed, 14 Jan 2026 14:51:27 -0600 Subject: [PATCH 2/8] single quotes --- .github/workflows/extra.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/extra.yml b/.github/workflows/extra.yml index 37beedef2..252168ac8 100644 --- a/.github/workflows/extra.yml +++ b/.github/workflows/extra.yml @@ -66,7 +66,7 @@ jobs: flake8 libensemble - name: Remove test using octave, gpcam on Python 3.13 - if: matrix.python-version == "py313" || matrix.python-version == "py314" + if: matrix.python-version == 'py313' || matrix.python-version == 'py314' run: | rm ./libensemble/tests/regression_tests/test_persistent_fd_param_finder.py # needs octave, which doesn't yet support 3.13 rm ./libensemble/tests/regression_tests/test_persistent_aposmm_external_localopt.py # needs octave, which doesn't yet support 3.13 From 63beabdc4946ef614758a392bd899f29f1091ff1 Mon Sep 17 00:00:00 2001 From: jlnav Date: Wed, 14 Jan 2026 15:04:07 -0600 Subject: [PATCH 3/8] forgot to enable "extra" envs in extra.yml --- .github/workflows/extra.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/extra.yml b/.github/workflows/extra.yml index 252168ac8..a4603250a 100644 --- a/.github/workflows/extra.yml +++ b/.github/workflows/extra.yml @@ -11,24 +11,24 @@ jobs: matrix: os: [ubuntu-latest] mpi-version: [mpich] - python-version: ["py310", "py311", "py312", "py313", "py314"] + python-version: ["py310e", "py311e", "py312e", "py313e", "py314e"] comms-type: [m, l] include: - os: macos-latest - python-version: "py313" + python-version: "py313e" mpi-version: mpich comms-type: m - os: macos-latest - python-version: "py313" + python-version: "py313e" mpi-version: mpich comms-type: l - os: ubuntu-latest - python-version: "py312" + python-version: "py312e" mpi-version: mpich comms-type: t - os: ubuntu-latest mpi-version: openmpi - python-version: "py312" + python-version: "py312e" comms-type: l env: @@ -66,7 +66,7 @@ jobs: flake8 libensemble - name: Remove test using octave, gpcam on Python 3.13 - if: matrix.python-version == 'py313' || matrix.python-version == 'py314' + if: matrix.python-version == 'py313e' || matrix.python-version == 'py314e' run: | rm ./libensemble/tests/regression_tests/test_persistent_fd_param_finder.py # needs octave, which doesn't yet support 3.13 rm ./libensemble/tests/regression_tests/test_persistent_aposmm_external_localopt.py # needs octave, which doesn't yet support 3.13 From 58fd050a5108703495f9effc76168e1534f50e66 Mon Sep 17 00:00:00 2001 From: jlnav Date: Wed, 14 Jan 2026 15:11:29 -0600 Subject: [PATCH 4/8] dont run globus-comupte on 3.13 onward? --- .github/workflows/extra.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/extra.yml b/.github/workflows/extra.yml index a4603250a..606f62275 100644 --- a/.github/workflows/extra.yml +++ b/.github/workflows/extra.yml @@ -15,11 +15,11 @@ jobs: comms-type: [m, l] include: - os: macos-latest - python-version: "py313e" + python-version: "py312e" mpi-version: mpich comms-type: m - os: macos-latest - python-version: "py313e" + python-version: "py312e" mpi-version: mpich comms-type: l - os: ubuntu-latest @@ -65,9 +65,10 @@ jobs: pip install -e . flake8 libensemble - - name: Remove test using octave, gpcam on Python 3.13 + - name: Remove test using octave, gpcam, globus-compute on Python 3.13 if: matrix.python-version == 'py313e' || matrix.python-version == 'py314e' run: | + rm ./libensemble/tests/unit_tests/test_ufunc_runners.py # needs globus-compute rm ./libensemble/tests/regression_tests/test_persistent_fd_param_finder.py # needs octave, which doesn't yet support 3.13 rm ./libensemble/tests/regression_tests/test_persistent_aposmm_external_localopt.py # needs octave, which doesn't yet support 3.13 rm ./libensemble/tests/regression_tests/test_gpCAM.py # needs gpcam, which doesn't build on 3.13 From d6a3592e4707182069f8b4cc2aa1fff7c102d8ee Mon Sep 17 00:00:00 2001 From: jlnav Date: Thu, 15 Jan 2026 12:28:28 -0600 Subject: [PATCH 5/8] We never did -A -W error on extra tests, did we? --- .github/workflows/extra.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/extra.yml b/.github/workflows/extra.yml index 606f62275..a925eaee9 100644 --- a/.github/workflows/extra.yml +++ b/.github/workflows/extra.yml @@ -82,12 +82,12 @@ jobs: - name: Run extensive tests, Ubuntu if: matrix.os == 'ubuntu-latest' run: | - ./libensemble/tests/run_tests.py -e -A "-W error" -${{ matrix.comms-type }} + ./libensemble/tests/run_tests.py -e -${{ matrix.comms-type }} - name: Run extensive tests, macOS if: matrix.os == 'macos-latest' run: | - pixi run -e ${{ matrix.python-version }} ./libensemble/tests/run_tests.py -e -A "-W error" -${{ matrix.comms-type }} + pixi run -e ${{ matrix.python-version }} ./libensemble/tests/run_tests.py -e -${{ matrix.comms-type }} - name: Merge coverage run: | From 4ea05dca2570eb003a9144e49d4d5037069826d7 Mon Sep 17 00:00:00 2001 From: jlnav Date: Thu, 15 Jan 2026 13:08:45 -0600 Subject: [PATCH 6/8] un-bump ax-platform version to 0.5.0 --- pixi.lock | 4 ++-- pyproject.toml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pixi.lock b/pixi.lock index bee3c47f8..00d8c8fb8 100644 --- a/pixi.lock +++ b/pixi.lock @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bae7cc2a346d85a2b4dd59415a86b7ca6a886a26e174b66f77b007e53240805b -size 1241577 +oid sha256:4a4ae973b950047ffbbd4414d01aa9ad23f88e69be34fc2da5fafac968949907 +size 1236005 diff --git a/pyproject.toml b/pyproject.toml index a1b6fc8ee..d0bae44e0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -160,25 +160,25 @@ python = "3.14.*" # ax-platform only works up to 3.13 on Linux [tool.pixi.feature.py310e.target.linux-64.dependencies] -ax-platform = ">=1.2.1,<2" +ax-platform = "==0.5.0" [tool.pixi.feature.py310e.dependencies] globus-compute-sdk = ">=4.3.0,<5" [tool.pixi.feature.py311e.target.linux-64.dependencies] -ax-platform = ">=1.2.1,<2" +ax-platform = "==0.5.0" [tool.pixi.feature.py311e.dependencies] globus-compute-sdk = ">=4.3.0,<5" [tool.pixi.feature.py312e.target.linux-64.dependencies] -ax-platform = ">=1.2.1,<2" +ax-platform = "==0.5.0" [tool.pixi.feature.py312e.dependencies] globus-compute-sdk = ">=4.3.0,<5" [tool.pixi.feature.py313e.target.linux-64.dependencies] -ax-platform = ">=0.5.0,<0.6" +ax-platform = "==0.5.0" [tool.pixi.feature.py314e] From 636317739b76425ba93817955b110cb1f9bdae9d Mon Sep 17 00:00:00 2001 From: jlnav Date: Thu, 15 Jan 2026 13:45:46 -0600 Subject: [PATCH 7/8] tru just pip installing a newer gpcam? --- .github/workflows/extra.yml | 1 + pixi.lock | 2 +- pyproject.toml | 4 +++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/extra.yml b/.github/workflows/extra.yml index a925eaee9..f70431869 100644 --- a/.github/workflows/extra.yml +++ b/.github/workflows/extra.yml @@ -59,6 +59,7 @@ jobs: - name: Install other testing dependencies run: | pixi run -e ${{ matrix.python-version }} install/install_ibcdfo.sh + pixi run -e ${{ matrix.python-version }} pip install gpcam==8.1.13 - name: Install libEnsemble, flake8, lock environment run: | diff --git a/pixi.lock b/pixi.lock index 00d8c8fb8..b5230f5ca 100644 --- a/pixi.lock +++ b/pixi.lock @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4a4ae973b950047ffbbd4414d01aa9ad23f88e69be34fc2da5fafac968949907 +oid sha256:f46aceac731419449ebd9878096633ff2bb1b1f96d08ca38a8e9cc115bccfcd3 size 1236005 diff --git a/pyproject.toml b/pyproject.toml index d0bae44e0..41df73266 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -208,7 +208,9 @@ extra = [ "pyenchant==3.2.2", "enchant>=0.0.1,<0.0.2", "proxystore>=0.8.3,<0.9", - "redis>=7.1.0,<8", "gpcam>=7.4.2,<9", "surmise>=0.3.0,<0.4", + "redis>=7.1.0,<8", + "gpcam>=7.4.2,<9", + "surmise>=0.3.0,<0.4", ] dev = ["wat>=0.7.0,<0.8"] From 7a8d3331fb4dc23f857ecdaaf4c31616b0bae25b Mon Sep 17 00:00:00 2001 From: jlnav Date: Thu, 15 Jan 2026 14:01:47 -0600 Subject: [PATCH 8/8] fix gpcam install condition --- .github/workflows/extra.yml | 6 +++++- pixi.lock | 4 ++-- pyproject.toml | 1 - 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/extra.yml b/.github/workflows/extra.yml index f70431869..da532fc24 100644 --- a/.github/workflows/extra.yml +++ b/.github/workflows/extra.yml @@ -59,13 +59,17 @@ jobs: - name: Install other testing dependencies run: | pixi run -e ${{ matrix.python-version }} install/install_ibcdfo.sh - pixi run -e ${{ matrix.python-version }} pip install gpcam==8.1.13 - name: Install libEnsemble, flake8, lock environment run: | pip install -e . flake8 libensemble + - name: Install gpcam + if: matrix.python-version != 'py313e' && matrix.python-version != 'py314e' + run: | + pixi run -e ${{ matrix.python-version }} pip install gpcam==8.1.13 + - name: Remove test using octave, gpcam, globus-compute on Python 3.13 if: matrix.python-version == 'py313e' || matrix.python-version == 'py314e' run: | diff --git a/pixi.lock b/pixi.lock index b5230f5ca..39874a638 100644 --- a/pixi.lock +++ b/pixi.lock @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f46aceac731419449ebd9878096633ff2bb1b1f96d08ca38a8e9cc115bccfcd3 -size 1236005 +oid sha256:02a5e1b75728bd0870bbfc886ae621c36304a7346309746b09a6075f26ab1b60 +size 1091477 diff --git a/pyproject.toml b/pyproject.toml index 41df73266..4d128b4dc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -209,7 +209,6 @@ extra = [ "enchant>=0.0.1,<0.0.2", "proxystore>=0.8.3,<0.9", "redis>=7.1.0,<8", - "gpcam>=7.4.2,<9", "surmise>=0.3.0,<0.4", ] dev = ["wat>=0.7.0,<0.8"]