Markus Hoenicka wrote: > Hi, > > Florian Forster writes: > > What Andreas is discussing is, as far as I see, the versioning schema > > used by the GNU linker. Markus is talking about the libtool versioning > > system. Unfortunately, that's not the same thing. > > Well analyzed. I should have pointed out upfront that libdbi uses > libtool, which is why I implied we were talking about those numbers. > > > I've been given to understand that the major version under GNU/Linux is > > calculated as > > major = current - age > > while other systems (iIrc FreeBSD) would use > > major = 1 + current - age. > > > > So, if you only add new functions, `current' and `age' are increased > > which will leave `major' at the same value. > > > > That sounds good. > > > The `minor' number is, I think, basically equal to the `age' and the > > `patch' number is equal to the `revision'. For example, the libtool > > version 8:3:8 would result in the ABI version 0.8.3. > > That is: > > major = current - age > minor = age > patch = revision > > If that serves everyone's needs, I'll be happy to use this. >
Sure, but please add a LIBDBI_VERSION macro as well, or people will start tweaking them in themselves, which will cause headache for you if you want to add one later. #define LIBDBI_VERSION ((MAJOR * 10000) + (MINOR * 100) + (REVISION)) should do it. I don't really give a damn where those numbers come from so long as it can be easily found out which LIBDBI_VERSION a particular piece of functionality or bugfix appeared in, and so long as it only ever increases. > > Currently, 1:0:1 is > > configured (== 0.1.0). To denote a backwards incompatible change, you'd > > use 2:0:0 which would be translated to 2.0.0. > > This is where the hairy issues start. *All* libdbi releases up to > 0.8.3 have used the libtool interface version 0:5:0. It is just > because all releases were backwards-compatible that we were not > flooded with complaints about linker errors. The next release > is going to add a couple of functions (especially the instance > interface), so we'd wind up having 1:0:1. However, 0.1.0 is not an > obvious successor for 0.8.3. So, should we use: > > major = current - age > minor = age + 8 > patch = revision > > until major is actually increased? > Umm. Won't major be higher now than it was before? Sorry, but I just can't wrap my head around what the various libtool macros are supposed to signify, and the explanations on http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html doesn't exactly help (why should age be reset to 0 but nothing else changed when interfaces are removed?). -- Andreas Ericsson andreas.erics...@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231 Considering the successes of the wars on alcohol, poverty, drugs and terror, I think we should give some serious thought to declaring war on peace. ------------------------------------------------------------------------------ Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are powering Web 2.0 with engaging, cross-platform capabilities. Quickly and easily build your RIAs with Flex Builder, the Eclipse(TM)based development software that enables intelligent coding and step-through debugging. Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com _______________________________________________ libdbi-devel mailing list libdbi-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libdbi-devel