I had to create a deb for a web app, it had to setup and populate a DB (from web sources), and manage updates for this db when you upgraded the deb. It had a build process of static files that couldn't be vendored. It has a lot of configuration to be entered prior those would happen, using debconf. It had to vendor a virtualenv. I had dependancies on 2 other web apps that had the same story, and they shared some config files.

I didn't chose this architecture. But I was tasked to package it so that people could just "apt get install stuff" and start using it.

It was HARD.

The tech is very old school, it doesn't give a lot of feedback, it's hard to debug, documentation is sparse and examples in the wild are not up to date, not to mention the state of tooling. And you do all that with shell scripting, the worst language for the job. Sure you can use anything else, if you like zero doc and example.

Then we had to distribute it.

Well, turns out creating an APT repo is not so easy, either.

Now, we did all that by cutting a lot of corners, zero red tape, and only us to please. Also, the consequences of not using best practices, or worst, breaking something, were few.

On a team of 6, only 2 were really understanding what was going on. The rest were lost, awaiting instructions from us because they just couldn't picture were their work would fit in this blob of bash workflow. Now that I'm gone, I have no idea how the team is going to maintain the thing.

I can't imagine doing the same thing with the level of road block working for something as sensitive as the official debian repo would bring.

If debian wants more contributors, they have to make this stuff way, way more accessible. And be friendlier with people telling them it's hard.

Every time I raised the topic, somebody came along to say I shouldn't be doing x or y. Or just that I shouldn't be packaging something and just publish it on the debian repo, letting the debian maintainers do the packaging. It's not going to bring me to work with the community if the first taste of it is the demonstration they completely ignore their shortcomings.

And I say that while I've been typing apt commands for a decade now. I'm also french. Debian is, with VLC, Libre Office and Firefox, one of the 4 pillars of FOSS for me.

Making deb _is_ painful, the politics of how packages are folded, bent, welded, drilled and smashed is not a simple landscape to navigate.

A lot of Docker is a response to how difficult it is to build packages and how invasive package installation is to the base system (Nix gets this right).

If in the future you need to build packages again, I'd take a look at fpm.

The goal of fpm is to make it easy and quick to build packages such as rpms, debs, OSX packages, etc.

https://fpm.readthedocs.io/en/latest/

https://github.com/jordansissel/fpm