[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Plans for golang-goprotobuf to unstable?



Hi,

Am 26.10.22 um 20:27 schrieb Shengjing Zhu:
Hi all,

On Sun, Jul 10, 2022 at 6:53 AM Shengjing Zhu <zhsj@debian.org> wrote:

I should have mentioned it earlier. For this particular transition
(google/protobuf 1.3 -> 1.4+), ratt is not enough. For example,
containerd will panic at runtime (root cause is #975431). The
incompatibility is not at compile time, but at runtime.

For safety,  I think google/protobuf (>= 1.4) should mark Breaks:
golang-gogoprotobuf-dev.  Otherwise all package maintainers should
verify if the package is still functional after rebuilding.

I just uploaded golang-github-golang-protobuf-1-5 to unstable.
So please keep golang-goprotobuf at 1.3, I will ask removing the 1.5
version in experimental shortly.

If you're blocked _only_ by github.com/golang/protobuf v1.4+, then you
can start to use golang-github-golang-protobuf-1-5.

There's still puzzle for the next steps. For example,
+ golang-google-genproto, the pb.go files in new version need to be
generated by new protoc-gen-go. However by doing this, it will be come
incompatible with gogo/protobuf and cause runtime panic (you will not
notice build error).  This at least will break containerd, and then
all container tools like docker/podman.


I have two questions on this:

1. Would it be possible to have two versions for each golang-google-genproto(-dev) and golang-google-grpc(-dev) in the archives, one with regenerated pb.go files for api v2 and one that is is backwards-compatible api v1, resp. gogo/protobuf, that declare incompatibility on each other?

2. For golang-google-genproto-dev and golang-google-grpc-dev, I uploaded two newer version of each with dependencies on golang-goprotobuf-dev (>= 1.4.3~) to experimental a while ago. Since golang-goprotobuf-dev (1.4.3) is no longer in experimental, they should instead build on golang-github-golang-protobuf-1-5-dev. In fact, the packages won't build even with golang-goprotobuf-dev (1.4.3) removed from experimental.

I just attempted to build those with github-golang-protobuf-1-5-dev, but there is a circular dependency. In debian/README.source it says:

There's a circular dependency in this package, it has
golang-google-genproto-dev in Build-Depends, which depends this package
as well.

To break this, we vendor the original protobuf definitions for rpc
functionality, from the following repos and commits:
https://github.com/grpc/grpc-proto/tree/master/grpc at commit da219ab.
https://github.com/googleapis/googleapis/tree/master/google/rpc at commit
 ae909b8.

I must admit I don't understand how to go on with this, any help or hint would be appreciated.

cheers,
Peymaneh

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


Reply to: