Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3.0.3 Release #2334

Closed
34 tasks done
eseiler opened this issue Jan 13, 2021 · 17 comments
Closed
34 tasks done

3.0.3 Release #2334

eseiler opened this issue Jan 13, 2021 · 17 comments
Assignees

Comments

@eseiler
Copy link
Member

eseiler commented Jan 13, 2021

  • Create a release branch, e.g. release-[VERSION], and enable branch protection in the repository settings.
  • Update copyright year.
  • 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 (via this tool).
  • Check Nightlies for critical build failures. Change nightlies to build on release branch.
  • Compile SeqAn-Lib for each current gcc trunk
  • 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). (Instructions)
  • Update the index from cppreference.com so that up-to-date documentation links are generated. (Instructions)

  • 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 (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.

⚠️ Make sure to set the tick for "This is a pre-release" ⚠️

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
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](http://docs.seqan.de/seqan/3.0.2/about_changelog.html).
Bumping the version
@sagitter
Copy link

fedora (@sagitter)

SeqAn's RPM Package page in the Fedora Project is https://src.fedoraproject.org/rpms/seqan3

@marehr marehr changed the title 3.1.0 Release 3.0.3 Release Apr 12, 2021
@marehr marehr added this to the 3.0.3 Release Sprint milestone Apr 12, 2021
@marehr
Copy link
Member

marehr commented May 10, 2021

draft release note: https://hackmd.io/DAj-lfXkQYOqbPoZZfTtEg?both

see prior release: #2001

@marehr
Copy link
Member

marehr commented May 10, 2021

create header list with:

git diff --compact-summary 3.0.2 | grep "new\|gone\|=>"

@SGSSGene
Copy link
Contributor

SGSSGene commented May 10, 2021

Es gibt mit dem performance test noch ein paar bugs in die ich hinein gucken werde. ich hab mal alle sachen mir ausgeben lassen die ±20% schneller/langsamer sind. Vergleich 3.0.2 zu master (cca92c4) branch.
Signifikant schneller: (achtung, da gibt es ein paar fehlerhafte einträge, da muss ich noch reingucken)

click me
Benchmarkfile                               Benchmark                                                                                            Time                                CPU
bit_benchmark                               is_power_of_two_arithmetic                                                                           -0.2477                             -0.2473
bit_benchmark                               is_power_of_two_seqan3                                                                               -0.4487                             -0.4488
bit_benchmark                               is_power_of_two_std                                                                                  -0.3852                             -0.3849
bit_benchmark                               next_power_of_two_seqan3                                                                             -0.5631                             -0.5631
bit_benchmark                               next_power_of_two_std                                                                                -0.4982                             -0.4983
charconv_from_chars_benchmark               from_char<uint8_t>                                                                                   -0.4543                             -0.4538
charconv_from_chars_benchmark               from_char<int16_t>                                                                                   -0.2458                             -0.2450
charconv_from_chars_benchmark               from_char<uint16_t>                                                                                  -0.6488                             -0.6486
charconv_from_chars_benchmark               from_char<int32_t>                                                                                   -0.3128                             -0.3126
charconv_from_chars_benchmark               from_char<uint32_t>                                                                                  -0.5341                             -0.5335
charconv_from_chars_benchmark               from_char<int64_t>                                                                                   -0.3532                             -0.3527
charconv_from_chars_benchmark               from_char<uint64_t>                                                                                  -0.6571                             -0.6569
container_push_back_benchmark               push_back<std::deque, seqan3::gap>                                                                   -0.2084                             -0.2080
container_seq_write_benchmark               sequential_write<std::vector, seqan3::gap>                                                           +302938864.3324 +325783071.1701     0
container_seq_write_benchmark               sequential_write<std::deque, uint64_t>                                                               -0.3864                             -0.3864
container_seq_write_benchmark               sequential_write<std::deque, seqan3::gap>                                                            +10971557580.7057+11468245228.0259  0
container_seq_write_benchmark               sequential_write<std::list, seqan3::gap>                                                             +13632116743.6361+20412219931.9246  0
container_seq_write_benchmark               sequential_write<small_vec, seqan3::gap>                                                             +339691190.4048 +370973264.8692     0
format_fastq_benchmark                      fastq_write_to_stream_seqan3/100                                                                     -0.2070                             -0.2066
format_sam_benchmark                        sam_file_read_from_stream/50                                                                         -0.2718                             -0.2719
format_sam_benchmark                        sam_file_read_from_stream/500                                                                        -0.2908                             -0.2906
format_sam_benchmark                        sam_file_read_from_disk/50                                                                           -0.2365                             -0.2363
format_sam_benchmark                        sam_file_read_from_disk/500                                                                          -0.2622                             -0.2620
gap_decorator_rand_read_benchmark           read_random<gap_sequence_gap_decorator, true>/1024/5                                                 -0.2257                             -0.2252
gap_decorator_rand_read_benchmark           read_random<gap_sequence_gap_decorator, true>/4096/5                                                 -0.2088                             -0.2088
gap_decorator_rand_read_benchmark           read_random<gap_sequence_vector, true>/16/5                                                          -0.2584                             -0.2577
gap_decorator_rand_write_benchmark          insert_random<gap_sequence_gap_decorator, false>/16/50                                               -0.2629                             -0.2626
gap_decorator_rand_write_benchmark          insert_random<gap_sequence_gap_decorator, false>/64/1                                                -0.2106                             -0.2101
gap_decorator_seq_write_benchmark           insert_right2left<gap_sequence_gap_decorator, true>/16/50                                            -0.4160                             -0.4154
gap_decorator_seq_write_benchmark           insert_right2left<gap_sequence_gap_decorator, true>/64/50                                            -0.2850                             -0.2852
global_affine_alignment_parallel_benchmark  seqan3_affine_dna4_parallel<score>/real_time                                                         -0.6310                             -0.3534
global_affine_alignment_parallel_benchmark  seqan3_affine_dna4_parallel<trace>/real_time                                                         -0.4571                             -0.3299
index_construction_benchmark                index_benchmark_seqan3<tag::fm_index, two_dimensional<seqan3::dna4>>/50/5                            -0.2176                             -0.2170
index_construction_benchmark                index_benchmark_seqan3<tag::fm_index, two_dimensional<seqan3::dna4>>/5000/5                          -0.4495                             -0.4494
index_construction_benchmark                index_benchmark_seqan3<tag::bi_fm_index, one_dimensional<seqan3::aa27>>/50/5                         -0.2232                             -0.2227
index_construction_benchmark                index_benchmark_seqan3<tag::bi_fm_index, one_dimensional<seqan3::aa27>>/500/1000                     -0.2833                             -0.2830
index_construction_benchmark                index_benchmark_seqan3<tag::bi_fm_index, two_dimensional<seqan3::aa27>>/50/5                         -0.2394                             -0.2390
index_construction_benchmark                index_benchmark_seqan3<tag::bi_fm_index, one_dimensional<std::string>>/50/5                          -0.2465                             -0.2457
index_construction_benchmark                index_benchmark_seqan3<tag::bi_fm_index, one_dimensional<std::string>>/5000/5                        -0.3326                             -0.3323
index_construction_benchmark                index_benchmark_seqan3<tag::bi_fm_index, one_dimensional<std::string>>/500/1000                      -0.2990                             -0.2989
index_construction_benchmark                index_benchmark_seqan3<tag::bi_fm_index, two_dimensional<std::string>>/50/5                          -0.3669                             -0.3663
index_construction_benchmark                index_benchmark_seqan3<tag::bi_fm_index, two_dimensional<std::string>>/5000/5                        -0.2749                             -0.2745
lowlevel_stream_input_benchmark             read_all<tag::std_streambuf_it>                                                                      -0.4243                             -0.4244
search_benchmark                            unidirectional_search_all/highErrorReadsSearch0Rep                                                   -0.2973                             -0.2976
search_benchmark                            bidirectional_search_all/highErrorReadsSearch0Rep                                                    -0.2704                             -0.2708
search_benchmark                            bidirectional_search_all/highErrorReadsSearch1Rep                                                    -0.3507                             -0.3512
search_benchmark                            bidirectional_search_all/highErrorReadsSearch2Rep                                                    -0.3905                             -0.3911
search_benchmark                            bidirectional_search_all/highErrorReadsSearch3Rep                                                    -0.3834                             -0.3838
search_benchmark                            bidirectional_search_all/highErrorReadsSearch3Rep                                                    -0.2342                             -0.2356
search_benchmark                            unidirectional_search_stratified/lowErrorReadsSearch3Strata0Rep                                      -0.2724                             -0.2730
view_drop_benchmark                         sequential_read<std::list<uint8_t>, void>                                                            -0.2060                             -0.2112
view_drop_benchmark                         sequential_read<std::list<uint8_t>, decltype(std::views::drop)>                                      -0.2994                             -0.2996
view_drop_view_take_benchmark               sequential_read<std::list<uint8_t>, void, void>                                                      -0.5606                             -0.5611
view_drop_view_take_benchmark               sequential_read<std::list<uint8_t>, decltype(std::views::drop), decltype(std::views::take)>          -0.6425                             -0.6429
view_drop_view_take_benchmark               sequential_read<std::forward_list<uint8_t>, void, void>                                              -0.6991                             -0.6992
view_drop_view_take_benchmark               sequential_read<std::forward_list<uint8_t>, decltype(std::views::drop), decltype(std::views::take)>  -0.6972                             -0.6973

Signifikant langsamer:

click me
Benchmarkfile                      Benchmark                                                                                                  Time      CPU
alphabet_assign_char_benchmark     assign_char<seqan3::phred42>                                                                               +1.1508   +1.1502
alphabet_assign_char_benchmark     assign_char<seqan3::phred63>                                                                               +1.1825   +1.1818
container_push_back_benchmark      push_back<std::vector, seqan3::gap>                                                                        +2.0308   +2.0285
example_benchmark                  memcpy_benchmark/8_pvalue                                                                                  0.2453    0.2453
example_benchmark                  memcpy_benchmark/64_pvalue                                                                                 0.6985    0.6985
gap_decorator_rand_read_benchmark  read_random<gap_sequence_gap_decorator, true>/16/1                                                         +0.2247   +0.2249
gap_decorator_rand_read_benchmark  read_random<gap_sequence_gap_decorator, true>/16/50                                                        +0.2839   +0.2839
gap_decorator_seq_read_benchmark   read_left2right<gap_sequence_gap_decorator, true>/16/50                                                    +0.4701   +0.4698
gap_decorator_seq_read_benchmark   read_left2right<gap_sequence_gap_decorator, true>/4096/5                                                   +0.2380   +0.2375
index_construction_benchmark       index_benchmark_seqan3<tag::fm_index, one_dimensional<seqan3::aa27>>/50000/5                               +0.4067   +0.4077
index_construction_benchmark       index_benchmark_seqan3<tag::fm_index, one_dimensional<std::string>>/50000/5                                +0.3768   +0.3775
search_benchmark                   unidirectional_search_all/highErrorReadsSearch3Rep_pvalue                                                  0.2453    0.2453
search_benchmark                   bidirectional_search_all/highErrorReadsSearch3Rep_pvalue                                                   0.2453    0.2453
search_benchmark                   unidirectional_search_stratified/highErrorReadsSearch3Strata1Rep                                           +0.2916   +0.2919
search_benchmark                   unidirectional_search_stratified/highErrorReadsSearch3Strata2Rep                                           +0.3265   +0.3266
search_benchmark                   bidirectional_search_stratified/highErrorReadsSearch3Strata0Rep                                            +0.5375   +0.5374
search_benchmark                   bidirectional_search_stratified/highErrorReadsSearch3Strata1Rep                                            +0.4622   +0.4621
search_benchmark                   bidirectional_search_stratified/highErrorReadsSearch3Strata2Rep                                            +0.4654   +0.4653
view_drop_benchmark                sequential_read<std::deque<uint8_t>, decltype(std::views::drop)>                                           +0.4958   +0.4956
view_drop_benchmark                sequential_read<std::forward_list<uint8_t>, void, true>                                                    +4.4846   +4.4812
view_drop_benchmark                sequential_read<std::forward_list<uint8_t>, decltype(std::views::drop), true>                              +5.0497   +5.0551
view_drop_view_take_benchmark      sequential_read<std::forward_list<uint8_t>, void, void, true>                                              +0.4412   +0.4454
view_drop_view_take_benchmark      sequential_read<std::forward_list<uint8_t>, decltype(std::views::drop), decltype(std::views::take), true>  +0.2023   +0.2043
view_kmer_hash_benchmark           seqan_kmer_hash_ungapped/1000/8                                                                            +1.5420   +1.5433
view_kmer_hash_benchmark           seqan_kmer_hash_ungapped/1000/30                                                                           +1.5338   +1.5315
view_kmer_hash_benchmark           seqan_kmer_hash_ungapped/50000/8                                                                           +1.5944   +1.5907
view_kmer_hash_benchmark           seqan_kmer_hash_ungapped/50000/30                                                                          +1.6266   +1.6257
view_kmer_hash_benchmark           seqan_kmer_hash_gapped/1000/8                                                                              +0.2003   +0.2015
view_kmer_hash_benchmark           seqan_kmer_hash_gapped/50000/8                                                                             +0.2583   +0.2594
view_take_benchmark                sequential_read<std::vector<uint8_t>, decltype(seqan3::views::take_exactly_or_throw), true>                +13.9067  +13.9056
view_take_benchmark                sequential_read<std::forward_list<uint8_t>, decltype(seqan3::views::take_exactly_or_throw), true>          +2.4660   +2.4647
view_take_until_benchmark          sequential_read<std::string, void, false>                                                                  +4.3469   +4.3462
view_take_until_benchmark          sequential_read<std::string, decltype(std::views::take_while), true>                                       +0.3762   +0.3764
view_take_until_benchmark          sequential_read<std::string, decltype(seqan3::views::take_until), false>                                   +0.2293   +0.2295
view_take_until_benchmark          sequential_read<std::vector<uint8_t>, void, false>                                                         +2.9130   +2.9108
view_take_until_benchmark          sequential_read<std::deque<uint8_t>, void, false>                                                          +5.5689   +5.5735
view_take_until_benchmark          sequential_read<std::list<uint8_t>, void, false>                                                           +8.7063   +8.7023
view_take_until_benchmark          sequential_read<std::forward_list<uint8_t>, void, false>                                                   +8.9978   +8.9948
view_take_until_benchmark          sequential_read<std::vector<uint8_t>, void, false, true>                                                   +3.7480   +3.7437
view_take_until_benchmark          sequential_read<std::forward_list<uint8_t>, void, false, true>                                             +7.7404   +7.7414

@marehr
Copy link
Member

marehr commented May 15, 2021

I created a release-3.0.3 branch

@marehr
Copy link
Member

marehr commented May 17, 2021

Some CHANGELOG.md changes that were misplaced:

Click me
@@ -34,6 +300,13 @@ Note that 3.1.0 will be the first API stable release and interfaces in this rele
 * SeqAn 3.0.2 is known to compile with GCC 7.5, 8.4, 9.3 and 10.2. Future versions (e.g. GCC 10.3 and 11) might work,
   but weren’t yet available at the time of this release.
 
+## Notable Bug-fixes
+
+#### I/O
+
+* The SAM/BAM format reads the quality field (or any other text field) that starts with an asterisk (`*`) but is not
+  empty correctly now ([\#2184](https://github.com/seqan/seqan3/pull/2184)).
+
 ## New features
 
 #### Alignment
  • This came after release-3.0.2; needs to be moved.

@@ -73,7 +346,7 @@ Note that 3.1.0 will be the first API stable release and interfaces in this rele
 * The `seqan3::views::minimiser` has been added. This is a view that computes the minimum in a window shifted over a
   range of comparable values ([\#1654](https://github.com/seqan/seqan3/pull/1654)).
 * The `seqan3::views::minimiser_hash` has been added. This is a view that computes the minimisers of a range of type
-  `seqan3::semialphabet` ([\#1721](https://https://github.com/seqan/seqan3/pull/1721)).
+  `seqan3::semialphabet` ([\#1721](https://github.com/seqan/seqan3/pull/1721)).
 
 #### Search
  • Fix of wrong link

@@ -83,6 +356,8 @@ Note that 3.1.0 will be the first API stable release and interfaces in this rele
   ([\#1853](https://github.com/seqan/seqan3/pull/1853)).
 * Added `seqan3::search_cfg::on_result`, which allows providing a custom callback for the search algorithm
   ([\#2019](https://github.com/seqan/seqan3/pull/2019)).
+* The `seqan3::fm_index_cursor` and `seqan3::bi_fm_index_cursor` can be serialised
+  ([\#2048](https://github.com/seqan/seqan3/pull/2019)).
 
 ## API changes
  • This came after release-3.0.2; needs to be moved.

@@ -152,7 +427,7 @@ Header Changes:
 * The `seqan3::forward_range` has been removed. Use `std::ranges::borrowed_range` instead
   ([\#2038](https://github.com/seqan/seqan3/pull/2038)).
 * The `seqan3::views:trim` has been renamed to `seqan3::views:trim_quality`
-  ([\#2025](https://https://github.com/seqan/seqan3/pull/2025)).
+  ([\#2025](https://github.com/seqan/seqan3/pull/2025)).
 
 Header Changes:
  • Fix of wrong link

via cli: git diff 3.0.2..upstream/release-3.0.3 CHANGELOG.md
or via web: 370673f...ee0dbca#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4ed

@marehr marehr mentioned this issue May 17, 2021
@SGSSGene
Copy link
Contributor

SGSSGene commented May 20, 2021

In the above I was using gcc10 with Release. I retried it with "powersave" governour, so the cpu is running at a constant rate. (I checked it and it wasn't changing). But very similar results.
I also tried the same with "RelWithDbgInfo", this did make the gap smaller, but only because the 3.0.2 was running slower than before.

I also tried it with gcc9 with "RelWithDbgInfo" with fixed cpu speed.
The results look very bad, and I have no clue what actually is going on.

Increase of Runtimes (Bad!) (factors)

Click me

Benchmarkfile Benchmark Time CPU

  • alphabet_assign_char_benchmark assign_charseqan3::phred42 +1.1397 +1.1397
  • alphabet_assign_char_benchmark assign_charseqan3::phred63 +1.1119 +1.1120
  • alphabet_assign_char_benchmark assign_char +0.0712 +0.0710
  • alphabet_assign_rank_benchmark assign_rankseqan3::rna15 +0.0867 +0.0802
  • alphabet_to_char_benchmark to_char<seqan3::alphabet_variant<seqan3::gap, seqan3::dna4, seqan3::dna5, seqan3::dna15, seqan3::rna15, seqan3::rna4, seqan3::rna5>> +0.0686 +0.0692
  • alphabet_to_char_benchmark to_char<seqan3::maskedseqan3::dna4> +0.0712 +0.0711
  • bit_benchmark is_power_of_two_popcount +0.1703 +0.1710
  • bit_benchmark is_power_of_two_popcount +0.2053 +0.2060
  • bit_benchmark is_power_of_two_popcount +0.1929 +0.1946
  • bit_benchmark is_power_of_two_arithmetic +0.2964 +0.2979
  • bit_benchmark is_power_of_two_seqan3 +0.2642 +0.2661
  • bit_benchmark next_power_of_two_seqan3 +2.5650 +2.5673
  • bit_benchmark next_power_of_two_std +2.4006 +2.4044
  • charconv_from_chars_benchmark from_char<int8_t> +0.3487 +0.3484
  • charconv_from_chars_benchmark from_char<uint8_t> +0.2836 +0.2837
  • charconv_from_chars_benchmark from_char<int16_t> +0.2564 +0.2566
  • charconv_from_chars_benchmark from_char<uint16_t> +0.2200 +0.2202
  • charconv_from_chars_benchmark from_char<int32_t> +0.2934 +0.2937
  • charconv_from_chars_benchmark from_char<uint32_t> +0.1785 +0.1787
  • charconv_from_chars_benchmark from_char<int64_t> +0.2828 +0.2828
  • charconv_from_chars_benchmark from_char<uint64_t> +0.1655 +0.1657
  • charconv_from_chars_benchmark from_atol<uint16_t> +0.0586 +0.0588
  • charconv_from_chars_benchmark from_chars_to_float +0.0664 +0.0658
  • charconv_to_chars_benchmark to_char<uint32_t> +0.1016 +0.1017
  • charconv_to_chars_benchmark to_char<int64_t> +0.0709 +0.0709
  • charconv_to_chars_benchmark to_char<uint64_t> +0.0862 +0.0785
  • container_push_back_benchmark push_back<std::vector, uint8_t> +0.4028 +0.4071
  • container_push_back_benchmark push_back<std::vector, seqan3::gap> +2.1583 +2.1597
  • container_push_back_benchmark push_back<std::deque, char> +0.1301 +0.1318
  • container_push_back_benchmark push_back<std::deque, uint8_t> +0.2294 +0.2288
  • container_push_back_benchmark push_back<std::deque, seqan3::gap> +0.0737 +0.0760
  • container_push_back_benchmark push_back<small_vec, char> +0.0500 +0.0256
  • container_seq_read_benchmark sequential_read<std::vector, seqan3::dna4> +0.0841 +0.0855
  • container_seq_read_benchmark sequential_read<std::vector, uint8_t, true> +0.0658 +0.0651
  • container_seq_read_benchmark sequential_read<std::vector, seqan3::alphabet_variant<char, seqan3::dna4>, true> +0.0694 +0.0689
  • container_seq_write_benchmark sequential_write<std::vector, seqan3::alphabet_variant<char, seqan3::dna4>> +0.0752 +0.0749
  • container_seq_write_benchmark sequential_write<std::list, uint16_t> +0.0757 +0.0756
  • container_seq_write_benchmark sequential_write<std::list, seqan3::gap> +0.4097 +0.4097
  • container_seq_write_benchmark sequential_write<std::list, seqan3::alphabet_variant<char, seqan3::dna4>> +0.0726 +0.0754
  • container_seq_write_benchmark sequential_write<small_vec, char> +0.0619 +0.0614
  • example_benchmark memcpy_benchmark/8_pvalue 0.6985 0.6985
  • example_benchmark memcpy_benchmark/64_pvalue 0.6985 0.6985
  • format_fastq_benchmark fastq_write_to_stream_seqan3/100 +0.0753 +0.0752
  • format_fastq_benchmark fastq_write_to_stream_seqan3/1000 +0.1449 +0.1448
  • format_fastq_benchmark fastq_write_to_stream_seqan3/10000 +0.1431 +0.1424
  • format_vienna_benchmark write_seqan3 +0.0608 +0.0615
  • gap_decorator_rand_read_benchmark read_random<gap_sequence_gap_decorator, true>/16/1 +0.0955 +0.1006
  • gap_decorator_rand_read_benchmark read_random<gap_sequence_gap_decorator, true>/16/50 +0.1506 +0.1509
  • gap_decorator_rand_read_benchmark read_random<gap_sequence_gap_decorator, true>/256/5 +0.1674 +0.1680
  • gap_decorator_rand_read_benchmark read_random<gap_sequence_gap_decorator, true>/1024/1 +0.1107 +0.1111
  • gap_decorator_rand_read_benchmark read_random<gap_sequence_gap_decorator, true>/4096/5 +0.0625 +0.0625
  • gap_decorator_rand_write_benchmark insert_random<gap_sequence_gap_decorator, false>/16/5 +0.1718 +0.1715
  • gap_decorator_rand_write_benchmark insert_random<gap_sequence_gap_decorator, false>/256/50 +0.0865 +0.0880
  • gap_decorator_rand_write_benchmark insert_random<gap_sequence_gap_decorator, false>/1024/1 +0.0879 +0.0870
  • gap_decorator_rand_write_benchmark insert_random<gap_sequence_vector, false>/16/5 +0.0786 +0.0787
  • gap_decorator_rand_write_benchmark insert_random<gap_sequence_gap_decorator, true>/16/1 +0.2353 +0.2346
  • gap_decorator_rand_write_benchmark insert_random<gap_sequence_gap_decorator, true>/16/50 +0.0958 +0.0956
  • gap_decorator_rand_write_benchmark insert_random<gap_sequence_gap_decorator, true>/64/5 +0.1888 +0.1813
  • gap_decorator_rand_write_benchmark insert_random<gap_sequence_gap_decorator, true>/256/5 +0.0792 +0.0790
  • gap_decorator_rand_write_benchmark delete_random<gap_sequence_gap_decorator, true>/256/50 +0.1225 +0.1222
  • gap_decorator_rand_write_benchmark delete_random<gap_sequence_gap_decorator, true>/1024/5 +0.0781 +0.0787
  • gap_decorator_seq_read_benchmark read_left2right<gap_sequence_gap_decorator, true>/256/5 +0.2090 +0.2071
  • gap_decorator_seq_write_benchmark insert_left2right<gap_sequence_vector, false>/16/1 +1.0941 +1.0920
  • gap_decorator_seq_write_benchmark insert_left2right<gap_sequence_vector, false>/256/5 +0.2450 +0.2453
  • gap_decorator_seq_write_benchmark insert_left2right<gap_sequence_vector, false>/1024/5 +0.1412 +0.1412
  • gap_decorator_seq_write_benchmark insert_left2right<gap_sequence_vector, false>/1024/50 +0.0511 +0.0500
  • gap_decorator_seq_write_benchmark insert_left2right<gap_sequence_vector, false>/4096/50 +0.1666 +0.1659
  • gap_decorator_seq_write_benchmark insert_left2right<gap_sequence_gap_decorator, true>/16/5 +0.0582 +0.0582
  • gap_decorator_seq_write_benchmark insert_left2right<gap_sequence_gap_decorator, true>/16/50 +0.1326 +0.1322
  • gap_decorator_seq_write_benchmark insert_left2right<gap_sequence_vector, true>/64/1 +0.0629 +0.0613
  • gap_decorator_seq_write_benchmark insert_left2right<gap_sequence_vector, true>/64/50 +0.0505 +0.0532
  • gap_decorator_seq_write_benchmark insert_left2right<gap_sequence_vector, true>/1024/50 +0.1052 +0.1058
  • gap_decorator_seq_write_benchmark insert_right2left<gap_sequence_vector, false>/256/1 +0.0504 +0.0509
  • gap_decorator_seq_write_benchmark insert_right2left<gap_sequence_vector, false>/1024/5 +0.0525 +0.0493
  • gap_decorator_seq_write_benchmark insert_right2left<gap_sequence_gap_decorator, true>/64/50 +0.1812 +0.1802
  • global_affine_alignment_parallel_benchmark seqan3_affine_dna4_omp_for/real_time +1.0673 +0.7651
  • index_construction_benchmark index_benchmark_seqan3<tag::fm_index, two_dimensionalstd::string>/50000/5 +0.1185 +0.1161
  • index_construction_benchmark index_benchmark_seqan3<tag::bi_fm_index, one_dimensionalseqan3::dna4>/50/5 +0.0887 +0.0816
  • interleaved_bloom_filter_benchmark bulk_contains_benchmark<seqan3::interleaved_bloom_filterseqan3::data_layout::uncompressed>/64/512/2/1000 +0.1879 +0.1884
  • interleaved_bloom_filter_benchmark bulk_contains_benchmark<seqan3::interleaved_bloom_filterseqan3::data_layout::uncompressed>/64/16384/2/1000 +0.1906 +0.1909
  • interleaved_bloom_filter_benchmark bulk_contains_benchmark<seqan3::interleaved_bloom_filterseqan3::data_layout::uncompressed>/8192/4/2/1000 +0.4294 +0.4266
  • interleaved_bloom_filter_benchmark bulk_contains_benchmark<seqan3::interleaved_bloom_filterseqan3::data_layout::uncompressed>/8192/128/2/1000 +0.4611 +0.4565
  • search_benchmark unidirectional_search_all/highErrorReadsSearch3Rep_pvalue 0.2453 0.2453
  • search_benchmark bidirectional_search_all/lowErrorReadsSearch3 +0.1555 +0.1561
  • search_benchmark bidirectional_search_all/highErrorReadsSearch3Rep_pvalue 0.2453 0.2453
  • search_benchmark unidirectional_search_stratified/lowErrorReadsSearch3Strata2Rep +0.0604 +0.0602
  • search_benchmark unidirectional_search_stratified/highErrorReadsSearch3Strata0Rep +0.0649 +0.0664
  • search_benchmark unidirectional_search_stratified/highErrorReadsSearch3Strata1Rep +0.2722 +0.2731
  • search_benchmark unidirectional_search_stratified/highErrorReadsSearch3Strata2Rep +0.3555 +0.3552
  • search_benchmark unidirectional_search_stratified/highErrorReadsSearch3Strata2RepLong +0.1579 +0.1577
  • search_benchmark bidirectional_search_stratified/lowErrorReadsSearch3Strata0Rep +0.0511 +0.0554
  • search_benchmark bidirectional_search_stratified/lowErrorReadsSearch3Strata1Rep +0.0600 +0.0615
  • search_benchmark bidirectional_search_stratified/lowErrorReadsSearch3Strata2Rep +0.1329 +0.1311
  • search_benchmark bidirectional_search_stratified/highErrorReadsSearch3Strata0Rep +0.5184 +0.5198
  • search_benchmark bidirectional_search_stratified/highErrorReadsSearch3Strata1Rep +0.4626 +0.4634
  • search_benchmark bidirectional_search_stratified/highErrorReadsSearch3Strata2Rep +0.4531 +0.4531
  • search_benchmark bidirectional_search_stratified/highErrorReadsSearch3Strata2RepLong +0.0964 +0.1005
  • stream_input_benchmark compressed_type_erased2seqan3::contrib::gz_istream +0.1161 +0.1111
  • view_all_benchmark sequential_read<std::string, decltype(std::views::all)> +0.0878 +0.0730
  • view_all_benchmark sequential_read<std::vector<uint8_t>, decltype(seqan3::views::type_reduce)> +0.0625 +0.0751
  • view_drop_benchmark sequential_read<std::string, decltype(std::views::drop)> +0.0584 +0.0581
  • view_drop_benchmark sequential_read<std::forward_list<uint8_t>, void, true> +4.0867 +4.1058
  • view_drop_benchmark sequential_read<std::forward_list<uint8_t>, decltype(std::views::drop), true> +4.1247 +4.1511
  • view_drop_view_take_benchmark sequential_read<std::string, decltype(std::views::drop), decltype(std::views::take)> +0.0863 +0.0892
  • view_drop_view_take_benchmark sequential_read<std::vector<uint8_t>, decltype(std::views::drop), decltype(std::views::take)> +0.1401 +0.1413
  • view_minimiser_hash_benchmark compute_minimisers_on_poly_A_sequence<method_tag::seqan3_ungapped>/50000/30/50 +0.0515 +0.0505
  • view_take_benchmark sequential_read<std::string, void> +0.0853 +0.0866
  • view_take_benchmark sequential_read<std::string, decltype(seqan3::views::take)> +0.0682 +0.0679
  • view_take_benchmark sequential_read<std::string, decltype(seqan3::views::take_exactly)> +0.0774 +0.0763
  • view_take_benchmark sequential_read<std::string, decltype(seqan3::views::take_exactly_or_throw)> +0.0616 +0.0592
  • view_take_benchmark sequential_read<std::vector<uint8_t>, void> +0.0550 +0.0560
  • view_take_benchmark sequential_read<std::vector<uint8_t>, decltype(std::views::take)> +0.1516 +0.1510
  • view_take_benchmark sequential_read<std::vector<uint8_t>, decltype(seqan3::views::take)> +0.0914 +0.0948
  • view_take_benchmark sequential_read<std::vector<uint8_t>, decltype(seqan3::views::take_exactly)> +0.0924 +0.0916
  • view_take_benchmark sequential_read<std::list<uint8_t>, decltype(std::views::take)> +0.0704 +0.0728
  • view_take_benchmark sequential_read<std::list<uint8_t>, decltype(seqan3::views::take)> +14.6164 +14.6495
  • view_take_benchmark sequential_read<std::list<uint8_t>, decltype(seqan3::views::take_exactly)> +9.7877 +9.7844
  • view_take_benchmark sequential_read<std::list<uint8_t>, decltype(seqan3::views::take_exactly_or_throw)> +26.8774 +26.9100
  • view_take_benchmark sequential_read<std::forward_list<uint8_t>, decltype(std::views::take)> +0.1498 +0.1452
  • view_take_benchmark sequential_read<std::forward_list<uint8_t>, decltype(seqan3::views::take)> +28.1295 +28.1430
  • view_take_benchmark sequential_read<std::forward_list<uint8_t>, decltype(seqan3::views::take_exactly)> +26.2289 +26.1217
  • view_take_benchmark sequential_read<std::forward_list<uint8_t>, decltype(seqan3::views::take_exactly_or_throw)> +26.8559 +26.8359
  • view_take_benchmark sequential_read<std::vector<uint8_t>, decltype(seqan3::views::take), true> +25.5480 +25.5416
  • view_take_benchmark sequential_read<std::vector<uint8_t>, decltype(seqan3::views::take_exactly), true> +16.0497 +16.0053
  • view_take_benchmark sequential_read<std::vector<uint8_t>, decltype(seqan3::views::take_exactly_or_throw), true> +16.8188 +16.8173
  • view_take_benchmark sequential_read<std::forward_list<uint8_t>, decltype(std::views::take), true> +0.7213 +0.7274
  • view_take_benchmark sequential_read<std::forward_list<uint8_t>, decltype(seqan3::views::take), true> +13.0454 +13.1046
  • view_take_benchmark sequential_read<std::forward_list<uint8_t>, decltype(seqan3::views::take_exactly), true> +14.4172 +14.4612
  • view_take_benchmark sequential_read<std::forward_list<uint8_t>, decltype(seqan3::views::take_exactly_or_throw), true> +17.6811 +17.7797
  • view_take_benchmark random_access<std::deque<uint8_t>, decltype(seqan3::views::take_exactly)> +0.0578 +0.0583
  • view_take_until_benchmark sequential_read<std::string, void, false> +3.3202 +3.3192
  • view_take_until_benchmark sequential_read<std::string, decltype(std::views::take_while), true> +0.1844 +0.1844
  • view_take_until_benchmark sequential_read<std::string, decltype(seqan3::views::take_until), false> +0.2490 +0.2489
  • view_take_until_benchmark sequential_read<std::vector<uint8_t>, void, false> +7.1213 +7.1222
  • view_take_until_benchmark sequential_read<std::deque<uint8_t>, void, false> +10.4552 +10.4579
  • view_take_until_benchmark sequential_read<std::list<uint8_t>, void, false> +8.7203 +8.7216
  • view_take_until_benchmark sequential_read<std::forward_list<uint8_t>, void, false> +9.0734 +9.0728
  • view_take_until_benchmark sequential_read<std::vector<uint8_t>, void, false, true> +4.4708 +4.4785
  • view_take_until_benchmark sequential_read<std::vector<uint8_t>, decltype(std::views::take_while), true, true> +0.4414 +0.4421
  • view_take_until_benchmark sequential_read<std::vector<uint8_t>, decltype(seqan3::views::take_until), false, true> +0.2664 +0.2682
  • view_take_until_benchmark sequential_read<std::forward_list<uint8_t>, void, false, true> +8.2033 +8.2447
  • view_translate_2D_benchmark sequential_read<baseline_tag> +0.0515 +0.0524

@eseiler
Copy link
Member Author

eseiler commented May 20, 2021

The results look very bad, and I have no clue what actually is going on.

For the bit_benchmark stuff you would at least need to compile with -mpopcnt, otherwise it will be slower since it cannot use the intrinsic

Edit: How do you read the increase? Is it a factor/percentag/seconds?

@SGSSGene
Copy link
Contributor

+1.13 means that the old benchmark needed 1s and the new one needs 2.13s.
So 0 is no change in speed.

@mr-c
Copy link
Contributor

mr-c commented May 21, 2021

Can someone tag a release candidate? I can then make experimental builds on Debian

@eseiler
Copy link
Member Author

eseiler commented May 21, 2021

Can someone tag a release candidate? I can then make experimental builds on Debian

We're about to (in the course of the day, after https://github.com/seqan/seqan3/actions/runs/863386619 finished successfully)

@eseiler
Copy link
Member Author

eseiler commented May 21, 2021

There's a tag now https://github.com/seqan/seqan3/tree/3.0.3-rc.1
Source packages will follow

Edit: https://github.com/seqan/seqan3/releases/tag/3.0.3-rc.1

@sagitter
Copy link

seqan3-3.0.3-rc.1 tests are correctly built/ran in Fedora 34+ x86_64, ARM64, PowerPC64 Little Endian.

@mr-c
Copy link
Contributor

mr-c commented May 28, 2021

On Debian, I've got two failing tests, probably due to being run as root ; what's an easy way to skip these?

The following tests FAILED:
	7565 - test/tmp_filename_test::tmp_filename_throw.directory_not_writeable (Failed)
	7590 - test/tmp_directory_test::tmp_directory_throw.directory_not_writeable (Failed)

@eseiler
Copy link
Member Author

eseiler commented May 28, 2021

On Debian, I've got two failing tests, probably due to being run as root ; what's an easy way to skip these?

The following tests FAILED:
	7565 - test/tmp_filename_test::tmp_filename_throw.directory_not_writeable (Failed)
	7590 - test/tmp_directory_test::tmp_directory_throw.directory_not_writeable (Failed)

Can you run ctest with -E directory_not_writeable?
I'll do a PR that skips the tests if we have root rights (we already do it in format_parse_validators_test.cpp. (#2687)

@mr-c
Copy link
Contributor

mr-c commented May 28, 2021

Can you run ctest with -E directory_not_writeable?

That worked, thanks!

@mr-c
Copy link
Contributor

mr-c commented May 31, 2021

I've uploaded Seqan3 3.0.3 to Debian's experimental archive at https://buildd.debian.org/status/package.php?p=seqan3&suite=experimental

Once the next version of Debian is released I'll bump this to the development distribution where it will flow to the next testing distribution. Please let me know if there are any Seqan3 using applications ready for packaging!

@eseiler eseiler closed this as completed Jun 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants