Skip to content

Commit fdb49a8

Browse files
authored
Merge pull request #1685 from Libensemble/release/v_1.6.0
Release/v 1.6.0
2 parents 5d189fe + 7f3d098 commit fdb49a8

File tree

143 files changed

+5612
-3164
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

143 files changed

+5612
-3164
lines changed

.codecov.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ ignore:
44
- "libensemble/tools/live_data/*"
55
- "libensemble/sim_funcs/executor_hworld.py"
66
- "libensemble/gen_funcs/persistent_tasmanian.py"
7+
- "libensemble/gen_classes/gpCAM.py"

.flake8

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ per-file-ignores =
3838

3939
# Need to set something before the APOSMM import
4040
libensemble/tests/regression_tests/test_persistent_aposmm*:E402
41+
libensemble/tests/regression_tests/test_asktell_aposmm_nlopt.py:E402
4142
libensemble/tests/regression_tests/test_persistent_gp_multitask_ax.py:E402
4243
libensemble/tests/functionality_tests/test_uniform_sampling_then_persistent_localopt_runs.py:E402
4344
libensemble/tests/functionality_tests/test_stats_output.py:E402

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pixi.lock filter=lfs diff=lfs merge=lfs -text

.github/workflows/basic.yml

Lines changed: 21 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -17,29 +17,16 @@ jobs:
1717
matrix:
1818
os: [ubuntu-latest]
1919
mpi-version: [mpich]
20-
python-version: ["3.10", "3.11", "3.12", "3.13"]
21-
pydantic-version: ["2.10.6"]
20+
python-version: ["py310", "py311", "py312", "py313", "py314"]
2221
comms-type: [m, l]
2322
include:
2423
- os: macos-latest
25-
python-version: "3.11"
24+
python-version: "py311"
2625
mpi-version: mpich
27-
pydantic-version: "2.10.6"
2826
comms-type: m
2927
- os: macos-latest
30-
python-version: "3.11"
28+
python-version: "py311"
3129
mpi-version: mpich
32-
pydantic-version: "2.10.6"
33-
comms-type: l
34-
- os: ubuntu-latest
35-
mpi-version: mpich
36-
python-version: "3.10"
37-
pydantic-version: "1.10.21"
38-
comms-type: m
39-
- os: ubuntu-latest
40-
mpi-version: mpich
41-
python-version: "3.10"
42-
pydantic-version: "1.10.21"
4330
comms-type: l
4431

4532
env:
@@ -52,67 +39,43 @@ jobs:
5239
shell: bash -l {0}
5340

5441
steps:
55-
- uses: actions/checkout@v4
56-
- name: Setup conda - Python ${{ matrix.python-version }}
57-
uses: conda-incubator/setup-miniconda@v3
42+
- uses: actions/checkout@v6
5843
with:
59-
activate-environment: condaenv
60-
miniconda-version: "latest"
61-
python-version: ${{ matrix.python-version }}
62-
channels: conda-forge
63-
channel-priority: strict
64-
auto-update-conda: true
44+
lfs: true
6545

66-
- name: Force-update certifi and pip
67-
run: |
68-
python --version
69-
python -m pip install --upgrade pip
70-
python -m pip install -I --upgrade certifi
71-
72-
- name: Install Ubuntu compilers
73-
if: matrix.os == 'ubuntu-latest'
74-
run: |
75-
conda install -c conda-forge gcc_linux-64
76-
pip install nlopt==2.9.0
46+
- name: Checkout lockfile
47+
run: git lfs checkout
7748

78-
# Roundabout solution on macos for proper linking with mpicc
79-
- name: Install macOS compilers
80-
if: matrix.os == 'macos-latest'
81-
run: |
82-
conda install clang_osx-64
83-
pip install nlopt==2.8.0
84-
85-
- name: Install basic testing/feature dependencies
86-
run: |
87-
pip install -r install/testing_requirements.txt
88-
pip install -r install/misc_feature_requirements.txt
89-
source install/install_ibcdfo.sh
90-
conda install numpy scipy
49+
- uses: prefix-dev/setup-pixi@v0.9.4
50+
with:
51+
pixi-version: v0.55.0
52+
frozen: true
53+
environments: ${{ matrix.python-version }}
54+
activate-environment: ${{ matrix.python-version }}
9155

