Skip to content

Conversation

n-peugnet
Copy link
Contributor

Simply log a message once about mismatched major versions in the log output, and do not print all of their children.

For packages with a lot of dependencies, the previous behaviour was producing a lot of noise. If a module is already packaged, even with a different major version, it will probably not miss a lot of dependencies.

@n-peugnet
Copy link
Contributor Author

Here is a diff of the output before and after for a quite big module (the time of the log messages is edited for a better looking diff):

--- /tmp/before	2025-04-17 10:42:28.094158540 +0200
+++ /tmp/after	2025-04-17 10:42:16.654140511 +0200
@@ -1,41 +1,35 @@
 $ dh-make-golang estimate -git_revision v1.8.4 github.com/livekit/livekit-server
+2025/04/17 10:xx:xx github.com/d5/tengo/v2 has no version string in Debian
+2025/04/17 10:xx:xx github.com/jellydator/ttlcache/v3 has no version string in Debian
+2025/04/17 10:xx:xx github.com/pion/ice/v4 is v2 in Debian
+2025/04/17 10:xx:xx github.com/pion/stun/v3 has no version string in Debian
+2025/04/17 10:xx:xx github.com/pion/transport/v3 has no version string in Debian
+2025/04/17 10:xx:xx github.com/pion/webrtc/v4 has no version string in Debian
+2025/04/17 10:xx:xx github.com/pion/dtls/v3 is v2 in Debian
+2025/04/17 10:xx:xx github.com/pion/mdns/v2 has no version string in Debian
+2025/04/17 10:xx:xx github.com/pion/sdp/v3 has no version string in Debian
+2025/04/17 10:xx:xx github.com/pion/srtp/v3 is v2 in Debian
+2025/04/17 10:xx:xx github.com/pion/turn/v4 is v2 in Debian
 2025/04/17 10:xx:xx Could not determine repo path for import path "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go": unrecognized import path "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go"
 2025/04/17 10:xx:xx google.golang.org/genproto/googleapis/api is packaged as google.golang.org/genproto in Debian
 2025/04/17 10:xx:xx google.golang.org/genproto/googleapis/rpc is packaged as google.golang.org/genproto in Debian
+2025/04/17 10:xx:xx github.com/cenkalti/backoff/v4 has no version string in Debian
+2025/04/17 10:xx:xx github.com/cespare/xxhash/v2 has no version string in Debian
+2025/04/17 10:xx:xx github.com/puzpuzpuz/xsync/v3 has no version string in Debian
 2025/04/17 10:xx:xx go.uber.org/zap/exp is packaged as go.uber.org/zap in Debian
+2025/04/17 10:xx:xx github.com/urfave/negroni/v3 has no version string in Debian
 2025/04/17 10:xx:xx Bringing github.com/livekit/livekit-server to Debian requires packaging the following Go modules:
 github.com/livekit/livekit-server
-  github.com/d5/tengo/v2	(github.com/d5/tengo in Debian)
   github.com/dennwc/iters
     github.com/shoenig/test
   github.com/elliotchance/orderedmap/v2
   github.com/florianl/go-tc
   github.com/frostbyte73/core
   github.com/gammazero/workerpool
-  github.com/jellydator/ttlcache/v3	(github.com/jellydator/ttlcache in Debian)
   github.com/jxskiss/base62
   github.com/livekit/mageutil
   github.com/livekit/mediatransportutil
     github.com/livekit/protocol
-    github.com/pion/ice/v4	(github.com/pion/ice/v2 in Debian)
-    github.com/pion/stun/v3	(github.com/pion/stun in Debian)
-      github.com/pion/dtls/v3	(github.com/pion/dtls/v2 in Debian)
-      github.com/pion/transport/v3	(github.com/pion/transport in Debian)
-    github.com/pion/transport/v3 (2)
-    github.com/pion/webrtc/v4	(github.com/pion/webrtc in Debian)
-    github.com/pion/dtls/v3 (2)
-      github.com/pion/transport/v3 (3)
-    github.com/pion/mdns/v2	(github.com/pion/mdns in Debian)
-      github.com/pion/transport/v3 (4)
-    github.com/pion/sdp/v3	(github.com/pion/sdp in Debian)
-    github.com/pion/srtp/v3	(github.com/pion/srtp/v2 in Debian)
-      github.com/pion/transport/v3 (5)
-    github.com/pion/turn/v4	(github.com/pion/turn/v2 in Debian)
-      github.com/pion/stun/v3 (2)
-        github.com/pion/dtls/v3 (3)
-        github.com/pion/transport/v3 (6)
-      github.com/pion/transport/v3 (7)
-      github.com/pion/dtls/v3 (4)
   github.com/livekit/protocol (2)
     buf.build/go/protoyaml
       buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go
