Bug#961814: marked as pending in golang-google-protobuf

2021-01-08 Thread Alberto Bertogli

On Fri, Jan 08, 2021 at 11:30:21PM +0800, Shengjing Zhu wrote:

On Fri, Jan 8, 2021 at 11:17 PM Alberto Bertogli
 wrote:


On Thu, Jan 07, 2021 at 11:12:24PM +0800, Shengjing Zhu wrote:
>On Thu, Jan 7, 2021 at 10:59 PM Alberto Bertogli
> wrote:
>> But those issues are not made worse by allowing golang-google-protobuf
>> to go in, right?
>>
>
>Let golang-google-protobuf go in is one thing, it's not difficult.
>However without golang-goprotobuf 1.4.x it's not useful currently. But
>it will be changed if upstream has switched to golang-google-protobuf
>only.

But IIUC that's what foka@'s lastest changes do - now the two packages
are independent so golang-google-protobuf can go in?

This would unblock:
1) Some upstream packages that have upgraded to the new library and are
using pregenerated pb.go without the dependency.
2) Packages that have moved/want to move to the new library and generate
pb.go as part of the build (without needing grpc).

And no packages are forced into anything, since upstream needs to do the
update explicitly anyway, the ones using golang-goprotobuf will continue
to function just fine.

I understand not all problems are fixed and some things remain, but it
seems it'd be a step in the right direction since at least some packages
will be able to move forward, without causing any new
complications/regressions.

Or am I missing something?



You are right. The only concern from my side is the usefulness of
golang-google-protobuf without upgrading golang-goprotobuf to 1.4.
If some packages are already ready for using golang-google-protobuf
solely, sure we should try.


Yeah, the reason I'm personally interested in this is I have one package 
I'm upstream for (chasquid) in this situation. I've already done the 
required patching and is blocked on this package.


I am also waiting on the change to move other projects forward for the 
same reason :)


Let me know if there's anything I can do, or how can I help!

Thanks again!
Alberto



Bug#961814: marked as pending in golang-google-protobuf

2021-01-08 Thread Shengjing Zhu
On Fri, Jan 8, 2021 at 11:17 PM Alberto Bertogli
 wrote:
>
> On Thu, Jan 07, 2021 at 11:12:24PM +0800, Shengjing Zhu wrote:
> >On Thu, Jan 7, 2021 at 10:59 PM Alberto Bertogli
> > wrote:
> >> But those issues are not made worse by allowing golang-google-protobuf
> >> to go in, right?
> >>
> >
> >Let golang-google-protobuf go in is one thing, it's not difficult.
> >However without golang-goprotobuf 1.4.x it's not useful currently. But
> >it will be changed if upstream has switched to golang-google-protobuf
> >only.
>
> But IIUC that's what foka@'s lastest changes do - now the two packages
> are independent so golang-google-protobuf can go in?
>
> This would unblock:
> 1) Some upstream packages that have upgraded to the new library and are
> using pregenerated pb.go without the dependency.
> 2) Packages that have moved/want to move to the new library and generate
> pb.go as part of the build (without needing grpc).
>
> And no packages are forced into anything, since upstream needs to do the
> update explicitly anyway, the ones using golang-goprotobuf will continue
> to function just fine.
>
> I understand not all problems are fixed and some things remain, but it
> seems it'd be a step in the right direction since at least some packages
> will be able to move forward, without causing any new
> complications/regressions.
>
> Or am I missing something?
>

You are right. The only concern from my side is the usefulness of
golang-google-protobuf without upgrading golang-goprotobuf to 1.4.
If some packages are already ready for using golang-google-protobuf
solely, sure we should try.

-- 
Shengjing Zhu



Bug#961814: marked as pending in golang-google-protobuf

2021-01-08 Thread Alberto Bertogli

On Thu, Jan 07, 2021 at 11:12:24PM +0800, Shengjing Zhu wrote:

On Thu, Jan 7, 2021 at 10:59 PM Alberto Bertogli
 wrote:

But those issues are not made worse by allowing golang-google-protobuf
to go in, right?



Let golang-google-protobuf go in is one thing, it's not difficult.
However without golang-goprotobuf 1.4.x it's not useful currently. But
it will be changed if upstream has switched to golang-google-protobuf
only.


But IIUC that's what foka@'s lastest changes do - now the two packages 
are independent so golang-google-protobuf can go in?


This would unblock:
1) Some upstream packages that have upgraded to the new library and are 
   using pregenerated pb.go without the dependency.
