On 2/14/07, Markus Hoenicka <[EMAIL PROTECTED]> wrote: > Mike Rylander <[EMAIL PROTECTED]> was heard to say: > > > > hmmm... The libtool interface version number is about compatibility, > > where as the release number is about human-understandable "freshness". > > These are orthogonal concepts, though the former does deserve > > attention. It seems to me that the LIB_CURRENT and LIB_AGE should > > just both be 0, since there is no previously versioned interface. > > Then LIB_CURRENT just gets bumped when new functions are added, and > > LIB_AGE gets bumped as old functions are changed, deprecated or > > removed. Trying to make the version number match the interface number > > seem both counter productive (a new interface version for each > > release?) and against libtool best practices, no? ... I may be > > misunderstanding the proposal, though. > > > > Maybe *I* am all dense about the libtool versioning stuff, but I see it like > this: LIB_AGE is for recording the backwards-compatibility and thus is not > relevant for the version number. All we have to consider is LIB_CURRENT (the > number of the interface) and LIB_REVISION (loosely, the number of released > source code changes that did not alter the interface). libdbi version numbers > were picked rather randomly at the beginning, but as we had the drivers in a > separate project, we wanted to avoid having, say, libdbi-drivers 8.3 depend on > libdbi 7.5. We therefore decided to have all 0.8.x releases of libdbi work > with > all 0.8.x releases of libdbi-drivers and so on. While this schema does not > strictly prevent changes to the application vs. libdbi interface (it prevents > changes to the libdbi vs. libdbi-drivers interface), it is unlikely to change > one interface without changing the other. Therefore we currently have "0.8" as > a rather randomly picked interface number and "1" as the revision number.
Sorry, I should have investigated much more closely before speaking... I was basing all that on the SF bug discussion, which was more about the abstract use of the LIB_* stuff, I believe -- or at least pre-use. If there's already a procedure in place then I don't want to suggest we change it. > > If we follow your request to release the current CVS code (more on that > below), > libtool would require no change of LIB_CURRENT, but LIB_REVISION would need to > be bumped up. This is just what happens if we name the new release 0.8.2 (the > interface remains at "0.8", the revision moves to "2". > > What I suggested in the discussion of the feature request back then is to > make a > clean start with the version and interface numbers next time we need to change > the interface. The interface number, and thus the major version, should be > "1", > and the revision (= minor version) should start at "0". This is equivalent to > stating that we'll bump up the major version whenever the interface changes, > and the minor version whenever we add features that do not require a change of > the interface. If we agree on that, there is no reason not to use the libtool > numbers as the version number (LIB_CURRENT.LIB_REVISION). It is one set of > numbers less that need the attention of the developers. > Sure, and for a library package that definitely makes sense. In fact the more I think about it the more sense it makes... :) [sinp] > > > On a related note, we should also consider adding the "link libdbi > > into drivers" patch that's been floating around into CVS. Our project > > requires that we do this, as it uses the > > > > Parent => dl_open(app-logic) => dl_open(libdbi) => dl_open(libdbi-driver) > > > > pattern. When libdbi goes to load the driver it can't due to missing > > symbols that the driver requires in the loading binary. Linking > > libdbi into the drivers fixes this, it's a one line change in the > > Makefile, and it does not break the more traditional setup. In fact, > > this would help with the above mentioned libdbi <-> driver interface > > checks. > > > > Note that any apache module that attempts to use libdbi will also > > suffer from this. > > > > I recall this discussion, but I didn't have enough time to look into this. > We'll > have to test whether the traditional setup is not affected by this on any > platform supported so far. I'm especially concerned about Cygwin and Mingw. To > speed up things, do you have a link to that patch handy? > It's actually the libdbi-drivers Makefile that needs patching, and it's currently specific to linux builds for us. Mingw and Cygwin may not mind dl-loading-a-dl like linux seems to. It's documented here: http://open-ils.org/dokuwiki/doku.php?id=libdbi and amounts to adding -ldbi to the LDFLAGS var for the drivers. > > Having said all everything above, I'd personally prefer to see a new > > version out right now with the current code. It is tested and stable, [snip] > > > > I can feel your pain :-( I'm personally inclined to follow your suggestion and > use the current CVS version plus the "link libdbi into drivers" patch (if it > does not break things) to release 0.8.2 in a matter of days. I'd suggest to > put > the other changes on the back burner for another month or two and take our > time > to do it right. > +1 Thanks, Markus! > regards, > Markus > > -- > Markus Hoenicka > [EMAIL PROTECTED] > (Spam-protected email: replace the quadrupeds with "mhoenicka") > http://www.mhoenicka.de > > -- Mike Rylander [EMAIL PROTECTED] GPLS -- PINES Development Database Developer http://open-ils.org ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ libdbi-users mailing list libdbi-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libdbi-users