Next steps

Robert Goldman rpgoldman at sift.info
Wed Nov 17 16:50:10 UTC 2021


On 17 Nov 2021, at 10:35, Stelian Ionescu wrote:

>> Mostly sounds good to me. Assuming you're still interested in more
>> expressive version numbers and constraints for 3.4, I'll work on 
>> moving
>> that off the back burner.
>
> Adding fine-grained version constraints would be a big mistake. Where 
> they've already been implemented (Ruby, Python, Haskell), they've 
> invariably lead to authors selecting overly restrictive contraints 
> because there's no automatic way to determing the minimum version 
> required from dependencies.
> In turn, that makes even installing a package a nightmare because it 
> often leads to unsatisfiable dependencies and having to (manually) 
> backtrack until one can find a combination of compatible packages. The 
> distribution model that Quicklisp has, by snapshotting the "world" 
> once a month and ensuring that they all compile is much better so 
> let's keep it that way.
>
> If you think I'm exagerating, ask people that are familiar with the 
> process of having to update a Ruby webapp (or a Jekyll blog with many 
> plugins), or even a Python virtualenv-based server. Especially the 
> Ruby community went down this rabbit hole to far that it's no wonder 
> they were the first to adopt Docker back in the days: instead of 
> subjecting users to the dance of "let's see if I can even get this to 
> install" they ended up shipping a whole container as a workaround.

I have mixed feelings about this:

1. I agree that the situation in Python is a hot mess. I'm not sure how 
much this is due to versioning messes as opposed to the excess 
specificity that one gets from `pip freeze`, and another confound is the 
multi-headed horror that is Python package construction and management.

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.  It's always better for 
the poor user to see an error message saying that something won't work 
because of a library update, instead of seeing some kind of horrible 
mess with no clue where to look.

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.

Cheers,
R
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20211117/dd1e3957/attachment.html>


More information about the asdf-devel mailing list