Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
155 lines (99 sloc) 4.39 KB
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 NEWS and RELNOTE
$ vi NEWS
$ vi RELNOTE
4. Increment libtool-version.mk too if API/ABI is updated.
$ vi uim/libtool-version.mk
Then push them.
$ git push
5. Export a fresh tree from the Git repository.
$ git clone https://code.google.com/p/uim/
$ cd uim
On an alpha release, create a branch
$ git checkout -b x.y
$ git push origin x.y
On a beta release and a final release,
create a tracking branch and check out the branch
$ git checkout --track -b x.y origin/x.y
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. We should also do unit testing at this point.
$ ./make-dist.sh
7. Tag uim-x.y.z
Tag and push the tag.
On an alpha release
$ git tag uim-x.y.0-alpha
$ git push --tags
On a beta release
$ git tag uim-x.y.0-beta
$ git push --tags
On a final release
$ git tag uim-x.y.z
$ git push --tags
8. Create the source tarball on a non-final release
On an alpha release
$ make distcheck distdir=uim-x.y.0-alpha
$ make sum distdir=uim-x.y.0-alpha
On a beta release
$ make distcheck distdir=uim-x.y.0-beta
$ make sum distdir=uim-x.y.0-beta
9. 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 x.y.z' -l 'Stable,Featured' \
uim-x.y.z.tar.bz2
Alpha release:
$ ./googlecode-upload.py -u yamakenz -p uim \
-s 'uim x.y.0-alpha' -l 'Unstable' \
uim-x.y.0-alpha.tar.bz2
Beta release:
$ ./googlecode-upload.py -u yamakenz -p uim \
-s 'uim x.y.0-beta' -l 'Unstable' \
uim-x.y.0-beta.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.
10. 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).
<obsolete>
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.
</obsolete>
11. Send a message to uim-en@googlegroups.com
<write announcement here>
http://code.google.com/p/uim/downloads/
MD5 (uim-x.y.z-example.tar.gz) = cff14a6ad95a6a1303b527a86d27bff4
MD5 (uim-x.y.z-example.tar.bz2) = b2e96af101a0c51df697990f6311f6f2
SHA1 (uim-x.y.z-example.tar.gz) = 3f152c4aa77a3a44d9f74800a8b9d8d3b6c16771
SHA1 (uim-x.y.z-example.tar.bz2) = c870c3e8585ce8e4200fe3247021802d922781c6
<append RELNOTE here>
12. Increment the version numbers in configure.ac
$ vi configure.ac
Something went wrong with that request. Please try again.