On Thu, Jun 6, 2024 at 9:33 AM Reinhard Tartler <siret...@gmail.com> wrote:
[...]
> So how do we get out of this mess? Unless we want to break (read: remove from 
> testing/unstable) quite a large number of packages, I would suggest to 
> introduce:
>
> * src:golang-google-genproto-apiv1 which is essentially a rename of the 
> package golang-google-genproto we have currently in sid. This contains the 
> fundamental types for googleapis and protobuf compiled with 
> golang/protobuf@v1.3 and thus implements the APIv1
> * src:golang-google-grpc-apiv1 which is essentially a rename of the package 
> golang-google-grpc we have currently in sid. This is built against the 
> golang-google-genproto-apiv1-dev binary package (which comes from 
> src:golang-google-genproto-apiv1) and serves as a stop-gap for existing 
> applications that are not ready to be ported to APIv2.
>
> With those packages in place, we can then:
> * Upload src:golang-google-genproto from experimental to sid
> * Update src:golang-google-grpc from experimental to sid
> * Fix packages that FTBFS by either updating them to newer upstream versions 
> that compile against protobuf APIv2, or update their build-depends to build 
> against the APIv1 versions.
>

These apiv1 packages are going to cause a mess as well. Because the
old and new versions are the same module, they will conflict with each
other, just like the golang-github-golang-protobuf-1-{3,5}-dev
packages. An application can only use one at a time.

Moreover, if a package is compatible with
golang-github-golang-protobuf-1-3-dev as runtime, it should (in
theory) be compatible with golang-github-golang-protobuf-1-5-dev.
However if a package can use apiv1 pb.go files, it can't use apiv2
pb.go files, which looks worse then the runtime dependencies.

-- 
Shengjing Zhu

Reply via email to