Skip to content

3.4.0

Latest

Choose a tag to compare

@seqan-actions seqan-actions released this 27 Aug 14:56
· 22 commits to main since this release
3.4.0
d320062

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

Full Changelog: 3.3.0...3.4.0