seqan3 icon indicating copy to clipboard operation
seqan3 copied to clipboard

3.4.0 Release

Open eseiler opened this issue 11 months ago • 0 comments

  • [x] Update copyright year. #3327
  • [x] Create at least one pre-release s.t. our package maintainers can try out a new release of our library. (Instructions)
  • [x] Check that the directory structure is valid.
  • [x] Check for critical performance regressions (see here).
  • [x] Check Nightlies for critical build failures.
  • [x] Check workarounds in platform.hpp. Are they still valid, or can they be limited to specific compiler versions? #3329
  • [ ] Check the Changelog.md for completeness (including changed headers). (Instructions)
  • [x] Update the index from cppreference.com so that up-to-date documentation links are generated. (Instructions) #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)


Instructions

Creating a pre-release

GitHub is not able to create annotated releases (https://github.com/seqan/product_backlog/issues/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.

:warning: Make sure to set the tick for "This is a pre-release" :warning:

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 to 0 include/seqan3/version.hpp.
  • This should be the last commit before the release.
Creating versioned documentation
  1. Checkout the release tag and build documentation.
  2. Create a #.#.# directory for the release in /web/docs.seqan.de/htdocs/seqan/
  3. Copy everything from the build (doc_usr/html/*) into the directory.
  4. 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).
Creating a release

GitHub is not able to create annotated releases (https://github.com/seqan/product_backlog/issues/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

eseiler avatar Jan 22 '25 11:01 eseiler