Skip to content

Commit b70e62f

Browse files
Bump version to 2.3.0 with python 3.14 support
Signed-off-by: Ayan Sinha Mahapatra <asmahapatra@aboutcode.org>
1 parent bd4a6d8 commit b70e62f

File tree

5 files changed

+173
-24
lines changed

5 files changed

+173
-24
lines changed

.github/workflows/extensive-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
strategy:
1414
fail-fast: false
1515
matrix:
16-
python: ["3.9", "3.10", "3.11", "3.12", "3.13"]
16+
python: ["3.10", "3.11", "3.12", "3.13", "3.14"]
1717
include:
1818
- os: ubuntu-latest
1919
test: make test

.github/workflows/pypi-release.yml

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
name: Create library release archives, create a GH release and publish PyPI wheel and sdist on tag in main branch
2+
3+
4+
# This is executed automatically on a tag in the main branch
5+
6+
# Summary of the steps:
7+
# - build wheels and sdist
8+
# - upload wheels and sdist to PyPI
9+
# - create gh-release and upload wheels and dists there
10+
# TODO: smoke test wheels and sdist
11+
# TODO: add changelog to release text body
12+
13+
# WARNING: this is designed only for packages building as pure Python wheels
14+
15+
on:
16+
workflow_dispatch:
17+
push:
18+
tags:
19+
- "v*.*.*"
20+
21+
jobs:
22+
build-wheels:
23+
name: Build unicode wheels ${{ matrix.type }} ${{ matrix.arch }} on ${{ matrix.os }}
24+
runs-on: ${{ matrix.os }}
25+
defaults:
26+
run:
27+
shell: bash
28+
strategy:
29+
fail-fast: false
30+
matrix:
31+
os: [macos-latest, windows-latest]
32+
arch: [auto64]
33+
build: ["cp{310,311,312,313,314}-*"]
34+
35+
include:
36+
- os: ubuntu-latest
37+
arch: auto64
38+
type: manylinux2014
39+
build: "cp{310,311,312,313,314}-*"
40+
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014
41+
42+
- os: macos-latest
43+
arch: universal2
44+
build: "cp{310,311,312,313,314}-*"
45+
46+
- os: windows-latest
47+
arch: auto64
48+
build: "cp{310,311,312,313,314}-*"
49+
50+
steps:
51+
- uses: actions/checkout@v4
52+
53+
- name: Build wheels and run tests
54+
uses: pypa/cibuildwheel@v3.2.1
55+
env:
56+
CIBW_BUILD: ${{ matrix.build }}
57+
CIBW_MANYLINUX_I686_IMAGE: ${{ matrix.CIBW_MANYLINUX_I686_IMAGE }}
58+
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.CIBW_MANYLINUX_X86_64_IMAGE }}
59+
CIBW_ARCHS: ${{ matrix.arch }}
60+
CIBW_TEST_REQUIRES: pytest
61+
CIBW_TEST_COMMAND: pytest -vvs {project}/tests
62+
63+
- name: Collect built wheels
64+
uses: actions/upload-artifact@v4
65+
with:
66+
name: pyahocorasick-wheels-${{ matrix.os }}-${{ strategy.job-index }}
67+
path: ./wheelhouse/*.whl
68+
69+
build-sdist:
70+
name: Build source distribution
71+
runs-on: ubuntu-24.04
72+
73+
steps:
74+
- uses: actions/checkout@v4
75+
76+
- name: Checkout and install reqs
77+
run: |
78+
pip install --upgrade --user build twine pkginfo packaging pip setuptools cython
79+
80+
- name: Build sdist
81+
run: |
82+
python setup.py sdist
83+
twine check dist/*
84+
85+
- name: Collect built sdist
86+
uses: actions/upload-artifact@v4
87+
with:
88+
name: pyahocorasick-sdist
89+
path: dist/*.tar.gz
90+
91+
merge:
92+
runs-on: ubuntu-latest
93+
needs: [build-sdist, build-wheels]
94+
steps:
95+
- name: Merge created wheels and sdist in a single zip
96+
uses: actions/upload-artifact/merge@v4
97+
with:
98+
name: pyahocorasick-build
99+
pattern: pyahocorasick-*
100+
101+
check-dist:
102+
name: Check distributions are PyPi-correct
103+
needs: merge
104+
runs-on: ubuntu-22.04
105+
steps:
106+
- uses: actions/download-artifact@v4
107+
with:
108+
path: pyahocorasick-build
109+
- run: find . -ls
110+
- run: pipx run twine check --strict pyahocorasick-build/*/*
111+
112+
create-gh-release:
113+
name: Create GH release
114+
needs:
115+
- check-dist
116+
runs-on: ubuntu-24.04
117+
118+
steps:
119+
- name: Download builds
120+
uses: actions/download-artifact@v4
121+
with:
122+
name: pyahocorasick-build
123+
path: pyahocorasick-build
124+
125+
- name: Create GH release
126+
uses: softprops/action-gh-release@v2
127+
with:
128+
draft: true
129+
files: pyahocorasick-build/*
130+
131+
create-pypi-release:
132+
name: Create PyPI release
133+
needs:
134+
- create-gh-release
135+
runs-on: ubuntu-24.04
136+
permissions:
137+
id-token: write
138+
139+
steps:
140+
- name: Download builds
141+
uses: actions/download-artifact@v4
142+
with:
143+
name: pyahocorasick-build
144+
path: dist/
145+
146+
- name: Mock PyPI upload
147+
run: |
148+
ls -al dist
149+
150+
- name: Publish to PyPI
151+
if: startsWith(github.ref, 'refs/tags')
152+
uses: pypa/gh-action-pypi-publish@release/v1

.github/workflows/test-and-build.yml

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -38,49 +38,35 @@ jobs:
3838
matrix:
3939
os: [macos-latest, windows-latest]
4040
arch: [auto64]
41-
build: ["cp{39,310,311,312,313}-*"]
41+
build: ["cp{310,311,312,313,314}-*"]
4242

4343
include:
44-
- os: ubuntu-latest
45-
arch: auto64
46-
type: manylinux1
47-
build: "cp39-*"
48-
CIBW_MANYLINUX_X86_64_IMAGE: manylinux1
49-
50-
- os: ubuntu-latest
51-
arch: auto64
52-
type: manylinux2010
53-
build: "cp310-*"
54-
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2010
55-
5644
- os: ubuntu-latest
5745
arch: auto64
5846
type: manylinux2014
59-
build: "cp{311,312,313}-*"
47+
build: "cp{310,311,312,313,314}-*"
6048
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014
6149

6250
- os: macos-latest
6351
arch: universal2
64-
build: "cp{39,310,311,312,313}-*"
65-
52+
build: "cp{310,311,312,313,314}-*"
53+
6654
- os: windows-latest
6755
arch: auto64
68-
build: "cp{39,310,311,312,313}-*"
56+
build: "cp{310,311,312,313,314}-*"
6957

7058
steps:
7159
- uses: actions/checkout@v4
7260

7361
- name: Build wheels and run tests
74-
uses: pypa/cibuildwheel@v2.23.3
62+
uses: pypa/cibuildwheel@v3.2.1
7563
env:
7664
CIBW_BUILD: ${{ matrix.build }}
7765
CIBW_MANYLINUX_I686_IMAGE: ${{ matrix.CIBW_MANYLINUX_I686_IMAGE }}
7866
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.CIBW_MANYLINUX_X86_64_IMAGE }}
7967
CIBW_ARCHS: ${{ matrix.arch }}
8068
CIBW_TEST_REQUIRES: pytest
8169
CIBW_TEST_COMMAND: pytest -vvs {project}/tests
82-
# Skip PyPy wheels
83-
CIBW_SKIP: "pp*"
8470

8571
- name: Collect built wheels
8672
uses: actions/upload-artifact@v4
@@ -120,7 +106,7 @@ jobs:
120106
fail-fast: false
121107
matrix:
122108
os: [ubuntu-22.04, ubuntu-24.04, macos-13, macos-14, windows-2022, windows-2025]
123-
python: ["3.9", "3.10", "3.11", "3.12", "3.13.3"]
109+
python: ["3.10", "3.11", "3.12", "3.13", "3.14"]
124110
build_type: ["AHOCORASICK_UNICODE", "AHOCORASICK_BYTES"]
125111

126112
steps:

CHANGELOG.rst

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,17 @@
22
Changelog
33
=============
44

5+
2.3.0 (2025-10-30)
6+
--------------------------------------------------
7+
8+
- Drop support for Python 3.9. Use older version for pre-built wheels.
9+
Note that it may work on these older versions, we are just no longer supporting
10+
and testing these Python versions, as this is end of life
11+
12+
- Add support for Python 3.14 and update CI & release scripts
13+
https://github.com/WojciechMula/pyahocorasick/pull/194
14+
15+
516
2.2.0 (2025-06-18)
617
--------------------------------------------------
718

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ def get_long_description():
8787

8888
setup(
8989
name="pyahocorasick",
90-
version="2.2.0",
90+
version="2.3.0",
9191
ext_modules=[module],
9292

9393
description=(
@@ -124,5 +124,5 @@ def get_long_description():
124124
extras_require={
125125
"testing": ["pytest", "twine", "setuptools", "wheel", ],
126126
},
127-
python_requires=">=3.9",
127+
python_requires=">=3.10",
128128
)

0 commit comments

Comments
 (0)