Pin grpcio versions in CI#2776
Conversation
- Force `grpcio` version instead of always using `latest` - Bump `grpcio-tools` versions from 1.x0.0 to latest in their respective lines (e.g. ~=1.30.0 => ~=1.39.0) to avoid issues in early versions - Run grpc < 1.40 on py3.9 instead of py3.10 due to compilation issues (e.g. cython/cython#3876 + cython/cython#3921 + grpc/grpc#28398)
|
Note: getting older pipx install cibuildwheel
pip download --no-binary=:all: 'grpcio~=1.20;<1.30'
tar xzvf grpcio-1.29.0.tar.gz
CIBW_BUILD="cp3{7,9,10}-many*" cibuildwheel --platform linux --archs aarch64 grpcio-tools-1.29.0This might be an issue with building wheels in CI during |
|
CI failures are |
|
@arr-ee This is great, thanks for your work on this! The changes look good to me. Since we're technically dropping support for some |
|
sgtm — let me know if you want me to update the pr for 2.0 or if you’d rather take care of it yourself |
|
Merged to 2.0 now -- now we'll only have to live with the tests being slow on |
From #2721 (comment)
This PR pins
grpcioversions instead ofgrpcio-tools, as well as restructures test matrix and fixes an issue in grpc integration withgrpcio < 1.40exposed by the fixed tests.grpcioversions for each "major" (1.xx.y) were bumped to the latest in the respective "major", e.g.~=1.30.0=>~=1.39.0.This was done to work around various build and runtime issues present in earlier versions.
grpcio< 1.40 (< 1.42 actually) was lowered to cpy3.9 due to asyncserver doesn't start on python3.10: "TypeError: As of 3.10, the *loop* parameter was removed from Lock() since it is no longer necessary" grpc/grpc#27888There is an unresolved issue with
grpcio-1.2x.y:grpc.aiomodule only got moved out ofgrpc.experimentalin 1.32.0 (see grpc/grpc#23240). Whether it is worth supporting this case is not for me to decide :)General Notes
Thank you for contributing to
sentry-python!Please add tests to validate your changes, and lint your code using
tox -e linters.Running the test suite on your PR might require maintainer approval. Some tests (AWS Lambda) additionally require a maintainer to add a special label to run and will fail if the label is not present.
For maintainers
Sensitive test suites require maintainer review to ensure that tests do not compromise our secrets. This review must be repeated after any code revisions.
Before running sensitive test suites, please carefully check the PR. Then, apply the
Trigger: tests using secretslabel. The label will be removed after any code changes to enforce our policy requiring maintainers to review all code revisions before running sensitive tests.