mkdir package-build
git clone https://github.com/seqan/seqan3.git
cd seqan3
git checkout 3.0.2 # version to pack
git submodule init
git submodule update
cd ../package-build
cmake ../seqan3 # configure
cpack # builds binary package, e.g. seqan3-3.0.2-Linux.tar.xz{,.sha265}
cmake --build . --target package_source # builds source package, e.g. seqan3-3.0.2-Source.tar.xz{,.sha265}
Create a release branch, e.g.
release-3.0.3Check for critical performance regressions. Use https://github.com/wvandertoorn/cmp_benchmarks
Check Nightlies for critical build failures. Change nightlies to build on release branch.
Check workarounds in
platform.hpp. Are they still valid or can they be limited to specific compiler versions.Check the Changelog.md for completeness (including changed headers).
Update the index from cppreference.com so that up-to-date documentation links are generated.
Click for detailed steps
Check for new releases and update the link and hash
in the code base.
For the hash do
Add versioned documentation build on docs.seqan.de.
Click for detailed steps
Build the documentation locally
Create a #.#.# directory for the release in
/web/docs.seqan.de/htdocs/seqan/Copy everything from the local build (
doc_usr/html/*) into the directory.Alter the file
/web/docs.seqan.de/htdocs/seqan3.htmlwith a link to the new documentation build.Prepare
seqan3-[VERSION]-{Linux,Source}.tar.xz{,.sha265}.Click for detailed steps
Make a fresh clone of the repository and recursively delete the
.gitdirectories.Note: Do not do
git clone -recurse-submodules https://github.com/seqan/seqan3.gitbecause it will recursivelypull sub-submodules which we do not want!
Prepare a release note with notable features, API changes, bugs, and external dependency updates.
Tag release on Github and attach
seqan3-[VERSION]-{Linux,Source}.tar.xz{,.sha265}to the release.Click for detailed steps
Github is not able to create annotated releases (Btw, next time you tag a release please add the
-aflag. Otherwise git describe uses 3.0.0 as reference. product_backlog#159), so we have to manually sign the release.You will need to provide a tag message. We use the first sentences of the release note:
E.g. (see https://github.com/seqan/seqan3/tags)
that the server in Tübingen, which takes care of the argument parser update notifications, is aware of it
(@smehringer).
seqan-dev@lists.fu-berlin.de.