Debian’s git transition

65 points by fanf


technomancy

This is such great news to hear. Last year I spent a lonnnnng time trying to get Fennel packaged for Debian, and the difference between my Debian experience as a user (everything works perfectly, 100% of the time) and my Debian experience as a packager (documentation describes five different ways to do a common task, assumes you're a fervent autotools fan, and leaves out important details) was like night and day. The insistence that everything be centered around tarballs was particularly bizarre; if your upstream didn't publish tarballs no one could really agree on the right way to proceed. Note that the package I was trying to publish was nearly trivial; nothing architecture-specific, used a fairly standard Makefile, and only had one runtime dependency. It still took two years!

Many of Debian’s processes assume everyone is an insider. It’s okay that there are Debian insiders and that people feel part of something that they worked hard to become involved with. But lack of perspective can lead to software which fails to uphold our values.

It is so refreshing to hear someone else say this; someone who will actually be listened to and has the ability to change things. I am convinced that in the state I encountered things last year, it would be impossible for someone to learn on their own how to produce a compliant Debian package without a great deal of help from folks like the #debian-mentors channel.

jmtd

This is very exciting to me even as a long time Debian developer. I understand the old school pre-git way of managing Debian packages, but I’ve never got on with the current git tooling for Debian packaging. I find it opinionated in the wrong ways and over complex. What this team are working on seems fantastic.

gerow

At $previous_job we found it necessary to maintain an internal fork of Debian's kernel and, as this article implies, the actual git repo the maintainers use is completely disconnected from the upstream repo, and you're meant to use tools like git-buildpackage to pull down the tarball and perform an actual build. My team was full of Debian experts so this wasn't a huge problem.

If you maintain a fork, though, someone will want to send you patches, and some kernel devs from another part of the company wanted to try out their new whizbang approach to monitoring. After spending a few minutes writing a "how to debian kernel for non-debian-dorks" guide I quickly realized writing a tool to materialize the Debian repo into something that looked like a real upstream kernel checkout was way easier.

If I'd known about dgit at the time it definitely would have helped, and in either case this seems like a great move towards making The Debian Way look a lot more like the way the outside world does development.

adrien

AFAIU, nothing is actually happening.

Ian Jackson has created tag2upload but as far as I'm aware, it's not getting that much traction. The tag2upload team has a plan, but it's up to other people to carry it out.

In that regard, it's similar to previous related attempts. Just like with any other system, until everything is transitioned to the new format, the backend needs to handle the current format. This typically means the interface is going to remain the same. For debian, this is tarballs and debian/ and terrible developer experience. Of course, teams have higher-level workflows which hide this. Of course, all these workflows are different and won't benefit much, if at all, from being built on top of tag2upload.

The current Debian situation is terrible but I don't see it change unless a switch is mandated and developers have only two options: switch or leave. The "leave" part would be unfortunate but the switch does not have to be costly: the matter is just to change the storage and to give up debian/changelog being a terrible implementation of VCS history management where commit contents are ftp-uploaded tarballs.