Skip to content

Commit b4d957f

Browse files
authored
Add Python 3.13 wheels (#131)
1 parent b9e5833 commit b4d957f

File tree

5 files changed

+80
-19
lines changed

5 files changed

+80
-19
lines changed

.github/scripts/build-linux.sh

+2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ elif [ $PYTHON_VERSION == "3.11" ]; then
1414
PYBIN="/opt/python/cp311-cp311/bin"
1515
elif [ $PYTHON_VERSION == "3.12" ]; then
1616
PYBIN="/opt/python/cp312-cp312/bin"
17+
elif [ $PYTHON_VERSION == "3.13" ]; then
18+
PYBIN="/opt/python/cp313-cp313/bin"
1719
else
1820
echo "Unsupported Python version $PYTHON_VERSION"
1921
exit 1

.github/scripts/test-linux.sh

+2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ elif [ $PYTHON_VERSION == "3.11" ]; then
1414
PYBIN="/opt/python/cp311-cp311/bin"
1515
elif [ $PYTHON_VERSION == "3.12" ]; then
1616
PYBIN="/opt/python/cp312-cp312/bin"
17+
elif [ $PYTHON_VERSION == "3.13" ]; then
18+
PYBIN="/opt/python/cp313-cp313/bin"
1719
else
1820
echo "Unsupported Python version $PYTHON_VERSION"
1921
exit 1

.github/workflows/ci.yml

+71-18
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,7 @@ on: [push, pull_request]
2121
# including the one that publishes the wheels to PyPI uses third-party actions.
2222

2323
# Lastly, the GITHUB_TOKEN permissions are set to read-only by default except
24-
# for the job that deploys to GitHub Pages. In that job, a third-party action
25-
# is used that writes to the 'gh-pages' branch of the repository.
26-
# This will change in the near future once pages can be deployed directly
27-
# without writing to a branch by using the new in-beta actions/deploy-pages action.
28-
# After that, no third-party actions will be used and the token permissions are fully
29-
# read-only.
24+
# for the job that deploys to GitHub Pages.
3025

3126
permissions: read-all
3227

@@ -61,7 +56,13 @@ jobs:
6156
python-arch: 'x86_64'
6257
python-version: '3.12'
6358
numpy-version: '2.0.*'
64-
#ARM 64
59+
- os-image: ubuntu-latest
60+
os-name: linux
61+
docker-image: quay.io/pypa/manylinux2014_x86_64
62+
python-arch: 'x86_64'
63+
python-version: '3.13'
64+
numpy-version: '2.2.*'
65+
6566
- os-image: ubuntu-latest
6667
os-name: linux
6768
docker-image: quay.io/pypa/manylinux_2_28_aarch64
@@ -86,31 +87,43 @@ jobs:
8687
python-arch: 'aarch64'
8788
python-version: '3.12'
8889
numpy-version: '2.0.*'
90+
- os-image: ubuntu-latest
91+
os-name: linux
92+
docker-image: quay.io/pypa/manylinux_2_28_aarch64
93+
python-arch: 'aarch64'
94+
python-version: '3.13'
95+
numpy-version: '2.2.*'
8996

90-
- os-image: macos-12
97+
- os-image: macos-13
9198
os-name: mac
9299
python-arch: x86_64
93100
macos-min-version: '10.9'
94101
python-version: '3.9'
95102
numpy-version: '2.0.*'
96-
- os-image: macos-12
103+
- os-image: macos-13
97104
os-name: mac
98105
python-arch: x86_64
99106
macos-min-version: '10.9'
100107
python-version: '3.10'
101108
numpy-version: '2.0.*'
102-
- os-image: macos-12
109+
- os-image: macos-13
103110
os-name: mac
104111
python-arch: x86_64
105112
macos-min-version: '10.9'
106113
python-version: '3.11'
107114
numpy-version: '2.0.*'
108-
- os-image: macos-12
115+
- os-image: macos-13
109116
os-name: mac
110117
python-arch: x86_64
111118
macos-min-version: '10.9'
112119
python-version: '3.12'
113120
numpy-version: '2.0.*'
121+
- os-image: macos-13
122+
os-name: mac
123+
python-arch: x86_64
124+
macos-min-version: '10.9'
125+
python-version: '3.13'
126+
numpy-version: '2.2.*'
114127

115128
- os-image: macos-14 # M1
116129
os-name: mac
@@ -130,6 +143,12 @@ jobs:
130143
macos-min-version: '11.0'
131144
python-version: '3.12'
132145
numpy-version: '2.0.*'
146+
- os-image: macos-14 # M1
147+
os-name: mac
148+
python-arch: arm64
149+
macos-min-version: '11.0'
150+
python-version: '3.13'
151+
numpy-version: '2.2.*'
133152

134153
- os-image: windows-latest
135154
os-name: windows
@@ -151,6 +170,11 @@ jobs:
151170
python-version: '3.12'
152171
python-arch: 'x86_64'
153172
numpy-version: '2.0.*'
173+
- os-image: windows-latest
174+
os-name: windows
175+
python-version: '3.13'
176+
python-arch: 'x86_64'
177+
numpy-version: '2.2.*'
154178

155179
permissions:
156180
security-events: write
@@ -252,6 +276,12 @@ jobs:
252276
python-arch: 'x86_64'
253277
python-version: '3.12'
254278
numpy-version: '2.0.*'
279+
- os-image: ubuntu-latest
280+
os-name: linux
281+
docker-image: quay.io/pypa/manylinux2014_x86_64
282+
python-arch: 'x86_64'
283+
python-version: '3.13'
284+
numpy-version: '2.2.*'
255285

256286
- os-image: ubuntu-latest
257287
os-name: linux
@@ -277,31 +307,43 @@ jobs:
277307
python-arch: 'aarch64'
278308
python-version: '3.12'
279309
numpy-version: '2.0.*'
310+
- os-image: ubuntu-latest
311+
os-name: linux
312+
docker-image: quay.io/pypa/manylinux_2_28_aarch64
313+
python-arch: 'aarch64'
314+
python-version: '3.13'
315+
numpy-version: '2.2.*'
280316

281-
- os-image: macos-12
317+
- os-image: macos-13
282318
os-name: mac
283319
python-arch: x86_64
284320
macos-min-version: '10.9'
285321
python-version: '3.9'
286322
numpy-version: '2.0.*'
287-
- os-image: macos-12
323+
- os-image: macos-13
288324
os-name: mac
289325
python-arch: x86_64
290326
macos-min-version: '10.9'
291327
python-version: '3.10'
292328
numpy-version: '2.0.*'
293-
- os-image: macos-12
329+
- os-image: macos-13
294330
os-name: mac
295331
python-arch: x86_64
296332
macos-min-version: '10.9'
297333
python-version: '3.11'
298334
numpy-version: '2.0.*'
299-
- os-image: macos-12
335+
- os-image: macos-13
300336
os-name: mac
301337
python-arch: x86_64
302338
macos-min-version: '10.9'
303339
python-version: '3.12'
304340
numpy-version: '2.0.*'
341+
- os-image: macos-13
342+
os-name: mac
343+
python-arch: x86_64
344+
macos-min-version: '10.9'
345+
python-version: '3.13'
346+
numpy-version: '2.2.*'
305347

306348
- os-image: macos-14 # M1
307349
os-name: mac
@@ -321,6 +363,12 @@ jobs:
321363
macos-min-version: '11.0'
322364
python-version: '3.12'
323365
numpy-version: '2.0.*'
366+
- os-image: macos-14 # M1
367+
os-name: mac
368+
python-arch: arm64
369+
macos-min-version: '11.0'
370+
python-version: '3.13'
371+
numpy-version: '2.2.*'
324372

325373
- os-image: windows-latest
326374
os-name: windows
@@ -342,6 +390,11 @@ jobs:
342390
python-version: '3.12'
343391
python-arch: 'x86_64'
344392
numpy-version: '2.0.*'
393+
- os-image: windows-latest
394+
os-name: windows
395+
python-version: '3.13'
396+
python-arch: 'x86_64'
397+
numpy-version: '2.2.*'
345398

346399
runs-on: ${{ matrix.config.os-image }}
347400
# container: ${{ matrix.config.docker-image }}
@@ -421,7 +474,7 @@ jobs:
421474
- name: Setup Python
422475
uses: actions/setup-python@v4
423476
with:
424-
python-version: '3.10'
477+
python-version: '3.13'
425478

426479
- name: Download wheels from artifact storage
427480
uses: actions/download-artifact@v4
@@ -432,7 +485,7 @@ jobs:
432485

433486
- name: Install from wheel
434487
run: |
435-
pip install dist/pyvirtualcam*cp310-manylinux*_x86_64.whl
488+
pip install dist/pyvirtualcam*cp313-manylinux*_x86_64.whl
436489
pip install -r dev-requirements.txt
437490
438491
- name: Build docs
@@ -461,7 +514,7 @@ jobs:
461514
- name: Setup Python
462515
uses: actions/setup-python@v4
463516
with:
464-
python-version: '3.10'
517+
python-version: '3.13'
465518

466519
- name: Upload wheels to PyPI
467520
run: |

CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7+
## [0.12.1] - 2025-01-19
8+
### Added
9+
- Python 3.13 support.
10+
711
## [0.12.0] - 2024-07-14
812
### Changed
913
- Support numpy 2.

pyvirtualcam/_version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "0.12.0"
1+
__version__ = "0.12.1"

0 commit comments

Comments
 (0)