92-
- name: Install mpi4py and MPI from conda
56+
- name: Install IBCDFO
9357
run: |
94-
conda install mpi4py ${{ matrix.mpi-version }}
58+
pixi run -e ${{ matrix.python-version }} ./install/install_ibcdfo.sh
9559
9660
- name: Install libEnsemble, test flake8
9761
run: |
98-
pip install pydantic==${{ matrix.pydantic-version }}
9962
pip install -e .
10063
flake8 libensemble
10164
10265
- name: Remove various tests on newer pythons
103-
if: matrix.python-version >= '3.11'
66+
if: matrix.python-version == 'py311' || matrix.python-version == 'py312' || matrix.python-version == 'py313' || matrix.python-version == 'py314'
10467
run: |
105-
rm ./libensemble/tests/functionality_tests/test_local_sine_tutorial*.py # matplotlib errors on 3.12
68+
rm ./libensemble/tests/functionality_tests/test_local_sine_tutorial*.py # matplotlib errors on py312
10669
10770
- name: Run simple tests, Ubuntu
10871
if: matrix.os == 'ubuntu-latest'
10972
run: |
110-
./libensemble/tests/run_tests.py -A "-W error" -${{ matrix.comms-type }}
73+
./libensemble/tests/run_tests.py -A "-W error" -${{ matrix.comms-type }}
11174
11275
- name: Run simple tests, macOS
11376
if: matrix.os == 'macos-latest'
11477
run: |
115-
./libensemble/tests/run_tests.py -A "-W error" -${{ matrix.comms-type }}
78+
pixi run -e ${{ matrix.python-version }} ./libensemble/tests/run_tests.py -A "-W error" -${{ matrix.comms-type }}
11679
11780
- name: Merge coverage
11881
run: |
@@ -128,5 +91,5 @@ jobs:
12891
if: contains(github.base_ref, 'develop')
12992
runs-on: ubuntu-latest
13093
steps:
131-
- uses: actions/checkout@v4
132-
- uses: crate-ci/typos@v1.34.0
94+
- uses: actions/checkout@v6
95+
- uses: crate-ci/typos@v1.44.0

.github/workflows/extra.yml

Lines changed: 44 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -11,39 +11,24 @@ jobs:
1111
matrix:
1212
os: [ubuntu-latest]
1313
mpi-version: [mpich]
14-
python-version: ['3.10', '3.11', '3.12', '3.13']
15-
pydantic-version: ['2.10.6']
14+
python-version: ["py310e", "py311e", "py312e", "py313e", "py314e"]
1615
comms-type: [m, l]
1716
include:
1817
- os: macos-latest
19-
python-version: '3.13'
18+
python-version: "py312e"
2019
mpi-version: mpich
21-
pydantic-version: '2.10.6'
2220
comms-type: m
2321
- os: macos-latest
24-
python-version: '3.13'
22+
python-version: "py312e"
2523
mpi-version: mpich
26-
pydantic-version: '2.10.6'
2724
comms-type: l
2825
- os: ubuntu-latest
29-
python-version: '3.12'
26+
python-version: "py312e"
3027
mpi-version: mpich
31-
pydantic-version: '2.10.6'
3228
comms-type: t
3329
- os: ubuntu-latest
34-
mpi-version: 'openmpi'
35-
pydantic-version: '2.10.6'
36-
python-version: '3.12'
37-
comms-type: l
38-
- os: ubuntu-latest
39-
mpi-version: mpich
40-
python-version: '3.12'
41-
pydantic-version: '1.10.21'
42-
comms-type: m
43-
- os: ubuntu-latest
44-
mpi-version: mpich
45-
python-version: '3.12'
46-
pydantic-version: '1.10.21'
30+
mpi-version: openmpi
31+
python-version: "py312e"
4732
comms-type: l
4833

4934
env:
@@ -56,115 +41,68 @@ jobs:
5641
shell: bash -l {0}
5742

