On Fri, Sep 21, 2007 at 11:29:39AM -0600, Charlie Savage wrote: > 2: Increment release version: > - VERSION_PATCH for bugfixes/improvements (even breaking C++ API) > - VERSION_MINOR for NEW interfaces in the C lib > - VERSION_MAJOR for SUBSTANTIAL additions or C lib ABI break > [ THIS MUST BE CAREFULLY AVOIDED ] > > > For section #2, does C lib mean the C++ lib or CAPI? Note that the > comments in configure.in talk about the C++ lib.
C lib means CAPI. > So my take is I should update the CAPI to: > > CAPI_INTERFACE_CURRENT=5 (currently 4) > CAPI_INTERFACE_REVISION=0 (currently 3) > CAPI_INTERFACE_AGE=4 (currently 3) > > Although I'm not sure what CAPI_INTERFACE_AGE is supposed to mean. AGE is the number of previous interfaces still supported. So, if current is 5 and you support 4 previous interfaces, a code which was compiled against interface 1 should still run w/out problems. Under Linux, your suggested versioning translates to a SO versioned as 1.4.0 (oldest interface supported, additional new interfaces, revision) while previous 4:3:3 should translate to 1.3.3. > For the C++ lib, I'm doing: > > VERSION_MAJOR=3 > VERSION_MINOR=0 > VERSION_PATCH=0rc5 The C++ lib will actually have a release-bound version, no new library will be automatically used by code built against older libs (see -release in libtool manuals). So what your setting with VERSION_* is the *release* version, which will also be the C++ lib version. Hope it helps. --strk; _______________________________________________ geos-devel mailing list geos-devel@geos.refractions.net http://geos.refractions.net/mailman/listinfo/geos-devel