User Tools

Site Tools


library-create-release

How to make a new release?

This page is work in progress. It gathers all the operations that should be done when making a new release of the ROHC library. The following steps make the assumption that the developer wants to release version X.Y.Z of the library.

Preparation

Make sure all bugs affected to the milestone X.Y.Z are fixed

Go to https://launchpad.net/rohc/+milestone/X.Y.Z. Check the section that lists all the bugs affected to the milestone. The bugs should all be in state 'Fix committed'. If not, the release is not ready :-(

Check sources

Download the repository that contains the source code of the new release:

$ git clone --depth 10 https://github.com/didier-barvaux/rohc.git
(type password)
$ cd rohc
$ git co X.Y.x   # for a maintenance release
# git co master  # for a major release

Build the sources:

$ ./autogen.sh
$ make clean
$ make -j10 all
$ make -j10 check
$ make -j10 distcheck
$ make qa
$ ./test/non_regression/other_inputs/run_tests.sh all

No error should occur. Check other configure options too!

Additional checks:

Prepare source code for the release

Update the ChangeLog file with the following format:

dd Mon YYYY - release X.Y.Z
  TODO: put changelog format here

The following command may help generating the changelog:

$ git log rohc-X.Y.(Z-1)..

Commit the changes:

$ git add ChangeLog
$ git ci -m "Update ChangeLog for release X.Y.Z."

Tag the release

Tag source code for the release

git tag -a -m 'Release X.Y.Z' -s -u 1B2BB9C1 rohc-X.Y.Z

Prepare branch to the next release

The release is marked by a tag, so we can put the next version number in configure.ac:

- AC_INIT(rohc, X.Y.Z, http://launchpad.net/rohc/)
+ AC_INIT(rohc, X.Y.(Z+1), http://launchpad.net/rohc/)

Then, commit the changes:

$ git add configure.ac
$ git ci -m "Prepare for next X.Y.(Z+1) release."

Make source changes public

All changes were done locally, so we have to push them to the public branch hosted on GitHub:

$ git push
(type password)

Create source tarballs

Export tag sources:

  $ git archive --format=tar --prefix=rohc-X.Y.Z/ --output=rohc-X.Y.Z.tar rohc-X.Y.Z

Prepare dist archive:

  $ tar -xvf rohc-X.Y.Z.tar
  $ rm -f rohc-X.Y.Z.tar
  $ cd rohc-X.Y.Z/
  $ ./autogen.sh && make clean && make -j10 distcheck  # make dist should be enough, but better be safe...
  $ mv rohc-X.Y.Z.tar.bz2 ..
  $ cd .. && rm -rf rohc-X.Y.Z/

Re-compress sources:

  $ bunzip2 rohc-X.Y.Z.tar.bz2
  $ xz -9 rohc-X.Y.Z.tar

Create checksums:

  $ sha256sum rohc-X.Y.Z.tar.xz > rohc-X.Y.Z.tar.xz.sha256
  $ sha256sum -c rohc-X.Y.Z.tar.xz.sha256

Create GPG signatures:

  $ gpg --armor --sign --detach-sig rohc-X.Y.Z.tar.xz
  $ gpg --verify rohc-X.Y.Z.tar.xz.asc

Publish

Mark bugs as 'Fix Released'

Go to https://launchpad.net/rohc/+milestone/X.Y.Z and change the status of all bugs listed on the page to 'Fix Released' for the branch X.Y.x.

Create a release from the milestone in Launchpad

Go to https://launchpad.net/rohc/+milestone/X.Y.Z. Follow the 'Create release' link and fulfill the form as follow:

  • Keep the X.Y.Z milestone active: keep the checkbox unchecked.
  • Date released: put the current date.
  • Release notes: short description of the release, for example:
    The X.Y.Z release fixes N bugs found in release X.Y.Z-1 and is compatible with all releases X.Y.x.
  • Changelog: copy/paste the changelog written before.

Upload release files

library-create-release.txt · Last modified: 2016/08/27 19:42 by didier