5843
steps:
59-
- uses: actions/checkout@v4
60-
- name: Setup conda - Python ${{ matrix.python-version }}
61-
uses: conda-incubator/setup-miniconda@v3
44+
- uses: actions/checkout@v6
6245
with:
63-
activate-environment: condaenv
64-
miniconda-version: 'latest'
65-
python-version: ${{ matrix.python-version }}
66-
channels: conda-forge
67-
channel-priority: strict
68-
auto-update-conda: true
69-
70-
- name: Force-update certifi
71-
run: |
72-
python --version
73-
pip install -I --upgrade certifi
46+
lfs: true
7447

75-
- name: Install Ubuntu compilers
76-
if: matrix.os == 'ubuntu-latest'
77-
run: |
78-
conda install -c conda-forge gcc_linux-64
79-
pip install nlopt==2.9.0
48+
- name: Checkout lockfile
49+
run: git lfs checkout
8050

81-
# Roundabout solution on macos for proper linking with mpicc
82-
- name: Install macOS compilers
83-
if: matrix.os == 'macos-latest'
84-
run: |
85-
conda install clang_osx-64
86-
pip install nlopt==2.8.0
87-
88-
- name: Install mpi4py and MPI from conda
89-
run: |
90-
conda install mpi4py ${{ matrix.mpi-version }}
91-
92-
- name: Install generator dependencies
93-
run: |
94-
conda env update --file install/gen_deps_environment.yml
95-
96-
- name: Install gpcam and octave # Neither yet support 3.13
97-
if: matrix.python-version <= '3.12'
98-
run: |
99-
pip install gpcam==8.1.13
100-
conda install octave
101-
102-
- name: Install surmise and Tasmanian
103-
if: matrix.os == 'ubuntu-latest'
104-
run: |
105-
pip install --upgrade git+https://github.com/bandframework/surmise.git
106-
pip install Tasmanian --user
107-
108-
- name: Install generator dependencies for Ubuntu tests
109-
if: matrix.os == 'ubuntu-latest' && matrix.python-version <= '3.12'
110-
run: |
111-
pip install scikit-build packaging
112-
113-
- name: Install Balsam on Pydantic 1
114-
if: matrix.pydantic-version == '1.10.21'
115-
run: |
116-
conda install pyzmq
117-
git clone https://github.com/argonne-lcf/balsam.git
118-
sed -i -e "s/pyzmq>=22.1.0,<23.0.0/pyzmq>=23.0.0,<24.0.0/" ./balsam/setup.cfg
119-
cd balsam; pip install -e .; cd ..
51+
- uses: prefix-dev/setup-pixi@v0.9.4
52+
with:
53+
pixi-version: v0.55.0
54+
cache: true
55+
frozen: true
56+
environments: ${{ matrix.python-version }}
57+
activate-environment: ${{ matrix.python-version }}
12058

