Skip to content

Commit e087235

Browse files
ax3lfranzpoeschel
andauthored
Drop Python 3.8 & 3.9 (#1671)
* Doc: Python 3.8 EOL * Python 3.9-3.13 Python 3.13 is released. Python 3.8 is EOL as of October 2024. * Upgrade to Python 3.9 in Appveyor builds * Python: 3.14 OK * Python: 3.14 OK * Drop Python 3.9: EOL * CI: Update Python on Windows Pip --------- Co-authored-by: Franz Pöschel <franz.poeschel@gmail.com>
1 parent 69e9b5a commit e087235

File tree

11 files changed

+41
-49
lines changed

11 files changed

+41
-49
lines changed

.appveyor.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
environment:
22
matrix:
33
- TARGET_ARCH: x64
4-
CONDA_PY: 3.7
4+
CONDA_PY: 3.10
55
CONDA_INSTALL_LOCN: C:\\Miniconda37-x64
66
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
77
platform: x64
88
SHARED: OFF
99

1010
- TARGET_ARCH: x86
11-
CONDA_PY: 3.7
11+
CONDA_PY: 3.10
1212
CONDA_INSTALL_LOCN: C:\\Miniconda37
1313
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
1414
platform: x86

.github/workflows/windows.yml

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,21 +34,25 @@ jobs:
3434
if: github.event.pull_request.draft == false
3535
steps:
3636
- uses: actions/checkout@v4
37+
- uses: actions/setup-python@v6
38+
name: Install Python
39+
with:
40+
python-version: "3.10"
3741
- name: Build & Install
3842
run: |
39-
python3.exe -m pip install --upgrade pip setuptools wheel
40-
python3.exe -m pip install --upgrade cmake
41-
python3.exe -m pip install --upgrade numpy
43+
python3 -m pip install --upgrade pip setuptools wheel
44+
python3 -m pip install --upgrade cmake
45+
python3 -m pip install --upgrade numpy
4246
43-
python3.exe -m pip wheel .
47+
python3 -m pip wheel .
4448
if(!$?) { Exit $LASTEXITCODE }
45-
python3.exe -m pip install openPMD_api-0.17.0.dev0-cp39-cp39-win_amd64.whl
49+
python3 -m pip install --find-links=. openPMD_api
4650
if(!$?) { Exit $LASTEXITCODE }
4751
48-
python3.exe -c "import openpmd_api as api; print(api.variants)"
52+
python3 -c "import openpmd_api as api; print(api.variants)"
4953
if(!$?) { Exit $LASTEXITCODE }
5054
51-
python3.exe -m openpmd_api.ls --help
55+
python3 -m openpmd_api.ls --help
5256
if(!$?) { Exit $LASTEXITCODE }
5357
5458
build_win_clang:

Dockerfile

Lines changed: 15 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -112,36 +112,6 @@ RUN for whl in /opt/src/dist/*.whl; do \
112112
&& du -hs /opt/src/dist/* \
113113
&& du -hs /wheelhouse/*
114114

115-
# test in fresh env: Debian:Sid + Python 3.8
116-
FROM debian:sid
117-
ENV DEBIAN_FRONTEND noninteractive
118-
COPY --from=build-env /wheelhouse/openPMD_api-*-cp38-cp38-manylinux2010_x86_64.whl .
119-
RUN apt-get update \
120-
&& apt-get install -y --no-install-recommends python3.8 python3-distutils ca-certificates curl \
121-
&& rm -rf /var/lib/apt/lists/*
122-
RUN python3.8 --version \
123-
&& curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \
124-
&& python3.8 get-pip.py \
125-
&& python3.8 -m pip install openPMD_api-*-cp38-cp38-manylinux2010_x86_64.whl
126-
RUN python3.8 -c "import openpmd_api as io; print(io.__version__); print(io.variants)"
127-
RUN python3.8 -m openpmd_api.ls --help
128-
RUN openpmd-ls --help
129-
130-
# test in fresh env: Debian:Bullseye + Python 3.9
131-
FROM debian:bullseye
132-
ENV DEBIAN_FRONTEND noninteractive
133-
COPY --from=build-env /wheelhouse/openPMD_api-*-cp39-cp39-manylinux2010_x86_64.whl .
134-
RUN apt-get update \
135-
&& apt-get install -y --no-install-recommends python3.9 python3-distutils ca-certificates curl \
136-
&& rm -rf /var/lib/apt/lists/*
137-
RUN python3.9 --version \
138-
&& curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \
139-
&& python3.9 get-pip.py \
140-
&& python3.9 -m pip install openPMD_api-*-cp39-cp39-manylinux2010_x86_64.whl
141-
RUN python3.9 -c "import openpmd_api as io; print(io.__version__); print(io.variants)"
142-
RUN python3.9 -m openpmd_api.ls --help
143-
RUN openpmd-ls --help
144-
145115
# test in fresh env: Debian:Bullseye + Python 3.10
146116
FROM debian:bullseye
147117
ENV DEBIAN_FRONTEND noninteractive
@@ -202,6 +172,21 @@ RUN python3.13 -c "import openpmd_api as io; print(io.__version__); print
202172
RUN python3.13 -m openpmd_api.ls --help
203173
RUN openpmd-ls --help
204174

175+
# test in fresh env: Debian:Bullseye + Python 3.14
176+
FROM debian:bullseye
177+
ENV DEBIAN_FRONTEND noninteractive
178+
COPY --from=build-env /wheelhouse/openPMD_api-*-cp314-cp314-manylinux2010_x86_64.whl .
179+
RUN apt-get update \
180+
&& apt-get install -y --no-install-recommends python3.14 python3-distutils ca-certificates curl \
181+
&& rm -rf /var/lib/apt/lists/*
182+
RUN python3.14 --version \
183+
&& curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \
184+
&& python3.14 get-pip.py \
185+
&& python3.14 -m pip install openPMD_api-*-cp314-cp314-manylinux2010_x86_64.whl
186+
RUN python3.14 -c "import openpmd_api as io; print(io.__version__); print(io.variants)"
187+
RUN python3.14 -m openpmd_api.ls --help
188+
RUN openpmd-ls --help
189+
205190
# copy binary artifacts (wheels)
206191
FROM quay.io/pypa/manylinux2010_x86_64
207192
MAINTAINER Axel Huebl <a.huebl@hzdr.de>

NEWS.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ Upgrade Guide
88

99
ADIOS 2.9.0 is now the minimally supported version for ADIOS2 support.
1010

11+
Python 3.8 and 3.9 support is EOL and removed.
12+
Python 3.14 is now supported.
13+
14+
1115
0.16.0
1216
------
1317

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ while those can be built either with or without:
115115

116116
Optional language bindings:
117117
* Python:
118-
* Python 3.8 - 3.13
118+
* Python 3.10 - 3.14
119119
* pybind11 2.13.0+
120120
* numpy 1.15+
121121
* mpi4py 2.1+ (optional, for MPI)

Singularity

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ Supported frontends are C++11 and Python3.
4242
-DopenPMD_USE_PYTHON=ON \
4343
-DopenPMD_BUILD_TESTING=OFF \
4444
-DCMAKE_INSTALL_PREFIX=/usr/local \
45-
-DCMAKE_INSTALL_PYTHONDIR=lib/python3.6/dist-packages
45+
-DCMAKE_INSTALL_PYTHONDIR=lib/python3.12/dist-packages
4646
make
4747
# make test
4848
make install

cmake/dependencies/pybind11.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,9 @@ set(openPMD_pybind11_branch "v2.13.6"
8383
"Repository branch for openPMD_pybind11_repo if(openPMD_USE_INTERNAL_PYBIND11)")
8484

8585
if(openPMD_USE_PYTHON STREQUAL AUTO)
86-
find_package(Python 3.7.0 COMPONENTS Interpreter Development.Module)
86+
find_package(Python 3.10.0 COMPONENTS Interpreter Development.Module)
8787
elseif(openPMD_USE_PYTHON)
88-
find_package(Python 3.7.0 COMPONENTS Interpreter Development.Module REQUIRED)
88+
find_package(Python 3.10.0 COMPONENTS Interpreter Development.Module REQUIRED)
8989
else()
9090
set(openPMD_HAVE_PYTHON FALSE)
9191
endif()

conda.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ dependencies:
3737
- pre-commit
3838
- pyarrow # for dask
3939
# - pybind11 # shipped internally
40-
- python>=3.8
40+
- python>=3.10
4141

4242
# just a note for later hackery, we could install pip packages inside the env, too:
4343
# - pip:

docs/source/dev/dependencies.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Optional: language bindings
3838

3939
* Python:
4040

41-
* Python 3.8 - 3.13
41+
* Python 3.10 - 3.14
4242
* pybind11 2.13.0+
4343
* numpy 1.15+
4444
* mpi4py 2.1+ (optional, for MPI)

docs/source/install/install.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ CMake will summarize the install paths for you before the build step.
192192
# Note that one some systems, /lib might need to be replaced with /lib64.
193193
194194
# change path to your python MAJOR.MINOR version
195-
export PYTHONPATH=$HOME/somepath/lib/python3.8/site-packages:$PYTHONPATH
195+
export PYTHONPATH=$HOME/somepath/lib/python3.12/site-packages:$PYTHONPATH
196196
197197
Adding those lines to your ``$HOME/.bashrc`` and re-opening your terminal will set them permanently.
198198

0 commit comments

Comments
 (0)