SemVer vs CalVer Battle Royale

Picking a good versioning scheme One would be surprised to see that even after decades of software development, there is no ultimate versioning scheme for software. SemVer Yes, we all know about SemVer and its MAJOR.MINOR.PATCH benefits. That alone does solve the question regarding which numbers should be incremented based on what changes were made. On the other hand SemVer does not take the passing of time into account and does not provide any information regarding how old is a release.

CentOS 8 Scream and containers saga

CentOS 8 Stream scream December 10th, 2020 started on the wrong foot for me. After I unlocked my computer: my main communication app TheLounge, a self hosted web irc client, went offline, the container was no longer running. This was a docker container running on my CentOS 8 Stream homelab server, one configured with unattended upgrades (yes yolo!). Apparently over the night the upgrade to Docker 20.10 messed the network stack and the service failed to even start.

How to test my Ansible content?

As community documentation guidelines for testing Ansible collections are still pending update, I will try to clarify few of the most important aspects today. You will see collections and content used almost as synonims, and that is not wrong. Colections can contain any combination of playbooks, roles, plugins or modules. Collections do replace the galaxy roles which are now in deprecation mode, and the only expectation is that authors will convert them to collections.

Penultimate Guide to Python Packaging

Penultimate Guide to Python Packaging If you came here hoping to finally find the answer about how to correctly create python packages you will have a big dissapointment. I will be very happy to replace this article with one that gives a decent recipe any packager can follow for producing sdists and wheels. pyproject.toml hidden gems If you dare to create a pyproject.toml file for your project you will use the ability to make editable installs with pip.

Managing Release Notes for Python Projects

Places where we may want to expose the release notes: PyPI project description page, but most projects do not list changelogs there unless they happen to keep them in their main README. GitHub Releases page, a very good place to see what is new, also allowing you to watch new releases on that project. Published documentation Git changelog does not replace release notes Looking at git changelog is not the most fulfilling experience as it can contain too much noise, like multiple attempts to reconfigure CI, lots of gradual changes that do not worth mentioning like fixing linting rules.

Using black and flake8 in tandem

This article assumes you are already familiar with flake8. Probably you faced at least one of the challenges below related to: adoption requires a lot of code reformatting some rules contradict each other, like W503/W504 different rules on different projects newer versions requiring rework … why I am wasting my time with linting Years ago, OpenStack team release a package named hacking which aimed to address some of the problems listed above.