Making a release
===

To make a release of libsyncml, do the following:

 - check out a fresh copy from subversion

 - increment the version numbers in ./CMakeLists.txt: 

   Package Version:
   LIBSYNCML_VERSION_MAJOR
   LIBSYNCML_VERSION_MINOR
   LIBSYNCML_VERSION_PATCH

   Library Version:
   LIBSYNCML_LIBVERSION_AGE 
    * Increment if any interface changed since last release.

   LIBSYNCML_LIBVERSION_REVISION
    * Increment if any library code changed since last release.
      Set to 0 if any interface  has been changed since last release.

   LIBSYNCML_LIBVERSION_AGE
    * Reset to 0 if any interface has been removed since last release.
      If any interface has been added incremnt.


 - Run "make Experimental" again several times to try to see race conditions.

 - Commit the increased version changes (and build fixes)

 - if someone else made changes and the commit fails,
   you have to "svn up" and run the tests again

 - once the commit succeeds, "svn cp trunk tags/libsyncml-$MAJOR.$MINJOR.$PATCH"

 - create tarballs with "LIBYNCML_RELEASE=1 cmake .; make package_source" (out of source build!)

 - upload the tarball to releases. make sure the version numbers are the same!

 - Annouce the release on the mailing list
   Tips: 
     * make diff of the exported symbols "nm -g -P libsyncml.so"
     * read svn log
