[geos-devel] GEOS SRID Patch
strk
strk at keybit.net
Sat Sep 22 03:15:38 EDT 2007
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;
More information about the geos-devel
mailing list