Repository navigation
Support Python 3.11 through 3.15 - #2088
VegetarianOrc wants to merge 8 commits into
Conversation
| - run: cargo install --locked nexgen --version 0.2.8 --features advanced --force | ||
| - run: poe build-develop | ||
| - run: poe gen-protos | ||
| - run: poe gen-protos-docker |
There was a problem hiding this comment.
I'm not sure if we want to switch to using docker in CI for this, it seems unrelated.
There was a problem hiding this comment.
Since we're using uv for everything I reworked this so it doesn't need docker. Feel free to push back on that choice and I can add docker back in there.
|
|
||
| # Run pydoctor | ||
| subprocess.check_call(["pydoctor", "--quiet"]) | ||
| result = driver.main(["--quiet", "--system-class=__main__.ProtobufSystem"]) |
There was a problem hiding this comment.
The purpose here is to make sure that enough docs are generated for the generated protobuf classes that our doc links can reference them. The new codegen uses a setup that declares classes at import time rather than statically so pydoctor can't resolve them. The ProtobufSystem routes any _pb2.py file to it's stub instead and creates entries for each public class in the in the .pyi stub instead.
The alternative would be to change the doc links to plain text.
4977b8c to
dca3e3f
Compare
Summary
Raise the minimum supported Python version to 3.11 and add support for Python 3.15.
grpcio-tools1.49.1 (protoc 3.21.6) andmypy-protobuf3.6.0. Preserve generated-message pickling and optional gRPC exports.poe gen-protosautomatically uses an isolated Python 3.11 tool environment without changing the SDK development environment..pyifiles, restoring documentation and cross-references for dynamically created types.Breaking changes
>=4.21.12,<8; protobuf 3 is no longer supported.grpcextra now requiresgrpcio>=1.49.1,<2.Validation
All required CI checks pass at
71bcc83a, including:Local validation also includes full default-environment suites on Python 3.11 and 3.15, generation reproducibility checks, documentation generation on both versions, and targeted regression tests.