Description
- Update copyright year. [DOC] Update copyright year #3327
- Create at least one pre-release s.t. our package maintainers can try out a new release of our library. (Instructions)
- Check that the directory structure is valid.
- Check for critical performance regressions (see here).
- Check Nightlies for critical build failures.
- Check workarounds in
platform.hpp
. Are they still valid, or can they be limited to specific compiler versions? [MISC] Remove workarounds #3329 - Check the Changelog.md for completeness (including changed headers). (Instructions)
- Update the index from cppreference.com so that up-to-date documentation links are generated. (Instructions) [INFRA,DOC] Update doxygen webtags #3330
- Freeze branch. (Instructions)
- Add versioned documentation to docs.seqan.de. (Instructions)
- Prepare
seqan3-[VERSION]-{Linux,Source}.tar.xz{,.sha265}
. (Instructions) - 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. (Instructions)
- Bump version. (Instructions)
- Update the version used for update notifications.
- Announce release on Twitter.
- Announce release on website.
- Announce release on mailing list
seqan-dev@lists.fu-berlin.de
. - Announce release on public Gitter channel.
- Notify upstream package maintainers:
- Update release template with the current release tasks.
- Celebrate 🎉 🍺
Instructions
Creating a pre-release
GitHub is not able to create annotated releases (seqan/product_backlog#159), so we have to manually sign the release.
Make sure you have set up signed commits.
git checkout release-[VERSION]
git tag -s [VERSION]-rc.[RC] # e.g. 3.1.0-rc.1
git push upstream [VERSION]-rc.[RC]
You will need to provide a tag message. Since this is a pre-release, it can be as simple as Tag 3.1.0-rc.1
.
Now follow the packaging instructions to create seqan3-[VERSION]-rc.[RC]-{Linux,Source}.tar.xz{,.sha265}
.
Go to https://github.com/seqan/seqan3/releases and create a new release using the created tag and attach the source packages.
Once again, the release message can be simply something along the lines of:
This is the first release candidate for SeqAn 3.0.3
You can find a list of changes in our [changelog](https://docs.seqan.de/seqan/3.0.3/about_changelog.html).
Afterwards, bump the succeeding release candidate number in the release branch: include/seqan3/version.hpp.
Updating cppreference index
Check for new releases and update the link and hash in test/documentation/seqan3-doxygen.cmake.
You can compute the hash via wget -O- <link to html book> | sha256sum
.
Freezing the release branch
- Make sure all PRs that should be merged are merged.
- Set
SEQAN3_RELEASE_CANDIDATE
to0
include/seqan3/version.hpp. - This should be the last commit before the release.
Creating versioned documentation
- Checkout the release tag and build documentation.
- Create a #.#.# directory for the release in
/web/docs.seqan.de/htdocs/seqan/
- Copy everything from the build (
doc_usr/html/*
) into the directory. - Alter the file
/web/docs.seqan.de/htdocs/seqan3.html
with a link to the new documentation build.
Creating source packages
Use a new clone of the repository.
git clone https://github.com/seqan/seqan3.git
cd seqan3
git checkout release-[VERSION] # version/branch to pack
git submodule update --init
mkdir ../package-build
cd ../package-build
cmake ../seqan3 # configure
cpack # builds binary package, e.g. seqan3-[VERSION]-Linux.tar.xz{,.sha265}
cmake --build . --target package_source # builds source package, e.g. seqan3-[VERSION]-Source.tar.xz{,.sha265}
Note: Do not use git clone --recurse-submodules https://github.com/seqan/seqan3.git
because it will recursively pull sub-submodules!
Checking the changelog
- List all supported compiler, also add to https://docs.seqan.de/seqan3/main_user/about_api.html#autotoc_md35.
- Check that all links are consistent, e.g.,
[\#2540](https://github.com/seqan/seqan3/pull/2538)
:- Search
(\[\\#)(\d+)(\]\(.+?)(\d+)(\))
and replace$1$2$3$2$5
(i.e., replace link issue-id by the displayed id).
- Search
Creating a release
GitHub is not able to create annotated releases (seqan/product_backlog#159), so we have to manually sign the release.
Make sure you have set up signed commits.
git checkout release-[VERSION]
git tag -s [VERSION]
git push upstream [VERSION]
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)
SeqAn 3.0.2 Release
Despite all circumstances, we are excited to present a new update of our SeqAn library.
We present some great new features and also a lot of usability improvements.
Among others, this release will fully comply with the final C++-20 standard.
:warning: In this release we harmonised the algorithm configurations for a better user experience.
This, much like 2020, will break a lot of code. But rest assured that the changes are easy to apply and are worth every bit. :smile:
You can find a comprehensive list of the changes in our [changelog](https://docs.seqan.de/seqan/3.0.2/about_changelog.html).
Bumping the version
- Bump succeeding version number in the main branch: include/seqan3/version.hpp.
- The
SEQAN3_RELEASE_CANDIDATE
must be set to1
as0
indicates a stable release. - Bump the latest stable version number of the API-Stability test in main: test/api_stability/CMakeLists.txt.