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