tribler

Privacy enhanced BitTorrent client with P2P content discovery

GPL-3.0 License

Downloads
26
Stars
4.5K
Committers
136

Bot releases are hidden (Show)

tribler - v7.13.3 Latest Release

Published by kozlovsky 7 months ago

Overview

This is a bug-fix release with an important fix for a Windows bug that occasionally results in a crash.

If you're using Tribler 7.13.2 on Windows, we recommend you upgrade to this release.

What's Changed

  • #7759 OSError "[WinError 64] The specified network name is no longer available" fixed by @kozlovsky and @xoriole in #7926
  • #7408 AccessDenied in set_process_priority fixed by @drew2a in #7594
  • #7745 FileNotFoundError in check_free_space fixed by @drew2a in #7760

Full Changelog: https://github.com/Tribler/tribler/compare/v7.13.2...v7.13.3

tribler - v7.13.2

Published by xoriole 8 months ago

Overview

This release is a bug-fix release with an important fix for a Windows bug which occasionally results in a crash. If you're using Tribler 7.13.1 on Windows, we recommend you upgrade to this release.

What's Changed

Full Changelog: https://github.com/Tribler/tribler/compare/v7.13.1...v7.13.2

tribler - v7.13.1

Published by kozlovsky 10 months ago

Overview

We are excited to announce Tribler 7.13.1, a bugfix release that notably enhances the stability of Tribler, especially during startup. This update addresses several critical issues, including problems related to Tribler startup, database corruption, and various other bugs. Our team has worked diligently to ensure a smoother and more reliable experience for our users.

Startup stability fixes

  • #7603: Use the filelock library to determine the primary process by @kozlovsky in #7660
  • Use dedicated exit codes when another primary GUI/Core process is running by @kozlovsky in #7746
  • #7592: Fix Core crash caused by TimeoutError when REST HTTP server is starting by @kozlovsky in #7617
  • #7641: Fix TypeError in StartDownloadDialog during Tribler UI startup by @drew2a in #7662

Database Integrity

  • #5252: Handle the database corruption error by regenerating the corrupted database on the fly by @kozlovsky in #7628

General stability fixes

  • Use the default event loop on Windows by @qstokkink in #7677
  • Reconnect to the Core in case of EventReqestManager disconnection by @kozlovsky in #7747
  • #7602 Fix race condition in SlowCoroWatchingThread by @kozlovsky in #7613
  • #7600: Handle exceptions in task.print_stack() by @kozlovsky in #7614
  • #7598: Use safe_repr function to display alert reprs by @kozlovsky in #7616
  • #7056: Return RESTResponse error for timed out metainfo request by @drew2a in #7627
  • #7670: Removed circuit from peer_info by @egbertbouman in #7700

Localization robustness

  • #7599: Fix TypeError when the translated string does not have the correct number of positional parameters by @kozlovsky in #7615

Enhanced error reporting

  • Add the reason for the OperationalError: unable to open database file when opening processes.sqlite by @kozlovsky in #7612
  • Add Tribler Config to the sentry event by @drew2a in #7665
  • Show correct stack trace for CoreCrashedError. by @drew2a #7713 (Implemented in #7722)

Note: Some antivirus software falsely flags the Windows 32-bit version of Tribler. When investigating the issue, we found that the Python builder we use (PyInstaller) is being flagged even for a simple Hello World program. So, your antivirus might flag Tribler as malware if you're using the 32-bit version. Therefore, we suggest you use the 64-bit version if you can.

Full Changelog: https://github.com/Tribler/tribler/compare/v7.13.0...v7.13.1

tribler - v7.13.1-RC2

Published by kozlovsky 11 months ago

Overview

We are excited to announce Tribler 7.13.1-RC2, a bugfix release that notably enhances the stability of Tribler, especially during startup. This update addresses several critical issues, including problems related to Tribler startup, database corruption, and various other bugs. Our team has worked diligently to ensure a smoother and more reliable experience for our users.

