Skip to content

Commit 93eb4f6

Browse files
committed
Merge branch 'develop' into refactor/deprecate_from_yaml_toml_json
2 parents 0d03ef1 + 6eedfbe commit 93eb4f6

49 files changed

Lines changed: 352 additions & 904 deletions

Some content is hidden

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

.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: 19 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ jobs:
1717
matrix:
1818
os: [ubuntu-latest]
1919
mpi-version: [mpich]
20-
python-version: ["3.10", "3.11", "3.12", "3.13"]
20+
python-version: ["py310", "py311", "py312", "py313", "py314"]
2121
comms-type: [m, l]
2222
include:
2323
- os: macos-latest
24-
python-version: "3.11"
24+
python-version: "py311"
2525
mpi-version: mpich
2626
comms-type: m
2727
- os: macos-latest
28-
python-version: "3.11"
28+
python-version: "py311"
2929
mpi-version: mpich
3030
comms-type: l
3131

@@ -40,63 +40,42 @@ jobs:
4040

4141
steps:
4242
- uses: actions/checkout@v6
43-
- name: Setup conda - Python ${{ matrix.python-version }}
44-
uses: conda-incubator/setup-miniconda@v3
4543
with:
46-
activate-environment: condaenv
47-
miniconda-version: "latest"
48-
python-version: ${{ matrix.python-version }}
49-
channels: conda-forge
50-
channel-priority: strict
51-
auto-update-conda: true
44+
lfs: true
5245

53-
- name: Force-update certifi and pip
54-
run: |
55-
python --version
56-
python -m pip install --upgrade pip
57-
python -m pip install -I --upgrade certifi
58-
59-
- name: Install Ubuntu compilers
60-
if: matrix.os == 'ubuntu-latest'
61-
run: |
62-
conda install -c conda-forge gcc_linux-64
46+
- name: Checkout lockfile
47+
run: git lfs checkout
6348

64-
# Roundabout solution on macos for proper linking with mpicc
65-
- name: Install macOS compilers
66-
if: matrix.os == 'macos-latest'
67-
run: |
68-
conda install clang_osx-64
69-
70-
- name: Install basic testing/feature dependencies
71-
run: |
72-
pip install -r install/testing_requirements.txt
73-
pip install -r install/misc_feature_requirements.txt
74-
source install/install_ibcdfo.sh
75-
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 }}
7655

77-
- name: Install mpi4py and MPI from conda
56+
- name: Install IBCDFO
7857
run: |
79-
conda install mpi4py ${{ matrix.mpi-version }}
58+
pixi run -e ${{ matrix.python-version }} ./install/install_ibcdfo.sh
8059
8160
- name: Install libEnsemble, test flake8
8261
run: |
8362
pip install -e .
8463
flake8 libensemble
8564
8665
- name: Remove various tests on newer pythons
87-
if: matrix.python-version >= '3.11'
66+
if: matrix.python-version == 'py311' || matrix.python-version == 'py312' || matrix.python-version == 'py313' || matrix.python-version == 'py314'
8867
run: |
89-
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
9069
9170
- name: Run simple tests, Ubuntu
9271
if: matrix.os == 'ubuntu-latest'
9372
run: |
94-
./libensemble/tests/run_tests.py -A "-W error" -${{ matrix.comms-type }}
73+
./libensemble/tests/run_tests.py -A "-W error" -${{ matrix.comms-type }}
9574
9675
- name: Run simple tests, macOS
9776
if: matrix.os == 'macos-latest'
9877
run: |
99-
./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 }}
10079
10180
- name: Merge coverage
10281
run: |
@@ -113,4 +92,4 @@ jobs:
11392
runs-on: ubuntu-latest
11493
steps:
11594
- uses: actions/checkout@v6
116-
- uses: crate-ci/typos@v1.40.0
95+
- uses: crate-ci/typos@v1.43.0

.github/workflows/extra.yml

Lines changed: 34 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,24 @@ jobs:
1111
matrix:
1212
os: [ubuntu-latest]
1313
mpi-version: [mpich]
14-
python-version: ['3.10', '3.11', '3.12', '3.13']
14+
python-version: ["py310e", "py311e", "py312e", "py313e", "py314e"]
1515
comms-type: [m, l]
1616
include:
1717
- os: macos-latest
18-
python-version: '3.13'
18+
python-version: "py312e"
1919
mpi-version: mpich
2020
comms-type: m
2121
- os: macos-latest
22-
python-version: '3.13'
22+
python-version: "py312e"
2323
mpi-version: mpich
2424
comms-type: l
2525
- os: ubuntu-latest
26-
python-version: '3.12'
26+
python-version: "py312e"
2727
mpi-version: mpich
2828
comms-type: t
2929
- os: ubuntu-latest
30-
mpi-version: 'openmpi'
31-
python-version: '3.12'
30+
mpi-version: openmpi
31+
python-version: "py312e"
3232
comms-type: l
3333

