In Python, there's no requirement that package versions follow the major.minor.patch scheme... Couple years ago the world discovered that one of the packages critical to virtually every Python project on Earth (crypto-something? I forgot what exactly that was) had this same idea about versions: use floating point numbers.
It was a mini-2000 for a day or two. A lot of CI pipelines broke.
Even after they were told that they made a mess, they still didn't do it right, and had to continue doing it in their own unnecessarily unique way. Sigh
The cryptography package is very popular, but "critical to virtually every Python project on Earth" is massive overstatement. It's not even in the top 20 most downloaded from PyPI (https://pypistats.org/top). I've never used it, while I've used Numpy many times.
The new scheme is fine. They are correct to describe it as semver-compatible — they assess that every time they add functionality it is backwards-incompatible, and their backwards-compatible changes are inherently just bugfixes. And they are correct that Firefox version numbers have been doing the same thing, and thus their way is not unique.
The old cryptography version numbers were not "floating point numbers" (as demonstrated by the fact that they often had two decimal points). They were just incorrectly using the major and minor parts of a version number to communicate what changed between releases. They weren't doing anything like expecting version 1.11 to be treated as older than version 1.2. I can't fathom how this is supposed to have broken CI pipelines.
I think this package is, basically, a requirement for anything Web-related in Python, but also stuff like SSH (so Paramico? or similar? Didn't look if they depend on it). So, also stuff like Ansible... well, anything that needs to authenticate using cryptographic protocols.
You don't have to be the most popular to break every CI in the world. If you are only responsible for authentication, it's enough to break all CI in the world :)
> To make matters interesting, a leading v on a Perl version, or the presence of 2 or more .'s imply a sort order closer to Gentoos.
This is 100% classic perl: the default is bonkers and unintuitive, but the behaviour also changes in a DWIM manner to throw people off. And of course there are two different ways to represent versions so simply forgetting the v (one character) can cause a litany of bugs.