Skip to content

Commit b3c6030

Browse files
committed
Merge branch 'develop' into refactor/deprecate_from_yaml_toml_json
2 parents 93eb4f6 + f220fdd commit b3c6030

108 files changed

Lines changed: 4859 additions & 600 deletions

File tree

Some content is hidden

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

.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

.github/workflows/basic.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,12 @@ jobs:
6262
pip install -e .
6363
flake8 libensemble
6464
65+
- name: Install mypy
66+
run: pip install mypy
67+
68+
- name: Run mypy (limited scope)
69+
run: mypy
70+
6571
- name: Remove various tests on newer pythons
6672
if: matrix.python-version == 'py311' || matrix.python-version == 'py312' || matrix.python-version == 'py313' || matrix.python-version == 'py314'
6773
run: |
@@ -92,4 +98,4 @@ jobs:
9298
runs-on: ubuntu-latest
9399
steps:
94100
- uses: actions/checkout@v6
95-
- uses: crate-ci/typos@v1.43.0
101+
- uses: crate-ci/typos@v1.44.0

.github/workflows/extra.yml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
- name: Checkout lockfile
4949
run: git lfs checkout
5050

51-
- uses: prefix-dev/setup-pixi@v0.9.2
51+
- uses: prefix-dev/setup-pixi@v0.9.4
5252
with:
5353
pixi-version: v0.55.0
5454
cache: true
@@ -70,14 +70,22 @@ jobs:
7070
run: |
7171
pixi run -e ${{ matrix.python-version }} pip install gpcam==8.1.13
7272
73+
- name: Remove xopt tests on old python
74+
if: matrix.python-version == 'py310e'
75+
run: |
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
79+
7380
- name: Remove test using octave, gpcam, globus-compute on Python 3.13
7481
if: matrix.python-version == 'py313e' || matrix.python-version == 'py314e'
7582
run: |
7683
rm ./libensemble/tests/unit_tests/test_ufunc_runners.py # needs globus-compute
77-
rm ./libensemble/tests/regression_tests/test_persistent_fd_param_finder.py # needs octave, which doesn't yet support 3.13
78-
rm ./libensemble/tests/regression_tests/test_persistent_aposmm_external_localopt.py # needs octave, which doesn't yet support 3.13
7984
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
8086
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
8189
8290
- name: Start Redis
8391
if: matrix.os == 'ubuntu-latest'
@@ -110,4 +118,4 @@ jobs:
110118
runs-on: ubuntu-latest
111119
steps:
112120
- uses: actions/checkout@v6
113-
- uses: crate-ci/typos@v1.43.0
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]

.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.5.0
20-
date: 2025-04-10
19+
version: 1.6.0
20+
date: 2026-03-04
2121

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

