[geos-devel] Versioning scheme, binary compatibilities and future of GEOS

Charlie Savage cfis at interserv.com
Mon Dec 12 12:33:01 EST 2005


+1 Sounds like a good plan to me.

Charlie

strk at refractions.net wrote:
> After a friendly discussion with FrankW on #mapserver I finally
> took a decision about next GEOS releases layout.
>
> The important point is:
>
> 	No efforts will be taken to keep the C++ library
> 	binary interface compatible between releases.
>
> The corollary is:
>
> 	All love goes to the C interface, which will be 
> 	carefully kept binary compatible between releases.
>
>
> C++ library soname will be bound to full GEOS release version,
> actually advertising that *every* new release of it is
> binary-incompatible with *every* other release.
> [ see -release flag of libtool ]
>
> C library soname will keep using the libtool versioning
> scheme INTERFACE_{CURRENT,AGE,REVISION} to encode
> binary compatibility. 
> [ see -version-info flag of libtool ]
>
> Release versioning would then be unbound from library
> versioning and will be able to hold its own meaning.
> A simple proposal for this meaning could be:
> 	- MAJOR: increments when substantial changes
> 	         take place (not well defined)
> 	- MINOR: increments when new stuff is added
> 		 (either in C lib or outside it - consider
> 		  swig languages), reset on higher increments
> 	- MICRO: as usual, bug fixes++, reset on higher increments.
>
> Using the above layout next major release of GEOS would
> be composed as follows:
>
> 	Release version: GEOS-3.0.0        (new versioning scheme)
> 	   C lib soname: libgeos_c.so.1    (compatible with GEOS-2.2.x)
> 	 C++ lib soname: libgeos.so.3.0.0  (compatible with itself)
>
> If this convinces all of you as well (or a good part of you, or
> noone talks and I take it for good), the only thing left before
> we release GEOS-3.0.0 is taking a closer look at the following:
>
> 	- GEOS_FIRST_INTERFACE and GEOS_LAST_INTERFACE #defines
> 	  in geos/version.h (I think they should be removed)
>
> 	- geos-config --version output (I think it should print
> 	  release version)
>
> 	- geos-config --libs (currently adds a -lgeos, might add -lgeos_c
> 	  instead, but I'm unsure about consequences for users - apart
> 	  feeling warned about troubles).
>
> 	- geos.m4 setting of GEOS_LIBS (see above item)
>
> 	- PostGIS support for the new GEOS versioning scheme
> 	  (1.1.0 will hook on the C api, but 1.0 branch might
> 	   require a bit of attention in the GEOS transition)
>
> Comments and/or moral support highly welcome :P
>
> --strk;
>
>  /"\    ASCII Ribbon Campaign
>  \ /    Respect for low technology.
>   X     Keep e-mail messages readable by any computer system.
>  / \    Keep it ASCII. 
>
> _______________________________________________
> geos-devel mailing list
> geos-devel at geos.refractions.net
> http://geos.refractions.net/mailman/listinfo/geos-devel
>
>
>   
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 2781 bytes
Desc: S/MIME Cryptographic Signature
Url : http://lists.osgeo.org/pipermail/geos-devel/attachments/20051212/1f95788a/smime.bin


More information about the geos-devel mailing list