Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
5 changes: 3 additions & 2 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ jobs:
- ubuntu-24.04
- macos-15
- windows-2025
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.14t"]
python-version:
["3.11", "3.12", "3.13", "3.14", "3.14t", "3.15", "3.15t"]
resolution: ["highest", "lowest-direct"]
env:
# Shared env variables for all the tests
Expand Down Expand Up @@ -103,7 +104,7 @@ jobs:
run: rustup update
- uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
with:
python-version: ${{ matrix.python-version }}
python-version: "3.11"
- run: uv sync --locked
- run: uv run poe lint
- run: uv run poe format
Expand Down
97 changes: 24 additions & 73 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,47 +14,27 @@ permissions:
contents: write

jobs:
ext-linux:
runs-on: ${{ matrix.platform.runner }}
ext:
runs-on: ${{ matrix.runner }}
strategy:
matrix:
platform:
include:
- runner: ubuntu-24.04
target: x86_64
manylinux: auto
- runner: ubuntu-24.04
target: x86_64
manylinux: musllinux_1_2
- runner: ubuntu-24.04-arm
target: aarch64
manylinux:
- auto
- musllinux_1_2
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
submodules: recursive

- 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:
target: ${{ matrix.platform.target }}
args: --release --out dist -i 3.10 -i 3.14t
manylinux: ${{ matrix.manylinux }}

- name: Upload wheels
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: wheels-linux-${{ matrix.platform.target }}-${{ matrix.manylinux }}
path: dist

ext-windows:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
manylinux: auto
- runner: ubuntu-24.04-arm
target: aarch64
manylinux: musllinux_1_2
- runner: macos-15
target: aarch64
- runner: macos-15-intel
target: x86_64
- runner: windows-2025
target: x86_64
- runner: windows-11-arm
Expand All @@ -64,51 +44,24 @@ jobs:
with:
submodules: recursive

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

- name: Build wheels
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
with:
args: --release --out dist -i 3.10 -i 3.14t

- name: Upload wheels
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: wheels-windows-${{ matrix.platform.target }}
path: dist

ext-macos:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: macos-15
target: aarch64
- runner: macos-15-intel
target: x86_64
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
submodules: recursive

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

- uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
target: ${{ matrix.target }}
args: --release --out dist -i 3.11 -i 3.14t
manylinux: ${{ matrix.manylinux }}

- name: Build wheels
- name: Build abi3t wheel
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
with:
target: ${{ matrix.platform.target }}
args: --release --out dist -i 3.10 -i 3.14t
target: ${{ matrix.target }}
args: --release --out dist -i 3.15t
manylinux: ${{ matrix.manylinux }}

- name: Upload wheels
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: wheels-macos-${{ matrix.platform.target }}
name: wheels-${{ matrix.runner }}-${{ matrix.target }}${{ matrix.manylinux && format('-{0}', matrix.manylinux) || '' }}
path: dist

ext-sdist:
Expand All @@ -134,9 +87,7 @@ jobs:
runs-on: ubuntu-26.04
environment: ${{ (github.event_name == 'workflow_dispatch' && 'pypi-test') || (github.event_name == 'push' && github.ref_type == 'tag' && 'pypi-release') || null }}
needs:
- ext-linux
- ext-windows
- ext-macos
- ext
- ext-sdist
steps:
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
Expand Down
6 changes: 3 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,17 @@ name = "protovalidate"
version = "2.0.0"
description = "Protocol Buffer Validation for Python"
readme = "README.md"
requires-python = ">=3.10"
requires-python = ">=3.11"
license = "Apache-2.0"
license-files = ["LICENSE"]
keywords = ["protobuf", "protocol buffer", "validate"]
classifiers = [
"Operating System :: OS Independent",
"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",
"Typing :: Typed",
]
dependencies = [
Expand Down Expand Up @@ -80,7 +80,7 @@ exclude = [
{ path = "crates/**/.git/**/*", format = "sdist" },
{ path = "crates/**/.git", format = "sdist" },
]
features = ["pyo3/extension-module", "pyo3/abi3-py310"]
features = ["pyo3/extension-module", "pyo3/abi3-py311", "pyo3/abi3t-py315"]
# The C++ sources are submodules, so they are picked up from the working tree
# rather than from `git ls-files`, which stops at a submodule boundary.
include = [
Expand Down
Loading
Loading