2) Packages that have moved/want to move to the new library and generate 
   pb.go as part of the build (without needing grpc).


And no packages are forced into anything, since upstream needs to do the 
update explicitly anyway, the ones using golang-goprotobuf will continue 
to function just fine.


I understand not all problems are fixed and some things remain, but it 
seems it'd be a step in the right direction since at least some packages 
will be able to move forward, without causing any new 
complications/regressions.


Or am I missing something?

Thanks!
Alberto



Bug#961814: marked as pending in golang-google-protobuf

2021-01-07 Thread Shengjing Zhu
On Thu, Jan 7, 2021 at 11:12 PM Shengjing Zhu  wrote:
>
> On Thu, Jan 7, 2021 at 10:59 PM Alberto Bertogli
>  wrote:
> > But those issues are not made worse by allowing golang-google-protobuf
> > to go in, right?
> >
>
> Let golang-google-protobuf go in is one thing, it's not difficult.
> However without golang-goprotobuf 1.4.x it's not useful currently. But
> it will be changed if upstream has switched to golang-google-protobuf
> only.

I think one thing possible is that, some packages' pb.go(which doesn't
use grpc) can be regenerated by
protoc-gen-go/1.25.0+git20201208.160c747-1, which will use
golang-google-protobuf-dev/1.25.0+git20201208.160c747-1 only.

The downside is only that we are ahead of most packages' upstream. But
it doesn't hurt much.

-- 
Shengjing Zhu



Bug#961814: marked as pending in golang-google-protobuf

2021-01-07 Thread Shengjing Zhu
On Thu, Jan 7, 2021 at 10:59 PM Alberto Bertogli
 wrote:
> But those issues are not made worse by allowing golang-google-protobuf
> to go in, right?
>

Let golang-google-protobuf go in is one thing, it's not difficult.
However without golang-goprotobuf 1.4.x it's not useful currently. But
it will be changed if upstream has switched to golang-google-protobuf
only.

> What's blocking golang-google-protobuf from moving to testing now that
> the dependency on golang-goprotobuf is no longer there?
>
> Is the issue that golang-google-protobuf source also builds a
> protoc-gen-go?
>

protoc-gen-go has been splitted and built by golang-google-protobuf.
But most upstream currently still use golang-goprotobuf to generate
pb.go, and haven't switched to use protoc-gen-go provided by
golang-google-protobuf, and protoc-gen-go-grpc provided by
golang-google-grpc-dev(which is not built by Debian currently).

> Why can't the latter be split, so upstreams that include pre-generated
> .pb.go (as is the official recommendation) can be included in Debian
> as-is using the corresponding dependency?
>

I doubt it will work. Most upstream pb.go which is generated by new
protoc-gen-go(provided by golang-goprotobuf/1.4), depends on both
golang-goprotobuf and golang-google-protobuf, and need
golang-goprotobuf/1.4

-- 
Shengjing Zhu



Bug#961814: marked as pending in golang-google-protobuf

2021-01-07 Thread Alberto Bertogli

On Thu, Jan 07, 2021 at 04:43:43PM +0800, Shengjing Zhu wrote:

On Thu, Jan 7, 2021 at 2:51 PM Anthony Fok  wrote:


Hi Shengjing,

On Tue, Jan 5, 2021 at 8:42 AM Shengjing Zhu  wrote:
>
> Hi Anthony,

Thanks for writing to me!  Sorry for the late reply.
I was going to re-open this with the pseudo header "Control: reopen
-1" to keep this new version out of testing (buster), but then I
decided to study the issue further, I think we are safe to move
forward, allowing golang-google-protobuf to enter testing, while
keeping the old golang-goprotobuf 1.3.x if necessary.

> The reason that I haven't uploaded new version of this package, is
> that using golang-google-protobuf usually means using
> golang-goprotobuf 1.4+ as well.

Looks like that is not the case any more.
While golang-google-protobuf and protoc-gen-go v1.25.0 would still
pull in the old golang-goprotobuf 1.4+ package in the generated file,
apparently for backward compatibility during the 6-month transition
period that Joe Tsai @dsnet set:

import (
proto "github.com/golang/protobuf/proto"
...
)

Well, I think we have good news!

1.25.0+git20201208.160c747 doesn't do that any more.
The import proto "github.com/golang/protobuf/proto" line is gone;
the "const _ = proto.ProtoPackageIsVersion4" is also gone.

