Tribler

Latest version: v7.13.1

Safety actively analyzes 679616 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 21

7.13.0rc4

Overview

We're ecstatic to introduce the latest version of Tribler, packed with exciting features and significant enhancements! Here's a rundown of the most notable changes:


Instant search with superior result quality:

* Experience lightning-fast local search queries, now 100x faster than in the previous release (because of broken feature) (7166);
* Enjoy real-time, remote results from other peers as they appear instantly (7025);
* Benefit from an advanced ranking algorithm that considers multiple factors, such as title structure, creation date, and the number of seeders/leechers (7025);
* Discover similar results for known content categories, now conveniently grouped for an improved UI experience.

We're confident that you'll love the revamped search experience. As more peers upgrade to the new version, the distributed search will deliver even higher-quality results with the enhanced ranking system!

With these updates, Tribler is gradually evolving into a decentralized search engine, rivaling the speed of YouTube's video search.


Introducing the Knowledge Component: A Leap Towards Decentralized Search Excellence

Google's power resides in its PageRank algorithm. Creating a decentralized alternative to Big Tech has proven challenging, but with this release, we take another small step on this journey. Our ultimate goal is to achieve _self-organizing trust_, the fundamental building block for a decentralized PageRank system. The concrete use-case we aim to address is collective decision-making in the peer-to-peer world, such as determining _whether Justin Bieber is gay_.


Is Justin Bieber gay?

