Hi, .. > Since golang-github-cenkalti-backoff is already at v5 in experimental, I > suggest we package v4 as src:golang-github-cenkalti-backoff-v4 which produces > golang-github-cenkalti-backoff-v4-dev. > > This -v4 package would then live in unstable side-by-side with the v5 code in > the existing binary packages. This will break existing packages, which will > need to be fixed by either porting them to v5, or updating debian/control to > build against golang-github-cenkalti-backoff-v4-dev.
Even though this is a bit painful, I still think it is the best thing to do. The package name that is "versionless" should be reserved for the latest version, and if older versions are needed to be kept around, they should have the version suffix. Reinhard mentioned that Rust packages do this, and I have also done this in e.g. Godot where src:godot is the latest version (4.x) and src:godot3 is kept around for anything that still depends on it and will be maintained until upstream stops publishing security releases, or until nothing in Debian uses it anymore. >From the Salsa CI reverse builds dep job you shared I can see these are failing. Seems indeed majority (but not all) are failing on dependency on cenkalti/backoff/v4. Many of the packages are already using v5 upstream and would be fixed by simply updating the package, but not all. This topic also ties into the general question that who is expected to update what and when. As time goes by, Debian gets more and more packages that sit at a specific version for years build-rdep-deck 1.4.0 from 2021 (latest 1.54) src/github.com/kong/deck/diff/diff.go:28:17: undefined: backoff.WithMaxRetries src/github.com/kong/deck/diff/diff.go:424:5: in call to backoff.Retry, type backoff.BackOff of defaultBackOff() does not match backoff.Operation[T] (cannot infer T) build-rdep-docker.io 27.5.1 (latest 29.1.2, upstream has v5 already in https://github.com/moby/moby/blob/master/go.mod#L149 since v29.1.0) src/go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal/retry/retry.go:17:2: cannot find package "github.com/cenkalti/backoff/v4" in any of: build-rdep-gh 2.46.0 from January 2025 (latest 2.83) src/github.com/cli/cli/v2/internal/codespaces/codespaces.go:11:2: cannot find package "github.com/cenkalti/backoff/v4" in any of: build-rdep-golang-github-lestrrat-go-backoff 2.0.8 from 2021 (upstream dead since) src/github.com/lestrrat-go/backoff/bench/backoff_test.go:30:16: undefined: cenkalti.WithMaxRetries build-rdep-golang-github-maxmind-geoipupdate 6.1.0 from March 2025 (latest 7.1.1, unrelease upstream already has v5 support) src/github.com/maxmind/geoipupdate/pkg/geoipupdate/database/http_reader.go:17:2: cannot find package "github.com/cenkalti/backoff/v4" in any of: build-rdep-golang-github-ovn-org-libovsdb 0.8.1 from Oct 2025 (upstream does *not* support v5 yet) src/github.com/ovn-org/libovsdb/client/client.go:18:2: cannot find package "github.com/cenkalti/backoff/v4" in any of: build-rdep-golang-github-r3labs-sse 2.10 from Feb 2025 (upstream dead) src/github.com/r3labs/sse/client.go:19:2: cannot find package "github.com/cenkalti/backoff/v4" in any of: build-rdep-golang-github-xenolf-lego 4.9.1 from 2023 (latest 4.29.0) src/github.com/go-acme/lego/acme/api/api.go:12:2: cannot find package "github.com/cenkalti/backoff/v4" in any of: build-rdep-golang-github-zorkian-go-datadog-api src/github.com/zorkian/go-datadog-api/request.go:196:5: bo.MaxElapsedTime undefined (type *backoff.ExponentialBackOff has no field or method MaxElapsedTime) src/github.com/zorkian/go-datadog-api/request.go:228:33: in call to backoff.Retry, type *backoff.ExponentialBackOff of bo does not match backoff.Operation[T] (cannot infer T) build-rdep-golang-gvisor-gvisor src/gvisor.dev/gvisor/runsc/cgroup/cgroup.go:581:16: undefined: backoff.WithContext src/gvisor.dev/gvisor/runsc/cgroup/cgroup_v2.go:183:15: undefined: backoff.WithContext build-rdep-golang-opentelemetry-otel Can't stat exporters/jaeger/internal/third_party/thrift/NOTICE: No such file or directory build-rdep-gost src/github.com/knqyf263/gost/notifier/slack.go:60:20: undefined: backoff.RetryNotify build-rdep-incus src/github.com/lxc/incus/internal/server/network/ovn/ovn_icnb.go:13:2: cannot find package "github.com/cenkalti/backoff/v4" in any of: build-rdep-prometheus-alertmanager src/github.com/prometheus/alertmanager/notify/notify.go:25:2: cannot find package "github.com/cenkalti/backoff/v4" in any of: build-rdep-prometheus-sql-exporter src/github.com/justwatchcom/sql_exporter/job.go:223:5: bo.MaxElapsedTime undefined (type *backoff.ExponentialBackOff has no field or method MaxElapsedTime) src/github.com/justwatchcom/sql_exporter/job.go:224:8: bo.MaxElapsedTime undefined (type *backoff.ExponentialBackOff has no field or method MaxElapsedTime) src/github.com/justwatchcom/sql_exporter/job.go:225:6: bo.MaxElapsedTime undefined (type *backoff.ExponentialBackOff has no field or method MaxElapsedTime) src/github.com/justwatchcom/sql_exporter/job.go:227:37: in call to backoff.Retry, type *backoff.ExponentialBackOff of bo does not match backoff.Operation[T] (cannot infer T) build-rdep-restic 0.18.1 (upstream still using v4) src/github.com/restic/restic/internal/backend/local/local.go:21:2: cannot find package "github.com/cenkalti/backoff/v4" in any of: build-rdep-vuls The following packages have unmet dependencies: golang-github-olekukonko-tablewriter-dev : Breaks: golang-github-kotakanbe-go-cve-dictionary-dev (<= 0.3.1-5) but 0.3.1-5 is to be installed

