Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 2 additions & 7 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ jobs:
- macos-15
- windows-2025
python-version:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
Expand All @@ -32,13 +31,9 @@ jobs:
- "3.15"
- "3.15t"
native-ext: [true, false]
exclude:

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still a couple of built wheels but not adding significant CI time anymore

# Currently many dependencies need wheel builds on 3.15 which is slow, so only run on push
- python-version: ${{ github.event_name == 'pull_request' && '3.15' }}
- python-version: ${{ github.event_name == 'pull_request' && '3.15t' }}
env:
# When bumping, also bump top-level env in release.yaml
MATURIN_ARGS: ${{ matrix.python-version == '3.11' && '--features pyo3/abi3-py311' || '' }}
MATURIN_ARGS: ${{ (matrix.python-version == '3.11' || matrix.python-version == '3.12') && '--features pyo3/abi3-py311' || '' }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Install uv with Python ${{ matrix.python-version }}
Expand Down Expand Up @@ -96,7 +91,7 @@ jobs:
- uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
with:
version: "0.12.23"
python-version: "3.10"
python-version: "3.11"
- run: uv sync --locked
- run: uv run poe lint
- run: uv run poe format
Expand Down
53 changes: 29 additions & 24 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,10 @@ permissions:
env:
# When bumping, also bump MATURIN_ARGS in ci.yaml
# maturin flags to build targets we publish non-abi3 wheels for
UNSTABLE_API_FLAGS: -i 3.10 -i 3.12 -i 3.13 -i 3.14 -i 3.14t
UNSTABLE_API_FLAGS: -i 3.13 -i 3.14 -i 3.14t -i 3.15 -i 3.15t
# maturin flags to build targets we publish abi3 wheels for
ABI3_FLAGS: -i 3.11 --features pyo3/abi3-py311
ABI3T_FLAGS: -i 3.15t --features pyo3/abi3t-py315

jobs:
ext-linux:
Expand All @@ -36,12 +37,6 @@ jobs:
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: 3.x

- uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0

- name: Build wheels
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
with:
Expand All @@ -51,7 +46,7 @@ jobs:
manylinux: ${{ matrix.manylinux }}
working-directory: packages/protobuf-py-ext

- name: Build abi3 wheels
- name: Build abi3 wheel
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
with:
target: ${{ matrix.platform.target }}
Expand All @@ -60,6 +55,15 @@ jobs:
manylinux: ${{ matrix.manylinux }}
working-directory: packages/protobuf-py-ext

- name: Build abi3t wheel
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
with:
target: ${{ matrix.platform.target }}
args: --release --out ../../dist ${{ env.ABI3T_FLAGS }}
sccache: true
manylinux: ${{ matrix.manylinux }}
working-directory: packages/protobuf-py-ext

- name: Upload wheels
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
Expand All @@ -79,12 +83,17 @@ jobs:
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
- name: Build abi3 wheel
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
with:
args: --release --out ../../dist ${{ env.ABI3_FLAGS }}
sccache: true
working-directory: packages/protobuf-py-ext

- name: Build abi3 wheels
- name: Build abi3t wheel
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
with:
args: --release --out ../../dist ${{ env.ABI3_FLAGS }} --features pyo3/generate-import-lib
args: --release --out ../../dist ${{ env.ABI3T_FLAGS }}
sccache: true
working-directory: packages/protobuf-py-ext

Expand All @@ -104,18 +113,6 @@ jobs:
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: |
3.10
3.11
3.12
3.13
3.14
3.14t

- uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0

- name: Build wheels
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
with:
Expand All @@ -124,14 +121,22 @@ jobs:
sccache: true
working-directory: packages/protobuf-py-ext

- name: Build abi3 wheels
- name: Build abi3 wheel
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
with:
target: ${{ matrix.platform.target }}
args: --release --out ../../dist ${{ env.ABI3_FLAGS }}
sccache: true
working-directory: packages/protobuf-py-ext

- name: Build abi3t wheel
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
with:
target: ${{ matrix.platform.target }}
args: --release --out ../../dist ${{ env.ABI3T_FLAGS }}
sccache: true
working-directory: packages/protobuf-py-ext

- name: Upload wheels
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
Expand Down
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name = "protobuf-py"
version = "0.6.0"
description = "Idiomatic Protocol Buffers for Python."
readme = "README.md"
requires-python = ">=3.10"
requires-python = ">=3.11"
license = "Apache-2.0"
license-files = ["LICENSE"]
keywords = ["protobuf"]
Expand All @@ -13,11 +13,11 @@ classifiers = [
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: 3.15",
"Programming Language :: Python :: Free Threading",
"Topic :: File Formats",
"Topic :: Software Development :: Libraries :: Python Modules",
Expand Down
Loading
Loading