Skip to content

Commit 06ae667

Browse files
authored
Merge pull request #1160 from Libensemble/release/v_1.1.0
Release/v 1.1.0
2 parents f0cecc6 + 6199ef2 commit 06ae667

64 files changed

Lines changed: 670 additions & 937 deletions

Some content is hidden

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

.flake8

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ per-file-ignores =
4141
libensemble/tests/regression_tests/test_persistent_gp_multitask_ax.py:E402
4242
libensemble/tests/regression_tests/test_ytopt_heffte.py:E402
4343
libensemble/tests/functionality_tests/test_uniform_sampling_then_persistent_localopt_runs.py:E402
44+
libensemble/tests/functionality_tests/test_stats_output.py:E402
4445
libensemble/tests/functionality_tests/test_active_persistent_worker_abort.py:E402
4546
libensemble/tests/unit_tests/test_persistent_aposmm.py:E402
4647

.github/workflows/basic.yml

Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
name: libEnsemble-simple-CI
2+
3+
on:
4+
pull_request:
5+
types:
6+
- ready_for_review
7+
- opened
8+
- reopened
9+
- synchronize
10+
11+
jobs:
12+
test-libE:
13+
if: '! github.event.pull_request.draft'
14+
runs-on: ${{ matrix.os }}
15+
strategy:
16+
fail-fast: false
17+
matrix:
18+
os: [ubuntu-latest]
19+
mpi-version: [mpich]
20+
python-version: [3.9, "3.10", "3.11", "3.12"]
21+
comms-type: [m, l]
22+
include:
23+
- os: macos-latest
24+
python-version: 3.11
25+
mpi-version: "mpich=4.0.3"
26+
comms-type: m
27+
- os: macos-latest
28+
python-version: 3.11
29+
mpi-version: "mpich=4.0.3"
30+
comms-type: l
31+
32+
env:
33+
HYDRA_LAUNCHER: "fork"
34+
TERM: xterm-256color
35+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
36+
37+
defaults:
38+
run:
39+
shell: bash -l {0}
40+
41+
steps:
42+
- uses: actions/checkout@v4
43+
- name: Setup conda - Python ${{ matrix.python-version }}
44+
uses: conda-incubator/setup-miniconda@v2
45+
with:
46+
activate-environment: condaenv
47+
miniconda-version: "latest"
48+
python-version: ${{ matrix.python-version }}
49+
channels: conda-forge
50+
channel-priority: flexible
51+
auto-update-conda: true
52+
53+
- uses: actions/cache/restore@v3
54+
name: Restore cached dependencies
55+
id: cache
56+
if: matrix.os == 'ubuntu-latest'
57+
with:
58+
path: |
59+
/home/runner/.local
60+
/usr/share/miniconda3/envs/condaenv
61+
/usr/share/miniconda3/bin
62+
/usr/share/miniconda3/lib
63+
/usr/share/miniconda3/include
64+
key: libe-${{ github.ref_name }}-${{ matrix.python-version }}-${{ matrix.comms-type }}
65+
66+
- name: Force-update certifi
67+
run: |
68+
python --version
69+
pip install -I --upgrade certifi
70+
71+
- name: Install Ubuntu compilers
72+
if: matrix.os == 'ubuntu-latest'
73+
run: conda install gcc_linux-64
74+
75+
# Roundabout solution on macos for proper linking with mpicc
76+
- name: Install macOS compilers and older SDK
77+
if: matrix.os == 'macos-latest'
78+
run: |
79+
wget https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX10.15.sdk.tar.xz
80+
mkdir ../sdk; tar xf MacOSX10.15.sdk.tar.xz -C ../sdk
81+
conda install clang_osx-64
82+
83+
- name: Install basic testing/feature dependencies
84+
run: |
85+
pip install -r install/testing_requirements.txt
86+
pip install -r install/misc_feature_requirements.txt
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+
if: matrix.os != 'windows-latest' && steps.cache.outputs.cache-hit != 'true'
94+
run: |
95+
python -m pip install --upgrade pip
96+
pip install mpmath
97+
conda install numpy nlopt scipy
98+
99+
- uses: actions/cache/save@v3
100+
name: Save dependencies to cache
101+
if: matrix.os == 'ubuntu-latest'
102+
with:
103+
path: |
104+
/home/runner/.local
105+
/usr/share/miniconda3/envs/condaenv
106+
/usr/share/miniconda3/bin
107+
/usr/share/miniconda3/lib
108+
/usr/share/miniconda3/include
109+
key: libe-${{ github.ref_name }}-${{ matrix.python-version }}-${{ matrix.comms-type }}
110+
111+
- name: Install libEnsemble, flake8, lock environment
112+
run: |
113+
pip install -e .
114+
flake8 libensemble
115+
116+
- name: Run simple tests, Ubuntu
117+
if: matrix.os == 'ubuntu-latest'
118+
run: |
119+
./libensemble/tests/run-tests.sh -A "-W error" -z -${{ matrix.comms-type }}
120+
121+
- name: Run simple tests, macOS
122+
if: matrix.os == 'macos-latest'
123+
env:
124+
CONDA_BUILD_SYSROOT: /Users/runner/work/libensemble/sdk/MacOSX10.15.sdk
125+
run: |
126+
./libensemble/tests/run-tests.sh -A "-W error" -z -${{ matrix.comms-type }}
127+
128+
- name: Merge coverage
129+
run: |
130+
mv libensemble/tests/.cov* .
131+
132+
- name: Upload coverage reports to Codecov
133+
uses: codecov/codecov-action@v3
134+
env:
135+
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
136+
137+
spellcheck:
138+
name: Spellcheck release branch
139+
if: contains(github.base_ref, 'develop')
140+
runs-on: ubuntu-latest
141+
steps:
142+
- uses: actions/checkout@v4
143+
- uses: crate-ci/typos@v1.16.23
Lines changed: 33 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,25 @@
1-
name: libEnsemble-CI
1+
name: libEnsemble-complete-CI
2+
23
on:
3-
pull_request:
4-
types:
5-
- ready_for_review
6-
- opened
7-
- reopened
8-
- synchronize
4+
workflow_dispatch:
5+
96
jobs:
107
test-libE:
11-
if: '! github.event.pull_request.draft'
128
runs-on: ${{ matrix.os }}
139
strategy:
1410
fail-fast: false
1511
matrix:
1612
os: [ubuntu-latest]
1713
mpi-version: [mpich]
18-
python-version: [3.8, 3.9, "3.10", "3.11"]
14+
python-version: [3.9, "3.10", "3.11", "3.12"]
1915
comms-type: [m, l]
2016
include:
2117
- os: macos-latest
22-
python-version: 3.9
18+
python-version: 3.11
2319
mpi-version: "mpich=4.0.3"
2420
comms-type: m
2521
- os: macos-latest
26-
python-version: 3.9
22+
python-version: 3.11
2723
mpi-version: "mpich=4.0.3"
2824
comms-type: l
2925
- os: ubuntu-latest
@@ -32,8 +28,9 @@ jobs:
3228
comms-type: t
3329
- os: ubuntu-latest
3430
mpi-version: "openmpi"
35-
python-version: "3.10"
31+
python-version: "3.11"
3632
comms-type: l
33+
3734
env:
3835
HYDRA_LAUNCHER: "fork"
3936
TERM: xterm-256color
@@ -44,7 +41,7 @@ jobs:
4441
shell: bash -l {0}
4542

