Open aabmass opened 3 weeks ago
The simplest solution is to only support a single protobuf major version. Once the ecosystem has majority moved over to Protobuf 5, we can switch over to just supporting it. I don't have a good signal on when that is.
It would helpful if people can share what version of Protobuf you are using and if this is a critical blocker for other version upgrades.
The new version of the authzed library already uses protobuf 5. And we are planning an update, but a dependency conflict is preventing us.
Hope for a speedy resolution
Protobuf 5 was released but it currently conflicts with
opentelemetry-proto
package https://github.com/open-telemetry/opentelemetry-python/blob/762bd8f2629a1babc0eee4361a4873433511e836/opentelemetry-proto/pyproject.toml#L27-L29This is by design since protobuf generated code is supposed to match the runtime protobuf library version. When 4.x was released we had a lot of issues and I opened https://github.com/protocolbuffers/protobuf/issues/11123 to get some clarification. We know have some docs https://protobuf.dev/support/cross-version-runtime-guarantee/ which make it clear New Gencode + Old Runtime = Never Allowed. I.e. regenerating code with grpcio-tools 5 will break compatibility with protobuf 4.
This puts us in a tricky spot of choosing which major version to support. The good news is
That doesn't help right now, but hopefully will for the next major version. Because they are planning to fix things, I'm hesitant on making our own solution like keeping two copies of generated code and dynamically choosing between them at import time.
Related