The latest golang-google-protobuf makes a clean break from the past.
It is now self-contained, and no longer pulls in the legacy golang-goprotobuf.
It is just like what you predicted: once GitHub issue #1077 is fixed,
we can move forward.

Thank you for your packaging of golang-google-protobuf which also
allows the clean separation with the old golang-goprotobuf ecosystem.



The problem is currently all upstream still use golang-goprotobuf to
generate pb.go, not the plugin from
https://github.com/protocolbuffers/protobuf-go/tree/master/cmd/protoc-gen-go
If we choose to use this plugin ahead of upstream, and leave
golang-goprotobuf not updated(and not used in B-D), then things will
be fine. But upstream says there are still missing features like grpc
support, which are moved to grpc package itself. I haven't looked at
this part. However it will become a difficult transition, which
involves golang-google-grpc-dev, golang-google-genproto-dev, etc...


But those issues are not made worse by allowing golang-google-protobuf 
to go in, right?


What's blocking golang-google-protobuf from moving to testing now that 
the dependency on golang-goprotobuf is no longer there?


Is the issue that golang-google-protobuf source also builds a 
protoc-gen-go?


Why can't the latter be split, so upstreams that include pre-generated 
.pb.go (as is the official recommendation) can be included in Debian 
as-is using the corresponding dependency?


Thanks!
Alberto



Bug#961814: marked as pending in golang-google-protobuf

2021-01-07 Thread Shengjing Zhu
On Thu, Jan 7, 2021 at 2:51 PM Anthony Fok  wrote:
>
> Hi Shengjing,
>
> On Tue, Jan 5, 2021 at 8:42 AM Shengjing Zhu  wrote:
> >
> > Hi Anthony,
>
> Thanks for writing to me!  Sorry for the late reply.
> I was going to re-open this with the pseudo header "Control: reopen
> -1" to keep this new version out of testing (buster), but then I
> decided to study the issue further, I think we are safe to move
> forward, allowing golang-google-protobuf to enter testing, while
> keeping the old golang-goprotobuf 1.3.x if necessary.
>
> > The reason that I haven't uploaded new version of this package, is
> > that using golang-google-protobuf usually means using
> > golang-goprotobuf 1.4+ as well.
>
> Looks like that is not the case any more.
> While golang-google-protobuf and protoc-gen-go v1.25.0 would still
> pull in the old golang-goprotobuf 1.4+ package in the generated file,
> apparently for backward compatibility during the 6-month transition
> period that Joe Tsai @dsnet set:
>
> import (
> proto "github.com/golang/protobuf/proto"
> ...
> )
>
> Well, I think we have good news!
>
> 1.25.0+git20201208.160c747 doesn't do that any more.
> The import proto "github.com/golang/protobuf/proto" line is gone;
> the "const _ = proto.ProtoPackageIsVersion4" is also gone.
>
> The latest golang-google-protobuf makes a clean break from the past.
> It is now self-contained, and no longer pulls in the legacy golang-goprotobuf.
> It is just like what you predicted: once GitHub issue #1077 is fixed,
> we can move forward.
>
> Thank you for your packaging of golang-google-protobuf which also
> allows the clean separation with the old golang-goprotobuf ecosystem.
>

The problem is currently all upstream still use golang-goprotobuf to
generate pb.go, not the plugin from
https://github.com/protocolbuffers/protobuf-go/tree/master/cmd/protoc-gen-go
If we choose to use this plugin ahead of upstream, and leave
golang-goprotobuf not updated(and not used in B-D), then things will
be fine. But upstream says there are still missing features like grpc
support, which are moved to grpc package itself. I haven't looked at
this part. However it will become a difficult transition, which
involves golang-google-grpc-dev, golang-google-genproto-dev, etc...

> > However golang-goprotobuf 1.4+ breaks important packages like
> > golang-gogottrpc and golang-gogoprotobuf.
> > See that bugs on
> > https://bugs.debian.org/cgi-bin/pkgreport.cgi?repeatmerged=no=golang-goprotobuf
>
> Since golang-google-protobuf 1.25.0+git20201208.160c747 does not
> require golang-goprotobuf 1.4+ any more, we can keep golang-goprotobuf
> at 1.3.4-2 for buster to be safe.
>
> I did try running ratt with a local test build of golang-goprotobuf
> 1.4.2, and was surprised that golang-gogottrpc built fine with it:
>
> 2021/01/05 18:14:30 PASSED: golang-gogottrpc
>
> while golang-gogoprotobuf is not touched at all.  Am I missing something?

