3 ms·
> Half of them don't even use semantic versioning. This is a red herring. Distros existed before semantic versioning was defined and had to deal with those iss
by viraptor 2y ago
> Half of them don't even use semantic versioning.
This is a red herring. Distros existed before semantic versioning was defined and had to deal with those issues for ages. When packaging, you check for the behaviour changes in the package and its dependencies. The version numbers are a tiny indicator, but mostly meaningless.
- gleb 2y agoI think semantic versioning actually predates distributions. It just was not called "semantic versioning." It was called Unix shared library versioning.
- Fnoord 2y agoImagine a world where every library and every package has their release date as their version. You'd instantly know which software lacks maintenance or updates (bitrot). To me it seems more attractive than how Nix does it, but I guess they considered such and saw conflicts, therefore went with hashes.
- tremon 2y agoWould you also instantly know if 20250110 is a drop-in replacement for 20240930 or will it require changes in your code to make it work?
- viraptor 2y agoHow do you know if 12345 is a patch for 432 released years ago or a major upgrade from 12344 released a moment ago? Pure time versioning doesn't work with multiple release streams.
- Fnoord 2y agoThanks for proving me wrong!
- porridgeraisin 2y agoIIRC GNU Parallel versions by date. Recently in the python ecosystem the `uv` package manager let's you install a package as it was on a certain date. Additionally, you can "freeze" your dependencies to a certain date in pyproject.toml. So when someone clones it and installs dependencies it will install it at the date you've chosen to freeze it at. Personally I love this method much more than versioning. I think versioning is mostly useful to just talk about software and maybe major major additions/changes e.g io-uring shipping with linux mainline.
- jimmaswell 2y agoOn the opposite side of the world in Gentoo, we compile updates to libraries and applications together on a rolling basis all the time, and it generally works out while letting us have everything as bleeding edge as we want it.
- the_gipsy 2y agoThere's software that is done and doesn't need constant updates.
- majewsky 2y agoYes, but if statically linked, this excludes all software that relies on security-relevant libraries (e.g. cryptography) or receives data from the network. I struggle to think of a lot of software that would qualify beyond coreutils and friends.
- the_gipsy 2y agoThe interesting case here is dynamically linked software that doesn't need updates.
- rcxdude 2y ago>When packaging, you check for the behaviour changes in the package and its dependencies Yeah, but the package maintainer for a widely used library doesn't actually have the resources to do this. (heck, a package maintainer for a non-trivial application likely doesn't have the resources to do this). Basically they update and hope to get some bug reports from users.