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
6 changes: 6 additions & 0 deletions .github/workflows/build-protovalidate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,15 @@ jobs:
# protobuf (Google's package, used for legacy conformance coverage)
# has no riscv64 wheel on public PyPI yet.
CIBW_TEST_ENVIRONMENT: PIP_EXTRA_INDEX_URL=https://pypi.riseproject.dev/simple/
# On cp314t protobuf's upb extension (google._upb._message) has not
# declared free-threading support, so importing it re-enables the GIL
# and warns; pyproject.toml's filterwarnings = error would turn that
# into a collection error. The warning only means the GIL is on, which
# is the safe state, so it is ignored while every test still runs.
CIBW_TEST_COMMAND: >-
python -c "import protovalidate._protovalidate as m; assert m.__file__.endswith('.so'), m.__file__" &&
python -m pytest test -v
-W "ignore:The global interpreter lock (GIL) has been enabled:RuntimeWarning"

- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
Expand Down
1 change: 1 addition & 0 deletions docs/packages/protovalidate.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ versions:
- filename: protovalidate-2.0.0-cp314-cp314t-manylinux_2_39_riscv64.whl
sha256: d5c4afdd55781255485e6aacfee3bfecbaa10d73948e9075933eb7b59fb41cf6
requires-python: '>=3.10'
- version: 2.1.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ludovic Henry <git@ludovic.dev>
Date: Thu, 27 Aug 2026 00:00:00 +0000
Subject: [PATCH] pyproject: list vendored C++ licence files in
[project].license-files

protovalidate._protovalidate statically links six vendored C++ projects
(abseil-cpp, antlr4, cel-cpp, protobuf + its bundled utf8_range, re2,
protovalidate-cc) compiled from crates/protovalidate-rs/build.rs, but
[project].license-files only names the package's own root LICENSE.
maturin has no default glob for a PEP 639 project (gotcha 105/146 in
this repo's porting skill), so every published wheel - on every
platform, not just riscv64 - ships none of the six licence texts the
compiled binary actually requires. All six are permissive (Apache-2.0
x3, BSD-3-Clause x3 for protobuf/antlr4/re2, plus utf8_range's MIT),
so this only adds licence-files entries; no GPL text is involved.

Upstream-Status: To upstream [not submitted: this session's policy is to not open issues/PRs on third-party repos]

Signed-off-by: Ludovic Henry <git@ludovic.dev>
---
pyproject.toml | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/pyproject.toml b/pyproject.toml
index ea18dff..044ad49 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -5,7 +5,16 @@ description = "Protocol Buffer Validation for Python"
readme = "README.md"
requires-python = ">=3.11"
license = "Apache-2.0"
-license-files = ["LICENSE"]
+license-files = [
+ "LICENSE",
+ "crates/protovalidate-rs/third_party/abseil-cpp/LICENSE",
+ "crates/protovalidate-rs/third_party/antlr4/LICENSE.txt",
+ "crates/protovalidate-rs/third_party/cel-cpp/LICENSE",
+ "crates/protovalidate-rs/third_party/protobuf/LICENSE",
+ "crates/protovalidate-rs/third_party/protobuf/third_party/utf8_range/LICENSE",
+ "crates/protovalidate-rs/third_party/protovalidate-cc/LICENSE",
+ "crates/protovalidate-rs/third_party/re2/LICENSE",
+]
keywords = ["protobuf", "protocol buffer", "validate"]
classifiers = [
"Operating System :: OS Independent",
--
2.51.0

Loading