If I read this comment correctly
https://github.com/containerd/ttrpc/issues/62#issuecomment-686768932

When golang-goprotobuf is updated to 1.4.x, then
golang-google-genproto-dev is rebuilt with golang-goprotobuf/1.14,
golang-gogoprotobuf will panic, and then golang-gogottrpc panics too.

-- 
Shengjing Zhu



Bug#961814: marked as pending in golang-google-protobuf

2021-01-06 Thread Anthony Fok
Hi Shengjing,

On Tue, Jan 5, 2021 at 8:42 AM Shengjing Zhu  wrote:
>
> Hi Anthony,

Thanks for writing to me!  Sorry for the late reply.
I was going to re-open this with the pseudo header "Control: reopen
-1" to keep this new version out of testing (buster), but then I
decided to study the issue further, I think we are safe to move
forward, allowing golang-google-protobuf to enter testing, while
keeping the old golang-goprotobuf 1.3.x if necessary.

> The reason that I haven't uploaded new version of this package, is
> that using golang-google-protobuf usually means using
> golang-goprotobuf 1.4+ as well.

Looks like that is not the case any more.
While golang-google-protobuf and protoc-gen-go v1.25.0 would still
pull in the old golang-goprotobuf 1.4+ package in the generated file,
apparently for backward compatibility during the 6-month transition
period that Joe Tsai @dsnet set:

import (
proto "github.com/golang/protobuf/proto"
...
)

Well, I think we have good news!

1.25.0+git20201208.160c747 doesn't do that any more.
The import proto "github.com/golang/protobuf/proto" line is gone;
the "const _ = proto.ProtoPackageIsVersion4" is also gone.

The latest golang-google-protobuf makes a clean break from the past.
It is now self-contained, and no longer pulls in the legacy golang-goprotobuf.
It is just like what you predicted: once GitHub issue #1077 is fixed,
we can move forward.

Thank you for your packaging of golang-google-protobuf which also
allows the clean separation with the old golang-goprotobuf ecosystem.

> However golang-goprotobuf 1.4+ breaks important packages like
> golang-gogottrpc and golang-gogoprotobuf.
> See that bugs on
> https://bugs.debian.org/cgi-bin/pkgreport.cgi?repeatmerged=no=golang-goprotobuf

Since golang-google-protobuf 1.25.0+git20201208.160c747 does not
require golang-goprotobuf 1.4+ any more, we can keep golang-goprotobuf
at 1.3.4-2 for buster to be safe.

I did try running ratt with a local test build of golang-goprotobuf
1.4.2, and was surprised that golang-gogottrpc built fine with it:

2021/01/05 18:14:30 PASSED: golang-gogottrpc

while golang-gogoprotobuf is not touched at all.  Am I missing something?

But yes, I'm sure you are much more familiar with golang-goprotobuf,
so if 1.4+ is indeed dangerous to other legacy packages, we'll just
have to make sure no one in the Go Team uploads golang-goprotobuf 1.4+
for buster.

Cheers,

Anthony



Bug#961814: marked as pending in golang-google-protobuf

2021-01-05 Thread Shengjing Zhu
Hi Anthony,

On Tue, Jan 5, 2021 at 11:27 PM Anthony Fok  wrote:
>
> Control: tag -1 pending
>
> Hello,
>
> Bug #961814 in golang-google-protobuf reported by you has been fixed in the
> Git repository and is awaiting an upload. You can see the commit
> message below and you can check the diff of the fix at:
>
> https://salsa.debian.org/go-team/packages/golang-google-protobuf/-/commit/674e3bd39673f62ccce5786c1bf8a1094a86d718
>
> 
> debian/watch: Fetch from Git HEAD temporarily
>
> to get fixes for issues #1077 and #1168, see
> https://github.com/golang/protobuf/issues/1168 and
> https://github.com/golang/protobuf/issues/1077
>
> Closes: #961814
> 
>
> (this message was generated automatically)
> --
> Greetings
>
> https://bugs.debian.org/961814


The reason that I haven't uploaded new version of this package, is
that using golang-google-protobuf usually means using
golang-goprotobuf 1.4+ as well.
However golang-goprotobuf 1.4+ breaks important packages like
golang-gogottrpc and golang-gogoprotobuf.
See that bugs on
https://bugs.debian.org/cgi-bin/pkgreport.cgi?repeatmerged=no=golang-goprotobuf

Meanwhile packages which need golang-google-protobuf can be easily
fixed by regenerating protobuf files, or changing import path to old
one.

--
Shengjing Zhu