We should have a default standard packaging workflow
The problem
There are many ways to package a package, and choosing one becomes a problem in itself.
This impacts:
- people getting started with maintenance: "I found 3 different ways, which one should I use?"
- people doing QA work: "every package I need to change is set up in a different way!"
- people whose goal is to get software in Debian rather than to design a personal packaging workflow: "I don't care how I might want to do it, tell me a decent way to do it and I'll stick to that!"
Actual situation
In theory it's not hard to package a package: for most decently maintained upstream repositories, adding Debian packaging is a matter of adding metadata in debian/control
, a well made debian/copyright
file, debian/changelog
, and a number of boilerplate control files (the standard 3 lines debian/rules
, the debian/source/format
file, debian/compat
).
In practice there are choices in terms of gbp
workflows, git layout structures, chroot-based build systems that one still has to make.
Packaging is part of what I need to do, not of what I want to do, and making those choices is a burden to me. I'd like to adopt the workflow and toolset used by a majority of developers, to make sure I adopt a common and well understood practice, and tools that are more likely to be well supported and maintained.
While being able to have choices is a good thing, being required to make choices raises the bar significantly.
Expected situation
I would like to find in Debian a regularly maintained, well documented, somewhat opinionated default workflow, that can be used by people learning packaging, or by people needing to do packaging, as a good baseline experience.
As practices change, the workflow might change, and a standard default workflow can then have well documented migration paths to the next iteration of standard practices.
A standard workflow might also make it possible to create tools that leverage being able to make more assumptions about the situation, and provide better integration or automation.
Additional information
This was discussed some years ago, and from that discussion came out these recommendations.
I think Debian can and should do more in that direction.