From: "Ara.T.Howard" Date: 2005-06-01T12:16:00+09:00 Subject: library versioning [WAS] Re: [ANN] parseargs-0.0.0 On Wed, 1 Jun 2005, Joel VanderWerf wrote: > Hal Fulton wrote: >> Ara.T.Howard wrote: >>> HISTORY >>> >>> 0.0.0 >> >> >> Hmm, I think I used a prior version of it... ;) > > Was that 0.0.0.0, or 0.0.0.0.0? ;) > > Ruby folks are so conservative in version numbering that it wouldn't be > surprising to see negative versions... "Your library looks nice, but I'm not > going to use use it until it goes positive." i use the libtool/ld versioning system: interface.implementation.age the first two are pretty self explanatory, the age bit need examples to explain. first of all, interface - age > 0 demonstrates backwards compatibility. so a lib like 3.0.2 supports interfaces 3 2 1 but NOT interface zero. a lib like 7.4.2 supports interfaces 7 6 5 and so on. the idea is that if you are using somethign arrayfields 3.4.0 in your code alot and see the version bump up to 3.5.0 you will know that only the implementation, not the interface, to the code has changed and can upgrade with some confidence. if, however, you saw the version go from 3.4.0 to 4.0.1 you know that the interface has changed and you should upgrade with caution. an interface change might be something major like changing a method signature or name, or it could be something minor like adding a new method (but all olds one stay the same) - in either case the version gives you certain hints. i'd be curious to know the rational behind other ruby project's version numbers and what information can be gleaned from them. for mor about the versioning i use see http://codeforpeople.com/lib/ruby/library/library-0.0.0/doc/ cheers. -a -- =============================================================================== | email :: ara [dot] t [dot] howard [at] noaa [dot] gov | phone :: 303.497.6469 | My religion is very simple. My religion is kindness. | --Tenzin Gyatso ===============================================================================