The dictatorship of versioning

Didier Verna didier at lrde.epita.fr
Tue Jun 16 08:20:45 UTC 2015


  Hi,

in general, I don't like the way ASDF tries to force you to comply with
its own design choices and policy. This is especially true for component
versioning. ASDF complains that it doesn't like my version numbers
(which, in fact, are not only numbers ;-), but I'm not ready to give up
on them. They're much more informative than ASDF's simplistic 1.2.3.

It seems that the only place ASDF uses our version numbers is in
VERSION-SATISFIES. There is also a VERSION-COMPATIBLE-P somewhere, but
it doesn't seem to be used. Fortunately, VERSION-SATISFIES is a generic
function, so I'm thinking I could work around it.

Not tested yet:
1. (defclass my-system-subclass (system) ())
2. (defsystem :foo.bar.baz :class 'my-system-subclass #|...|#)
3. (defmethod version-satisfies ((c my-system-subclass) version)
     #|my own version handling code|#)


Thoughts ? Will this be enough to satisfy ASDF ?

In an ideal world, the whole versioning API (version-satisfies, version<
etc.) should have been implemented as proper component-based protocols...

-- 
My new Jazz CD entitled "Roots and Leaves" is out!
Check it out: http://didierverna.com/records/roots-and-leaves.php

Lisp, Jazz, Aïkido: http://www.didierverna.info



More information about the asdf-devel mailing list