<!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 17 Nov 2021, at 11:08, Stelian Ionescu wrote:</p>

</div>
<div style="white-space:normal"><blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px"><blockquote style="border-left:2px solid #777; color:#999; margin:0 0 5px; padding-left:5px; border-left-color:#999"><p dir="auto"> 2. I *desperately* want to add version upper bounds. There is a real problem of having someone change a library under one's system, and *pace* Faré, sometimes one does not have the resources to handle updates to every library in one's build chain.</p>
</blockquote><p dir="auto">It's part of the social contract of open source that you get things for free but you need to stay up-to-date with your dependencies.</p>
</blockquote></div>
<div style="white-space:normal">

<p dir="auto">That simply does not work for everyone, <em>definitely</em> including me.  My company can't afford to pay me to keep every piece of software lying around updated with all of its dependencies.  When a contract is done, I often can no longer maintain related software.  Similarly, I use a lot of software written at universities as part of some research project that will eventually end.  Other examples abound.  There's a <em>lot</em> of software out there that could be useful, but that is not useful enough to the original author that they are going to maintain it <em>ad infinitum</em>.</p>

<p dir="auto">In such cases it's better that if we pull this stuff out of mothballs: (1) we don't have to flail around trying to guess why it doesn't work any more and (2) we can find an old working configuration.</p>

<p dir="auto">In the best of all possible worlds, everything would always be up-to-date, but that is not the world we live in -- or at least not the one that I live in.</p>

</div>
<div style="white-space:normal"><blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px"><blockquote style="border-left:2px solid #777; color:#999; margin:0 0 5px; padding-left:5px; border-left-color:#999"><p dir="auto"> 3. I am not that worried that we will end up in the kind of mess that concerns you: right now there are an enormous number of Lisp libraries that don't even have version metadata *at all* . So if people want to use expressive versioning in a sub-region of the lisp development ecosystem, that is unlikely to cause the problems you see, and might help *some* of us manage our dependencies.</p>
</blockquote><p dir="auto">I am worried because once you make something easy, people will be tempted to use that feature. Authors aren't currently adding metadata because it's purely decorative and there's no real gain in maintaining that.</p>
</blockquote></div>
<div style="white-space:normal">

<p dir="auto">On the contrary, <em>minimum</em> version constraints already exist.  So it's not true that metadata is purely decorative.  It's because people are slobs, or are not aware that the metadata are available.</p>

<p dir="auto">--</p>

<p dir="auto">The argument here is the same argument as Faré has made: all software should always be maintained and kept-up-to-date.  But Faré is a programming superhero.  I'm a mere mortal, but I <em>am</em> the ASDF maintainer, and at the end of the day, I have decided that version constraints like <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">(:version "my-unstable-library" < 3)</code> or something like that <em>will</em> go in to ASDF.</p>

<p dir="auto">The worst that will happen is that someone will put in an overly-restrictive version constraint. Given the state of the CL software ecosystem vs., e.g., Python, I think it's quite unlikely that there will be a lot of overly-tight restrictions out there.  And the ability to have upper bounds meets an actual need that is under-served.</p>
</div>
</div>
</body>
</html>