@@ -60,17 +54,11 @@
       github.com/twitchtv/twirp
       github.com/Microsoft/go-winio
       github.com/Nvveen/Gotty
-      github.com/cenkalti/backoff/v4	(github.com/cenkalti/backoff in Debian)
-      github.com/cespare/xxhash/v2	(github.com/cespare/xxhash in Debian)
     github.com/mackerelio/go-osstat
     github.com/maxbrunsfeld/counterfeiter/v6
-    github.com/pion/sdp/v3 (2)
-    github.com/pion/webrtc/v4 (2)
-    github.com/puzpuzpuz/xsync/v3	(github.com/puzpuzpuz/xsync in Debian)
     github.com/redis/go-redis/v9 (2)
       github.com/bsm/ginkgo/v2
       github.com/bsm/gomega
-      github.com/cespare/xxhash/v2 (2)
     github.com/twitchtv/twirp (2)
     buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go (3)
     cel.dev/expr (3)
@@ -80,24 +68,6 @@
       github.com/envoyproxy/protoc-gen-validate (2)
       cel.dev/expr (4)
       github.com/antlr4-go/antlr/v4 (4)
-    github.com/cespare/xxhash/v2 (3)
-    github.com/pion/dtls/v3 (5)
-      github.com/pion/transport/v3 (8)
-    github.com/pion/ice/v4 (2)
-    github.com/pion/mdns/v2 (2)
-      github.com/pion/transport/v3 (9)
-    github.com/pion/srtp/v3 (2)
-      github.com/pion/transport/v3 (10)
-    github.com/pion/stun/v3 (3)
-      github.com/pion/dtls/v3 (6)
-      github.com/pion/transport/v3 (11)
-    github.com/pion/transport/v3 (12)
-    github.com/pion/turn/v4 (2)
-      github.com/pion/stun/v3 (4)
-        github.com/pion/dtls/v3 (7)
-        github.com/pion/transport/v3 (13)
-      github.com/pion/transport/v3 (14)
-      github.com/pion/dtls/v3 (8)
   github.com/livekit/psrpc (2)
     github.com/frostbyte73/core (4)
     github.com/livekit/mageutil (4)
@@ -106,77 +76,14 @@
     github.com/twitchtv/twirp (3)
     github.com/Microsoft/go-winio (2)
     github.com/Nvveen/Gotty (2)
-    github.com/cenkalti/backoff/v4 (2)
-    github.com/cespare/xxhash/v2 (4)
   github.com/mackerelio/go-osstat (2)
   github.com/maxbrunsfeld/counterfeiter/v6 (2)
     github.com/sclevine/spec
   github.com/ory/dockertest/v3 (3)
