[plt-scheme] package management thoughts
I once designed a package system for XEmacs meant to address much the
same issues as your plans. I came to the conclusion that it's best to
have a little language to talk about configurations, akin to what's in
SRFI 7. It roughly looks like this:
<package-specification> -> <package-name>
| (<package-name> <package-property>?)
<package-property> -> (version <version>)
| (at-least-version <version>)
| (at-most-version <version>)
| (and <package-property>*)
| (or <package-property>*)
| (not <package-property>)
<version> -> <string-literal>
<package-name> -> <symbol>
So you could say things like
(gnus (at-least-version "1.12"))
(efs (and (at-least-version "1.12")
(at-most-version "1.15)))
(gnus (not (version "0.84")))
... and whatnot, and there's some functionality that allows you to put
these things to work, such as checking if a package specification is
present, or requiring one.
During my experience with XEmacs, I came to the conclusion that
schemes which only allow specifying a fixed version number (and
interpreting it in a fixed way) are ultimately doomed.
--
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla