Kari Pahula
2024-11-18 15:50:02 UTC
Reply
Permalinkpackaging, I'd like to address one thing: git-buildpackage is very
complex to use. As an alternative, I'd like to propose a simpler
setup:
- Only store debian/ in the repository and use origtargz for the rest.
- One branch per distribution you target.
- Only tag debian revisions.
That's it, less is more. The master branch would be just a single
debian directory. What it specifically wouldn't have is an upstream
branch and no extracted upstream sources in any permanent branch.
The workflow on a new upstream version would be:
1. debchange (or equivalent) to bump debian/changelog.
2. Download orig.tar with origtargz.
3. Use pristine-lfs commit on the orig.tar.
pristine-tar wouldn't work with this setup since there wouldn't be an
upstream branch anymore. It wouldn't be too hard to have tooling to
do the three steps on one go. Step one could also include a commit.
gbp dch would still be useful with this workflow. gbp pq could be
made to work with this if you extracted orig.tar and committed it to a
temporary local working branch and used it against it. I'm not sure
if there's much else in gbp that'd be applicable anymore if you do
away with having an upstream branch.
This workflow is basically what the Haskell team is using [1] except
they don't commit orig.tar files to lfs but rely on having them
available from Hackage (Haskell's central community package hub).
I guess interfacing with upstream's git with gbp has its uses but it
just seems to me that the capability comes with a hefty cost. If you
can maintain a package with having orig.tar files be your interface to
upstream's releases then it simplifies things on our side a whole lot.
I've been a DD longer than git-buildpackage has been around and I've
been looking at using it at various times but pretty much every time
my reaction's been "must I?" I know a lot of people do use gbp daily
for work with good effect but somehow I suspect even they had quite a
steep learning curve to get into it. I wouldn't fancy the idea of
trying to explain how to use it to someone on d-mentors.
I must say that I haven't been that impressed with the DEP-18
discussion I've seen. It seems like the message has pretty
consistently been "if you don't use git you're the problem" and I'm
sick of it and I can tell you it only makes me want to ignore you. If
you ask me it's git-buildpackage's irreducible difficulty of use
that's the largest road block to increase the use of git for
packaging.
If gbp works for your team then good for you but you'll have to excuse
me if I'm not that enthusiastic about sending patches to your way. I
expect it's going to be contentious to come to the list to essentially
say that a widely used tool that was first released 18 years ago
sucks.
[1]: https://wiki.debian.org/Teams/DebianHaskellGroup/CollabMaint/GettingStarted#How_To_Update_the_Debianization_of_a_Package_Already_Under_DHG_Control