ideas@sullice.com

Please publish a stable release

8 July, 2021

Stable releases are more than a useful tool for others, they’re a useful tool for their maintainers because stable software is easier to maintain than unstable software.

Stable releases increase adoption. More users brings more eyes on your project’s features. More eyes find more bugs. Bugs are fixed by users. Therefore, stable software has more bugs fixed by others.

This is not true of unstable software because users are afraid to contribute to unstable projects. They are afraid that their work will be inapplicable, that the project has more bugs than they can fix, and that their changes will break other unreliable behavior. Instead of adopting and contributing to the project, they move on. Bugs in unstable software are rarely fixed by others.

Stable software is easier to maintain because the stability guarantee imposes a creative constraint. You, the maintainer, gain focus. Are you creating a new feature or fixing a bug? Is your refactor going to force you into writing a migration or can it be avoided? If neither is possible, is it worth creating a new major version? If not, stop working and move on to more important things.

Maintainers worry that their code isn’t ready for production. In many cases, the maintainer is using that software in production.

The GNU public license contains this clause:

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Most open source licenses have a similar caveat.

In other cases, maintainers delay a stable release because they believe that their project isn’t finished; they have a plan to rewrite something. Since their code is already in production, they have little incentive to do so.

Stable software is not immutable software. Version numbering makes this obvious.

The only limit on change is to avoid intentionally breaking users’ systems—unless one increments the major version number. In other words, maintainers are always free to change their projects in any way.

The only promise a maintainer makes in exchange for free bug fixes (see top of post), is to apply a meaningful version number to each release.

Please publish a stable release.


P.S. Please feel free to link to this page whenever you ask a maintainer to publish a stable release.