3434
env:
@@ -42,93 +42,59 @@ jobs:
4242

4343
steps:
4444
- uses: actions/checkout@v6
45-
- name: Setup conda - Python ${{ matrix.python-version }}
46-
uses: conda-incubator/setup-miniconda@v3
4745
with:
48-
activate-environment: condaenv
49-
miniconda-version: 'latest'
50-
python-version: ${{ matrix.python-version }}
51-
channels: conda-forge
52-
channel-priority: strict
53-
auto-update-conda: true
54-
55-
- name: Force-update certifi
56-
run: |
57-
python --version
58-
pip install -I --upgrade certifi
46+
lfs: true
5947

60-
- name: Install Ubuntu compilers
61-
if: matrix.os == 'ubuntu-latest'
62-
run: |
63-
conda install -c conda-forge gcc_linux-64
64-
pip install nlopt==2.9.0
48+
- name: Checkout lockfile
49+
run: git lfs checkout
6550

66-
# Roundabout solution on macos for proper linking with mpicc
67-
- name: Install macOS compilers
68-
if: matrix.os == 'macos-latest'
69-
run: |
70-
conda install clang_osx-64
71-
pip install nlopt==2.8.0
72-
73-
- name: Install mpi4py and MPI from conda
74-
run: |
75-
conda install mpi4py ${{ matrix.mpi-version }}
76-
77-
- name: Install generator dependencies
78-
run: |
79-
conda env update --file install/gen_deps_environment.yml
80-
81-
- name: Install gpcam and octave # Neither yet support 3.13
82-
if: matrix.python-version <= '3.12'
83-
run: |
84-
pip install gpcam==8.1.13
85-
conda install octave
86-
87-
- name: Install surmise and Tasmanian
88-
if: matrix.os == 'ubuntu-latest'
89-
run: |
90-
pip install --upgrade git+https://github.com/bandframework/surmise.git
91-
pip install Tasmanian --user
92-
93-
- name: Install generator dependencies for Ubuntu tests
94-
if: matrix.os == 'ubuntu-latest' && matrix.python-version <= '3.12'
95-
run: |
96-
pip install scikit-build packaging
51+
- uses: prefix-dev/setup-pixi@v0.9.2
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 }}
9758

9859
- name: Install other testing dependencies
9960
run: |
100-
pip install -r install/testing_requirements.txt
101-
pip install -r install/misc_feature_requirements.txt
102-
source install/install_ibcdfo.sh
103-
conda install numpy scipy
61+
pixi run -e ${{ matrix.python-version }} install/install_ibcdfo.sh
10462
10563
- name: Install libEnsemble, flake8, lock environment
10664
run: |
10765
pip install -e .
10866
flake8 libensemble
10967
110-
- name: Remove test using octave, gpcam on Python 3.13
111-
if: matrix.python-version >= '3.13'
68+
- name: Install gpcam
69+
if: matrix.python-version != 'py313e' && matrix.python-version != 'py314e'
70+
run: |
71+
pixi run -e ${{ matrix.python-version }} pip install gpcam==8.1.13
72+
73+
- name: Remove test using octave, gpcam, globus-compute on Python 3.13
74+
if: matrix.python-version == 'py313e' || matrix.python-version == 'py314e'
11275
run: |
76+
rm ./libensemble/tests/unit_tests/test_ufunc_runners.py # needs globus-compute
11377
rm ./libensemble/tests/regression_tests/test_persistent_fd_param_finder.py # needs octave, which doesn't yet support 3.13
11478
rm ./libensemble/tests/regression_tests/test_persistent_aposmm_external_localopt.py # needs octave, which doesn't yet support 3.13
11579
rm ./libensemble/tests/regression_tests/test_gpCAM.py # needs gpcam, which doesn't build on 3.13
116-
117-
- name: Install redis/proxystore
118-
run: |
119-
pip install redis
120-
pip install proxystore==0.7.0
80+
rm ./libensemble/tests/regression_tests/test_persistent_gp_multitask_ax.py # needs ax-platform, which doesn't yet support 3.14
12181
12282
- name: Start Redis
12383
if: matrix.os == 'ubuntu-latest'
12484
uses: supercharge/redis-github-action@v2
12585
with:
12686
redis-version: 7
12787