What's Changed since RC1:

  • Use the default event loop on Windows by @qstokkink in #7677
  • Use dedicated exit codes when another primary GUI/Core process is running by @kozlovsky in #7746
  • Reconnect to the Core in case of EventReqestManager disconnection by @kozlovsky in #7747

Startup stability fixes

  • #7603: Use the filelock library to determine the primary process by @kozlovsky in #7660
  • #7592: Fix Core crash caused by TimeoutError when REST HTTP server is starting by @kozlovsky in #7617
  • #7641: Fix TypeError in StartDownloadDialog during Tribler UI startup by @drew2a in #7662

Database Integrity

  • #5252: Handle the database corruption error by regenerating the corrupted database on the fly by @kozlovsky in #7628

General stability fixes

  • #7602 Fix race condition in SlowCoroWatchingThread by @kozlovsky in #7613
  • #7600: Handle exceptions in task.print_stack() by @kozlovsky in #7614
  • #7598: Use safe_repr function to display alert reprs by @kozlovsky in #7616
  • #7056: Return RESTResponse error for timed out metainfo request by @drew2a in #7627
  • #7670: Removed circuit from peer_info by @egbertbouman in #7700

Localization robustness

  • #7599: Fix TypeError when the translated string does not have the correct number of positional parameters by @kozlovsky in #7615

Enhanced error reporting

  • Add the reason for the OperationalError: unable to open database file when opening processes.sqlite by @kozlovsky in #7612
  • Add Tribler Config to the sentry event by @drew2a in #7665
  • Show correct stack trace for CoreCrashedError. by @drew2a #7713 (Implemented in #7722)

Full Changelog: https://github.com/Tribler/tribler/compare/v7.13.1-RC1...v7.13.1-RC2

tribler - v7.13.1-RC1

Published by kozlovsky 11 months ago

Overview

We are excited to announce Tribler 7.13.1-RC1, a bugfix release that notably enhances the stability of Tribler, especially during startup. This update addresses several critical issues, including problems related to Tribler startup, database corruption, and various other bugs. Our team has worked diligently to ensure a smoother and more reliable experience for our users.

Startup stability fixes

  • #7603: Use the filelock library to determine the primary process by @kozlovsky in #7660
  • #7592: Fix Core crash caused by TimeoutError when REST HTTP server is starting by @kozlovsky in #7617
  • #7641: Fix TypeError in StartDownloadDialog during Tribler UI startup by @drew2a in #7662

Database Integrity

  • #5252: Handle the database corruption error by regenerating the corrupted database on the fly by @kozlovsky in #7628

General stability fixes

  • #7602 Fix race condition in SlowCoroWatchingThread by @kozlovsky in #7613
  • #7600: Handle exceptions in task.print_stack() by @kozlovsky in #7614
  • #7598: Use safe_repr function to display alert reprs by @kozlovsky in #7616
  • #7056: Return RESTResponse error for timed out metainfo request by @drew2a in #7627
  • #7670: Removed circuit from peer_info by @egbertbouman in #7700

Localization robustness

  • #7599: Fix TypeError when the translated string does not have the correct number of positional parameters by @kozlovsky in #7615

Enhanced error reporting

  • Add the reason for the OperationalError: unable to open database file when opening processes.sqlite by @kozlovsky in #7612
  • Add Tribler Config to the sentry event by @drew2a in #7665
  • Show correct stack trace for CoreCrashedError. by @drew2a #7713 (Implemented in #7722)

Full Changelog: https://github.com/Tribler/tribler/compare/v7.13.0...v7.13.1-RC1

tribler - v7.13.0

Published by kozlovsky about 1 year ago

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. For the record, we believe Justin Bieber's music is neither Black Metal nor gay. We consider this an exemplary use-case for Tribler's zero-trust architecture to solve. Our distributed trust ledger has been under incremental development since before Bitcoin. We have not yet deployed our decentralized reputation and trust framework, as our MeritRank algorithm 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:

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.

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

  • 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

