Overview
* The main feature of this release is the auto-generation of torrent tags from torrent titles that work in the background.
* Also, the release contains numerous bug fixes.
* The Tribler codebase was significantly refactored to make further development faster.
Features
* Tags auto generation by drew2a in 6718
* Local search for tags by drew2a in 6617
* Remote search by tags by drew2a in 6708
* Add docker support by xoriole in 6715, 6773
Bugfixes
* Fix processing URL-escaped characters by drew2a in 6738
* Make sorting by name case insensitive by kozlovsky in 6726
* Remove allow_exit_node_checkbox by drew2a in 6736
* Customise categories for different pages by drew2a in 6554
* Add exist_ok=True to mkdir by drew2a in 6560
* Replace core_traceback by last_core_output by drew2a in 6567
* Fixes for Tribler logger by kozlovsky in 6585
* Fix api_key encoding/decoding by kozlovsky in 6608, 6611, 6613, 6647
* Fix key error on metainfo fetch by xoriole in 6610
* Fixes for GUI startup sequence by ichorid in 6596
* Fixes 6665 - Graph can now go higher than TB. New PB Definition added. by Joybuke in 6666
* Feature/report endpoint errors by ichorid in 6649
* Set the correct range for Y-axis of the token balance graph by kozlovsky in 6668
* Update Russian translation by adem4ik in 6710
* Fix missing XML declaration by overflw in 6703
* Swapped 'cancel' and 'download' buttons by devos50 in 6727
* Decrease show threshold for tags by drew2a in 6742
* Fixes 6747: OSError "The filename, directory name, or volume label syntax is incorrect" in dragEnterEvent by kozlovsky in 6748
* Fixes 6745: Missed dependency: PopularityComponent requires TorrentCheckerComponent to be active by kozlovsky in 6746
* Fixes AttributeError on removing downloads by xoriole in 6909
* Handle race condition when deleting lock file by kozlovsky in 6776
* Fix Ubuntu 21.04+ startup issue by xoriole in 6734
* Fixes 6777: suppress PermissionError in on_save_resume_data_alert by kozlovsky in 6779
* Add null check to confirm_clicked_callback by drew2a in 6798
* Handle OSError in TriblerWindow.clicked_force_shutdown() by kozlovsky in 6816
* Handle ValueError "Data is not a bencoded string" in TorrentInfoEndpoint.get_torrent_info() by kozlovsky in 6814
* Wrap Download.on_metadata_received_alert() with check_handle decorator by kozlovsky in 6818
* Fix a crash in the Events tab of the Debug pane by kozlovsky in 6809
* Escape non-ASCII symbols when writing the tag value to the log by kozlovsky in 6812
* Handle possible duplicates in random tags generated by tag_torrent by kozlovsky in 6820
* Add missed arguments to RunTriblerArgsParser by kozlovsky in 6804
* Replace `get` by `select.limit` in BandwidthDatabase.get_latest_transaction by drew2a in 6821
* Add NPE check to handle_uri by drew2a in 6829
* Add `is_dir()` check to `add_directory_dialog` by drew2a in 6835
* Add `UnicodeEncodeError` to the except block by drew2a in 6836
* Fix download progressbar paint issue by xoriole in 6910
* Fix an error message that reports milliseconds as seconds by kozlovsky in 6914
* Handle non-utf8 Tribler Core output in Tribler GUI by kozlovsky in 6917
Code improvements
* Use ipv8 as an external dependency by drew2a in 6757
* Add maybe_component by drew2a in 6557
* Refactor/remove obsolete upgrades by ichorid in 6558
* Run Upgrader in a GUI thread by ichorid in 6559
* Remove unused methods by devos50 in 6605
* Make notifier more generic by drew2a in 6702
* Move `discovery_booster` to ipv8 component by drew2a in 6719
* Move EVA protocol to ipv8 component by drew2a in 6723
* Add session context manager by drew2a in 6724
* Remove common package by drew2a in 6755
* Statically typed notifier by kozlovsky in 6728
* Enable origin tracking for coroutine objects by kozlovsky in 6762
* Refactoring the folders structure by drew2a in 6803
* Remove popularity community experiments by drew2a in 6805
* Rename QtSingleApplication.activation_window() to tribler_window by drew2a in 6830
* Remove pre-commit by drew2a in 6837
* Refactor rest utils by drew2a in 6838
* Fix build for release 7.12 by kozlovsky in 6896
* Update Debian build by xoriole in 6901
* Updated IPv8 pointer by qstokkink in 6669
* Update issue templates by drew2a in 6580
* [Snyk] Security upgrade pillow from 8.4.0 to 9.0.0 by snyk-bot in 6705
* [Snyk] Security upgrade pillow from 9.0.0 to 9.0.1 by snyk-bot in 6765
Documentation fixes
* Update development on linux by drew2a in 6536
* Fixes 6624: specify the exact version of `mistune` library in doc/requirements.txt by kozlovsky in 6625
* Specify exact version of MarkupSafe in doc requirements by kozlovsky in 6781
* Add Faker and sentry as common dependency by xoriole in 6656
* Added v7.11 download badge to README by devos50 in 6768
* Fix broken link by drew2a in 6796
* Add python 3.9 and python 3.9 badges by drew2a in 6797
Test improvements
* Make --core and --gui-test-mode separate flags with all combinations possible by kozlovsky in 6602
* Using SelectorEventLoop during tests by devos50 in 6527
* Apply MockIPv8 key injection by drew2a in 6544
* Added small delay after mouse click in GUI test by devos50 in 6547
* Make CoreExceptionHandler scope-dependent by drew2a in 6543
* Change mock type for encode_message by drew2a in 6540
* Use in-memory SQLite DB for Tags in GUI test mode by ichorid in 6574
* Fix and speedup test_drop_silent_peers by ichorid in 6578
* Simplify GUI-Core startup sequence by ichorid in 6573
* Improve tests for patch_import.py by drew2a in 6588
* Replace random char generation by fake words by drew2a in 6592
* Make sure generated tags have a valid length by devos50 in 6615
* Remove spam in pytest output by kozlovsky in 6620
* Fix gui tests stability by kozlovsky in 6619
* Fix for 6603 by drew2a in 6629
* Fixed channel subscribe GUI test by devos50 in 6643
* Remove SOCKS component from GUI test mode requirements by ichorid in 6651
* Fix 6653 Sentry test failures by drew2a in 6694
* Add faker and sentry_sdk as common modules to mock during doc build by xoriole in 6675
* Fix unstable test_channels_peers_mapping_drop_excess_peers by kozlovsky in 6731
* Fix run_bandwidth_crawler script by kozlovsky in 6730
* Fix tunnel experiments by kozlovsky in 6732
* Fix unstable tests by kozlovsky in 6763
* Add "no_parallel" pytest's mark by drew2a in 6799
* Add no_parallel to pytest.ini by drew2a in 6800
* For test run with '--no-parallel' argument, skip all "normal" tests by drew2a in 6824
* Fix Tribler startup/shutdown and GUI tests stability by kozlovsky in 6828
* Refactor add_fake_torrents_channels fixture by drew2a in 6827
New Contributors
* Joybuke made their first contribution in 6666
* adem4ik made their first contribution in 6710
**Full Changelog**: https://github.com/Tribler/tribler/compare/v7.11.0...v7.12.0-RC1