## How to release a new version of IT++

This document describes briefly the recommended procedure of releasing a new version of IT++ using SourceForge project site.

The following steps are required to prepare and release of the distribution package:

- Update `NEWS` and `ChangeLog` files with appropriate information including what has changed since the previous release. Then commit the changes into the SVN repository.
- Create a release tag by copying the source tree to be released to the tags subdirectory in the SVN repository, e.g.:
  `% svn copy https://svn.sourceforge.net/svnroot/itpp/itpp/trunk https://svn.sourceforge.net/svnroot/itpp/itpp/tags/release-3-10-0`
- Export a clean, unversioned copy of the IT++ sources using the release tag:
  `% svn export https://svn.sourceforge.net/svnroot/itpp/itpp/tags/release-3-10-0 itpp-3.10.0`
- Regenerate the `configure` script and other autogenerated files using:
  `% ./autogen.sh`
  To perform this step, autoconf, automake and libtool tools have to be available in the system.
- Configure the exported sources:
  `% ./configure`
- Create the distribution packages using the following command:
  `% make distcheck`
  This will configure, compile and check the package. The output packages will be named `itpp-3.10.0.tar.gz` and `itpp-3.10.0.tar.bz2`, for instance.
- Create the documentation packages using the following commnad:
  `% make disthtml`
  The output documentation packages will be named `itpp-html-doc-3.10.0.tar.gz` and `itpp-html-doc-3.10.0.tar.bz2`, for egzample.
- Upload the distribution and documentation packages to the SourceForge server:

- Start ftp connection with the SourceForge upload server:
  `% ftp upload.sourceforge.net`
- Login as `anonymous` and give email as password
- Change remote directory to `/incomming`:
  `% cd /incoming`
- Upload packages:
  `% mput itpp*-3.10.0.tar.*`

- Access SourceForge file release interface and add the packages. Remember to fill in the Release Notes and ChangeLog parts with appropriate infmormation.

In order to update the online HTML documentation, the following procedure is required:

- Upload the documentation package into the SourceForge shell server:
  `% scp itpp-html-doc-3.10.0.tar.gz your_login@shell.sourceforge.net:/home/groups/i/it/itpp/htdocs/`
- Login into the SourceForge shell account:
  `% ssh your_login@shell.sourceforge.net`
- Change the current directory:
  `% cd /home/groups/i/it/itpp/htdocs`
- Unpack the uploaded documentation:
  `% tar zxf itpp-html-doc-3.10.0.tar.gz`
- Rename the unpacked directory to `3.10.0`:
  `% mv itpp-html-doc-3.10.0 3.10.0`
- Update the `latest` link:
  `% rm latest; ln -s 3.10.0 latest`
- Change the group properities of the uploaded files:
  `% chmod -R g+w 3.10.0`
- Remove the package from the shell server:
  `% rm itpp-html-doc-3.10.0.tar.gz`

Finally, you should send an announcement to: itpp-announce@lists.sourceforge.net