1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
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 with "cmake $SOURCES; make package_source" (out of source build!)
- 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 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
* check trac tickets which are attached to the according milestone
|