From a922be19c5f73a5bf0d0596604403e5f12e26885 Mon Sep 17 00:00:00 2001 From: jlnav Date: Wed, 11 Mar 2026 13:14:38 -0500 Subject: [PATCH 1/2] deprecate python 3.10, plus a perlmutter code-block fix --- .readthedocs.yml | 2 +- docs/advanced_installation.rst | 8 ++++---- docs/platforms/perlmutter.rst | 1 + docs/platforms/summit.rst | 2 +- docs/tutorials/local_sine_tutorial.rst | 2 +- pixi.lock | 4 ++-- pyproject.toml | 14 ++------------ 7 files changed, 12 insertions(+), 21 deletions(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index 427711e057..eb847ef487 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -3,7 +3,7 @@ version: 2 build: os: "ubuntu-22.04" tools: - python: "3.10" + python: "3.12" commands: # from https://docs.readthedocs.com/platform/stable/build-customization.html#support-git-lfs-large-file-storage # Download and uncompress the binary diff --git a/docs/advanced_installation.rst b/docs/advanced_installation.rst index 7af481fad6..060435b564 100644 --- a/docs/advanced_installation.rst +++ b/docs/advanced_installation.rst @@ -6,7 +6,7 @@ libEnsemble can be installed from ``pip``, ``uv``, ``Conda``, or ``Spack``. libEnsemble requires the following dependencies, which are typically automatically installed alongside libEnsemble: -* Python_ ``>= 3.10`` +* Python_ ``>= 3.11`` * NumPy_ ``>= 1.21`` * psutil_ ``>= 5.9.4`` * `pydantic`_ ``>= 2`` @@ -142,7 +142,7 @@ Further recommendations for selected HPC systems are given in the **Hint**: When combining Spack and Conda, you can access your Conda Python and packages in your ``~/.spack/packages.yaml`` while your Conda environment is activated, using ``CONDA_PREFIX`` - For example, if you have an activated Conda environment with Python 3.10 and SciPy installed: + For example, if you have an activated Conda environment with Python 3.11 and SciPy installed: .. code-block:: yaml @@ -155,12 +155,12 @@ Further recommendations for selected HPC systems are given in the py-numpy: externals: - spec: "py-numpy" - prefix: $CONDA_PREFIX/lib/python3.10/site-packages/numpy + prefix: $CONDA_PREFIX/lib/python3.11/site-packages/numpy buildable: False py-scipy: externals: - spec: "py-scipy" - prefix: $CONDA_PREFIX/lib/python3.10/site-packages/scipy + prefix: $CONDA_PREFIX/lib/python3.11/site-packages/scipy buildable: True For more information on Spack builds and any particular considerations diff --git a/docs/platforms/perlmutter.rst b/docs/platforms/perlmutter.rst index 88d3f808b2..bc8f1af5ed 100644 --- a/docs/platforms/perlmutter.rst +++ b/docs/platforms/perlmutter.rst @@ -120,6 +120,7 @@ Change the ``libE_specs`` in **run_libe_forces.py** as follows. # Persistent gen does not need resources ensemble.libE_specs = LibeSpecs( gen_on_manager=True, + ) and run with:: diff --git a/docs/platforms/summit.rst b/docs/platforms/summit.rst index 9a08a21eb5..aed321f8e2 100644 --- a/docs/platforms/summit.rst +++ b/docs/platforms/summit.rst @@ -24,7 +24,7 @@ Begin by loading the Python 3 Anaconda module:: You can now create and activate your own custom conda_ environment:: - conda create --name myenv python=3.10 + conda create --name myenv python=3.11 export PYTHONNOUSERSITE=1 # Make sure get python from conda env . activate myenv diff --git a/docs/tutorials/local_sine_tutorial.rst b/docs/tutorials/local_sine_tutorial.rst index 7961aa2b0a..49b36b015b 100644 --- a/docs/tutorials/local_sine_tutorial.rst +++ b/docs/tutorials/local_sine_tutorial.rst @@ -22,7 +22,7 @@ need to write a new allocation function. .. code-block:: bash - python --version # This should be >= 3.10 + python --version # This should be >= 3.11 .. _Python: https://www.python.org/ diff --git a/pixi.lock b/pixi.lock index 7ecb5aabd8..b4565bfa1e 100644 --- a/pixi.lock +++ b/pixi.lock @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e6c850dcd99a7481c401b3f7be69d1519994aaad0416880955acd41f2603082d -size 1156243 +oid sha256:c2797b3b1ad8f17544a037f729a066851d357cd3f0d8de48f705129cdf4e72da +size 1028703 diff --git a/pyproject.toml b/pyproject.toml index 56f2ca7346..1fa8df1f0a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,7 +19,7 @@ dependencies = [ description = "A Python toolkit for coordinating asynchronous and dynamic ensembles of calculations." name = "libensemble" -requires-python = ">=3.10" +requires-python = ">=3.11" license = { file = "LICENSE" } readme = "README.rst" @@ -33,7 +33,6 @@ classifiers = [ "Operating System :: Unix", "Operating System :: MacOS", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", @@ -76,13 +75,11 @@ docs = ["docs", "basic"] dev = ["dev", "basic", "extra", "docs"] # CI environments -py310 = ["py310", "basic"] py311 = ["py311", "basic"] py312 = ["py312", "basic"] py313 = ["py313", "basic"] py314 = ["py314", "basic"] -py310e = ["py310", "py310e", "basic", "extra"] py311e = ["py311", "py311e", "basic", "extra"] py312e = ["py312", "py312e", "basic", "extra"] py313e = ["py313", "py313e", "basic", "extra"] @@ -155,8 +152,6 @@ octave = ">=9.4.0,<11" pyzmq = ">=26.4.0,<28" # Python versions -[tool.pixi.feature.py310.dependencies] -python = "3.10.*" [tool.pixi.feature.py311.dependencies] python = "3.11.*" [tool.pixi.feature.py312.dependencies] @@ -167,11 +162,6 @@ python = "3.13.*" python = "3.14.*" # ax-platform only works up to 3.13 on Linux -[tool.pixi.feature.py310e.target.linux-64.dependencies] -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 = "==0.5.0" @@ -193,7 +183,7 @@ ax-platform = "==0.5.0" # Dependencies for libEnsemble [tool.pixi.dependencies] -python = ">=3.10,<3.15" +python = ">=3.11,<3.15" pip = ">=25.2,<26" setuptools = ">=80.8.0,<81" numpy = ">=2.2.6,<3" From dc2e709e832a1765f8d6a90c09749b78d8cdfcaa Mon Sep 17 00:00:00 2001 From: jlnav Date: Wed, 11 Mar 2026 13:22:46 -0500 Subject: [PATCH 2/2] adjust CI --- .github/workflows/basic.yml | 2 +- .github/workflows/extra.yml | 9 +-------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/.github/workflows/basic.yml b/.github/workflows/basic.yml index bf4e41c45c..1e119026bf 100644 --- a/.github/workflows/basic.yml +++ b/.github/workflows/basic.yml @@ -17,7 +17,7 @@ jobs: matrix: os: [ubuntu-latest] mpi-version: [mpich] - python-version: ["py310", "py311", "py312", "py313", "py314"] + python-version: ["py311", "py312", "py313", "py314"] comms-type: [m, l] include: - os: macos-latest diff --git a/.github/workflows/extra.yml b/.github/workflows/extra.yml index e84ae38427..4d5c668389 100644 --- a/.github/workflows/extra.yml +++ b/.github/workflows/extra.yml @@ -11,7 +11,7 @@ jobs: matrix: os: [ubuntu-latest] mpi-version: [mpich] - python-version: ["py310e", "py311e", "py312e", "py313e", "py314e"] + python-version: ["py311e", "py312e", "py313e", "py314e"] comms-type: [m, l] include: - os: macos-latest @@ -70,13 +70,6 @@ jobs: run: | pixi run -e ${{ matrix.python-version }} pip install gpcam==8.1.13 - - name: Remove xopt tests on old python - if: matrix.python-version == 'py310e' - run: | - rm ./libensemble/tests/regression_tests/test_xopt_EI_xopt_sim.py - rm ./libensemble/tests/regression_tests/test_xopt_EI.py - rm ./libensemble/tests/regression_tests/test_xopt_nelder_mead.py - - name: Remove test using octave, gpcam, globus-compute on Python 3.13 if: matrix.python-version == 'py313e' || matrix.python-version == 'py314e' run: |