Skip to content

Commit 600c38b

Browse files
authored
Add support for python 3.13 (#71)
1 parent 3ff08f6 commit 600c38b

File tree

5 files changed

+69
-74
lines changed

5 files changed

+69
-74
lines changed

.github/workflows/ci.yml

Lines changed: 50 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ jobs:
1616
name: Check code quality
1717
runs-on: ubuntu-latest
1818
steps:
19-
- uses: actions/checkout@v3
20-
- uses: actions/setup-python@v4
19+
- uses: actions/checkout@v4
20+
- uses: actions/setup-python@v5
2121
with:
22-
python-version: "3.10"
22+
python-version: "3.12"
2323
- name: Install dependencies
2424
run: pip install -r requirements.txt
2525
- name: Check code
@@ -33,17 +33,17 @@ jobs:
3333
strategy:
3434
matrix:
3535
target: [x86_64, i686]
36-
python-version: ["3.10", "3.11", "3.12"]
36+
python-version: ["3.10", "3.11", "3.12", "3.13"]
3737
steps:
38-
- uses: actions/checkout@v3
39-
- uses: actions/setup-python@v4
38+
- uses: actions/checkout@v4
39+
- uses: actions/setup-python@v5
4040
with:
4141
python-version: "${{ matrix.python-version }}"
4242
- name: Build wheels
4343
uses: PyO3/maturin-action@v1
4444
with:
4545
target: ${{ matrix.target }}
46-
args: --release --out dist -i 3.8 3.9 3.10 3.11 3.12 pypy3.8 pypy3.9
46+
args: --release --out dist -i 3.9 3.10 3.11 3.12 3.13 pypy3.9 pypy3.10
4747
sccache: "true"
4848
manylinux: auto
4949
- name: Install and test
@@ -53,9 +53,9 @@ jobs:
5353
pip install pytest
5454
pytest -v .
5555
- name: Upload wheels
56-
uses: actions/upload-artifact@v3
56+
uses: actions/upload-artifact@v4
5757
with:
58-
name: wheels
58+
name: wheels-linux-${{ strategy.job-index }}
5959
path: dist
6060

6161
linux-cross:
@@ -65,23 +65,23 @@ jobs:
6565
matrix:
6666
target: [aarch64, armv7, ppc64le]
6767
steps:
68-
- uses: actions/checkout@v3
69-
- uses: actions/setup-python@v4
68+
- uses: actions/checkout@v4
69+
- uses: actions/setup-python@v5
7070
with:
71-
python-version: "3.11"
71+
python-version: "3.12"
7272
- name: Build wheels
7373
uses: PyO3/maturin-action@v1
7474
with:
7575
rust-toolchain: stable
7676
target: ${{ matrix.target }}
7777
manylinux: auto
78-
args: --release --out dist -i 3.8 3.9 3.10 3.11 3.12 pypy3.8 pypy3.9
79-
- uses: uraimo/run-on-arch-action@v2.7.2
78+
args: --release --out dist -i 3.9 3.10 3.11 3.12 3.13 pypy3.9 pypy3.10
79+
- uses: uraimo/run-on-arch-action@v2.8.1
8080
if: matrix.target != 'ppc64'
8181
name: Install built wheel
8282
with:
8383
arch: ${{ matrix.target }}
84-
distro: ubuntu20.04
84+
distro: ubuntu22.04
8585
githubToken: ${{ github.token }}
8686
install: |
8787
apt-get update
@@ -91,9 +91,9 @@ jobs:
9191
pip3 install uuid_utils --no-index --find-links dist/ --force-reinstall
9292
pytest -v .
9393
- name: Upload wheels
94-
uses: actions/upload-artifact@v3
94+
uses: actions/upload-artifact@v4
9595
with:
96-
name: wheels
96+
name: wheels-linux-cross-${{ strategy.job-index }}
9797
path: dist
9898

9999
musllinux:
@@ -105,18 +105,18 @@ jobs:
105105
- x86_64-unknown-linux-musl
106106
- i686-unknown-linux-musl
107107
steps:
108-
- uses: actions/checkout@v3
109-
- uses: actions/setup-python@v4
108+
- uses: actions/checkout@v4
109+
- uses: actions/setup-python@v5
110110
with:
111-
python-version: "3.11"
111+
python-version: "3.12"
112112
architecture: x64
113113
- name: Build wheels
114114
uses: PyO3/maturin-action@v1
115115
with:
116116
rust-toolchain: stable
117117
target: ${{ matrix.target }}
118118
manylinux: musllinux_1_2
119-
args: --release --out dist -i 3.8 3.9 3.10 3.11 3.12
119+
args: --release --out dist -i 3.9 3.10 3.11 3.12 3.13
120120
- name: Install built wheel
121121
if: matrix.target == 'x86_64-unknown-linux-musl'
122122
uses: addnab/docker-run-action@v3
@@ -129,9 +129,9 @@ jobs:
129129
pip3 install uuid_utils --no-index --find-links /io/dist/ --force-reinstall --break-system-packages
130130
python3 -c "import uuid_utils"
131131
- name: Upload wheels
132-
uses: actions/upload-artifact@v3
132+
uses: actions/upload-artifact@v4
133133
with:
134-
name: wheels
134+
name: wheels-musllinux-${{ strategy.job-index }}
135135
path: dist
136136

137137
musllinux-cross:
@@ -143,21 +143,21 @@ jobs:
143143
- target: aarch64-unknown-linux-musl
144144
arch: aarch64
145145
steps:
146-
- uses: actions/checkout@v3
147-
- uses: actions/setup-python@v4
146+
- uses: actions/checkout@v4
147+
- uses: actions/setup-python@v5
148148
with:
149-
python-version: "3.11"
149+
python-version: "3.12"
150150
- name: Build wheels
151151
uses: PyO3/maturin-action@v1
152152
with:
153153
rust-toolchain: stable
154154
target: ${{ matrix.platform.target }}
155155
manylinux: musllinux_1_2
156-
args: --release --out dist -i 3.8 3.9 3.10 3.11 3.12
156+
args: --release --out dist -i 3.9 3.10 3.11 3.12 3.13
157157
- name: Upload wheels
158-
uses: actions/upload-artifact@v3
158+
uses: actions/upload-artifact@v4
159159
with:
160-
name: wheels
160+
name: wheels-musllinux-cross-${{ strategy.job-index }}
161161
path: dist
162162

163163
windows:
@@ -167,14 +167,14 @@ jobs:
167167
matrix:
168168
platform:
169169
- target: x64
170-
interpreter: 3.8 3.9 3.10 3.11 3.12 pypy3.8 pypy3.9
170+
interpreter: 3.9 3.10 3.11 3.12 3.13 pypy3.9 pypy3.10
171171
- target: x86
172-
interpreter: 3.8 3.9 3.10 3.11
172+
interpreter: 3.9 3.10 3.11 3.12
173173
steps:
174-
- uses: actions/checkout@v3
175-
- uses: actions/setup-python@v4
174+
- uses: actions/checkout@v4
175+
- uses: actions/setup-python@v5
176176
with:
177-
python-version: "3.11"
177+
python-version: "3.12"
178178
architecture: ${{ matrix.platform.target }}
179179
- uses: dtolnay/rust-toolchain@stable
180180
- name: Build wheels
@@ -189,56 +189,56 @@ jobs:
189189
pip install pytest
190190
pytest -v .
191191
- name: Upload wheels
192-
uses: actions/upload-artifact@v3
192+
uses: actions/upload-artifact@v4
193193
with:
194-
name: wheels
194+
name: wheels-windows-${{ strategy.job-index }}
195195
path: dist
196196

197197
macos:
198198
name: "MacOS"
199199
runs-on: macos-latest
200200
steps:
201-
- uses: actions/checkout@v3
202-
- uses: actions/setup-python@v4
201+
- uses: actions/checkout@v4
202+
- uses: actions/setup-python@v5
203203
with:
204-
python-version: "3.11"
204+
python-version: "3.12"
205205
- uses: dtolnay/rust-toolchain@stable
206206
- name: Build wheels - x86_64
207207
uses: PyO3/maturin-action@v1
208208
with:
209209
target: x86_64
210-
args: --release --out dist -i 3.8 3.9 3.10 3.11 3.12 pypy3.8 pypy3.9
210+
args: --release --out dist -i 3.9 3.10 3.11 3.12 3.13 pypy3.9 pypy3.10
211211
sccache: "true"
212212
- name: Build wheels - universal2
213213
uses: PyO3/maturin-action@v1
214214
with:
215215
target: universal2-apple-darwin
216-
args: --release --out dist -i 3.8 3.9 3.10 3.11 3.12 pypy3.8 pypy3.9
216+
args: --release --out dist -i 3.9 3.10 3.11 3.12 3.13 pypy3.9 pypy3.10
217217
- name: Install and test uuid_utils
218218
run: |
219219
pip install uuid_utils --no-index --find-links dist --force-reinstall
220220
pip install pytest
221221
pytest -v .
222222
- name: Upload wheels
223-
uses: actions/upload-artifact@v3
223+
uses: actions/upload-artifact@v4
224224
with:
225-
name: wheels
225+
name: wheels-macos
226226
path: dist
227227

228228
sdist:
229229
name: Source Distribution
230230
runs-on: ubuntu-latest
231231
steps:
232-
- uses: actions/checkout@v3
232+
- uses: actions/checkout@v4
233233
- name: Build sdist
234234
uses: PyO3/maturin-action@v1
235235
with:
236236
command: sdist
237237
args: --out dist
238238
- name: Upload sdist
239-
uses: actions/upload-artifact@v3
239+
uses: actions/upload-artifact@v4
240240
with:
241-
name: wheels
241+
name: wheels-sdist
242242
path: dist
243243

244244
release:
@@ -247,9 +247,10 @@ jobs:
247247
if: "startsWith(github.ref, 'refs/tags/')"
248248
needs: [lint, linux, linux-cross, musllinux, musllinux-cross, windows, macos, sdist]
249249
steps:
250-
- uses: actions/[email protected].7
250+
- uses: actions/[email protected].8
251251
with:
252-
name: wheels
252+
pattern: wheels-*
253+
merge-multiple: true
253254
- name: Publish to PyPI
254255
uses: PyO3/maturin-action@v1
255256
env:
@@ -264,7 +265,7 @@ jobs:
264265
if: "startsWith(github.ref, 'refs/tags/')"
265266
needs: [release]
266267
steps:
267-
- uses: actions/checkout@v3
268+
- uses: actions/checkout@v4
268269
- name: Build and publish docs
269270
run: |
270271
pip install -r requirements.txt

Cargo.lock

Lines changed: 13 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "uuid-utils"
3-
version = "0.9.0"
3+
version = "0.10.0"
44
edition = "2021"
55

66
[lib]
@@ -9,6 +9,6 @@ crate-type = ["cdylib"]
99

1010
[dependencies]
1111
mac_address = "1.1.7"
12-
pyo3 = { version = "0.22.2", features = ["extension-module", "generate-import-lib", 'abi3-py38'] }
12+
pyo3 = { version = "0.22.5", features = ["extension-module", "generate-import-lib", 'abi3-py39'] }
1313
rand = "0.8.5"
14-
uuid = { version = "1.10.0", features = ["v1", "v3", "v4", "v5", "v6", "v7", "v8", "fast-rng"]}
14+
uuid = { version = "1.11.0", features = ["v1", "v3", "v4", "v5", "v6", "v7", "v8", "fast-rng"]}

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,17 @@ name = "uuid_utils"
77
description = "Drop-in replacement for Python UUID in Rust"
88
authors = [{ name = "Amin Alaee", email = "[email protected]" }]
99
keywords = ["rust", "uuid"]
10-
requires-python = ">=3.8"
10+
requires-python = ">=3.9"
1111
classifiers = [
1212
"Development Status :: 3 - Alpha",
1313
"Programming Language :: Python",
1414
"Programming Language :: Python :: 3",
1515
"Programming Language :: Python :: 3 :: Only",
16-
"Programming Language :: Python :: 3.8",
1716
"Programming Language :: Python :: 3.9",
1817
"Programming Language :: Python :: 3.10",
1918
"Programming Language :: Python :: 3.11",
2019
"Programming Language :: Python :: 3.12",
20+
"Programming Language :: Python :: 3.13",
2121
"Programming Language :: Rust",
2222
"Intended Audience :: Developers",
2323
"License :: OSI Approved :: BSD License",

0 commit comments

Comments
 (0)