<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8">
</head>
<body>
<div style="font-family:sans-serif"><div style="white-space:normal">
<p dir="auto">On 19 Nov 2021, at 15:25, Jason Miller wrote:</p>

</div>
<div style="white-space:normal"><blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px"><p dir="auto">On Fri, 19 Nov 2021 22:02:11 +0100 Erik Huelsmann <ehuels@gmail.com> wrote:</p>
<blockquote style="border-left:2px solid #777; color:#999; margin:0 0 5px; padding-left:5px; border-left-color:#999"><p dir="auto">On Fri, Nov 19, 2021 at 9:51 PM Anton Vodonosov <avodonosov@yandex.ru><br>
wrote:<br>
</p>
<blockquote style="border-left:2px solid #777; color:#BBB; margin:0 0 5px; padding-left:5px; border-left-color:#BBB"><p dir="auto">- etimmons@, rpgoldman@<br>
<br>
"Erik Huelsmann" <ehuels@gmail.com>:</p>
<blockquote style="border-left:2px solid #777; color:#BBB; margin:0 0 5px; padding-left:5px; border-left-color:#BBB"><p dir="auto">Could you elaborate a bit on "As semver does not work for Common Lisp"?</p>
</blockquote><p dir="auto">I've opened an issue in the SemVer github repo:<br>
<a href="https://github.com/semver/semver/issues/771" style="color:#BBB">https://github.com/semver/semver/issues/771</a><br>
(Don't want to repeat this explanation over and over in many discussions).<br>
</p>
</blockquote><p dir="auto">"One bad programmer can break more than 10 good ones can fix": the issue<br>
you raise is bad engineering (increasing the version number simply because<br>
you can) and is not a problem semantic versioning is trying to solve. What<br>
it *does* try to solve is that the engineers working on the software can<br>
see the problems coming.</p>
</blockquote><p dir="auto">I disagree, in the example authentication-1.1.2 upgrades a dependency of<br>
commons-logging from 1.x to 2.x *because* commons-logging changed its API.<br>
Presumably authentication did *not* change it's API because it's following<br>
semver and only incremented the minor version.  However, upgrading from<br>
authentication 1.1.1 to 1.1.2 will break if any other components depend on<br>
commons-logging-1.* since in Lisp (and many other languages) it's not possible<br>
to load two versions of the same system.<br>
<br>
So long as two different versions of the same system cannot be used in the same<br>
image, this is a real problem with semver.  How large of a problem it is can<br>
certainly be debated (I don't find it to be that big of an issue in practice).</p>
</blockquote></div>
<div style="white-space:normal">

<p dir="auto">I'm not sure that I see this as a CL-specific problem.  If you have a C++ program that uses one boost version and it uses a library that requires a different boost version, you have the same problem.</p>

<p dir="auto">I also don't think that this is a problem with semantic versioning: the boost people use what we might call "anti-semantic versioning," but they still wreak havoc with the world.  The problem isn't that semantic versioning breaks everything, the problem is that different libraries evolve at different rates, and that causes stuff to break.</p>

<p dir="auto">I would argue that this shows the <em>strength</em> of semantic versioning: no, it doesn't magically solve the problem of version skew, but in at least some cases it tells you that you have version skew, and tells you where to look for a solution, instead of leaving you flailing around trying to figure out why your code has suddenly stopped working.</p>
</div>
</div>
</body>
</html>