128-
- name: Run extensive tests
88+
- name: Run extensive tests, Ubuntu
89+
if: matrix.os == 'ubuntu-latest'
12990
run: |
13091
./libensemble/tests/run_tests.py -e -${{ matrix.comms-type }}
13192
93+
- name: Run extensive tests, macOS
94+
if: matrix.os == 'macos-latest'
95+
run: |
96+
pixi run -e ${{ matrix.python-version }} ./libensemble/tests/run_tests.py -e -${{ matrix.comms-type }}
97+
13298
- name: Merge coverage
13399
run: |
134100
mv libensemble/tests/.cov* .
@@ -144,4 +110,4 @@ jobs:
144110
runs-on: ubuntu-latest
145111
steps:
146112
- uses: actions/checkout@v6
147-
- uses: crate-ci/typos@v1.40.0
113+
- uses: crate-ci/typos@v1.43.0

.readthedocs.yml

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,31 @@ build:
44
os: "ubuntu-22.04"
55
tools:
66
python: "3.10"
7+
commands:
8+
# from https://docs.readthedocs.com/platform/stable/build-customization.html#support-git-lfs-large-file-storage
9+
# Download and uncompress the binary
10+
# https://git-lfs.github.com/
11+
- wget https://github.com/git-lfs/git-lfs/releases/download/v3.1.4/git-lfs-linux-amd64-v3.1.4.tar.gz
12+
- tar xvfz git-lfs-linux-amd64-v3.1.4.tar.gz git-lfs
13+
# Modify LFS config paths to point where git-lfs binary was downloaded
14+
- git config filter.lfs.process "`pwd`/git-lfs filter-process"
15+
- git config filter.lfs.smudge "`pwd`/git-lfs smudge -- %f"
16+
- git config filter.lfs.clean "`pwd`/git-lfs clean -- %f"
17+
# Make LFS available in current repository
18+
- ./git-lfs install
19+
# Download content from remote
20+
- ./git-lfs fetch
21+
# Make local files to have the real content on them
22+
- ./git-lfs checkout
23+
- asdf plugin add pixi
24+
- asdf install pixi latest
25+
- asdf global pixi latest
26+
- pixi run -e docs build-docs
27+
- mkdir -p $READTHEDOCS_OUTPUT/html/
28+
- cp -r docs/_build/html/** $READTHEDOCS_OUTPUT/html/
729

830
sphinx:
931
configuration: docs/conf.py
1032

1133
formats:
1234
- pdf
13-
14-
python:
15-
install:
16-
- requirements: docs/requirements.txt
17-
- method: pip
18-
path: .
19-
extra_requirements:
20-
- docs

docs/conf.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def __getattr__(cls, name):
3131
return MagicMock()
3232

3333

34-
autodoc_mock_imports = ["ax", "balsam", "gpcam", "IPython", "matplotlib", "pandas", "scipy", "surmise"]
34+
autodoc_mock_imports = ["ax", "gpcam", "IPython", "matplotlib", "pandas", "scipy", "surmise"]
3535

3636
MOCK_MODULES = [
3737
"argparse",
@@ -101,6 +101,7 @@ class AxParameterWarning(Warning): # Ensure it's a real warning subclass
101101
"sphinxcontrib.autodoc_pydantic",
102102
"sphinx_design",
103103
"sphinx_copybutton",
104+
"sphinx_lfs_content",
104105
]
105106

106107
spelling_word_list_filename = "spelling_wordlist.txt"

docs/examples/gen_funcs.rst

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ Modeling and Approximation
8484
:hidden:
8585

8686
gpcam
87-
tasmanian
8887
fd_param_finder
8988
surmise
9089

@@ -100,7 +99,7 @@ Modeling and Approximation
10099

101100
Modular Bayesian calibration/inference framework using Surmise_ (demonstration of cancelling previous issued simulations).
102101

103-
- :doc:`Tasmanian<tasmanian>`
102+
- :ref:`Tasmanian<community:tasmanian-link>`
104103

105104
Evaluates points generators by the Tasmanian_ sparse grid library
106105

docs/examples/tasmanian.rst

Lines changed: 0 additions & 31 deletions
This file was deleted.

docs/history_output_logging.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
Output Management
22
=================
33

4+
Simulation Directories
5+
~~~~~~~~~~~~~~~~~~~~~~
6+
7+
By default, libEnsemble places output files in the current working directory.
8+
9+
See the ``Directories`` section of :ref:`libE_specs<datastruct-libe-specs>` for instructions
10+
on how to separate simulation runs into separate directories and copy/symlink input files into these
11+
locations.
12+
413
Default Log Files
514
~~~~~~~~~~~~~~~~~
615
The history array :ref:`H<funcguides-history>` and

docs/requirements.txt

Lines changed: 0 additions & 8 deletions
This file was deleted.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
globus-compute-sdk==4.2.0
1+
globus-compute-sdk==4.3.0

0 commit comments

Comments
 (0)