Release manual for uim ====================== As of this moment, uim has three types of release of the same version. They are alpha, beta and final. Alpha may be an unstable release and it may be untested. After the alpha release, any new big features may not be committed. The beta release must be tested partially by the maintainer. In the ideal case it will be well-tested by the maintainer. If a first beta (beta1) is too unstable, a second beta (beta2) should be released to ensure the quality of the final release. After beta release, new features may not be committed. The final release is really the final release. It must be tested well. For each release the following steps should be followed. To make the final release, you have to repeat the following procedure at least three times. 1. Declare 'I will make a new release' to the mailing list. Committers must not add a new unstable feature if a new release has been announced. 2. Gather up details of the release from each committer. The ChangeLog of uim is very long, so making a release note from the ChangeLog is hard work. Therefore a committer should send details of their commit. Maybe we sould prepare a better way. 3. Update subpackage versions in make-dist.sh. SSCM_URL="${TAGS_REPOSITORY}/sigscheme-0.7.2" LIBGCROOTS_URL="${TAGS_REPOSITORY}/libgcroots-0.1.3" And set appropriate $RELEASE_SUFFIX. RELEASE_SUFFIX="-alpha" RELEASE_SUFFIX="-beta" RELEASE_SUFFIX="" 4. Export a fresh tree from svn. svn export http://uim.googlecode.com/svn/trunk 5. Do test. gosh -I. test/run-test.scm 6. Do a build test with make-dist.sh This test is not enough, but worth doing. It is especially useful when a new file is added. As a TODO, we should do unit testing at this point. 7. Increment the version numbers in: - configure.ac - uim.h - Project-Id-Version in po/*.po And increment libtool-version.mk too if ABI is updated. 8. Update NEWS and RELNOTE 9. Tag to tags/uim-x.y.z On an alpha release, branch the tree at first. svn cp https://uim.googlecode.com/svn/trunk \ https://uim.googlecode.com/svn/branches/x.y And then tag. svn cp https://uim.googlecode.com/svn/branches/x.y \ https://uim.googlecode.com/svn/tags/uim-x.y.z-alpha 10. Export the fresh tagged tree from svn. svn export http://uim.googlecode.com/svn/tags/uim-x.y.z-alpha 11. Make the distribution. cd uim-x.y.z ./make-dist.sh Release suffixes such as '-alpha' and '-beta' is automatically appended. 12. Copy the source tarball to the download site. Upload the file by the official uploading script: http://code.google.com/p/support/wiki/ScriptedUploads Don't forget adding appropriate tags as follows. Final release: googlecode-upload.py -u yamakenz -p uim \ -s 'uim 1.5.0' -l 'Stable,Featured' \ uim-1.5.0.tar.bz2 Alpha or beta release: googlecode-upload.py -u yamakenz -p uim \ -s 'uim 1.5.0-alpha' -l 'Unstable' \ uim-1.5.0-alpha.tar.bz2 Snapshot release: googlecode-upload.py -u yamakenz -p uim \ -s 'uim trunk-snapshot20070703' -l 'Snapshot' \ uim-trunk-snapshot20070703.tar.bz2 And untag 'Featured' from previous final release files by the web interface. 13. Update the web pages. http://code.google.com/p/uim/ http://code.google.com/p/uim/wiki/FrontPage Update FrontPage first and copy it into the project description (homepage). The checksums of the files must not directly be written into the anyone-rewritable wikipage, to prevent spoofings. It should be a link to the release announce which contain the checksum information. 14. Send a message to uim-en@googlegroups.com http://code.google.com/p/uim/downloads/ MD5 (uim-1.4.0-example.tar.gz) = cff14a6ad95a6a1303b527a86d27bff4 MD5 (uim-1.4.0-example.tar.bz2) = b2e96af101a0c51df697990f6311f6f2 SHA1 (uim-1.4.0-example.tar.gz) = 3f152c4aa77a3a44d9f74800a8b9d8d3b6c16771 SHA1 (uim-1.4.0-example.tar.bz2) = c870c3e8585ce8e4200fe3247021802d922781c6 15. Update Freshmeat entry http://freshmeat.net/projects/uim-inputmethod/