Calamares Future
Calamares serves the needs of several dozen Linux distributions, large and small. It’s been around for 2892 days, give-or-take, nearly eight years. So what have we got for this anniversary?
These are personal notes, with my being-me-and-maintainer hat on. I’m posting it to my own blog, and the Calamares news site.
Current Stats
It is week 18 of 2022 when I write this. We’ve had 8 releases in 2022 (3.2.50 through 3.2.57), which is roughly every two weeks. This regular short-cycle pattern has been going for two or three years now. I’ve described the development workflow before. I still think it’s quite effective at getting things out to users, although I can also say that getting fixes for annoying, hard-to-reach bugs out is very slow going. Often branches get interrupted by small things that do fit in a short-cycle.
There are 165 open issues today, of about 1940 opened in total. That’s pretty good.
87 people have participated in Calamares development since it started. or 125, depending on how you count.
I have apparently committed over 1.2 million lines of code (and removed 933 thousand lines). This is a diffstat, and also includes things like “apply the code-formatter to the entire codebase” and “update the translations”, so it is definitely overblown – but it’s still a lot of code over the past 5 years.
Current Development
There are two primary branches for Calamares development:
- calamares is the current production-ready, current-releases, short-cycle branch. It it currently version 3.2.57, and will continue to produce 3.2 versions for a little while more.
- work-3.3 is the next production-ready branch. It drops a whole lot of backwards-compatibility, but makes somewhat different promises than 3.2 about stability and compatibility within the branch.
There is a gentle stream of new and returning contributors besides myself. I try to handle pull requests (PRs, basically code contributions with a request to look it over and push the button to merge) quickly and give some helpful advice while I’m at it. Having a bunch of formatting things automated means that we don’t need to quibble over that (and can quibble over how Pythonic something is, instead).
Future Development
The 3.2 series is slowing down, although it will probably continue to get short-cycle releases with small bugfixes (possibly large ones, but don’t count on it). At some point, a 3.2.x-stable will be created, and any future releases will come from that, while calamares then moves into the 3.3 era.
There is no fixed timeline for this. Whenever the feeling is right.
I continue to document what I can, writing down processes and creating guides – alongside writing code, doing PR, etc. – so that others can step in and participate. There are good-first-issue issues in the bug tracker, various small code-improvements listed, all kinds of things to introduce people to the codebase. Then there’s translation and documentation writing: the wiki is open, for instance.
There is an elephant in the room. Two, perhaps: hosting of the code and issues, and hosting of the translations. A question I get with some regularity is whether Calamares will move – to KDE infrastructure, or codeberg, or opencode. I am reluctant – and that shows exactly the problem with forges and how they lock-in users. Drew DeVault has some good words there, but it hasn’t pushed me over to other hosting yet.
Up Next
There are 21 “TODO:3.3” entries in the source code. Probably bopping each one of them on the head is a good plan. Outside of that, there’s a few big-ticket internal consistency plans – consistent Config classes, view-step naming and labeled translations, presets handling everywhere – that might land for 3.3 or might be deferred to later (for instance, deferred because they’re too much to do right now, and interfere with stability promises).
These plans aren’t particularly visible: they’re “just” maintainence, and anyone with a slab of time and some persistence could pick them up. I started in 2017 with small experiments and merging stale pull-requests, and here we are, 6288 commits later.
When I say “anyone” I mean that it is possible, while I’m keenly aware of the privileges I have that made it possible for me: stability, networking, and Blue Systems sponsoring me for my time so that I can feed my familty and work on Free Software.