[Explore the details of this scientifically serious issue related to trust, spam, and crowdsourcing](https://github.com/Tribler/tribler/issues/6214#issuecomment-1441575638). For the record, we believe Justin Bieber's music is neither `Black Metal` nor `gay`. We consider [this](https://musicbrainz.org/artist/e0140a67-e4d1-4f13-8a01-364355bee46e/tags) an exemplary use-case for Tribler's zero-trust architecture to solve. Our distributed trust ledger has been under incremental development [since before](http://news.bbc.co.uk/2/hi/technology/6971904.stm) Bitcoin. We have not yet deployed our decentralized reputation and trust framework, as [our MeritRank algorithm](https://arxiv.org/pdf/2207.09950.pdf) is still not ready for production. However, we have upgraded the BitTorrent tag-based metadata enrichment from pure text labels into the KnowledgeComponent (https://github.com/Tribler/tribler/pull/7070). As a test, we offer semantic clustering within Tribler when searching for "Ubuntu," providing cleaner search results and filtering duplicates.

No other peer-to-peer project, such as IPFS, Mojo Nation, or Freenet, has ever cracked semantic search. With the KnowledgeComponent, we take another challenging step towards a Google-quality search engine. It signifies a move towards semantics, a search engine that understands your preferences and helps you discover content without interference from lawyers or governments.


Creative Commons licensed promotional picture:
<IMG src=https://user-images.githubusercontent.com/13798583/193611094-4b0b8b68-eef2-4fca-ac30-7f65e64400b0.png width=500>


Enhanced Torrent Health: Accurate Sharing Between Peers

Tribler peers exchange information about torrent popularity, allowing torrents with a substantial number of seeders to appear on the "Popular" page and receive priority in search results. We identified several critical bugs (7295) in the previous algorithm, causing invalid torrent health records to spread across the network and skew the results on the "Popular" page. These bugs have now been fixed, and the gossiping algorithm has been optimized for efficient sharing of popular torrents (6950).


Improved Stability for a Smoother Experience

This release of Tribler is set to be the most stable in recent times. Our development team has successfully identified and resolved numerous obscure bugs that previously led to crashes and freezes. We're confident that this version of Tribler will impress you with its enhanced stability and reliability.

Get paid to work on Tribler and earn a phd?

See open position: [PhD Decentralised Machine Learning](https://www.tudelft.nl/over-tu-delft/werken-bij-tu-delft/vacatures/details?jobId=12514)
* Challenge: Developing and building a fully decentralised video search engine.
* Change: Eliminating the need for servers when developing machine learning.
* Impact: Safe machine learning benefiting billions of users.

Features

* 100x speedup for full-text search queries with better quality by kozlovsky in 7025, 7166, 7259
* Upgrade the `TagComponent` to the `KnowledgeComponent` by drew2a in 7070
* 2455 Added edit metadata GUI elements by devos50 in 7112
* Update Popularity community by xoriole in 6950
* Add Tribler translation to Spanish by Manuel-Senpai in 7235, 7246


Bugfixes

<details>
<summary>(click to view)</summary>

* Fix 7295 invalid health records infect Tribler nodes and spread from machine to machine fixed by kozlovsky & drew2a in 7286, 7313, 7322
* Add ProcessLocker to ensure that no more than one Tribler GUI/Core process runs locally at any moment by kozlovsky in 7212
* Hopefully fix 7137 CoreConnectTimeoutError: Could not connect with the Tribler Core within 120 seconds by kozlovsky in 7251
* 6994 Tribler Core process continues to work after the GUI process crash by kozlovsky in 6995
* Fix TriblerProcess.is_running() by kozlovsky in 7461
* 7556 ConnectionResetError: Connection lost by kozlovsky in 7566
* 7547 TimeoutError on getting torrentinfo by xoriole in 7553
* 7564 OSError in SocksServersComponent: error while attempting to bind on address by kozlovsky in 7565
* 7538 Incorrect tracker status shown on Tracker tab by xoriole in 7555
* Add Logging for Slow Database Sessions by kozlovsky in 7494
* Handle no space available situation on upgrade by xoriole in 7496
* Consider HealthInfo with negative seeders and leechers as invalid by drew2a in 7487
* The `get_circuit_slots` method of `DebugEndpoint` should handle the case when `tunnel_community` is `None` by kozlovsky in 7504
* Properly stop the non-primary process by kozlovsky in 7349
* Detect slow coroutines and freezes in the asyncio loop by kozlovsky in 7414
* Fixes 7344: AssertionError "transport is not None" in aiohttp/web_request.py by kozlovsky in 7385
* Temporarily increase the core manager API port check timeout to be sure it is big enough by kozlovsky in 7419
* Profiling of slow coroutines by kozlovsky in 7446
* Fix the step interval of DiscoveryBooster by kozlovsky in 7449
* 100x speedup of EdgeWalk.take_step() by caching results of GigaChannelCommunity.guess_address() by kozlovsky in 7450
* Add extended logging to RESTManager.site.start() call by kozlovsky in 7451
* Send events to GUI only before shutdown and in the proper order by kozlovsky in 7364
* Skip `on_tribler_exception` if EventsEndpoint is shutting down. by drew2a in 7357
* Decrease the frequency of the `downloads` request by drew2a in 7377
* Check on the ancient version by drew2a in 7383
* Fix 7386 "The connection to the Tribler Core was lost" by xoriole in 7387
* Ignore old responses for the DownloadsPage by drew2a in 7391
* Stop sending requests after shutdown by drew2a in 7405
* Suppress `ConnectionResetError` by drew2a in 7404
* Make `KnowledgeRulesProcessor` less aggressive by drew2a in 7418
* Add queue for multithread processing by drew2a in 7417
* Fix crash on Ubuntu while selecting File Chooser by xoriole in 7484
* Fix empty `saveas` issue by drew2a in 7346
* Read the language file in `utf-8` encoding. by drew2a in 7355
* Check EditMetadataDialog on closed by drew2a in 7371
* Fix KeyError for translations by drew2a in 7370
* Refactor the Downloads page by drew2a in 7378
* Add a description to the error when trying to download a newer version of the channel by kozlovsky in 7380
* Fixes 7395 "Labels on Discovered channels are missing" by kozlovsky in 7402
* Fix `FileNotFoundError` by drew2a in 7401
* Fix 7453 KeyError when clicking on a personal channel by xoriole in 7454
* Fix invalid handle when there is no torrent metadata by xoriole in 7415
* Use a separate `misc` table for the KnowledgeDB by drew2a in 7413
* Add reprocess feature for `KnowledgeRulesProcessor` by drew2a in 7379
* Add `CONTENT_ITEM` relation by drew2a in 7445
* Fixes the download torrent dialog behavior after closing it by clicking somewhere outside the dialog area by kozlovsky in 7465
* Fixes 7473 FileNotFoundError when displaying the settings page by kozlovsky in 7474
* Handle `IndexError` by drew2a in 7480
* Fixes 7462 The Tribler window does not unminimize when clicking on a torrent file by kozlovsky in 7463
* Fixes 7467 ConnectionResetError by kozlovsky in 7472
* Fixes the space bug in the Sentry Scrubber by drew2a in 7470
* Fixes 7406 UnicodeDecodeError in on_tracker_error_alert by kozlovsky in 7468
* Print `Queue is full` once per 5 seconds by drew2a in 7493
* Accept error values of any type in TriblerProcess.set_error by kozlovsky in 7537
* 7558 creating large torrent files by xoriole in 7559
* 5833 WatchFolder PermissionDenied by drew2a in 6966, 7016
* 6884 Add Magnet Dialog disappears until restarted by drew2a in 6885
* 6890 Fix Eva InvalidStateError by drew2a in 6891
* 6833 Avoid incorrect padding by drew2a in 6898
* 6973 Rewrite window geometry restoring by drew2a in 7008
* 6987 Handle incorrect tracker URLs by drew2a in 7012
* 3037 Fix "bencoded item count limit exceeded" by drew2a in 7015
* 7051 Fix stack overflow for a torrent with a deep directory structure by kozlovsky in 7052
* 5816 RuntimeError: nested asn1 error by drew2a in 7128, 7302
* Fix initialization of Ipv8Endpoint in RESTComponent by kozlovsky in 7044
* 7053 Tribler becomes unresponsive with a large tags.db by drew2a in 7062
* Fix 7065 error while attempting to bind on address by drew2a 7071
* 7080 The Upgrader might not copy some files by drew2a in 7083
* 7077 Tribler is asking to upgrade version too frequently by drew2a in 7101, by vi in 7102
* 7107 Error on rendering tablecontentdelegate by xoriole in 7108
* 6699 the width of the Size column on Windows when the display scaling is more than 100% by kozlovsky in 7131
* 7056 adding torrent with invalid magnet link to channel by xoriole in 7058
* 7106 crash when file progress is empty by xoriole in 7114
* 7149 Core Tribler notifier should work in async mode by kozlovsky in 7151
* 7154 Error on clicking blank space below the item list on personal channel by drew2a in 7155
* 7157 RuntimeError: invalid torrent handle used by drew2a in 7157
* 7172 ValueError: invalid literal for int() with base 10 by refactoring get max_lines logic by drew2a in 7173
* 7181 Enable token balance refresh only if widget is available by xoriole in 7201
* 7059 Handle non-existing file in torrent info endpoint by xoriole in 7203
* Link detection fix by Dmole in 6716
* 7041 Request Error while pressing the "download" button by drew2a in 7211
* 7177 Tribler does not close if left idle for a few hours by xoriole in 7202
* 7213 ValueError: invalid literal for int() with base 10 in TorrentDef.is_private() by kozlovsky in 7214
* 7216 AssertionError in RestManager.stop() by kozlovsky in 7217
* 7218 Do not load Debug Window if settings is not available yet by xoriole in 7219
* 7223 UnicodeDecodeError in on_metadata_received_alert by drew2a in 7224
* 7225 ClientConnectorError: Cannot connect to host by drew2a in 7226
* 7117 RuntimeError: invalid torrent handle used by drew2a in 7230
* 7231 Ignore payout in the case of the `OrmError` happens by drew2a in 7236
* 7271 ValueError: "Unable to convert 222222 to QColor" by kozlovsky in 7272
* 7253 Tribler does not run if the state directory does not already exist by kozlovsky in 7257
* 7187 A download in GUI fluctuates between "0%" and "Seeding" by drew2a in 7205
* 7318 GUI downloads status update by drew2a in 7319
* 7316 mathematical mistake in the download progress bar drawing by drew2a in 7317
* 7321 KeyError while surfing through a channel's content by kozlovsky in 7323
* Fix item_rank(), torrent_rank(), freshness_rank() functions by kozlovsky in 7338
* 7333 On GUI side, handle Core REST API responses without data by kozlovsky in 7334
* Rename the column with a torrent's creation date from "Updated" to "Created" to avoid confusion by kozlovsky in 7340
* 6842 Some settings are not used if torrent loaded from watch folder by drew2a in 6863
* 7314 long shutdown by drew2a in 7315
* 7188 Add shutdown for the KnowledgeRulesProcessor by drew2a in 7189
* 7192 Task was destroyed but it is pending! Transfer.start_request() by drew2a in 7193
* Remove streaming related sentences from main README.md by drew2a in 6826
</details>

Code improvements

<details>
<summary>(click to view)</summary>

* 7158 Limit the log size by drew2a in 7160
* Obfuscate machine name for Sentry events by drew2a in 7023
* Add core stdout breadcrumb by drew2a in 7022, 7033
* 7066 Extract a real core error from `CoreError` for the Sentry Reporter by drew2a in 7072
* Simplify Session class by drew2a in 6955
* Add "subclass match" for session.get_instance() by drew2a in 7060
* Improve the EVA protocol by drew2a in 6831, 6889, 6878, 6882, 6883, 6887
* Config refactoring by drew2a in 6879
* Add typings to the `Download` class by drew2a in 6880
* Add logging for LibTorrent events by drew2a in 6867
* Add `format_error_message` function by drew2a in 6881
* Simplify base64 conversion in `get_pieces_base64` by drew2a in 6897
* Stricter signature for ErrorHandler.gui_error() by kozlovsky in 6846
* Extract the `run_threaded` function to the `pony_utils.py` by drew2a in 7150
* Refactoring of the `tail` function by drew2a in 7159
* Remove `asyncio` logger level specification. by drew2a in 7175
* [Snyk] Security upgrade setuptools from 39.0.1 to 65.5.1 by xoriole in 7165
* Refactor hi-level `VersionHistory` logic. by drew2a in 7182
* Add `resource_type` for subjects in queries in the `KnowledgeDatabase` by drew2a in 7153
* Refactoring of the `tiny_tribler_service.py` by drew2a in 7200
* Add EventsEndpoint.shutdown() by drew2a in 7196
* Disable BEP33 health check by xoriole in 7275
* Fix `asyncio.create_task()` calls by drew2a in 7300
* Improve the AsyncGroup by drew2a in 7306
* Fix critical issues reported by Codacy by drew2a in 7309
* Apply autoformat + optimise imports by drew2a in 7320
* Update `ipv8` to the version `2.10` by drew2a in 7285
* Bump pillow from 9.0.1 to 9.3.0 by dependabot in 7198
* Bump setuptools from 60.0.2 to 65.5.1 by dependabot in 7241
* Bump cryptography from 35.0.0 to 39.0.1 by dependabot in 7301
</details>


Build/CI improvements

<details>
<summary>(click to view)</summary>

* Fix ImportError: DLL load failed while importing libtorrent: The specified module could not be found by kozlovsky in 7533
* Fixes 7047: Update the build documentation by drew2a in 7244
* Build Tribler by using GitHub Actions by drew2a in 6903
* Build updates by xoriole in 6905
* Update requirements.txt by drew2a in 6839
* Refactoring of workflows by drew2a in 6913
* Add GitHub actions for PR (documentation, pytest, coverage) by drew2a in 6850
* Add .codeclimate.yml by drew2a in 6849
* Add codacy by drew2a in 6860
* Add coverage badge by drew2a in 6868
* Add codecov by drew2a in 6869
* Add bandit.yml by drew2a in 6871
* Add guitest.yml by drew2a in 6902
* Use project-token for codacy by drew2a in 6870
* Fix upload_coverage.yml by drew2a in 6861
* Swap download action by dawidd6/action-download-artifactv2 by drew2a in 6864
* Fix PR event by drew2a in 6922
* Add pip cache for GitHub Actions by drew2a in 6923
* Add `windows_dependencies` action by drew2a in 6925
* Add `workflow_dispatch` for ubuntu build by drew2a in 6927
* Build Tribler binaries for win by drew2a in 6920
* GitHub Actions: Change order of upload value by drew2a in 6931
* Build Tribler binaries for macOS by drew2a in 6928, 7276
* Add LOG_LEVEL variable for win and ubuntu build by drew2a in 6933
* [mac] Fix Tribler.app is damaged by drew2a in 6935
* Add `pytest_custom_ipv8.yml` by drew2a in 6943
* Add `invalidate-cache` flag by drew2a in 6949
* Pass secrets to callable workflows. by drew2a in 6953
* Add the sign step to the windows build by drew2a in 6946
* Fix `extract_swagger.py` by drew2a in 6965
* Fix failing GUI test on Linux Github action by drew2a in 6999
* Add the `requirements-key` parameter to the pyenv GitHub Action by drew2a in 7028
* Specify the `requirements-key` parameter for `documentation.yml` by drew2a in 7029
* Add the action for screenshots publishing by drew2a in 7084
* Fix pyenv GitHub Action by drew2a in 7094
* Add `scripttest.yml` by drew2a in 7105
* Update GitHub Actions versions by drew2a in 7113
* Add Windows and macOS GUI tests to GitHub Actions by drew2a in 7115
* Run checks only if it is necessary by drew2a in 7130
* 7174 Add support for unannotated tags in GitHub Actions builds by drew2a in 7176
* Use shared env variables in !PR.yml by drew2a in 7239
* Update `yappi` version by drew2a in 7249
* Update versions of Qt libraries by drew2a in 7256
* Fix workflows context by drew2a in 7267
* Specify ubuntu and win versions by drew2a in 7273
* Add `github.ref` for the events: `push` and `workflow_dispatch` by drew2a in 7277
* Remove `codacy` check by drew2a in 7279
* Add a workaround for Apple Silicon by drew2a in 7281
</details>

Test improvements

<details>
<summary>(click to view)</summary>

* Add a specific label to unlock PR checks for outside collaborators by drew2a in 7243
* Add profiling for `pytest` by drew2a in 7135
* Add looptime by drew2a in 6894
* Add `--reruns 1` for pytests by drew2a in 7169
* Add `--reruns-delay 1` by drew2a in 7183
* Add an ability to send Sentry reports for developers by drew2a in 6886
* Remove `await` statements from `with db_session` blocks by drew2a in 7170
* Fix terminated by timeout exception by drew2a in 6848
* 6854 timeouts in tests by drew2a in 6855
* Override `windows-latest` pytest timeout by drew2a in 6862
* Set asyncio_mode=auto by drew2a in 6866
* Add tests for the Transfer class by drew2a in 6888
* Fix random frozen ProcessChecker tests by drew2a in 6954
* Fix `speed_test_e2e.py` by drew2a in 7092
* Remove spam from pytest logs by drew2a in 7110
* 7118 by removing `caplog` from async functions `test_gui_process_watcher.py` by drew2a in 7119
* Increase `EvaSelectRequest` timeout for `test_remote_select_channel_contents_happy_eyeballs` by drew2a in 7121
* Divide `pytest` into two categories: for a draft PR and for a ready PR by drew2a in 7123
* Add macOS and windows builds as PR checks by drew2a in 7129
* Remove unnecessary `async` statements by drew2a in 7139
* 7132 timeouts in Windows GUI tests by drew2a in 7141
* Call `app.shutdown()` for rest_api fixture by drew2a in 7144
* Update "io" and "pytest" dependencies by drew2a in 7145
* Fix unstability in test_default_sorting_with_fts by kozlovsky in 7152
* Change `loop` fixture by drew2a in 7127
* Fix 7140 Remove mocks of stdout and stderr by drew2a in 7156
* Refactoring of the `test_drop_silent_peer` by drew2a in 7163
* Change await event logic for the `test_remote_select_torrents` function by drew2a in 7171
* Replace the `loop` fixture with the `event_loop` fixture. by drew2a in 7168
* Extract environment variables into `shared.env` by drew2a in 7185
* Add `pytest-sentry` for pytest runs to collect statistics about flaky test by drew2a in 7186
* 7192 Transfer tests by drew2a in 7227
* 7190 Add unload for Tunnel Community by drew2a in 7191
* 7228 Add session.cleanup() by drew2a in 7229
* Fix Ubuntu GUI tests tests by drew2a in 7255
* Downgrade `pyqtgraph` version by drew2a in 7265
* Fix unstable test_tribler_process_mark_finished by kozlovsky in 7325
* Update pytest by drew2a in 7326
* Modify the pytest output to include the execution duration for all tests by drew2a in 7482
* Fix GUI Test non-zero exit code by xoriole in 7501
* Fix calling `await app.shutdown()` in REST API tests by kozlovsky in 7502
* Fix the `get_torrent_health` endpoint in GUI tests by kozlovsky in 7505
* Use TestError instead of AssertionError in test to avoid confusion by kozlovsky in 7503
* Fix print issue on core manager repeated test by xoriole in 7511
* Disable logging in the faker module for pytest. by drew2a in 7348
* Disable logging in tests for `faker.factory` and `PyQT5.uic` by drew2a in 7384
* Fix test check core API port timeout by kozlovsky in 7420
* Add `tribler_stopped` tag to the Sentry by drew2a in 7365
* Sentry: add the field `additional_information` by drew2a in 7394
* Add an option to cease the collection of breadcrumbs by drew2a in 7426
* Increase the size of log files from 100 kilobytes to 1 megabyte, and the number of log backups from 1 to 2 by kozlovsky in 7455
* Pin pip version for the macOS build by drew2a in 7375
* Remove events and requests from Sentry report by drew2a in 7376

</details>

Thank You for Your Support

We sincerely appreciate your continued support and feedback, which help us make Tribler better with every release. Your engagement drives our mission to create a powerful, decentralized platform that respects users' privacy and freedom. We encourage you to download and try the latest version, and as always, please share your thoughts and suggestions with us. Together, we can make Tribler the ultimate peer-to-peer experience. Happy sharing!

**Full Changelog**: https://github.com/Tribler/tribler/compare/v7.12.1...v7.13.0-RC4

7.13.0rc3

Overview

This release has important bug fixes that improve Tribler speed and stability.

What's Changed Since the Latest RC2 Release:


Startup/Shutdown Logic Fixes

* Fixes TriblerProcess.is_running() by kozlovsky in https://github.com/Tribler/tribler/pull/7461


The Application Logic Fixes

* Add Logging for Slow Database Sessions by kozlovsky in https://github.com/Tribler/tribler/pull/7494
* Handle no space available situation on upgrade by xoriole in https://github.com/Tribler/tribler/pull/7496
* Consider HealthInfo with negative seeders and leechers as invalid by drew2a in https://github.com/Tribler/tribler/pull/7487
* The `get_circuit_slots` method of `DebugEndpoint` should handle the case when `tunnel_community` is `None` by kozlovsky in https://github.com/Tribler/tribler/pull/7504


UI Fixes

* Fix crash on Ubuntu while selecting File Chooser by xoriole in https://github.com/Tribler/tribler/pull/7484
* Fixes the download torrent dialog behavior after closing it by clicking somewhere outside the dialog area by kozlovsky in https://github.com/Tribler/tribler/pull/7465
* Fixes 7473 FileNotFoundError when displaying the settings page by kozlovsky in https://github.com/Tribler/tribler/pull/7474
* Handle `IndexError` by drew2a in https://github.com/Tribler/tribler/pull/7480
* Fixes 7462 The Tribler window does not unminimize when clicking on a torrent file by kozlovsky in https://github.com/Tribler/tribler/pull/7463


Error-Handling Fixes

* Fixes 7467 ConnectionResetError by kozlovsky in https://github.com/Tribler/tribler/pull/7472
* Fixes the space bug in the Sentry Scrubber by drew2a in https://github.com/Tribler/tribler/pull/7470
* Fixes 7406 UnicodeDecodeError in on_tracker_error_alert by kozlovsky in https://github.com/Tribler/tribler/pull/7468
* Print `Queue is full` once per 5 seconds by drew2a in https://github.com/Tribler/tribler/pull/7493
* Accept error values of any type in TriblerProcess.set_error by kozlovsky in https://github.com/Tribler/tribler/pull/7537


Test fixes

* Modify the pytest output to include the execution duration for all tests by drew2a in https://github.com/Tribler/tribler/pull/7482
* Fix GUI Test non-zero exit code by xoriole in https://github.com/Tribler/tribler/pull/7501
* Fix calling `await app.shutdown()` in REST API tests by kozlovsky in https://github.com/Tribler/tribler/pull/7502
* Fix the `get_torrent_health` endpoint in GUI tests by kozlovsky in https://github.com/Tribler/tribler/pull/7505
* Use TestError instead of AssertionError in test to avoid confusion by kozlovsky in https://github.com/Tribler/tribler/pull/7503
* Fix print issue on core manager repeated test by xoriole in https://github.com/Tribler/tribler/pull/7511


Build fixes

* Fix ImportError: DLL load failed while importing libtorrent: The specified module could not be found by kozlovsky in https://github.com/Tribler/tribler/pull/7533

7.13.0rc2

Overview

This release has important bug fixes that improve Tribler speed and stability.

What's Changed Since the Latest RC1 Release:

Stability fixes:

* Properly stop the non-primary process by kozlovsky in 7349
* Detect slow coroutines and freezes in the asyncio loop by kozlovsky in 7414
* Fixes 7344: AssertionError "transport is not None" in aiohttp/web_request.py by kozlovsky in 7385
* Temporarily increase the core manager API port check timeout to be sure it is big enough by kozlovsky in 7419
* Profiling of slow coroutines by kozlovsky in 7446
* Fix the step interval of DiscoveryBooster by kozlovsky in 7449
* 100x speedup of EdgeWalk.take_step() by caching results of GigaChannelCommunity.guess_address() by kozlovsky in 7450
* Add extended logging to RESTManager.site.start() call by kozlovsky in 7451
* Send events to GUI only before shutdown and in the proper order by kozlovsky in 7364
* Skip `on_tribler_exception` if EventsEndpoint is shutting down. by drew2a in 7357
* Decrease the frequency of the `downloads` request by drew2a in 7377
* Check on the ancient version by drew2a in 7383
* Fix 7386 "The connection to the Tribler Core was lost" by xoriole in 7387
* Ignore old responses for the DownloadsPage by drew2a in 7391
* Stop sending requests after shutdown by drew2a in 7405
* Suppress `ConnectionResetError` by drew2a in 7404
* Make `KnowledgeRulesProcessor` less aggressive by drew2a in 7418
* Add queue for multithread processing by drew2a in 7417



UI-related fixes:

* Fix empty `saveas` issue by drew2a in 7346
* Read the language file in `utf-8` encoding. by drew2a in 7355
* Check EditMetadataDialog on closed by drew2a in 7371
* Fix KeyError for translations by drew2a in 7370
* Refactor the Downloads page by drew2a in 7378
* Add a description to the error when trying to download a newer version of the channel by kozlovsky in 7380
* Fixes 7395 "Labels on Discovered channels are missing" by kozlovsky in 7402
* Fix `FileNotFoundError` by drew2a in 7401
* Fix 7453 KeyError when clicking on a personal channel by xoriole in 7454


Core-related fixes:

* Fix invalid handle when there is no torrent metadata by xoriole in 7415
* Use a separate `misc` table for the KnowledgeDB by drew2a in 7413
* Add reprocess feature for `KnowledgeRulesProcessor` by drew2a in 7379
* Add `CONTENT_ITEM` relation by drew2a in 7445


Test, build, and reports fixes:

* Disable logging in the faker module for pytest. by drew2a in 7348
* Disable logging in tests for `faker.factory` and `PyQT5.uic` by drew2a in 7384
* Fix test check core API port timeout by kozlovsky in 7420
* Add `tribler_stopped` tag to the Sentry by drew2a in 7365
* Sentry: add the field `additional_information` by drew2a in 7394
* Add an option to cease the collection of breadcrumbs by drew2a in 7426
* Increase the size of log files from 100 kilobytes to 1 megabyte, and the number of log backups from 1 to 2 by kozlovsky in 7455
* Pin pip version for the macOS build by drew2a in 7375
* Remove events and requests from Sentry report by drew2a in 7376

7.13.0rc1

Overview

We're ecstatic to introduce the latest version of Tribler, packed with exciting features and significant enhancements! Here's a rundown of the most notable changes:


Instant search with superior result quality:

* Experience lightning-fast local search queries, now 100x faster than in the previous release (because of broken feature) (7166);
* Enjoy real-time, remote results from other peers as they appear instantly (7025);
* Benefit from an advanced ranking algorithm that considers multiple factors, such as title structure, creation date, and the number of seeders/leechers (7025);
* Discover similar results for known content categories, now conveniently grouped for an improved UI experience.

We're confident that you'll love the revamped search experience. As more peers upgrade to the new version, the distributed search will deliver even higher-quality results with the enhanced ranking system!

With these updates, Tribler is gradually evolving into a decentralized search engine, rivaling the speed of YouTube's video search.


Introducing the Knowledge Component: A Leap Towards Decentralized Search Excellence

Google's power resides in its PageRank algorithm. Creating a decentralized alternative to Big Tech has proven challenging, but with this release, we take another small step on this journey. Our ultimate goal is to achieve _self-organizing trust_, the fundamental building block for a decentralized PageRank system. The concrete use-case we aim to address is collective decision-making in the peer-to-peer world, such as determining _whether Justin Bieber is gay_.


Is Justin Bieber gay?

[Explore the details of this scientifically serious issue related to trust, spam, and crowdsourcing](https://github.com/Tribler/tribler/issues/6214#issuecomment-1441575638). For the record, we believe Justin Bieber's music is neither `Black Metal` nor `gay`. We consider [this](https://musicbrainz.org/artist/e0140a67-e4d1-4f13-8a01-364355bee46e/tags) an exemplary use-case for Tribler's zero-trust architecture to solve. Our distributed trust ledger has been under incremental development [since before](http://news.bbc.co.uk/2/hi/technology/6971904.stm) Bitcoin. We have not yet deployed our decentralized reputation and trust framework, as [our MeritRank algorithm](https://arxiv.org/pdf/2207.09950.pdf) is still not ready for production. However, we have upgraded the BitTorrent tag-based metadata enrichment from pure text labels into the KnowledgeComponent (https://github.com/Tribler/tribler/pull/7070). As a test, we offer semantic clustering within Tribler when searching for "Ubuntu," providing cleaner search results and filtering duplicates.

No other peer-to-peer project, such as IPFS, Mojo Nation, or Freenet, has ever cracked semantic search. With the KnowledgeComponent, we take another challenging step towards a Google-quality search engine. It signifies a move towards semantics, a search engine that understands your preferences and helps you discover content without interference from lawyers or governments.


Creative Commons licensed promotional picture:
<IMG src=https://user-images.githubusercontent.com/13798583/193611094-4b0b8b68-eef2-4fca-ac30-7f65e64400b0.png width=500>


Enhanced Torrent Health: Accurate Sharing Between Peers

Tribler peers exchange information about torrent popularity, allowing torrents with a substantial number of seeders to appear on the "Popular" page and receive priority in search results. We identified several critical bugs (7295) in the previous algorithm, causing invalid torrent health records to spread across the network and skew the results on the "Popular" page. These bugs have now been fixed, and the gossiping algorithm has been optimized for efficient sharing of popular torrents (6950).


Improved Stability for a Smoother Experience

This release of Tribler is set to be the most stable in recent times. Our development team has successfully identified and resolved numerous obscure bugs that previously led to crashes and freezes. We're confident that this version of Tribler will impress you with its enhanced stability and reliability.

Get paid to work on Tribler and earn a phd?

See open position: [PhD Decentralised Machine Learning](https://www.tudelft.nl/over-tu-delft/werken-bij-tu-delft/vacatures/details?jobId=12514)
* Challenge: Developing and building a fully decentralised video search engine.
* Change: Eliminating the need for servers when developing machine learning.
* Impact: Safe machine learning benefiting billions of users.

Features

* 100x speedup for full-text search queries with better quality by kozlovsky in 7025, 7166, 7259
* Upgrade the `TagComponent` to the `KnowledgeComponent` by drew2a in 7070
* 2455 Added edit metadata GUI elements by devos50 in 7112
* Update Popularity community by xoriole in 6950
* Add Tribler translation to Spanish by Manuel-Senpai in 7235, 7246


Bugfixes

<details>
<summary>(click to view)</summary>

* Fix 7295 invalid health records infect Tribler nodes and spread from machine to machine fixed by kozlovsky & drew2a in 7286, 7313, 7322
* Add ProcessLocker to ensure that no more than one Tribler GUI/Core process runs locally at any moment by kozlovsky in 7212
* Hopefully fix 7137 CoreConnectTimeoutError: Could not connect with the Tribler Core within 120 seconds by kozlovsky in 7251
* 6994 Tribler Core process continues to work after the GUI process crash by kozlovsky in 6995
* 5833 WatchFolder PermissionDenied by drew2a in 6966, 7016
* 6884 Add Magnet Dialog disappears until restarted by drew2a in 6885
* 6890 Fix Eva InvalidStateError by drew2a in 6891
* 6833 Avoid incorrect padding by drew2a in 6898
* 6973 Rewrite window geometry restoring by drew2a in 7008
* 6987 Handle incorrect tracker URLs by drew2a in 7012
* 3037 Fix "bencoded item count limit exceeded" by drew2a in 7015
* 7051 Fix stack overflow for a torrent with a deep directory structure by kozlovsky in 7052
* 5816 RuntimeError: nested asn1 error by drew2a in 7128, 7302
* Fix initialization of Ipv8Endpoint in RESTComponent by kozlovsky in 7044
* 7053 Tribler becomes unresponsive with a large tags.db by drew2a in 7062
* Fix 7065 error while attempting to bind on address by drew2a 7071
* 7080 The Upgrader might not copy some files by drew2a in 7083
* 7077 Tribler is asking to upgrade version too frequently by drew2a in 7101, by vi in 7102
* 7107 Error on rendering tablecontentdelegate by xoriole in 7108
* 6699 the width of the Size column on Windows when the display scaling is more than 100% by kozlovsky in 7131
* 7056 adding torrent with invalid magnet link to channel by xoriole in 7058
* 7106 crash when file progress is empty by xoriole in 7114
* 7149 Core Tribler notifier should work in async mode by kozlovsky in 7151
* 7154 Error on clicking blank space below the item list on personal channel by drew2a in 7155
* 7157 RuntimeError: invalid torrent handle used by drew2a in 7157
* 7172 ValueError: invalid literal for int() with base 10 by refactoring get max_lines logic by drew2a in 7173
* 7181 Enable token balance refresh only if widget is available by xoriole in 7201
* 7059 Handle non-existing file in torrent info endpoint by xoriole in 7203
* Link detection fix by Dmole in 6716
* 7041 Request Error while pressing the "download" button by drew2a in 7211
* 7177 Tribler does not close if left idle for a few hours by xoriole in 7202
* 7213 ValueError: invalid literal for int() with base 10 in TorrentDef.is_private() by kozlovsky in 7214
* 7216 AssertionError in RestManager.stop() by kozlovsky in 7217
* 7218 Do not load Debug Window if settings is not available yet by xoriole in 7219
* 7223 UnicodeDecodeError in on_metadata_received_alert by drew2a in 7224
* 7225 ClientConnectorError: Cannot connect to host by drew2a in 7226
* 7117 RuntimeError: invalid torrent handle used by drew2a in 7230
* 7231 Ignore payout in the case of the `OrmError` happens by drew2a in 7236
* 7271 ValueError: "Unable to convert 222222 to QColor" by kozlovsky in 7272
* 7253 Tribler does not run if the state directory does not already exist by kozlovsky in 7257
* 7187 A download in GUI fluctuates between "0%" and "Seeding" by drew2a in 7205
* 7318 GUI downloads status update by drew2a in 7319
* 7316 mathematical mistake in the download progress bar drawing by drew2a in 7317
* 7321 KeyError while surfing through a channel's content by kozlovsky in 7323
* Fix item_rank(), torrent_rank(), freshness_rank() functions by kozlovsky in 7338
* 7333 On GUI side, handle Core REST API responses without data by kozlovsky in 7334
* Rename the column with a torrent's creation date from "Updated" to "Created" to avoid confusion by kozlovsky in 7340
* 6842 Some settings are not used if torrent loaded from watch folder by drew2a in 6863
* 7314 long shutdown by drew2a in 7315
* 7188 Add shutdown for the KnowledgeRulesProcessor by drew2a in 7189
* 7192 Task was destroyed but it is pending! Transfer.start_request() by drew2a in 7193
* Remove streaming related sentences from main README.md by drew2a in 6826
</details>


Code improvements

<details>
<summary>(click to view)</summary>

* 7158 Limit the log size by drew2a in 7160
* Obfuscate machine name for Sentry events by drew2a in 7023
* Add core stdout breadcrumb by drew2a in 7022, 7033
* 7066 Extract a real core error from `CoreError` for the Sentry Reporter by drew2a in 7072
* Simplify Session class by drew2a in 6955
* Add "subclass match" for session.get_instance() by drew2a in 7060
* Improve the EVA protocol by drew2a in 6831, 6889, 6878, 6882, 6883, 6887
* Config refactoring by drew2a in 6879
* Add typings to the `Download` class by drew2a in 6880
* Add logging for LibTorrent events by drew2a in 6867
* Add `format_error_message` function by drew2a in 6881
* Simplify base64 conversion in `get_pieces_base64` by drew2a in 6897
* Stricter signature for ErrorHandler.gui_error() by kozlovsky in 6846
* Extract the `run_threaded` function to the `pony_utils.py` by drew2a in 7150
* Refactoring of the `tail` function by drew2a in 7159
* Remove `asyncio` logger level specification. by drew2a in 7175
* [Snyk] Security upgrade setuptools from 39.0.1 to 65.5.1 by xoriole in 7165
* Refactor hi-level `VersionHistory` logic. by drew2a in 7182
* Add `resource_type` for subjects in queries in the `KnowledgeDatabase` by drew2a in 7153
* Refactoring of the `tiny_tribler_service.py` by drew2a in 7200
* Add EventsEndpoint.shutdown() by drew2a in 7196
* Disable BEP33 health check by xoriole in 7275
* Fix `asyncio.create_task()` calls by drew2a in 7300
* Improve the AsyncGroup by drew2a in 7306
* Fix critical issues reported by Codacy by drew2a in 7309
* Apply autoformat + optimise imports by drew2a in 7320
* Update `ipv8` to the version `2.10` by drew2a in 7285
* Bump pillow from 9.0.1 to 9.3.0 by dependabot in 7198
* Bump setuptools from 60.0.2 to 65.5.1 by dependabot in 7241
* Bump cryptography from 35.0.0 to 39.0.1 by dependabot in 7301
</details>


Build/CI improvements

<details>
<summary>(click to view)</summary>

* Fixes 7047: Update the build documentation by drew2a in 7244
* Build Tribler by using GitHub Actions by drew2a in 6903
* Build updates by xoriole in 6905
* Update requirements.txt by drew2a in 6839
* Refactoring of workflows by drew2a in 6913
* Add GitHub actions for PR (documentation, pytest, coverage) by drew2a in 6850
* Add .codeclimate.yml by drew2a in 6849
* Add codacy by drew2a in 6860
* Add coverage badge by drew2a in 6868
* Add codecov by drew2a in 6869
* Add bandit.yml by drew2a in 6871
* Add guitest.yml by drew2a in 6902
* Use project-token for codacy by drew2a in 6870
* Fix upload_coverage.yml by drew2a in 6861
* Swap download action by dawidd6/action-download-artifactv2 by drew2a in 6864
* Fix PR event by drew2a in 6922
* Add pip cache for GitHub Actions by drew2a in 6923
* Add `windows_dependencies` action by drew2a in 6925
* Add `workflow_dispatch` for ubuntu build by drew2a in 6927
* Build Tribler binaries for win by drew2a in 6920
* GitHub Actions: Change order of upload value by drew2a in 6931
* Build Tribler binaries for macOS by drew2a in 6928, 7276
* Add LOG_LEVEL variable for win and ubuntu build by drew2a in 6933
* [mac] Fix Tribler.app is damaged by drew2a in 6935
* Add `pytest_custom_ipv8.yml` by drew2a in 6943
* Add `invalidate-cache` flag by drew2a in 6949
* Pass secrets to callable workflows. by drew2a in 6953
* Add the sign step to the windows build by drew2a in 6946
* Fix `extract_swagger.py` by drew2a in 6965
* Fix failing GUI test on Linux Github action by drew2a in 6999
* Add the `requirements-key` parameter to the pyenv GitHub Action by drew2a in 7028
* Specify the `requirements-key` parameter for `documentation.yml` by drew2a in 7029
* Add the action for screenshots publishing by drew2a in 7084
* Fix pyenv GitHub Action by drew2a in 7094
* Add `scripttest.yml` by drew2a in 7105
* Update GitHub Actions versions by drew2a in 7113
* Add Windows and macOS GUI tests to GitHub Actions by drew2a in 7115
* Run checks only if it is necessary by drew2a in 7130
* 7174 Add support for unannotated tags in GitHub Actions builds by drew2a in 7176
* Use shared env variables in !PR.yml by drew2a in 7239
* Update `yappi` version by drew2a in 7249
* Update versions of Qt libraries by drew2a in 7256
* Fix workflows context by drew2a in 7267
* Specify ubuntu and win versions by drew2a in 7273
* Add `github.ref` for the events: `push` and `workflow_dispatch` by drew2a in 7277
* Remove `codacy` check by drew2a in 7279
* Add a workaround for Apple Silicon by drew2a in 7281
</details>

Test improvements

<details>
<summary>(click to view)</summary>

* Add a specific label to unlock PR checks for outside collaborators by drew2a in 7243
* Add profiling for `pytest` by drew2a in 7135
* Add looptime by drew2a in 6894
* Add `--reruns 1` for pytests by drew2a in 7169
* Add `--reruns-delay 1` by drew2a in 7183
* Add an ability to send Sentry reports for developers by drew2a in 6886
* Remove `await` statements from `with db_session` blocks by drew2a in 7170
* Fix terminated by timeout exception by drew2a in 6848
* 6854 timeouts in tests by drew2a in 6855
* Override `windows-latest` pytest timeout by drew2a in 6862
* Set asyncio_mode=auto by drew2a in 6866
* Add tests for the Transfer class by drew2a in 6888
* Fix random frozen ProcessChecker tests by drew2a in 6954
* Fix `speed_test_e2e.py` by drew2a in 7092
* Remove spam from pytest logs by drew2a in 7110
* 7118 by removing `caplog` from async functions `test_gui_process_watcher.py` by drew2a in 7119
* Increase `EvaSelectRequest` timeout for `test_remote_select_channel_contents_happy_eyeballs` by drew2a in 7121
* Divide `pytest` into two categories: for a draft PR and for a ready PR by drew2a in 7123
* Add macOS and windows builds as PR checks by drew2a in 7129
* Remove unnecessary `async` statements by drew2a in 7139
* 7132 timeouts in Windows GUI tests by drew2a in 7141
* Call `app.shutdown()` for rest_api fixture by drew2a in 7144
* Update "io" and "pytest" dependencies by drew2a in 7145
* Fix unstability in test_default_sorting_with_fts by kozlovsky in 7152
* Change `loop` fixture by drew2a in 7127
* Fix 7140 Remove mocks of stdout and stderr by drew2a in 7156
* Refactoring of the `test_drop_silent_peer` by drew2a in 7163
* Change await event logic for the `test_remote_select_torrents` function by drew2a in 7171
* Replace the `loop` fixture with the `event_loop` fixture. by drew2a in 7168
* Extract environment variables into `shared.env` by drew2a in 7185
* Add `pytest-sentry` for pytest runs to collect statistics about flaky test by drew2a in 7186
* 7192 Transfer tests by drew2a in 7227
* 7190 Add unload for Tunnel Community by drew2a in 7191
* 7228 Add session.cleanup() by drew2a in 7229
* Fix Ubuntu GUI tests tests by drew2a in 7255
* Downgrade `pyqtgraph` version by drew2a in 7265
* Fix unstable test_tribler_process_mark_finished by kozlovsky in 7325
* Update pytest by drew2a in 7326
</details>

Thank You for Your Support

We sincerely appreciate your continued support and feedback, which help us make Tribler better with every release. Your engagement drives our mission to create a powerful, decentralized platform that respects users' privacy and freedom. We encourage you to download and try the latest version, and as always, please share your thoughts and suggestions with us. Together, we can make Tribler the ultimate peer-to-peer experience. Happy sharing!

7.12.1

Overview

* This release should greatly improve the speed and stability of Tribler startup:
* Now, if a user has a large number of downloads, Tribler windows should open much faster.
* All different errors of type "Tribler GUI cannot connect to Tribler Core" should go away.
* Tribler should not crash anymore while copying files from the previous directory.
* The copying of the state directory is now atomic, and files should not be corrupted if the copying is interrupted in the middle.
* No more orphan Core processes if the GUI process was suddenly terminated.
* The token balance is now hidden until the algorithm for calculating the balance is updated.
* Some bugs that caused Tribler crashes were fixed.

Bugfixes

* Load download checkpoints in the background by kozlovsky in https://github.com/Tribler/tribler/pull/7024
* Provide atomicity of state dir copying by kozlovsky in https://github.com/Tribler/tribler/pull/7055
* Handle exceptions in UpgradeManager by kozlovsky in https://github.com/Tribler/tribler/pull/7007
* EventManager's timeout should ignore the upgrade duration by kozlovsky in https://github.com/Tribler/tribler/pull/7006
* Fix reconnection logic in EventRequestManager by kozlovsky in https://github.com/Tribler/tribler/pull/7001
* Fix CoreConnectTimeoutError by calculating the correct timeout for the request by kozlovsky in https://github.com/Tribler/tribler/pull/7054
* Fix QNetworkReply.UnknownNetworkError (99) when connecting to Core by kozlovsky in https://github.com/Tribler/tribler/pull/7019
* Unconditionally include RESTComponent when starting Tribler Core by kozlovsky in https://github.com/Tribler/tribler/pull/7045
* Fix initialization of Ipv8Endpoint in RESTComponent by kozlovsky in https://github.com/Tribler/tribler/pull/7046
* ProcessChecker refactoring by drew2a in https://github.com/Tribler/tribler/pull/6941
* Shut down the Tribler Core process if the GUI process crashes by kozlovsky in https://github.com/Tribler/tribler/pull/6996
* Stop Core on components startup exception by kozlovsky in https://github.com/Tribler/tribler/pull/7021
* Show the last error code and error name on timeout in EventRequestManager by kozlovsky in https://github.com/Tribler/tribler/pull/7020
* Hide token balance value by kozlovsky in https://github.com/Tribler/tribler/pull/7049
* Fix failing GUI test on Linux Github action by xoriole in https://github.com/Tribler/tribler/pull/6982
* Handle TypeError on tdef to metadata conversion by xoriole in https://github.com/Tribler/tribler/pull/6991
* Add Null check for `entry.tag_processor_version` by drew2a in https://github.com/Tribler/tribler/pull/7009
* Add format_error_message function to CoreManager by drew2a in https://github.com/Tribler/tribler/pull/6881
* Protect `cache_exitnodes_to_disk` from raising OSErrors by drew2a in https://github.com/Tribler/tribler/pull/7039
* Fix `UnicodeDecodeError` by drew2a in https://github.com/Tribler/tribler/pull/7040
* Add `SSLError` to exceptions by drew2a in https://github.com/Tribler/tribler/pull/7043


**Full Changelog**: https://github.com/Tribler/tribler/compare/v7.12.0...v7.12.1

7.12.1rc4

Overview

* The release fixes a startup crash when Tribler has a big number of active torrents;
* Now Tribler instance that has a big number torrents should start much faster;
* The token balance value is hidden until the balance algorithm is updated;
* Several other errors are fixed as well.


Bugfixes

* Load checkpoints in the background by kozlovsky in https://github.com/Tribler/tribler/pull/7024
* Fix `UnicodeDecodeError` by drew2a in https://github.com/Tribler/tribler/pull/7040
* Add `SSLError` to exceptions by drew2a in https://github.com/Tribler/tribler/pull/7043
* Protect `cache_exitnodes_to_disk` from raising OSErrors by drew2a in https://github.com/Tribler/tribler/pull/7039
* Unconditionally include RESTComponent when starting Tribler Core by kozlovsky in https://github.com/Tribler/tribler/pull/7045
* Fix initialization of Ipv8Endpoint in RESTComponent by kozlovsky in https://github.com/Tribler/tribler/pull/7046
* Fix GuiProcessWatcher tests by kozlovsky in https://github.com/Tribler/tribler/pull/7042
* Hide token balance value by kozlovsky in https://github.com/Tribler/tribler/pull/7049


**Full Changelog**: https://github.com/Tribler/tribler/compare/v7.12.0...v7.12.1-RC4

Page 2 of 21

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.