1: Verify that the versions currently set (see 10 and 11 below) make sense for this release. 2: Run 'make distcheck', fix any problem with it. 3: Generate the ChangeLog by running 'make cl' 4: Update the NEWS file (extract most important things from the ChangeLog) 5. Commit the new ChangeLog and NEWS files. 6: Tag the release: $ base=http://svn.osgeo.org/geos/ $ svn copy -m "Tagged release MAJOR.MINOR.PATCH" \ $base/trunk $base/tags/MAJOR.MINOR.PATCH 7: Export the tag and 'make dist-bzip2'. $ svn export http://svn.osgeo.org/geos/tags/MAJOR.MINOR.PATCH $ cd MAJOR.MINOR.PATCH $ ./autogen.sh && ./configure && make dist-bzip2 8: Copy the tarball to upload.osgeo.org:/osgeo/download/geos 9: Increment all the version numbers for the next release, as below. 10: Increment CAPI_INTERFACE_X in configure.in - For a release with no interface changes just bump REVISION. [ Even if *nothing* changed in CAPI ] - Adding interfaces, bump CURRENT/AGE, set REVISION to 0. - Deleting interfaces / compatibility issues - bump CURRENT, others to zero [ THIS MUST BE CAREFULLY AVOIDED ] 11: Increment release version: - In configure.in - In include/geos/version.h.vc - In capi/geos_c.h.in - 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 ]