Skip to content

Commit f3c99f1

Browse files
committed
Move to dependency groups, Python 3.14, build more wheels
1 parent fbd0822 commit f3c99f1

File tree

6 files changed

+79
-44
lines changed

6 files changed

+79
-44
lines changed

.github/workflows/build.yml

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: build
33
on: workflow_dispatch
44

55
env:
6-
PY_ALL: 3.9 3.10 3.11 3.12 3.13 3.13t pypy3.9 pypy3.10
6+
PY_ALL: 3.9 3.10 3.11 3.12 3.13 3.13t 3.14 3.14t pypy3.9 pypy3.10 pypy3.11
77

88
jobs:
99
wheels:
@@ -15,23 +15,24 @@ jobs:
1515
target: [x86_64, aarch64]
1616
manylinux: [auto]
1717
include:
18-
- os: ubuntu
19-
platform: linux
2018
- os: ubuntu
2119
platform: linux
2220
target: x86_64
2321
manylinux: auto
24-
interpreter: pypy3.9 pypy3.10
25-
- os: macos
26-
target: x86_64
27-
interpreter: pypy3.9 pypy3.10
28-
- os: macos
29-
target: aarch64
30-
interpreter: pypy3.9 pypy3.10
22+
interpreter: pypy3.9 pypy3.10 pypy3.11
23+
- os: ubuntu
24+
platform: linux
25+
target: i686
26+
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14
3127
- os: ubuntu
3228
platform: linux
3329
target: aarch64
34-
container: messense/manylinux_2_24-cross:aarch64
30+
# rust-cross/manylinux2014-cross:aarch64 has issues with `ring`
31+
#container: ghcr.io/rust-cross/manylinux_2_28-cross:aarch64
32+
- os: ubuntu
33+
platform: linux
34+
target: armv7
35+
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14
3536
- os: ubuntu
3637
platform: linux
3738
target: x86_64
@@ -40,6 +41,17 @@ jobs:
4041
platform: linux
4142
target: aarch64
4243
manylinux: musllinux_1_1
44+
- os: ubuntu
45+
platform: linux
46+
target: armv7
47+
manylinux: musllinux_1_1
48+
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14
49+
- os: macos
50+
target: x86_64
51+
interpreter: pypy3.9 pypy3.10 pypy3.11
52+
- os: macos
53+
target: aarch64
54+
interpreter: pypy3.9 pypy3.10 pypy3.11
4355
runs-on: ${{ matrix.os }}-latest
4456
steps:
4557
- uses: actions/checkout@v4
@@ -65,7 +77,7 @@ jobs:
6577
matrix:
6678
os: [ubuntu-latest, macos-13, macos-14]
6779
manylinux: [auto]
68-
interpreter: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.13t"]
80+
interpreter: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.13t", "3.14", "3.14t"]
6981
include:
7082
- os: ubuntu-latest
7183
platform: linux
@@ -102,7 +114,7 @@ jobs:
102114
run: |
103115
uv python install ${{ env.UV_PYTHON }}
104116
uv venv .venv
105-
uv pip install pytest pytest-asyncio
117+
uv sync --no-install-project --group test
106118
uv pip install rloop --no-index --no-deps --find-links pgo_wheel --force-reinstall
107119
LLVM_PROFILE_FILE=${{ github.workspace }}/profdata/rlp_%m_%p.profraw uv run --no-sync pytest tests
108120
- name: merge PGO data

.github/workflows/lint.yml

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,22 @@ on:
77
- master
88

99
env:
10-
PYTHON_VERSION: 3.12
10+
UV_PYTHON: 3.13
1111

1212
jobs:
1313
lint:
1414
runs-on: ubuntu-latest
1515

1616
steps:
1717
- uses: actions/checkout@v4
18-
- name: Set up Python ${{ env.PYTHON_VERSION }}
19-
uses: actions/setup-python@v5
18+
- uses: astral-sh/setup-uv@v6
2019
with:
21-
python-version: ${{ env.PYTHON_VERSION }}
20+
enable-cache: false
2221
- name: Install
2322
run: |
24-
python -m venv .venv
25-
source .venv/bin/activate
26-
pip install maturin
27-
maturin develop --extras=lint
23+
uv python install ${{ env.UV_PYTHON }}
24+
uv venv .venv
25+
uv sync --group lint
2826
- name: Lint
2927
run: |
3028
source .venv/bin/activate

.github/workflows/release.yml

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66
- v*.*.*
77

88
env:
9-
PY_ALL: 3.9 3.10 3.11 3.12 3.13 3.13t pypy3.9 pypy3.10
9+
PY_ALL: 3.9 3.10 3.11 3.12 3.13 3.13t 3.14 3.14t pypy3.9 pypy3.10 pypy3.11
1010

