Skip to content

Commit 67f408a

Browse files
committed
python3.14 maintenance
1 parent 3f48117 commit 67f408a

12 files changed

Lines changed: 149 additions & 98 deletions

File tree

.github/dependabot.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Keep GitHub Actions up to date with GitHub's Dependabot...
2+
# https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot
3+
# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#package-ecosystem
4+
version: 2
5+
updates:
6+
- package-ecosystem: github-actions
7+
directory: /
8+
groups:
9+
github-actions:
10+
patterns:
11+
- "*" # Group all Actions updates into a single larger pull request
12+
schedule:
13+
interval: weekly

.github/workflows/docs.yml

Lines changed: 33 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,54 @@
11
name: Build docs
22

3+
34
on:
45
push:
56
branches:
67
- main
78

9+
workflow_dispatch:
10+
11+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
12+
permissions:
13+
contents: read
14+
pages: write
15+
id-token: write
16+
17+
# Allow one concurrent deployment
18+
concurrency:
19+
group: "pages"
20+
cancel-in-progress: true
21+
822
jobs:
923
build:
1024
runs-on: [ubuntu-latest]
1125
steps:
12-
- uses: actions/checkout@v2
26+
- uses: actions/checkout@v5
1327
with:
1428
submodules: 'true'
1529

16-
- name: Set up Python 3.11
17-
uses: actions/setup-python@v1
18-
with:
19-
python-version: 3.11
30+
- uses: actions/setup-python@v6
2031

2132
- name: Install dependencies
2233
run: |
23-
python -m pip install Sphinx sphinx_rtd_theme
34+
python -m pip install -r docs/requirements.txt
2435
python -m pip install .
36+
2537
- name: Build Site
26-
run: make html
38+
run: sphinx-build -b html docs build/html
2739

28-
- name: Deploy Site
29-
uses: peaceiris/actions-gh-pages@v3
40+
- name: Upload artifact
41+
uses: actions/upload-pages-artifact@v4
3042
with:
31-
github_token: ${{ secrets.GITHUB_TOKEN }}
32-
publish_dir: ./build/html
43+
path: "build/html"
44+
45+
deploy:
46+
environment:
47+
name: github-pages
48+
url: ${{ steps.deployment.outputs.page_url }}
49+
runs-on: ubuntu-latest
50+
needs: build
51+
steps:
52+
- name: Deploy to GitHub Pages
53+
id: deployment
54+
uses: actions/deploy-pages@v4

.github/workflows/pythonbuild.yml

Lines changed: 70 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ jobs:
1616
with:
1717
submodules: 'true'
1818

19-
- uses: actions/setup-python@v5
19+
- uses: actions/setup-python@v6
2020

