This is caused because in older ASDF, a version of 1.<whatever> was not considered to satisfy a version requirement of 0.<whatever>. This was changed because ASDF updated to 3.0 but was not considered satisfying 2.<whatever> as required by Quicklisp.
http://thread.gmane.org/gmane.lisp.asdf.devel/3062/focus=3066 has some info about when and why this was changed.
Zach
Pascal Costanza pc@p-cos.net writes:
Hi,
I’m the maintainer of Closer to MOP, and I have just updated the version numbers as you describe below. If I made a mistake and chose a numbering scheme that confuses ASDF, please let me know, and I will fix this. However, I believe what I chose is in line with the ASDF documentation.
Previously, the version numbers for Closer to MOP lacked a third entry (“patch version”), maybe this is a confusing change?
Pascal
On 17 Nov 2013, at 10:34, Anton Vodonosov avodonosov@yandex.ru wrote:
Hello.
Has the semantics of :depends-on with :version specified for the dependency changed recently?
I am asking, because I observe problems in several libraries.
For example, moptilities.
moptilities.asd has :depends-on ((:version :closer-mop "0.55"))
In Quicklisp 2013-11-11 closer-mop is updated, now its ASDF system has :version "1.0.0"
Now moptilities fails to load on many lisps (clisp, ccl-1.8, ccl-1.8, ecl, sbcl-1.1.0.36).
The error is MISSING-DEPENDENCY-OF-VERSION: Component :CLOSER-MOP does not match version 0.55, required by #<SYSTEM "moptilities">
But on sbcl-1.1.11 moptilities load OK. This is a relatively recent SBCL, so I assume it has newer ASDF than many other lisps. And probably that's why it it can load moptilities.
Also interesting, that in the previous Quicklisp closer-mop version was "0.61". And moptilities, which depend on closer-mop "0.55" was loaded successfully by many lisps which now fail.
Test results for moptilities for the current and previous Quiclisp may be found here: http://common-lisp.net/project/cl-test-grid/library/moptilities.html
Moptilities is only on example, there are other libraries affected by this problem.
So, my question is: how :depends-on ((:version ...)) should work, and is the change in the behavior intentional?
Best regards,
- Anton
-- Pascal Costanza