Code improvements

  • #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

Build/CI improvements

  • 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-artifact@v2 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

Test improvements

  • 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

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

tribler - v7.13.0-RC4

Published by kozlovsky about 1 year ago

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. For the record, we believe Justin Bieber's music is neither Black Metal nor gay. We consider this an exemplary use-case for Tribler's zero-trust architecture to solve. Our distributed trust ledger has been under incremental development since before Bitcoin. We have not yet deployed our decentralized reputation and trust framework, as our MeritRank algorithm 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:

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

  • 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

  • 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

Code improvements

  • #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

Build/CI improvements

  • 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-artifact@v2 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

Test improvements

  • 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

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

tribler - v7.13.0-RC3

Published by kozlovsky over 1 year ago

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

The Application Logic Fixes

UI Fixes

Error-Handling Fixes

Test fixes

Build fixes

What's Changed Since the Tribler 7.12:

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. For the record, we believe Justin Bieber's music is neither Black Metal nor gay. We consider this an exemplary use-case for Tribler's zero-trust architecture to solve. Our distributed trust ledger has been under incremental development since before Bitcoin. We have not yet deployed our decentralized reputation and trust framework, as our MeritRank algorithm 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:

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

  • 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

  • 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

Code improvements

  • #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

Build/CI improvements

  • 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-artifact@v2 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

Test improvements

  • 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

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-RC3

tribler - v7.13.0-RC2

Published by kozlovsky over 1 year ago

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

What's Changed Since the Tribler 7.12:

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. For the record, we believe Justin Bieber's music is neither Black Metal nor gay. We consider this an exemplary use-case for Tribler's zero-trust architecture to solve. Our distributed trust ledger has been under incremental development since before Bitcoin. We have not yet deployed our decentralized reputation and trust framework, as our MeritRank algorithm 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:

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

  • 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

  • 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

Code improvements

  • #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

Build/CI improvements

  • 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-artifact@v2 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

Test improvements

  • 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

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!

tribler - v7.13.0-RC1

Published by kozlovsky over 1 year ago

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. For the record, we believe Justin Bieber's music is neither Black Metal nor gay. We consider this an exemplary use-case for Tribler's zero-trust architecture to solve. Our distributed trust ledger has been under incremental development since before Bitcoin. We have not yet deployed our decentralized reputation and trust framework, as our MeritRank algorithm 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:

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

  • 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

  • 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

Code improvements

  • #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

Build/CI improvements

  • 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-artifact@v2 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

Test improvements

  • 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

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!

tribler - v7.12.1

Published by kozlovsky about 2 years ago

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

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

tribler - V7.12.1-RC4

Published by kozlovsky about 2 years ago

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

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

tribler - v7.12.1-RC2

Published by kozlovsky about 2 years ago

Overview

This release fixes several startup issues when Tribler GUI freezes during the load screen or shows a "cannot connect to the Tribler Core" error. Some errors are fixed, and for other errors, the feedback dialog should display the reason for a problem so the user can report it to developers.

Bugfixes

Full Changelog: https://github.com/Tribler/tribler/compare/v7.12.1-RC1...v7.12.1-RC2

tribler - v7.12.1-RC1

Published by kozlovsky about 2 years ago

Overview

This release fixes several start-up issues when Tribler GUI freezes during the load screen or shows a "cannot connect to the Tribler Core" error and several shutdown issues when the Tribler Core process does not finish after the Tribler GUI process crash. Some other bugs are fixed as well.

Bugfixes

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

tribler - v7.12.0

