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 - please run "svn status" before you continue to be 100 percent sure that there is no forgotten commit and no unrevisioned file. - please run 'find . -name "svn-commit*.tmp" -print' to detect waste from failed commits. - once the commit succeeds, you have to create a new tag with "mkdir tags/libsyncml-$MAJOR.$MINOR.$PATCH", 'tar -C trunk --exclude="\.svn" -cf - . | tar -C tags/libsyncml-$MAJOR.$MINOR.$PATCH -xf -' "svn add tags/libsyncml-$MAJOR.$MINOR.$PATCH" and "svn commit tags/libsyncml-$MAJOR.$MINOR.$PATCH trunk" (NEVER use "svn cp" because you must replace the external entities of the trunk directory with hard copies of the actual state.) - create tarballs for an out-of-source-build with "cmake tags/libsyncml-$MAJOR.$MINOR.$PATCH -B/tmp/build/libsyncml-$MAJOR.$MINOR.$PATCH", "cd /tmp/build/libsyncml-$MAJOR.$MINOR.$PATCH", "make package_source" - write checksums with md5sum from the tarballs to a file with the same name like the tarballs without the tar and compression suffixes and plus a new suffix md5sum Example: md5sum libsyncml-$MAJOR.$MINOR.$PATCH.tar.* > libsyncml-$MAJOR.$MINOR.$PATCH.md5sum md5sum -c libsyncml-$MAJOR.$MINOR.$PATCH.md5sum - upload the tarballs and the checksum file to the File Release System of SourceForge "sftp $USER@frs.sf.net", "cd uploads", "put libsyncml-$MAJOR.$MINOR.$PATCH.*" - Annouce the release on the mailing list Tips: * make diff of the exported symbols "nm -g -P libsyncml.so" * read svn log * check trac tickets which are attached to the according milestone