Skip to content

Commit 062d63f

Browse files
authored
Merge pull request #119 from ecmwf/feature/add-python-3.13
Add Python 3.13 binary wheels
2 parents 1bfc732 + 1ef0dff commit 062d63f

File tree

5 files changed

+48
-11
lines changed

5 files changed

+48
-11
lines changed

.github/workflows/build-wheel-linux.yml

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ jobs:
4242
# if: false # for temporarily disabling for debugging
4343

4444
runs-on: [self-hosted, Linux, platform-builder-Rocky-8.6]
45-
container: dockcross/manylinux_2_28-x64:latest
45+
container:
46+
image: dockcross/manylinux_2_28-x64:latest
47+
#options: --pull always
4648

4749
name: Build manylinux_2_28-x64
4850

@@ -91,14 +93,22 @@ jobs:
9193
name: wheel-manylinux2014-3.12
9294
path: wheelhouse/*.whl
9395

96+
# ################################################################
97+
- run: ./scripts/wheel-linux.sh 3.13
98+
- uses: actions/upload-artifact@v4
99+
name: Upload wheel 3.13
100+
with:
101+
name: wheel-manylinux2014-3.13
102+
path: wheelhouse/*.whl
103+
94104
test:
95105

96106
needs: build
97107

98108
strategy:
99109
fail-fast: false
100110
matrix: # We don't test 3.6, as it is not supported anymore by github actions
101-
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
111+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
102112

103113
runs-on: [self-hosted, Linux, platform-builder-Rocky-8.6]
104114

@@ -122,7 +132,7 @@ jobs:
122132
strategy:
123133
fail-fast: false
124134
matrix:
125-
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
135+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
126136

127137
needs: [test, build]
128138

.github/workflows/build-wheel-macos.yml

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,15 @@ jobs:
9292
path: wheelhouse/*.whl
9393
- run: rm -fr wheelhouse
9494

95+
- run: ./scripts/wheel-macos.sh "3.13"
96+
- run: ls -l wheelhouse
97+
- uses: actions/upload-artifact@v4
98+
name: Upload wheel 3.13 ${{ matrix.arch_type }}
99+
with:
100+
name: wheel-macos-${{ matrix.arch_type }}-3.13
101+
path: wheelhouse/*.whl
102+
- run: rm -fr wheelhouse
103+
95104
test:
96105
needs: build
97106

@@ -100,7 +109,7 @@ jobs:
100109
max-parallel: 1
101110
matrix:
102111
arch_type: [ARM64, X64]
103-
python-version: ["3.9", "3.10", "3.11", "3.12"]
112+
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
104113

105114
runs-on: [self-hosted, macOS, "${{ matrix.arch_type }}"]
106115

@@ -130,14 +139,16 @@ jobs:
130139
max-parallel: 1
131140
matrix:
132141
arch_type: [ARM64, X64]
133-
python-version: ["3.9", "3.10", "3.11", "3.12"]
142+
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
134143

135144
runs-on: [self-hosted, macOS, "${{ matrix.arch_type }}"]
136145

137146
steps:
138147

139148
- run: mkdir artifact-${{ matrix.arch_type }}-${{ matrix.python-version }}
140149

150+
- uses: actions/checkout@v4
151+
141152
- uses: actions/download-artifact@v4
142153
with:
143154
name: wheel-macos-${{ matrix.arch_type }}-${{ matrix.python-version }}

.github/workflows/build-wheel-windows.yml

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,14 +144,29 @@ jobs:
144144

145145
################################################################
146146

147+
- name: Set up Python 3.13
148+
uses: actions/setup-python@v4
149+
with:
150+
python-version: "3.13"
151+
architecture: ${{ matrix.architecture }}
152+
153+
- run: ./scripts/wheel-windows.sh "3.13"
154+
- uses: actions/upload-artifact@v4
155+
name: Upload wheel 3.13
156+
with:
157+
name: wheel-windows-3.13-${{ matrix.architecture }}
158+
path: wheelhouse/*.whl
159+
160+
################################################################
161+
147162

148163
test:
149164
needs: build
150165
runs-on: windows-latest
151166
strategy:
152167
fail-fast: true
153168
matrix:
154-
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
169+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
155170
architecture: ["x64"]
156171

157172
defaults:
@@ -195,7 +210,7 @@ jobs:
195210
strategy:
196211
fail-fast: true
197212
matrix:
198-
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
213+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
199214
architecture: ["x64"]
200215

201216
steps:

scripts/wheel-linux.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ TOPDIR=$(/bin/pwd)
1919

2020
LD_LIBRARY_PATH=$TOPDIR/install/lib:$TOPDIR/install/lib64:$LD_LIBRARY_PATH
2121

22-
sudo /opt/python/cp${version}-cp${version}*/bin/pip3 install 'setuptools>=72.1.0'
23-
/opt/python/cp${version}-cp${version}*/bin/pip3 list
22+
sudo /opt/python/cp${version}-cp${version}/bin/pip3 install 'setuptools>=72.1.0'
23+
/opt/python/cp${version}-cp${version}/bin/pip3 list
2424

2525
rm -fr dist wheelhouse
26-
/opt/python/cp${version}-cp${version}*/bin/python3 setup.py --binary-wheel bdist_wheel
26+
/opt/python/cp${version}-cp${version}/bin/python3 setup.py --binary-wheel bdist_wheel
2727

2828
# Do it twice to get the list of libraries
2929

@@ -35,6 +35,6 @@ pip3 install -r scripts/requirements.txt
3535
python3 ./scripts/copy-licences.py libs
3636

3737
rm -fr dist wheelhouse
38-
/opt/python/cp${version}-cp${version}*/bin/python3 setup.py --binary-wheel bdist_wheel
38+
/opt/python/cp${version}-cp${version}/bin/python3 setup.py --binary-wheel bdist_wheel
3939
auditwheel repair dist/*.whl
4040
rm -fr dist

setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ def shared(directory):
118118
"Programming Language :: Python :: 3.10",
119119
"Programming Language :: Python :: 3.11",
120120
"Programming Language :: Python :: 3.12",
121+
"Programming Language :: Python :: 3.13",
121122
"Programming Language :: Python :: Implementation :: CPython",
122123
"Programming Language :: Python :: Implementation :: PyPy",
123124
"Operating System :: OS Independent",

0 commit comments

Comments
 (0)