Published by kozlovsky about 2 years ago

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 since the 7.11 release:

  • Fix #6968 Tribler freezes and requires "Force shutdown" on exit by @kozlovsky in #6969
  • Libtorrent session state gets lost when upgrading to a new Tribler version, fixed in #6978 by @kozlovsky
  • Fix Tribler crash when pressing Ctrl+O (Cmd+O on OSX) to add a torrent from a file, fixed in #6980 by @kozlovsky
  • Fixes #6929 by @drew2a in #6937: Can't open the torrent file from the browser by clicking on it
  • Fix #6961 Error when removing entries from the FeedbackDialog by @kozlovsky in #6962
  • Fix the Tribler crash after the closing of FeedbackDialog by @kozlovsky in #6960
  • Fix the upgrader logic if the tags db file was not created yet by @kozlovsky in #6956
  • If a user decides to send a Tribler crash report, Tribler confirms that the report has been sent, but actually, it does not send anything, fixed in #6974 by @kozlovsky
  • 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 progress bar 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 the 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 the 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

  • Add a possibility to manually trigger GUI and Core exceptions in Tribler for debugging purposes by @kozlovsky in #6959
  • 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

tribler - v7.12.0-RC4

Published by kozlovsky about 2 years ago

Overview

This release candidate includes important bugfixes, see the section "latest bugfixes of the v7.12.0-RC4 release"

  • 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

Latest bugfixes of RC4 release:

  • If a user decides to send a Tribler crash report, Tribler confirms that the report has been sent, but actually, it does not send anything, fixed in #6974
  • Libtorrent session state gets lost when upgrading to a new Tribler version, fixed in #6978
  • Fix Tribler crash when pressing Ctrl+O (Cmd+O on OSX) to add a torrent from a file, fixed in #6980

Bugfixes since 7.11 release:

  • Fixes #6929 by @drew2a in #6937: Can't open torrent file from browser by clicking on it
  • Fix #6968 Tribler freezes and requires "Force shutdown" on exit by @kozlovsky in #6969
  • Fix #6961 Error when removing entries from the FeedbackDialog by @kozlovsky in #6962
  • Fix the Tribler crash after closing of FeedbackDialog by @kozlovsky in #6960
  • Fix the upgrader logic if the tags db file was not created yet by @kozlovsky in #6956
  • Add a posiibility to manually trigger GUI and Core exceptions in Tribler for debugging purposes by @kozlovsky in #6959
  • 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-RC4

tribler - v7.12.0-RC3

Published by kozlovsky over 2 years ago

Overview

This release candidate includes important bugfixes, see "latest bugfixes of the v7.12.0-RC3 release"

  • 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

Latest bugfixes of RC3 release:

  • Fixes #6929 by @drew2a in #6937: Can't open torrent file from browser by clicking on it
  • Fix #6968 Tribler freezes and requires "Force shutdown" on exit by @kozlovsky in #6969
  • Fix #6961 Error when removing entries from the FeedbackDialog by @kozlovsky in #6962
  • Fix the Tribler crash after closing of FeedbackDialog by @kozlovsky in #6960
  • Fix the upgrader logic if the tags db file was not created yet by @kozlovsky in #6956
  • Add a posiibility to manually trigger GUI and Core exceptions in Tribler for debugging purposes by @kozlovsky in #6959

Bugfixes since 7.11 release:

  • 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-RC3

tribler - v7.12.0-RC1

Published by kozlovsky over 2 years ago

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

tribler - v7.11.0

Published by ichorid almost 3 years ago

Most important changes:

  • Added permissionless Tags crowdsourcing system. Tribler users can now add tags to torrents. The tags will be shared with other users anonymously.
  • Tree-based file selection in the download details and "Start download" dialog
  • Channel previews are faster and more reliable
  • Asynchronous Core components startup should speed up boot on machines with slower drives
  • As usual, lots of bugfixes

For developers:
Tribler Core was refactored into a set of asynchronously loaded components, making the Tribler codebase much easier to understand.

New Contributors

Full Changelog: https://github.com/Tribler/tribler/compare/v7.10.0...v7.11.0

p.s.
πŸŽ… πŸŽ„ Happy New Year everyone! πŸŽ„ πŸŽ…

tribler - V7.11.0-RC3

Published by kozlovsky almost 3 years ago

Changelog (since RC2)

Full Changelog: https://github.com/Tribler/tribler/compare/v7.10.0...v7.11.0-RC