-  github.com/pion/dtls/v3 (9)
-    github.com/pion/transport/v3 (15)
-  github.com/pion/ice/v4 (3)
-    github.com/pion/dtls/v3 (10)
-      github.com/pion/transport/v3 (16)
-    github.com/pion/mdns/v2 (3)
-      github.com/pion/transport/v3 (17)
-    github.com/pion/stun/v3 (5)
-      github.com/pion/dtls/v3 (11)
-      github.com/pion/transport/v3 (18)
-    github.com/pion/transport/v3 (19)
-    github.com/pion/turn/v4 (3)
-      github.com/pion/stun/v3 (6)
-        github.com/pion/dtls/v3 (12)
-        github.com/pion/transport/v3 (20)
-      github.com/pion/transport/v3 (21)
-      github.com/pion/dtls/v3 (13)
-  github.com/pion/sdp/v3 (3)
-  github.com/pion/transport/v3 (22)
-  github.com/pion/turn/v4 (4)
-    github.com/pion/stun/v3 (7)
-      github.com/pion/dtls/v3 (14)
-      github.com/pion/transport/v3 (23)
-    github.com/pion/transport/v3 (24)
-    github.com/pion/dtls/v3 (15)
-  github.com/pion/webrtc/v4 (3)
-    github.com/pion/dtls/v3 (16)
-      github.com/pion/transport/v3 (25)
-    github.com/pion/ice/v4 (4)
-      github.com/pion/dtls/v3 (17)
-        github.com/pion/transport/v3 (26)
-      github.com/pion/mdns/v2 (4)
-        github.com/pion/transport/v3 (27)
-      github.com/pion/stun/v3 (8)
-        github.com/pion/dtls/v3 (18)
-        github.com/pion/transport/v3 (28)
-      github.com/pion/transport/v3 (29)
-      github.com/pion/turn/v4 (5)
-        github.com/pion/stun/v3 (9)
-          github.com/pion/dtls/v3 (19)
-          github.com/pion/transport/v3 (30)
-        github.com/pion/transport/v3 (31)
-        github.com/pion/dtls/v3 (20)
-    github.com/pion/sdp/v3 (4)
-    github.com/pion/srtp/v3 (3)
-      github.com/pion/transport/v3 (32)
-    github.com/pion/stun/v3 (10)
-      github.com/pion/dtls/v3 (21)
-      github.com/pion/transport/v3 (33)
-    github.com/pion/transport/v3 (34)
-    github.com/sclevine/agouti
-    github.com/pion/mdns/v2 (5)
-      github.com/pion/transport/v3 (35)
-    github.com/pion/turn/v4 (6)
-      github.com/pion/stun/v3 (11)
-        github.com/pion/dtls/v3 (22)
-        github.com/pion/transport/v3 (36)
-      github.com/pion/transport/v3 (37)
-      github.com/pion/dtls/v3 (23)
   github.com/redis/go-redis/v9 (4)
     github.com/bsm/ginkgo/v2 (2)
     github.com/bsm/gomega (2)
-    github.com/cespare/xxhash/v2 (5)
   github.com/twitchtv/twirp (4)
-  github.com/urfave/negroni/v3	(github.com/urfave/negroni in Debian)
   buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go (5)
   buf.build/go/protoyaml (2)
     buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go (6)
@@ -196,15 +103,5 @@
     github.com/envoyproxy/protoc-gen-validate (4)
     cel.dev/expr (8)
     github.com/antlr4-go/antlr/v4 (8)
-  github.com/cenkalti/backoff/v4 (3)
-  github.com/cespare/xxhash/v2 (6)
   github.com/lithammer/shortuuid/v4 (2)
-  github.com/pion/mdns/v2 (6)
-    github.com/pion/transport/v3 (38)
-  github.com/pion/srtp/v3 (4)
-    github.com/pion/transport/v3 (39)
-  github.com/pion/stun/v3 (12)
-    github.com/pion/dtls/v3 (24)
-    github.com/pion/transport/v3 (40)
-  github.com/puzpuzpuz/xsync/v3 (2)

Copy link
Contributor

@ottok ottok left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this change makes sense, and is well implemented.

n-peugnet added 2 commits May 5, 2025 17:19
Simply log a message once about mismatched major versions in the log
output, and do not print all of their children.

For packages with a lot of dependencies, the previous behaviour was
producing a lot of noise. If a module is already packaged, even with
a different major version, it will probably not miss a lot of
dependencies.
This allows to get an easy access to the tracker page of the corresponding
packages in case of approximate matches, which is especially useful when
the major version present in Debian cannot be determined from the value of
Go-Import-Path.
@n-peugnet
Copy link
Contributor Author

I just rebased and pushed an additional commit that displays the name of the corresponding Debian package for approximate matches, along with a link to the tracker page of this package (on terminal emulators that supports them).

2025-05-05-173728_821x557_scrot

@ottok
Copy link
Contributor

ottok commented May 16, 2025

No other comments, proceeding to merging this.

@ottok ottok merged commit c49bae1 into Debian:master May 16, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants