2009/4/20 Rich Hickey <richhic...@gmail.com>: > If there is just a (def *version* {:major 1 :minor 0 :release 0}) > > my questions are: > > What happens after release to keep subsequent interim versions from > having the same 'version' as a release? Should we have a :status > attribute that is :release for releases and :interim for non?
To give you more ideas, there is a convention in tools like maven/ivy that when you're starting the hack on a branch targeting some version M.m.r , you immediately rename the place in code where you maintain the version number by appending the -SNAPSHOT keyword. So every build that does not remove this -SNAPSHOT suffix can not be mistaken with the real release. Note that such tools are not as "structured" as you suggest and just reserve a single field for version numbering. I think it is a good idea to add this :status attribute. It could be used to mark progression towards a fully featured version, as well : { :major 1 :minor 0 :release 0 :status :SNAPSHOT } then { :major 1 :minor 0 :release 0 :status :RC1 } (release candidate 1) then { :major 1 :minor 0 :release 0 :status :RC2 } (release candidate 2) etc. and finally { :major 1 :minor 0 :release 0 :status :GA1 } (Global Availibility 1) One thing to be considered, also, would be a :qualifier attribute that could say : "this is the version packaged with sources", "this is the slim version", ...). HTH, -- Laurent --~--~---------~--~----~------------~-------~--~----~ 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 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 -~----------~----~----~----~------~----~------~--~---