Package: golang-google-api-dev
Followup-For: Bug #971359

golang-google-api-dev and golang-google-cloud certainly do require
each other. The Go ecosystem is kind of stupid that way.

Requirements are declared in the go.mod files:

google.golang.org/api [0.28.0] requires cloud.google.com/go v0.56.0

cloud.google.com/go [0.56.0] requires google.golang.org/api v0.20.0

You can see it's a bootstrapping problem.

golang-google-cloud needs golang-google-api >= 0.20.0 to build (our
previous version of golang-google-api was 0.21.0)

The new golang-google-api 0.28.0 needs golang-google-cloud 0.56.0 to
build (which is our current version).

The current upstream version of golang-google-api is 0.32.0, which
needs cloud.google.com/go v0.65.0 to build. We don't have that, so we
can't build golang-google-api 0.32.0 yet.

Likewise the latest upstream release of cloud is 0.66.0, which
requires google.golang.org/api v0.31.0. So we can't upgrade cloud to
the latest version.

Go is a bit of a dependency nightmare, see discussions on binNMUs from
https://lists.debian.org/debian-go/2020/08/msg00017.html

We need to bootstrap bit by bit. Now we've packaged golang-google-api
0.28.0, we'd need to identify which version golang-google-cloud builds
against against it and upgrade iteratively.

As far as Debian package dependencies go, we could break the impass by
setting one to Recommends (probably give golang-google-api priority
such that golang-google-api-dev Recommends: golang-google-api-dev).
But that would not truly reflect the self-referential nature of the Go
dependencies. The circular dependency is real.

Reply via email to