1111
jobs:
1212
sdist:
@@ -34,23 +34,24 @@ jobs:
3434
target: [x86_64, aarch64]
3535
manylinux: [auto]
3636
include:
37-
- os: ubuntu
38-
platform: linux
3937
- os: ubuntu
4038
platform: linux
4139
target: x86_64
4240
manylinux: auto
43-
interpreter: pypy3.9 pypy3.10
44-
- os: macos
45-
target: x86_64
46-
interpreter: pypy3.9 pypy3.10
47-
- os: macos
48-
target: aarch64
49-
interpreter: pypy3.9 pypy3.10
41+
interpreter: pypy3.9 pypy3.10 pypy3.11
42+
- os: ubuntu
43+
platform: linux
44+
target: i686
45+
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14
5046
- os: ubuntu
5147
platform: linux
5248
target: aarch64
53-
container: messense/manylinux_2_24-cross:aarch64
49+
# rust-cross/manylinux2014-cross:aarch64 has issues with `ring`
50+
#container: ghcr.io/rust-cross/manylinux_2_28-cross:aarch64
51+
- os: ubuntu
52+
platform: linux
53+
target: armv7
54+
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14
5455
- os: ubuntu
5556
platform: linux
5657
target: x86_64
@@ -59,6 +60,17 @@ jobs:
5960
platform: linux
6061
target: aarch64
6162
manylinux: musllinux_1_1
63+
- os: ubuntu
64+
platform: linux
65+
target: armv7
66+
manylinux: musllinux_1_1
67+
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14
68+
- os: macos
69+
target: x86_64
70+
interpreter: pypy3.9 pypy3.10 pypy3.11
71+
- os: macos
72+
target: aarch64
73+
interpreter: pypy3.9 pypy3.10 pypy3.11
6274
runs-on: ${{ matrix.os }}-latest
6375
steps:
6476
- uses: actions/checkout@v4
@@ -84,7 +96,7 @@ jobs:
8496
matrix:
8597
os: [ubuntu-latest, macos-13, macos-14]
8698
manylinux: [auto]
87-
interpreter: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.13t"]
99+
interpreter: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.13t", "3.14", "3.14t"]
88100
include:
89101
- os: ubuntu-latest
90102
platform: linux
@@ -121,7 +133,7 @@ jobs:
121133
run: |
122134
uv python install ${{ env.UV_PYTHON }}
123135
uv venv .venv
124-
uv pip install pytest pytest-asyncio
136+
uv sync --no-install-project --group test
125137
uv pip install rloop --no-index --no-deps --find-links pgo_wheel --force-reinstall
126138
LLVM_PROFILE_FILE=${{ github.workspace }}/profdata/rlp_%m_%p.profraw uv run --no-sync pytest tests
127139
- name: merge PGO data

.github/workflows/test.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ jobs:
2222
- '3.12'
2323
- '3.13'
2424
- '3.13t'
25+
- '3.14'
26+
- '3.14t'
2527

2628
env:
2729
UV_PYTHON: ${{ matrix.python-version }}
@@ -34,8 +36,8 @@ jobs:
3436
run: |
3537
uv python install ${{ env.UV_PYTHON }}
3638
uv venv .venv
37-
uv pip install maturin
38-
uv run --no-sync maturin develop --uv --extras=test
39+
uv sync --group build --group test
40+
uv run --no-sync maturin develop --uv
3941
- name: Test
4042
run: |
4143
source .venv/bin/activate
@@ -53,6 +55,8 @@ jobs:
5355
- '3.12'
5456
- '3.13'
5557
- '3.13t'
58+
- '3.14'
59+
- '3.14t'
5660

5761
env:
5862
UV_PYTHON: ${{ matrix.python-version }}
@@ -65,7 +69,7 @@ jobs:
6569
run: |
6670
uv python install ${{ env.UV_PYTHON }}
6771
uv venv .venv
68-
uv pip install maturin
72+
uv sync --group build --group test
6973
uv run --no-sync maturin develop --uv --extras=test
7074
- name: Test
7175
run: |

Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ pysources = rloop tests
44
.PHONY: build-dev
55
build-dev:
66
@rm -f rloop/*.so
7-
maturin develop --extras lint,test
7+
uv sync --group all
8+
maturin develop --uv
89

910
.PHONY: format
1011
format:

pyproject.toml

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,23 +32,31 @@ dynamic = [
3232
requires-python = '>=3.9'
3333
dependencies = []
3434

35-
[project.optional-dependencies]
35+
[dependency-groups]
36+
build = [
37+
'maturin~=1.8',
38+
]
3639
lint = [
37-
'ruff~=0.5.0',
40+
'ruff~=0.11',
3841
]
3942
test = [
40-
'pytest~=7.4.2',
41-
'pytest-asyncio~=0.21.1',
43+
'pytest~=8.3',
44+
'pytest-asyncio~=0.26',
45+
]
46+
47+
all = [
48+
{ include-group = 'build' },
49+
{ include-group = 'lint' },
50+
{ include-group = 'test' },
4251
]
43-
dev = ['rloop[lint,test]']
4452

4553
[project.urls]
4654
Homepage = 'https://github.com/gi0baro/rloop'
4755
Funding = 'https://github.com/sponsors/gi0baro'
4856
Source = 'https://github.com/gi0baro/rloop'
4957

5058
[build-system]
51-
requires = ['maturin>=1.1.0,<2']
59+
requires = ['maturin>=1.8.0,<2']
5260
build-backend = 'maturin'
5361

5462
[tool.maturin]

0 commit comments

Comments
 (0)