4643
steps:
47-
- uses: actions/checkout@v3
44+
- uses: actions/checkout@v4
4845
- name: Setup conda - Python ${{ matrix.python-version }}
4946
uses: conda-incubator/setup-miniconda@v2
5047
with:
@@ -74,13 +71,6 @@ jobs:
7471
python --version
7572
pip install -I --upgrade certifi
7673
77-
# - name: Windows - Add clang path to $PATH env
78-
# shell: bash
79-
# if: matrix.os == 'windows-latest'
80-
# run: |
81-
# echo "PATH=$PATH:C:\msys64\mingw64\bin" >> $GITHUB_ENV
82-
# echo "PATH=$PATH:C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64" >> $GITHUB_ENV
83-
8474
- name: Install Ubuntu compilers
8575
if: matrix.os == 'ubuntu-latest'
8676
run: conda install gcc_linux-64
@@ -93,16 +83,6 @@ jobs:
9383
mkdir ../sdk; tar xf MacOSX10.15.sdk.tar.xz -C ../sdk
9484
conda install clang_osx-64
9585
96-
# - name: Setup MPI (${{ matrix.mpi-version }})
97-
# uses: mpi4py/setup-mpi@v1
98-
# if: matrix.os == 'windows-latest'
99-
# with:
100-
# mpi: ${{ matrix.mpi-version }}
101-
102-
# - name: Install mpi4py on Windows
103-
# if: matrix.os == 'windows-latest'
104-
# run: pip install mpi4py
105-
10686
- name: Install mpi4py and MPI from conda
10787
if: (matrix.python-version != '3.10' && matrix.os == 'ubuntu-latest') || matrix.os == 'macos-latest'
10888
run: |
@@ -115,11 +95,14 @@ jobs:
11595
pip install mpi4py
11696
11797
- name: Install generator dependencies
118-
if: matrix.os != 'windows-latest' && steps.cache.outputs.cache-hit != 'true'
98+
if: steps.cache.outputs.cache-hit != 'true'
11999
run: |
120100
python -m pip install --upgrade pip
121101
conda env update --file install/gen_deps_environment.yml
122102
103+
- name: Install ax-platform
104+
if: matrix.python-version != '3.12'
105+
run: |
123106
pip install ax-platform==0.2.8
124107
125108
- name: Install surmise
@@ -128,7 +111,7 @@ jobs:
128111
pip install --upgrade git+https://github.com/bandframework/surmise.git@develop
129112
130113
- name: Build ytopt and dependencies
131-
if: matrix.python-version != '3.11' && matrix.os != 'windows-latest' && matrix.os != 'macos-latest'
114+
if: matrix.python-version <= '3.10' && matrix.os != 'macos-latest'
132115
run: |
133116
pip install scikit-learn==1.1.2
134117
pip install pandas==1.5.3
@@ -147,18 +130,9 @@ jobs:
147130
pip install .
148131
cd ..
149132
150-
# - name: Install some generator dependencies on Windows
151-
# if: matrix.os == 'windows-latest'
152-
# run: |
153-
# python -m pip install --upgrade pip
154-
# conda install nlopt
155-
# conda install scipy
156-
# pip install mpmath
157-
158133
- name: Install generator dependencies for Ubuntu tests
159-
if: matrix.os == 'ubuntu-latest' && steps.cache.outputs.cache-hit != 'true'
134+
if: matrix.os == 'ubuntu-latest' && steps.cache.outputs.cache-hit != 'true' && matrix.python-version != '3.12'
160135
run: |
161-
conda install octave
162136
sudo apt-get install bc
163137
164138
# begin heffte build and dependencies
@@ -177,16 +151,17 @@ jobs:
177151
# pip install git+https://github.com/dragonfly/dragonfly.git
178152
pip install git+https://github.com/jlnav/dragonfly.git@fix/remove_npobject
179153
180-
pip install scikit-build packaging Tasmanian --user
181154
182155
- name: Copy heffte exe on cache-hit
183-
if: matrix.os == 'ubuntu-latest' && steps.cache.outputs.cache-hit != 'false'
156+
if: matrix.os == 'ubuntu-latest' && steps.cache.outputs.cache-hit != 'false' && matrix.python-version != '3.12'
184157
run: |
185158
cd /home/runner/work/libensemble/libensemble
186159
cp ./heffte/build/benchmarks/speed3d_c2c ./libensemble/tests/regression_tests/
187160
188161
- name: Install other testing dependencies
189162
run: |
163+
conda install octave
164+
pip install scikit-build packaging Tasmanian --user
190165
conda install pyzmq
191166
pip install -r install/testing_requirements.txt
192167
pip install -r install/misc_feature_requirements.txt
@@ -212,53 +187,39 @@ jobs:
212187
pip install -e .
213188
flake8 libensemble
214189
215-
- name: Remove ytopt-heffte test on Python 3.11 (easy way)
216-
if: matrix.python-version == '3.11'
190+
- name: Remove various tests on newer pythons
191+
if: matrix.python-version >= '3.11'
217192
run: |
193+
rm ./libensemble/tests/regression_tests/test_heffte.py
218194
rm ./libensemble/tests/regression_tests/test_ytopt_heffte.py
195+
rm ./libensemble/tests/regression_tests/test_persistent_gp.py
196+
rm ./libensemble/tests/regression_tests/test_persistent_gp_multitask_ax.py
219197
220198
- name: Run extensive tests, Ubuntu
221199
if: matrix.os == 'ubuntu-latest'
222200
run: |
223-
./libensemble/tests/run-tests.sh -e -A "-W error" -z -${{ matrix.comms-type }}
224-
225-
# - name: Run simple tests, Windows
226-
# if: matrix.os == 'windows-latest'
227-
# run: |
228-
# ./libensemble/tests/run-tests.sh -A "-W error" -z -${{ matrix.comms-type }}
201+
./libensemble/tests/run-tests.sh -e -z -${{ matrix.comms-type }}
229202
230203
- name: Run extensive tests, macOS
231204
if: matrix.os == 'macos-latest'
232205
env:
233206
CONDA_BUILD_SYSROOT: /Users/runner/work/libensemble/sdk/MacOSX10.15.sdk
234207
run: |
235-
./libensemble/tests/run-tests.sh -e -A "-W error" -z -${{ matrix.comms-type }}
208+
./libensemble/tests/run-tests.sh -e -z -${{ matrix.comms-type }}
236209
237-
- name: Merge coverage, run Coveralls
238-
env:
239-
COVERALLS_PARALLEL: true
210+
- name: Merge coverage
240211
run: |
241212
mv libensemble/tests/.cov* .
242-
coveralls --service=github
243213
244-
coveralls:
245-
name: Notify coveralls of all jobs completing
246-
needs: [test-libE]
247-
if: '! github.event.pull_request.draft'
248-
runs-on: ubuntu-latest
249-
container: python:3-slim
250-
steps:
251-
- name: Finished
252-
run: |
253-
pip3 install --upgrade coveralls
254-
coveralls --finish
214+
- name: Upload coverage reports to Codecov
215+
uses: codecov/codecov-action@v3
255216
env:
256-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
217+
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
257218

258219
spellcheck:
259220
name: Spellcheck release branch
260-
if: contains(github.base_ref, 'main')
221+
if: contains(github.base_ref, 'develop')
261222
runs-on: ubuntu-latest
262223
steps:
263-
- uses: actions/checkout@v3
264-
- uses: crate-ci/typos@v1.0.4
224+
- uses: actions/checkout@v4
225+
- uses: crate-ci/typos@v1.16.23

.typos.toml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
1+
[default]
2+
extend-ignore-identifiers-re = [
3+
".*NDArray.*",
4+
"8ba9de56.*"
5+
]
6+
17
[default.extend-words]
28
als = "als"
39
datas = "datas"
410
numer = "numer"
511
inout = "inout"
612

713
[files]
8-
extend-exclude = ["*.bib", "*.xml"]
14+
extend-exclude = ["*.bib", "*.xml", "docs/nitpicky"]

.wci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ description: |
1616
language: Python
1717

1818
release:
19-
version: 1.0.0
20-
date: 2023-09-25
19+
version: 1.1.0
20+
date: 2023-11-08
2121

2222
documentation:
2323
general: https://libensemble.readthedocs.io

0 commit comments

Comments
 (0)