# Release management of SigScheme

## 1. Acknowledgement

A part of this document is based on Release Manual for uim (draft) contributed to uim project by Jeroen Ruigrok van der Werven. Thank you for cooperation.

## 2. Versioning scheme

A SigScheme version number is built up as follows:

      major.minor.patchlevel

The minor number is incremented for every stable release. As an example: 1.2.3 will become 1.3.0 upon a new release.

There's no limit to the minor version's number, it will continue past 9 with 10, in other words: after release 1.9.2 we will see release 1.10.0.

The patchlevel number will only be increased in the case of a bug fix or a security fix.

There is no separate versioning for unstable versions, this is simply the source control's trunk revision with development snapshots being called `sigscheme-snapshot-YYYYMMDD`. With `YYYYMMDD` standing for the year in four, the month in two, and the day in two digits when the snapshot was taken.

And no alpha, beta or RC versions are released for now since the source codes are still drastically changing and no profit can be obtained from a feature freeze.

## 3. Release procedures

### 3.1. Documents update

Update `RELNOTE` and `NEWS`.

### 3.2. Declaration

Let all SigScheme developers know that a release is emerging, and make sure that no developer is having a problem on the release.

### 3.3. Versioning

Confirm the version number written in `AC_INIT()` of the `configure.in` and SSCM_VERSION_* of sigscheme.h prior to a release.

And do not forget updating `src/libtool-version.mk` if `libsscm` ABI has been altered from previous version.

Finally, update LIBGCROOTS_URL in `make-dist.sh`.

### 3.4. Tagging

A release must be tagged for development management.

    $ svn cp -r33xx svn+ssh://svn.freedesktop.org/svn/uim/sigscheme-trunk \
                    svn+ssh://svn.freedesktop.org/svn/uim/tags/sigscheme-x.y.z

If the release is a snapshot, tag as follows:

    $ svn cp -r33xx svn+ssh://svn.freedesktop.org/svn/uim/sigscheme-trunk \
                    svn+ssh://svn.freedesktop.org/svn/uim/tags/sigscheme-snapshot-YYYYMMDD

### 3.5. Packaging

    $ cd /tmp
    $ svn export http://anonsvn.freedesktop.org/svn/uim/tags/sigscheme-x.y.z
    $ cd sigscheme-x.y.z
    $ ./make-dist.sh

It produces:

    sigscheme-x.y.z.tar.gz
    sigscheme-x.y.z.tar.bz2
    sigscheme-x.y.z.sum

### 3.6. Publishing and announcements

# Place sigscheme-x.y.z.tar.{gz,bz2} to http://uim.freedesktop.org/releases/

FIXME