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.
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
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:
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."
git tag -a -m 'Release X.Y.Z' -s -u 1B2BB9C1 rohc-X.Y.Z
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."
All changes were done locally, so we have to push them to the public branch hosted on GitHub:
$ git push (type password)
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
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.
Go to https://launchpad.net/rohc/+milestone/X.Y.Z. Follow the 'Create release' link and fulfill the form as follow:
The X.Y.Z release fixes N bugs found in release X.Y.Z-1 and is compatible with all releases X.Y.x.