2121
- name: Install dependencies
2222
run: |
2323
python -m pip install --upgrade pip
24-
pip install pytest hypothesis mypy Cython==3.0.12
24+
pip install pytest hypothesis mypy Cython==3.1.6
2525
2626
# The cythonized files allow installation from the sdist without cython
2727
- name: Generate cython
@@ -45,85 +45,77 @@ jobs:
4545
run: |
4646
tools/seg_wrapper.sh pytest tests
4747
48-
- uses: actions/upload-artifact@v4
48+
- uses: actions/upload-artifact@v5
4949
with:
5050
name: artifact-sdist
5151
path: dist/*.tar.gz
5252

5353
build_wheels_windows:
54-
name: Build wheel on windows-latest/${{matrix.arch}}/${{matrix.python_tag}}
54+
name: Build wheel on ${{ matrix.os }}/auto
5555
needs: [build_sdist]
56-
runs-on: windows-latest
56+
runs-on: ${{ matrix.os }}
5757
strategy:
5858
fail-fast: false
5959
matrix:
60-
arch: [auto32, auto64, ARM64]
60+
os: [windows-latest, windows-11-arm]
6161
env:
62-
CIBW_ARCHS: ${{matrix.arch}}
6362
CIBW_TEST_SKIP: "*-win32"
64-
CIBW_TEST_REQUIRES: pytest hypothesis
65-
CIBW_TEST_COMMAND: pytest {package}/tests
6663
CIBW_BUILD_VERBOSITY: 3
67-
CIBW_PROJECT_REQUIRES_PYTHON: ">=3.9"
6864

6965
steps:
70-
- uses: actions/download-artifact@v4
66+
- uses: actions/download-artifact@v6
7167
with:
7268
name: artifact-sdist
7369
path: dist
7470

75-
- uses: actions/setup-python@v5
71+
- uses: actions/setup-python@v6
7672

7773
- name: Copy wheel
78-
run: cp dist/*.tar.gz rapidfuzz.tar.gz
74+
run: cp dist/*.tar.gz levenshtein.tar.gz
7975

8076
- name: Build wheels
81-
uses: pypa/cibuildwheel@v2.23
77+
uses: pypa/cibuildwheel@v3.2.1
8278
with:
83-
package-dir: rapidfuzz.tar.gz
79+
package-dir: levenshtein.tar.gz
8480
output-dir: wheelhouse
8581

8682
- name: Upload wheels
87-
uses: actions/upload-artifact@v4
83+
uses: actions/upload-artifact@v5
8884
with:
8985
name: artifact-${{ github.job }}-${{ strategy.job-index }}
9086
path: ./wheelhouse/*.whl
9187

9288
build_wheels_macos:
93-
name: Build wheel on macos-latest/${{matrix.arch}}/${{matrix.python_tag}}
89+
name: Build wheel on ${{ matrix.os }}/auto
9490
needs: [build_sdist]
9591
runs-on: ${{ matrix.os }}
9692
strategy:
9793
fail-fast: false
9894
matrix:
99-
os: [macos-13, macos-14]
95+
os: [macos-15-intel, macos-14]
10096
env:
101-
CIBW_ARCHS: native
10297
CIBW_TEST_SKIP: "pp*-macosx_*"
103-
CIBW_TEST_REQUIRES: pytest hypothesis
104-
CIBW_TEST_COMMAND: pytest {package}/tests
10598
CIBW_BUILD_VERBOSITY: 3
106-
CIBW_PROJECT_REQUIRES_PYTHON: ">=3.9"
10799

108100
steps:
109-
- uses: actions/download-artifact@v4
101+
- uses: actions/download-artifact@v6
110102
with:
111103
name: artifact-sdist
112104
path: dist
113105

114-
- uses: actions/setup-python@v5
106+
- uses: actions/setup-python@v6
115107

116108
- name: Copy wheel
117-
run: cp dist/*.tar.gz rapidfuzz.tar.gz
109+
run: cp dist/*.tar.gz levenshtein.tar.gz
118110

119111
- name: Build wheels
120-
uses: pypa/cibuildwheel@v2.23
112+
uses: pypa/cibuildwheel@v3.2.1
121113
with:
122-
package-dir: rapidfuzz.tar.gz
114+
package-dir: levenshtein.tar.gz
123115
output-dir: wheelhouse
124116

125117
- name: Upload wheels
126-
uses: actions/upload-artifact@v4
118+
uses: actions/upload-artifact@v5
127119
with:
128120
name: artifact-${{ github.job }}-${{ strategy.job-index }}
129121
path: ./wheelhouse/*.whl
@@ -135,66 +127,89 @@ jobs:
135127
strategy:
136128
fail-fast: false
137129
matrix:
138-
arch: [auto, aarch64, ppc64le, s390x]
139-
python_tag: ["cp39-*", "cp310-*", "cp311-*", "cp312-*", "cp313-*", "pp39-*", "pp310-*", "pp311-*"]
140-
exclude:
141-
# PyPy builds not supported on ppc64le / s390x
142-
- arch: ppc64le
143-
python_tag: "pp39-*"
144-
- arch: ppc64le
145-
python_tag: "pp310-*"
146-
- arch: ppc64le
147-
python_tag: "pp311-*"
148-
- arch: s390x
149-
python_tag: "pp39-*"
150-
- arch: s390x
151-
python_tag: "pp310-*"
152-
- arch: s390x
153-
python_tag: "pp311-*"
130+
arch: [auto, ppc64le, s390x]
131+
python_tag: ["cp310-*", "cp311-*", "cp312-*", "cp313-*", "cp314-*"]
154132
env:
155133
CIBW_ARCHS_LINUX: ${{matrix.arch}}
156134
CIBW_BUILD: ${{matrix.python_tag}}
157-
CIBW_TEST_SKIP: "{*-manylinux_{aarch64,ppc64le,s390x},*musllinux_*}"
158-
CIBW_TEST_REQUIRES: pytest hypothesis
159-
CIBW_TEST_COMMAND: pytest {package}/tests
135+
CIBW_TEST_SKIP: "{*_{aarch64,ppc64le,s390x},*musllinux_*}"
160136
CIBW_BUILD_VERBOSITY: 3
161137

162138
steps:
163-
- uses: actions/download-artifact@v4
139+
- uses: actions/download-artifact@v6
164140
with:
165141
name: artifact-sdist
166142
path: dist
167143

168-
- uses: actions/setup-python@v5
144+
- uses: actions/setup-python@v6
169145

170146
- name: Copy wheel
171-
run: cp dist/*.tar.gz rapidfuzz.tar.gz
147+
run: cp dist/*.tar.gz levenshtein.tar.gz
172148

173149
- uses: docker/setup-qemu-action@v3
174150
name: Set up QEMU
175151

176152
- name: Build wheel
177-
uses: pypa/cibuildwheel@v2.23
153+
uses: pypa/cibuildwheel@v3.2.1
154+
with:
155+
package-dir: levenshtein.tar.gz
156+
output-dir: wheelhouse
157+
158+
- name: Upload wheels
159+
uses: actions/upload-artifact@v5
160+
with:
161+
name: artifact-${{ github.job }}-${{ strategy.job-index }}
162+
path: ./wheelhouse/*.whl
163+
164+
build_wheels_linux_arm:
165+
name: Build wheels on ubuntu-24.04-arm/${{matrix.arch}}/${{matrix.python_tag}}
166+
needs: [build_sdist]
167+
runs-on: ubuntu-24.04-arm
168+
strategy:
169+
fail-fast: false
170+
matrix:
171+
arch: [aarch64, armv7l]
172+
python_tag: ["cp310-*", "cp311-*", "cp312-*", "cp313-*", "cp314-*"]
173+
env:
174+
CIBW_ARCHS_LINUX: ${{matrix.arch}}
175+
CIBW_BUILD: ${{matrix.python_tag}}
176+
CIBW_TEST_SKIP: "{*_{aarch64,ppc64le,s390x},*musllinux_*}"
177+
CIBW_BUILD_VERBOSITY: 3
178+
179+
steps:
180+
- uses: actions/download-artifact@v6
181+
with:
182+
name: artifact-sdist
183+
path: dist
184+
185+
- uses: actions/setup-python@v6
186+
187+
- name: Copy wheel
188+
run: cp dist/*.tar.gz levenshtein.tar.gz
189+
190+
- name: Build wheel
191+
uses: pypa/cibuildwheel@v3.2.1
178192
with:
179-
package-dir: rapidfuzz.tar.gz
193+
package-dir: levenshtein.tar.gz
180194
output-dir: wheelhouse
181195

182196
- name: Upload wheels
183-
uses: actions/upload-artifact@v4
197+
uses: actions/upload-artifact@v5
184198
with:
185199
name: artifact-${{ github.job }}-${{ strategy.job-index }}
186200
path: ./wheelhouse/*.whl
187201

202+
188203
deploy-wheels:
189204
if: github.event_name == 'release' && github.event.action == 'published'
190-
needs: [build_wheels_windows, build_wheels_macos, build_wheels_linux, build_sdist]
205+
needs: [build_wheels_windows, build_wheels_macos, build_wheels_linux, build_wheels_arm, build_sdist]
191206
name: deploy wheels to pypi
192207
runs-on: ubuntu-latest
193208
environment: pypi-release
194209
permissions:
195210
id-token: write
196211
steps:
197-
- uses: actions/download-artifact@v4
212+
- uses: actions/download-artifact@v6
198213
with:
199214
path: dist
200215
pattern: artifact-*

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ elseif("${Python_INTERPRETER_ID}" STREQUAL "PyPy")
5252
message(STATUS "Corrected SOABI: ${Python_SOABI}")
5353
endif()
5454

55-
find_package(rapidfuzz 3.2.0 QUIET)
55+
find_package(rapidfuzz 3.3.3 QUIET)
5656
if(rapidfuzz_FOUND)
5757
message(STATUS "Using system supplied version of rapidfuzz-cpp")
5858
else()

HISTORY.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
## Changelog
22

3+
### v0.27.2
4+
#### Changed
5+
- fix build with ``scikit-build-core`` ``v0.11``
6+
- upgrade to `Cython==3.1.6`
7+
- upgrade to `rapidfuzz-cpp==3.3.3`
8+
9+
# Added
10+
- add support for free threaded Python
11+
- add python 3.14 wheels
12+
13+
### Removed
14+
- drop support for Python 3.9
15+
- drop 32 bit linux wheels
16+
317
### v0.27.1
418
#### Changed
519
- fix build with ``scikit-build-core`` ``v0.11``

Makefile

Lines changed: 0 additions & 20 deletions
This file was deleted.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ computation of:
3333
* string sequence and set similarity
3434

3535
## Requirements
36-
* Python 3.9 or later
36+
* Python 3.10 or later
3737

3838
## Installation
3939
```bash

docs/requirements.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
docutils==0.18.1
2+
furo
3+
Sphinx
4+
sphinxcontrib-bibtex

extern/rapidfuzz-cpp

Submodule rapidfuzz-cpp updated 54 files

0 commit comments

Comments
 (0)