Skip to content

Releases: seqan/seqan3

3.4.2

18 Mar 15:13
3.4.2
a23ab4e

Choose a tag to compare

GitHub commits since latest release

This release resolves issues with Clang 22 and a rare data race in the BGZF stream.

What's Changed

Full Changelog: 3.4.1...3.4.2

3.4.1

28 Feb 22:31
3.4.1
eb5079a

Choose a tag to compare

GitHub commits since latest release

This maintenance release resolves an issue with llvm >= 20.

What's Changed

Full Changelog: 3.4.0...3.4.1

3.4.0

27 Aug 14:56
3.4.0
d320062

Choose a tag to compare

GitHub commits since latest release

New features

I/O

  • seqan3::sam_file_input now accepts user-defined tags (#3256).

Notable Bug-fixes

Alphabet

  • Resolved an issue that prevented proper conversion, most notably in conjunction with seqan3::bitpacked_sequence (#3268).

Alignment

  • Fixed an issue that caused incorrect begin and end positions for banded alignments (#3269).

I/O

  • seqan3::sam_file_output now takes ownership of the given reference information (#3300).

API changes

Deprecations

Compiler

  • Supported compiler:
    • GCC 12, 13, 14, 15
    • Clang 17, 18, 19, 20
    • IntelOneAPI/IntelLLVM 2024, 2025

Dependencies

  • We now use Doxygen version 1.9.8 to build our documentation (#3197).
  • We bumped the minimal CMake version to 3.20 (#3314).
  • Dependencies are now managed via CPM instead of submodules (#3328).
  • The build_system directory was renamed to cmake (#3292).

Notes for package maintainers

Click to expand

For reference, you can have a look at the Debian package.

Alternative zlib implementation

If your distribution ships an alternative zlib library, for example, zlib-ng, some tests will fail:

The following tests FAILED:
        164 - contrib/stream/gz_ostream_test (Failed)
        166 - contrib/stream/bgzf_ostream_test (Failed)
        203 - io/sam_file/sam_file_output_test (Failed)
        210 - io/sequence_file/sequence_file_output_test (Failed)
        224 - io/structure_file/structure_file_output_test (Failed)

This is because we are testing compression separately for some file formats and the expected output refers to (vanilla) zlib's output.
zlib-ng should be automatically detected and causes those checks to be skipped.
If this is not the case, or you are using another zlib alternative, you can manually skip those checks:

cmake <...> -DCMAKE_CXX_FLAGS="-DSEQAN3_TEST_SKIP_ZLIB_DEFLATE=1"

Dependencies

Dependencies are listed in cmake/package-lock.cmake.
We now use CPM for dependency management.

To use locally installed packages, pass -DCPM_USE_LOCAL_PACKAGES=ON to cmake, or set the environment variable CPM_USE_LOCAL_PACKAGES to ON. CPM documentation

If your locally installed packages has an older version, you may need to additionally pass the version to cmake.
The version variables can be found in cmake/package-lock.cmake.
For example, let's assume your googletest version is 1.14.0 instead of 1.15.2 listed in the package-lock.cmake.
CPM (or rather CMake's find_package) would not use your local version because 1.14.0 < 1.15.2.
Passing -DSEQAN3_GOOGLETEST_VERSION=1.14.0 to CMake will result in your local package being used.
If your local package version is newer, it should be used without any additional CMake arguments.

Post install tests

To configure tests with an installed seqan3 version, CPM needs to be available.
However, CPM isn't installed when seqan3 is installed.
To still configure the tests, you have to pass -DSEQAN3_TEST_CPM_DIR=<path> to your CMake command.
For example, -DSEQAN3_TEST_CPM_DIR=${SEQAN3_PACKAGE_SOURCE_DIRECTORY}/cmake ${SEQAN3_PACKAGE_SOURCE_DIRECTORY}/test/unit.
Where SEQAN3_PACKAGE_SOURCE_DIRECTORY is the downloaded source package.
SEQAN3_TEST_CPM_DIR points to the directory containing CPM.cmake.

What's Changed

Click to expand
Read more

SeqAn 3.4.0-rc.4

21 Jul 13:36
3.4.0-rc.4
2e509df

Choose a tag to compare

SeqAn 3.4.0-rc.4 Pre-release
Pre-release

GitHub commits since tagged version (branch) GitHub commits since tagged version (branch)

This is the fourth release candidate for SeqAn 3.4.0

What's Changed (Selection)

  • [INFRA] The SDSL dependency is now included as amalgamated header (#3334)
  • [FIX,INFRA] SeqAn3 does no longer try to find_package itself (#3345)
  • [INFRA] Renamed SEQAN3_WITH_CEREAL to SEQAN3_HAS_CEREAL (#3337)
  • [INFRA] gcc-15, clang-20, C++26 support (#3350, #3360, #3367, #3368)

Full Changelog: 3.4.0-rc.3...3.4.0-rc.4

SeqAn 3.4.0-rc.3

22 Jan 11:59
3.4.0-rc.3
c8e7fdb

Choose a tag to compare

SeqAn 3.4.0-rc.3 Pre-release
Pre-release

GitHub commits since tagged version (branch) GitHub commits since tagged version (branch)

This is the third release candidate for SeqAn 3.4.0

What's Changed

Full Changelog: 3.4.0-rc.2...3.4.0-rc.3

Notes for package maintainers

For reference, you can have a look at the Debian package.

Alternative zlib implementation

If your distribution ships an alternative zlib library, for example, zlib-ng, some tests will fail:

The following tests FAILED:
        164 - contrib/stream/gz_ostream_test (Failed)
        166 - contrib/stream/bgzf_ostream_test (Failed)
        203 - io/sam_file/sam_file_output_test (Failed)
        210 - io/sequence_file/sequence_file_output_test (Failed)
        224 - io/structure_file/structure_file_output_test (Failed)

This is because we are testing compression separately for some file formats and the expected output refers to (vanilla) zlib's output.
zlib-ng should be automatically detected and causes those checks to be skipped.
If this is not the case, or you are using another zlib alternative, you can manually skip those checks:

cmake <...> -DCMAKE_CXX_FLAGS="-DSEQAN3_TEST_SKIP_ZLIB_DEFLATE=1"

Dependencies

Dependencies are listed in cmake/package-lock.cmake.
We now use CPM for dependency management.

To use locally installed packages, pass -DCPM_USE_LOCAL_PACKAGES=ON to cmake, or set the environment variable CPM_USE_LOCAL_PACKAGES to ON. CPM documentation

If your locally installed packages has an older version, you may need to additionally pass the version to cmake.
The version variables can be found in cmake/package-lock.cmake.
For example, let's assume your googletest version is 1.14.0 instead of 1.15.2 listed in the package-lock.cmake.
CPM (or rather CMake's find_package) would not use your local version because 1.14.0 < 1.15.2.
Passing -DSEQAN3_GOOGLETEST_VERSION=1.14.0 to CMake will result in your local package being used.
If your local package version is newer, it should be used without any additional CMake arguments.

Post install tests

To configure tests with an installed seqan3 version, CPM needs to be available.
However, CPM isn't installed when seqan3 is installed.
To still configure the tests, you have to pass -DSEQAN3_TEST_CPM_DIR=<path> to your CMake command.
For example, -DSEQAN3_TEST_CPM_DIR=${SEQAN3_PACKAGE_SOURCE_DIRECTORY}/cmake ${SEQAN3_PACKAGE_SOURCE_DIRECTORY}/test/unit.
Where SEQAN3_PACKAGE_SOURCE_DIRECTORY is the downloaded source package.
SEQAN3_TEST_CPM_DIR points to the directory containing CPM.cmake.

SeqAn 3.4.0-rc.2

13 Dec 17:48
3.4.0-rc.2
7ee8398

Choose a tag to compare

SeqAn 3.4.0-rc.2 Pre-release
Pre-release

GitHub commits since tagged version (branch) GitHub commits since tagged version (branch)

This is the second release candidate for SeqAn 3.4.0

What's Changed

Click to expand

Full Changelog: 3.4.0-rc.1...3.4.0-rc.2

SeqAn 3.4.0-rc.1

22 Jan 16:44
3.4.0-rc.1
ee718d0

Choose a tag to compare

SeqAn 3.4.0-rc.1 Pre-release
Pre-release

GitHub commits since tagged version (branch)

This is the first release candidate for SeqAn 3.4.0

SeqAn 3.4.0 offers support for GCC 11/12/13, and new clang 17

Changelog

SeqAn 3.3.0

17 Aug 11:13
3.3.0
6b681fb

Choose a tag to compare

GitHub commits since tagged version (branch)

We are glad to announce the SeqAn 3.3.0 release that has a major compiler update:

We dropped GCC 10 and we added GCC 13 support.

While we will present essential changes of the 3.3.0 release in this message, you can also find a comprehensive list of the changes in our changelog.

🎉 New Features

Alignment

  • The function seqan3::alignment_from_cigar creates an alignment from a CIGAR vector (#3057) or a CIGAR string (#3077).
  • The function seqan3::cigar_from_alignment creates a CIGAR vector from an alignment (#3057).

Alphabet

  • Improved performance of vector assignment for alphabets by a factor 2.5 (#3038).
  • Improved performance of seqan3::dna4::complement() (#3026).
  • Char literals returning std::vector are now constexpr if supported by the compiler (#3073).

I/O

  • Made seqan3::sam_file_header::program_info_t easier to copy (#3145).
  • Reading SAM/BAM files is 2x faster than before (#3106).

Search

  • The uncompressed seqan3::interleaved_bloom_filter (IBF) can now be constructed from a compressed IBF (#3082).

🐛 Notable bug fixes

Alignment

  • Resolved an issue resulting in a wrong alignment score (#3098).

I/O

  • Fixed writing an empty SAM-BAM file resulting in an invalid file (#3081).
  • seqan3::sequence_file_input_traits now allows char as a sequence alphabet (#3128).

Utility

  • Fixed spin delay having no effect on the PowerPC platform (#3129).

🛠️ Notable API changes

Alignment

  • The fields seqan3::field::offset and seqan3::field::alignment have been removed from seqan3::sam_record (#3058, #3089).
    For seqan3::field::offset, please check the soft clipping of the CIGAR string (seqan3::sam_record::cigar()).
    For seqan3::field::alignment, please use seqan3::alignment_from_cigar.

🔌 External dependencies

  • Dropped support for GCC 10 (#3148).
  • Added support for GCC 13 (#3148).
  • We require at least CMake 3.16 for our test suite. Note that the minimum requirement for using SeqAn3 is unchanged (#3050).
  • We now use Doxygen version 1.9.6 to build our documentation (#3116).
  • Updated sdsl-lite to 3.0.3 (#3170, #3174).
  • Compatibility with SeqAn2: SeqAn2's namespace was changed from seqan to seqan2. For interoperability, an up-to-date checkout of SeqAn2's main branch is required (#3156).

SeqAn 3.3.0-rc.2

09 Aug 16:59
3.3.0-rc.2
05c4347

Choose a tag to compare

SeqAn 3.3.0-rc.2 Pre-release
Pre-release

This is the second release candidate for SeqAn 3.3.0

Changelog

SeqAn 3.3.0-rc.1

17 Jul 10:36
3.3.0-rc.1
3423ad5

Choose a tag to compare

SeqAn 3.3.0-rc.1 Pre-release
Pre-release

This is the first release candidate for SeqAn 3.3.0

Changelog