45 lines
2 KiB
Markdown
45 lines
2 KiB
Markdown
|
---
|
||
|
title: "Versioning"
|
||
|
date: 2018-08-07T13:27:43+01:00
|
||
|
draft: true
|
||
|
---
|
||
|
|
||
|
*Today I am grumpy at people's expectation of projects, 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 client for [XMPP](https://xmpp.org), 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 in date (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 have the same understanding of what a release is. Most projects don't
|
||
|
have the same constraints.
|
||
|
|
||
|
For some projects, releases are sacred, (so-called __stability__, which am I
|
||
|
still in wait of a definition for), and I am happy for them. Maintained for X
|
||
|
months, 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, also possibly get some PR around it.
|
||
|
|
||
|
What appears in these releases is actually defined nowhere. It is up to
|
||
|
project maintainers to decide what they want to see in. I could very well make
|
||
|
a release every other commit and be happy with it if I wanted to be silly. I
|
||
|
would still be [semver](https://semver.org) compliant, one of the varion
|
||
|
versioning scheme defined out there.
|
||
|
|
||
|
Nothing also mandates I have to backport bug fixes to the current (or
|
||
|
previous) release, and some projects actually cannot afford such a luxury. All
|
||
|
of this takes time, a really expensive resource.
|