12159
- name: Install other testing dependencies
12260
run: |
123-
pip install -r install/testing_requirements.txt
124-
pip install -r install/misc_feature_requirements.txt
125-
source install/install_ibcdfo.sh
126-
conda install numpy scipy
61+
pixi run -e ${{ matrix.python-version }} install/install_ibcdfo.sh
12762
12863
- name: Install libEnsemble, flake8, lock environment
12964
run: |
130-
pip install pydantic==${{ matrix.pydantic-version }}
13165
pip install -e .
13266
flake8 libensemble
13367
134-
- name: Remove test using octave, gpcam on Python 3.13
135-
if: matrix.python-version >= '3.13'
68+
- name: Install gpcam
69+
if: matrix.python-version != 'py313e' && matrix.python-version != 'py314e'
13670
run: |
137-
rm ./libensemble/tests/regression_tests/test_persistent_fd_param_finder.py # needs octave, which doesn't yet support 3.13
138-
rm ./libensemble/tests/regression_tests/test_persistent_aposmm_external_localopt.py # needs octave, which doesn't yet support 3.13
139-
rm ./libensemble/tests/regression_tests/test_gpCAM.py # needs gpcam, which doesn't build on 3.13
140-
141-
- name: Install redis/proxystore on Pydantic 2
142-
if: matrix.pydantic-version == '2.10.6'
143-
run: |
144-
pip install redis
145-
pip install proxystore==0.7.0
71+
pixi run -e ${{ matrix.python-version }} pip install gpcam==8.1.13
14672
147-
- name: Remove proxystore test on Pydantic 1
148-
if: matrix.pydantic-version == '1.10.21'
73+
- name: Remove xopt tests on old python
74+
if: matrix.python-version == 'py310e'
14975
run: |
150-
rm ./libensemble/tests/regression_tests/test_proxystore_integration.py
76+
rm ./libensemble/tests/regression_tests/test_xopt_EI_xopt_sim.py
77+
rm ./libensemble/tests/regression_tests/test_xopt_EI.py
78+
rm ./libensemble/tests/regression_tests/test_xopt_nelder_mead.py
15179
152-
- name: Remove Balsam/Globus-compute tests on Pydantic 2
153-
if: matrix.pydantic-version == '2.10.6'
80+
- name: Remove test using octave, gpcam, globus-compute on Python 3.13
81+
if: matrix.python-version == 'py313e' || matrix.python-version == 'py314e'
15482
run: |
155-
rm ./libensemble/tests/unit_tests/test_ufunc_runners.py
156-
rm ./libensemble/tests/unit_tests/test_executor_balsam.py
83+
rm ./libensemble/tests/unit_tests/test_ufunc_runners.py # needs globus-compute
84+
rm ./libensemble/tests/regression_tests/test_gpCAM.py # needs gpcam, which doesn't build on 3.13
85+
rm ./libensemble/tests/regression_tests/test_asktell_gpCAM.py # needs gpcam, which doesn't build on 3.13
86+
rm ./libensemble/tests/regression_tests/test_persistent_gp_multitask_ax.py # needs ax-platform, which doesn't yet support 3.14
87+
rm ./libensemble/tests/regression_tests/test_optimas_ax_mf.py # needs ax-platform, which doesn't yet support 3.14
88+
rm ./libensemble/tests/regression_tests/test_optimas_ax_sf.py # needs ax-platform, which doesn't yet support 3.14
15789
15890
- name: Start Redis
15991
if: matrix.os == 'ubuntu-latest'
160-
uses: supercharge/redis-github-action@1.8.0
92+
uses: supercharge/redis-github-action@v2
16193
with:
16294
redis-version: 7
16395

164-
- name: Run extensive tests
96+
- name: Run extensive tests, Ubuntu
97+
if: matrix.os == 'ubuntu-latest'
16598
run: |
16699
./libensemble/tests/run_tests.py -e -${{ matrix.comms-type }}
167100
101+
- name: Run extensive tests, macOS
102+
if: matrix.os == 'macos-latest'
103+
run: |
104+
pixi run -e ${{ matrix.python-version }} ./libensemble/tests/run_tests.py -e -${{ matrix.comms-type }}
105+
168106
- name: Merge coverage
169107
run: |
170108
mv libensemble/tests/.cov* .
@@ -179,5 +117,5 @@ jobs:
179117
if: contains(github.base_ref, 'develop')
180118
runs-on: ubuntu-latest
181119
steps:
182-
- uses: actions/checkout@v4
183-
- uses: crate-ci/typos@v1.34.0
120+
- uses: actions/checkout@v6
121+
- uses: crate-ci/typos@v1.44.0

.pre-commit-config.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,32 @@
11
repos:
22
- repo: https://github.com/pre-commit/pre-commit-hooks
3-
rev: v5.0.0
3+
rev: v6.0.0
44
hooks:
55
- id: end-of-file-fixer
66
exclude: ^(.*\.xml|.*\.svg)$
77
- id: trailing-whitespace
88
exclude: ^(.*\.xml|.*\.svg)$
99

1010
- repo: https://github.com/pycqa/isort
11-
rev: 6.0.0
11+
rev: 7.0.0
1212
hooks:
1313
- id: isort
1414
args: [--profile=black, --line-length=120]
1515

1616
- repo: https://github.com/psf/black
17-
rev: 25.1.0
17+
rev: 25.12.0
1818
hooks:
1919
- id: black
2020
args: [--line-length=120]
2121

2222
- repo: https://github.com/PyCQA/flake8
23-
rev: 7.1.1
23+
rev: 7.3.0
2424
hooks:
2525
- id: flake8
2626
args: [--max-line-length=120]
2727

2828
- repo: https://github.com/asottile/blacken-docs
29-
rev: 1.19.1
29+
rev: 1.20.0
3030
hooks:
3131
- id: blacken-docs
3232
additional_dependencies: [black==22.12.0]

0 commit comments

Comments
 (0)