-
Notifications
You must be signed in to change notification settings - Fork 915
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update to protobuf>=4.21.6,<4.22. #12864
Conversation
@galipremsagar and I discussed offline and decided to pin to |
Updating our protobuf to allow 4.22 would likely allow more easily mixing cuDF and Tensorflow pip packages. Tensorflow currently pins to 3.20.x, but the tensorflow 2.12 release candidate relaxes the constraint and appears to be consistent with the security alert and tries to install 4.22 by default. 4.21.6 would work, but the pip resolver doesn't select it if we've already installed 4.21.0 via cuDF (even though 4.21.6 should in theory be a permissible upgrade -- it naturally wants to go to 4.22). This could be a great UX improvement for our pip packages. |
@beckernick Conda packages aren't available yet for 4.22. To clarify, you're saying we should permit a more extensive range to ensure compatibility with TensorFlow? Should we pin to something like |
Today, installing cuDF and the Tensorflow release candidate pip packages is challenging. Tensorflow naturally wants to bring in 4.22 (though could bring in 4.21.6 if needed), and I believe we must bring in 4.21.0 because of the version matching clause of If our pip packages (today) were using |
@beckernick Fantastic explanation, thank you for the detailed response. I agree! For now we'll pin to a version that we can get with both pip and conda: |
/merge |
This should also hopefully enable cuDF packages to work more cleanly with Weights and Biases https://twitter.com/bilzrd/status/1634363707336847361
|
This PR relaxes cudf's protobuf pinnings to help with compatibility issues. `cudf` uses `protobuf` in two places. The first place `protobuf` is used is at build time, to generate a Python module from a `.proto` file in `python/cudf/cmake/Modules/ProtobufHelpers.cmake`: https://github.com/rapidsai/cudf/blob/f8e5a89e983065e1202f1151dd499bea3102a537/python/cudf/cmake/Modules/ProtobufHelpers.cmake#L16-L17 The second place `protobuf` is used is in the generated file `python/cudf/cudf/utils/metadata/orc_column_statistics_pb2.py` which is [imported here](https://github.com/rapidsai/cudf/blob/f8e5a89e983065e1202f1151dd499bea3102a537/python/cudf/cudf/io/orc.py#L14-L16). The generated Python module used at runtime should be compatible with newer versions of `protobuf` than the version used to build the Python module, from my understanding of https://protobuf.dev/support/cross-version-runtime-guarantee/. Therefore, we only require that the runtime pinning of `protobuf` is of the same major version and an equal-or-greater minor version. That allows us to relax this pinning. Follow-up to #12864, see that PR for more context. Authors: - Bradley Dice (https://github.com/bdice) - GALI PREM SAGAR (https://github.com/galipremsagar) Approvers: - GALI PREM SAGAR (https://github.com/galipremsagar) - Ray Douglass (https://github.com/raydouglass) URL: #13770
Description
This updates cudf's protobuf version to resolve #12830 and a downstream conflict with
ortools
(a dependency of cuopt), which requiresprotobuf>=4.21.5
.Checklist