CHANGELOG.rst

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,45 @@ GitHub issues are referenced, and can be viewed with hyperlinks on the `github r
88

99
.. _`github releases page`: https://github.com/Libensemble/libensemble/releases
1010

11+
Release 1.6.0
12+
--------------
13+
14+
:Date: March 04, 2026
15+
16+
General Updates:
17+
18+
* Support for ``gest-api`` generators (https://gest-api.readthedocs.io). #1307
19+
20+
* Support for any Xopt (v3.0+) and Optimas generators.
21+
* libEnsemble's APOSMM, gpCAM, and random sampling generators are supplied in ``gest-api`` format.
22+
* Support dictionary (Xopt-style) simulator functions.
23+
24+
* Simulation container support - Executor precedent accepts ``%LIBENSEMBLE_SIM_DIR%`` placeholder. #1672
25+
26+
Examples:
27+
28+
* Adding test for ibcdfo with jax. #1591
29+
* Optimas/Xopt examples. #1620 / #1635
30+
* Bayesian Optimization with Xopt tutorial / notebook.
31+
* Tasmanian generators moved to community examples.
32+
33+
Dependencies:
34+
35+
* ``gest-api`` is now a required dependency. #1666
36+
* Remove Pydantic v1 support and Balsam. #1573
37+
* Python 3.14 supported. #1609
38+
39+
40+
:Note:
41+
42+
* Tests were run on Linux and MacOS with Python versions 3.10, 3.11, 3.12, 3.13, 3.14
43+
* Heterogeneous workflows tested on Aurora (ALCF) and Perlmutter (NERSC).
44+
45+
:Known Issues:
46+
47+
* See known issues section in the documentation.
48+
49+
1150
Release 1.5.0
1251
--------------
1352

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
BSD 3-Clause License
22

3-
Copyright (c) 2018-2025, UChicago Argonne, LLC and the libEnsemble Development Team
3+
Copyright (c) 2018-2026, UChicago Argonne, LLC and the libEnsemble Development Team
44
All Rights Reserved.
55

66
Redistribution and use in source and binary forms, with or without

README.rst

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,11 @@ and inference problems on the world's leading supercomputers such as Frontier, A
2222

2323
`Quickstart`_
2424

25-
**New:** Try out the |ScriptCreator| to generate customized scripts for running
26-
ensembles with your MPI applications.
25+
**New:** libEnsemble nows supports the `gest-api`_ generator standard, and can run with
26+
Optimas and Xopt generators.
27+
28+
The |ScriptCreator| to generate customized scripts for running ensembles with your
29+
MPI applications.
2730

2831
Installation
2932
============
@@ -100,6 +103,8 @@ Try some other examples live in Colab.
100103
+---------------------------------------------------------------+-------------------------------------+
101104
| Surrogate model generation with gpCAM. | |Surrogate Modeling| |
102105
+---------------------------------------------------------------+-------------------------------------+
106+
| Bayesian Optimization with Xopt. | |Bayesian Optimization with Xopt| |
107+
+---------------------------------------------------------------+-------------------------------------+
103108

104109
There are many more examples in the `regression tests`_ and `Community Examples repository`_.
105110

@@ -161,6 +166,7 @@ Resources
161166
.. _conda-forge: https://conda-forge.org/
162167
.. _Contributions: https://github.com/Libensemble/libensemble/blob/main/CONTRIBUTING.rst
163168
.. _docs: https://libensemble.readthedocs.io/en/main/advanced_installation.html
169+
.. _gest-api: https://gest-api.readthedocs.io
164170
.. _GitHub: https://github.com/Libensemble/libensemble
165171
.. _libEnsemble mailing list: https://lists.mcs.anl.gov/mailman/listinfo/libensemble
166172
.. _libEnsemble Slack page: https://libensemble.slack.com
@@ -186,6 +192,9 @@ Resources
186192
.. |Surrogate Modeling| image:: https://colab.research.google.com/assets/colab-badge.svg
187193
:target: https://colab.research.google.com/github/Libensemble/libensemble/blob/develop/examples/tutorials/gpcam_surrogate_model/gpcam.ipynb
188194

195+
.. |Bayesian Optimization with Xopt| image:: https://colab.research.google.com/assets/colab-badge.svg
196+
:target: https://colab.research.google.com/github/Libensemble/libensemble/blob/develop/examples/tutorials/xopt_bayesian_gen/xopt_EI_example.ipynb
197+
189198
.. |ScriptCreator| image:: https://img.shields.io/badge/Script_Creator-purple?logo=magic
190199
:target: https://libensemble.github.io/script-creator/
191200
:alt: Script Creator

docs/advanced_installation.rst

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,20 @@
11
Advanced Installation
22
=====================
33

4-
libEnsemble can be installed from ``pip``, ``Conda``, or ``Spack``.
4+
libEnsemble can be installed from ``pip``, ``uv``, ``Conda``, or ``Spack``.
55

66
libEnsemble requires the following dependencies, which are typically
77
automatically installed alongside libEnsemble:
88

99
* Python_ ``>= 3.10``
1010
* NumPy_ ``>= 1.21``
1111
* psutil_ ``>= 5.9.4``
12-
* `pydantic`_ ``>= 1.10.12``
12+
* `pydantic`_ ``>= 2``
1313
* pyyaml_ ``>= v6.0``
1414
* tomli_ ``>= 1.2.1``
15+
* gest-api_ ``>= 0.1,<0.2``
1516

16-
Given libEnsemble's compiled dependencies, the following installation
17-
methods each offer a trade-off between convenience and the ability
18-
to customize builds, including platform-specific optimizations.
19-
20-
We always recommend installing in a virtual environment from Conda or another source.
17+
We recommend installing in a virtual environment from ``uv``, ``conda`` or another source.
2118

2219
Further recommendations for selected HPC systems are given in the
2320
:ref:`HPC platform guides<platform-index>`.
@@ -53,6 +50,12 @@ Further recommendations for selected HPC systems are given in the
5350

5451
CC=mpicc MPICC=mpicc pip install mpi4py --no-binary mpi4py
5552

53+
.. tab-item:: uv
54+
55+
To install the latest PyPI_ release via uv_::
56+
57+
uv pip install libensemble
58+
5659
.. tab-item:: conda
5760

5861
Install libEnsemble with Conda_ from the conda-forge channel::
@@ -178,6 +181,7 @@ The following packages may be installed separately to enable additional features
178181

179182
.. _conda-forge: https://conda-forge.org/
180183
.. _Conda: https://docs.conda.io/en/latest/
184+
.. _gest-api: https://github.com/campa-consortium/gest-api
181185
.. _GitHub: https://github.com/Libensemble/libensemble
182186
.. _Globus Compute: https://www.globus.org/compute
183187
.. _MPICH: https://www.mpich.org/
@@ -192,3 +196,4 @@ The following packages may be installed separately to enable additional features
192196
.. _spack_libe: https://github.com/Libensemble/spack_libe
193197
.. _tomli: https://pypi.org/project/tomli/
194198
.. _tqdm: https://tqdm.github.io/
199+
.. _uv: https://docs.astral.sh/uv/

0 commit comments

Comments
 (0)