Dealing with version numbers at build time is quite easy with tool
like Maven. The important thing is that everyone agrees on the same
version semantics (great summary [1]). Putting some more tooling
around this should be a good idea, yes.

However, the problem in Java is dealing with versions at runtime, not
at build time! Java's classloader design has not knowledge about
versions, etc and  makes it impossible to deal with versions without a
new layer on top of it. The default system for dealing with this in
Java is OSGi. Unfortunately, Clojure's classloader design seems to be
completely incompatible with OSGi. If we could solve this, Clojure
would instantly get multi version support.

Cheers,

Roman



[1] http://www.osgi.org/blog/2009/12/versions.html

2009/12/16 Nicolas Buduroi <nbudu...@gmail.com>:
> Hi, on the CommonJS Google Group there was a discussion on semantic
> versioning, a formalization of the concept of properly using a common
> version number scheme (Major.Minor.Patch) for libraries.
>
> http://semver.org/
>
> I think it would be especially easy to enforce a simple version of
> this system in a Clojure project. A program could inspect code and
> decide what version number to use during build time. The major version
> could be changed automatically once a public function, multi-method or
> macro arguments list change in a non-backward compatible way and also
> when some of them are removed. The patch version number could be
> incremented when code change (but not the API) and existing tests
> don't change or new tests have been added. The minor version could be
> incremented in other cases. This implementation have it's quirks, like
> not being able to check for return types. Doing it for real would
> certainly uncover a more lot subtle details.
>
> What do you thinking about this idea? How would you improve it?
>
> - budu
>
> --
> 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

-- 
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