BTW: commit ids as version numbers break down here, because they are
not ordered.

They have a partial ordering wrt a particular repo. Many repos have straight-line histories, and thus have a total ordering.

Neither maven nor ivy are so simple-minded to allow only one version.
How well ranges work out... I can't really know. I only know the
theory for now.

That the underlying system allows it is no comfort when there seems to be no obvious provision in project.clj for this:

  :dependencies [[org.clojure/clojure "1.1.0"]
                 [org.clojure/clojure-contrib "1.0-SNAPSHOT"]
                 [clout "0.1"]]

Does that mean "use whatever's appropriate", or "I must use 1.1.0 only"? Do these version strings admit that Maven syntax?

How does one tell Maven/lein "never use two different versions of Clojure"? How does one tell Maven to *rebuild* a library -- e.g., Compojure -- using 1.2, so that I can safely use it in my requires-1.2 project? (Or "look in a repo to find a version of Compojure built using 1.2"?)

These are questions that I think must be addressed, because these problems come up all the time.

Just this week I noticed that Apache HttpComponents 4.0.1 and 4.1 use completely different methods to apply pre-emptive HTTP Basic Auth, and have even changed class hierarchies. A version of clj-apache-http targeted at 4.0.1 won't even run against a 4.1 jar (and vice versa), *even without AOT*, because the package names are different. On the other hand, some libraries -- such as log4j -- preserve API compatibility across versions.

Sorry to be raining on everyone's parade with this...

-R

--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to