On 28/08/2025 22:06, Otto Kekäläinen wrote:
The NodeJS team does a lot of git-buildpackage component + watch file multipart structures (example https://salsa.debian.org/js-team/node-gyp/-/blob/master/debian/gbp.conf), but as Jeremy wrote we can't do it yet as uscan lacks ctype=go that actually reads go.mod and makes sure those dependencies are of correct version automatically. Also I think the structure is a bit overengineered with assumptions about frequent updates that most of the time are not there.
Well I ended up with an MUT approach.Tried to vendor-dependencies-and-publish, but `go mod vendor` was too efficient and didn't copy deep dependencies that I wanted to package, even if they were in go.mod but not imported directly.
However, reviewing usql's vendoring approach helped connect a few dots, so I went back to MUT and made that work for the original package (d2) that I wanted to package.
It now has 11 components and uses pristine-tar to keep track of the mess of git HEAD tarballs. But the good news is that it builds in a single package and the source is all .orig tarballs.
From what I saw, uscan and a component type wouldn't help much with MUT as upstreams are untagged/unreleased on github, versions not published on pkg.go.dev. Rather it's dh_golang that needs some extensions to configure a component and include it in the build. I had to do it with a shell script.
-- Regards, Ahmad