blog.bouah.net/content/posts/versioning.md

58 lines
2.6 KiB
Markdown
Raw Permalink Normal View History

---
title: "Versioning"
date: 2022-09-12T08:00:00Z
tags: [XMPP, Community, Free Software, Open Source, Expectations]
---
*I finally took time to setup a forge and some old drafts turned up. I am
publishing one of them today as is even though it's 4 years old
(2018-08-07T13:27:43+01:00). I'm not as grumpy as I was at the time but I
still think this applies.*
Today I am grumpy at people's expectation of a free software project, about
versioning and releases. I am mostly concerned about applications rather than
libraries in this article but I am sure some of this would apply to libraries
as well.
Today we were discussing about versioning and releases in the
[poezio](https://poez.io) chatroom.
Poezio is a console application, a small project maintained by a handful of
contributors to which I am grateful. I also have a few contributions myself.
The application is far from perfect but what software is anyway.
The last release -- as of writing -- for the project is `0.11`, published on
Jan 31, 2017. A bit over 1.5 years ago. Yes, the project is still being
actively maintained, but no release is being made for the moment.
**No**, not every project releases with the same regularity. **No**, not every
project has the same understanding of what a release is. Most projects don't
have the same constraints.
For some projects releases are sacred and I am happy for them. Maintained for
X months or even years to which will only be applied security fixes or
critical bug fixes (crashes and the like).
For others, releases are only checkpoints. A way of saying that features are
being added, bugs are being fixed, and have people talk about it.
There is no global definition of what a release is supposed to be. It is up to
project maintainers to decide what they want to see in it. They could very
well make a release every other commit and be happy with it if they wanted to
be silly. They would still be [semver](https://semver.org) compliant -- one of
the various versioning scheme defined out there.
Nothing also mandates they have to backport bug fixes to the current or
previous releases, and some projects actually cannot afford such a luxury. All
of this takes time and that is a really expensive resource in a project.
_Update from the present:_
_I think the issue I tried to convey in this article isn't that we don't have
time, or that there's no definition of a release, it's that I'm tired of being
imposed a vision of the world I don't agree with. What's more, people having
these expectations often don't even take part in the process of making the
project or in the community around it, at any level._