
sipXtapi release process
========================

This document explains the process for building a release of the
sipXtapi software.

Deliverables
------------

The only official deliverable is the tarball, for example,

    sipxtapi-3.3.1.tar.gz

Building of binary packages (e.g. for Debian, RPM, OpenCSW) is
done after the tarball release.  That is not covered here.

Workspace
---------

Obtain a release branch from the repository.  master is currently used
as the release branch.

Version/tag
-----------

Here we give an example for building the release v3.3.1:

Update version information and tag it:

  vi configure.ac         (update the version and ABIVERSION numbers)

  git add configure.ac
  git commit -m 'Update to version 3.3.1'

  git tag -s -m 'release: Tag v3.3.1' 

  git push --all && git push --tags

Bootstrap
---------

The bootstrap must always be done on the same version of autotools
for consistency.  The currently endorsed version is the autotools
distributed in Debian 7.0 (wheezy).  If another version is to be used,
it should be discussed on the mailing list and noted in this document.

  autoreconf --install

Make a tarball
--------------

  ./configure
  make dist

Sanity check on tarball
-----------------------

  Extract the tarball to /tmp/some-folder/sipxtapi-3.3.1

  cd /tmp/some-folder/sipxtapi-3.3.1
  ./configure && make -j12 check

Distribute the tarball
----------------------

  sha256sum sipxtapi-3.3.1.tar.gz

  Upload the tarball to the pre-release section of the web site

  Send a PGP signed email to the developers list announcing that
  a release candidate has been built.  Other developers may test the tarball.

  Include the SHA-256 checksum in the PGP signed email.

Confirm the release
-------------------

  Upload the tarball to the official download page

  Send a PGP signed email to the announce and users lists
  announcing that the release candidate is now an official release.

  Include the SHA-256 checksum in the PGP signed email.

