Piwik v4.0.0 Release Notes

Release Date: 2020-11-23 // over 3 years ago
  • Matomo 4.0.0 Changelog

    This Github download (below) is only meant for developers and it will require extra work to install it.

    List of 398 tickets closed in Matomo 4.0.0

    matomo-org/matomo

    • πŸ‘ #6559 Add support for app specific passwords (create and revoke token_auth) [by @tsteur]
    • πŸ’» #6210 Detect when stats load slowly and explain to user to disable Browser trigger archiving in Admin [by @andrzejewsky, @diosmosis]
    • #9939 Offline tracking in JavaScript API [by @tsteur]
    • #15426 Offer feature to anonymise or shorten the referrer [by @diosmosis, @tsteur]
    • #16258 Allow force disable cookies [by @sgiehl]
    • 🌲 #16259 Allow disabling Visitor Profile feature and visits log feature [by @sgiehl]
    • #16377 Offer possibility to not store IP address at all [by @sgiehl]
    • πŸ‘ #16183 Support PHP 8
    • πŸ‘ #13611 Drop support for PHP 5.x, Require PHP 7.2
    • 0️⃣ #12811 Activate DB-Ip support by default for all users [by @sgiehl]
    • #8790 Tracking API: track Emoji correctly in page URLs and others [by @sgiehl]
    • πŸ”Œ #11974 Allow plugins to generate their reports using historical data (eg. Custom Reports) [by @diosmosis]
    • 🐎 #12653 Provide more insights into page performance metrics [by @sgiehl]
    • πŸ’» #13202 Show "browser" report in goal by dimension report, view conversion rates by browser [by @tsteur]
    • 🚚 #13153 Add "Movers and shakers" widget to the default dashboard [by @tsteur]
    • 0️⃣ #13681 JS Tracker: enable alwaysUseSendBeacon by default [by @tsteur]
    • #9626 Heartbeat / ping requests should only update visit_total_time
    • #14791 Make Matomo JS Tracker work in strict mode
    • #16161 New visitor ID generated per action in iframes (SameSite cookie issue)
    • πŸ”§ #16724 SameSite cookie attribute can now be configured in JS tracker [by @fealXX, @tsteur]
    • πŸ”€ #13462 Offer possibility to sync JavaScript tracker with any CDN (new community plugin TrackerJsCdnSync)
    • #14535 log_visit.referer_url and log_action.name as TEXT instead of VARCHAR cause a lot of tmp table on disk [by @tsteur]
    • #16192 Add new dimension and segment whether cookies were used or not: "Profilable" [by @tsteur]
    • 🚚 #8100 Reporting API: remove the PHP serialization response format [by @sgiehl]
    • 0️⃣ #8566 Reporting API: Make json2 format the default json format (potential BC break) [by @diosmosis]
    • πŸ‘ #16499 ISP detection should support the DB-IP ASN database [by @sgiehl]
    • #16557 Drop-Down appears on top of lower level [by @sgiehl]
    • ⚠ #16738 New diagnotic warning when both auto archiving and browser archiving are enabled [by @tsteur, @diosmosis]
    • 🌲 #16521 Use name "segmented visits log" (plural) to be consistent with "Visits log" naming [by @sgiehl]
    • #16168 Cloudron installation method
    • #16436 Outlinks icons are not aligned in all reports [by @sgiehl]
    • 0️⃣ #11524 Disable Custom Variables feature by default [by @sgiehl]
    • πŸ‘ #13613 Drop support for IE 10
    • #15237 When DB user doesn't have the 'CREATE TEMPORARY TABLE' grant, display a clear error message [by @katebutler, @sgiehl]
    • πŸ”Œ #15889 allow invalidating plugin archives only and archiving past data for plugins [by @diosmosis]
    • #4171 Minimise token_auth exposure, hide token_auth from html responses
    • ⚑️ #12961 update frontend libraries like jquery [by @diosmosis]
    • #14954 Translate the "Asking for consent" page [by @maxpereira, @sgiehl]
    • #6265 Content-tracking: I want to be able to disable piwik.php redirect and instead use the link tracking 500ms solution. [by @tsteur]
    • #16362 Custom opt out screen should not imply tracking consent given
    • #15681 Check that all Matomo cookies are set with the secure flag [by @tsteur]
    • #13582 Referrer name should allow more than 70 characters (up to 255 characters) [by @sgiehl]
    • 🚚 #15396 Remove LoginHttpAuth submodule [by @tsteur, @sgiehl]
    • 🐎 #15736 New page performance reports [by @sgiehl]
    • #15774 Track seconds instead of days for "days since" dimensions [by @diosmosis]
    • πŸ“ˆ #16095 New log importer (log analytics) now only supports python3 [by @diosmosis]
    • 0️⃣ #16265 Custom Dimensions available and activated by default
    • πŸ’» #15440 in Visitors>User IDs, opening a Profile for a given User ID shouldn't show other visits from User IDs who shared the same computer
    • #15619 Prevent server gone away error in CronArchive [by @tsteur, @sgiehl]
    • #13754 When looking at Yesterday's data, and there is data for today, notify users to try to look at Today [by @tsteur]
    • #12767 When a user opts-out, do not send any tracking requests to the Tracking API
    • #13042 Set higher expiry time for the "Ignore tracking" cookie [by @tsteur]
    • #13056 JS Tracker: Add possibility to turn cookies back on, enableCookies [by @tsteur]
    • #15182 When signing up for the Matomo newsletter, clarify In the privacy notice that emails are processed by Madmimi [by @sgiehl]
    • #16017 Do not generate crossdomain link when cookies are disabled [by @tsteur]
    • 0️⃣ #9785 Make Matomo database use utf8mb4 collation by default [by @sgiehl]
    • πŸ”’ #13357 Use random_bytes() instead of uniqid/md5 in Common::generateUniqId() for improved security [by @katebutler]
    • #15313 JS Tracker: set secure flag for _pk_testcookies
    • #15390 Store session ID hashed in the DB [by @tsteur]
    • #16169 Improve host validation: now using the SERVER_NAME and no longer the HOST header [by @tsteur, @diosmosis]
    • #16263 Only allow widgetize and token usage for view users [by @tsteur]
    • #16264 When embedding reports (widgets) into a site, it is no longer possible to use authentication tokens of users with at least write access [by @tsteur, @diosmosis]
    • #16389 Make sure the same 2FA token cannot be used twice [by @tsteur, @diosmosis]
    • #11115 Reporting API: apply hideColumns recursively to nested values by setting hideColumnsRecursively=1 [by @mattab, @tsteur]
    • #12575 SQL type FLOAT should not be used for economical data [by @tsteur]
    • #16429 "Back to content" link overlaps with the logo, fix skip-to-content offset [by @Findus23, @tsteur]
    • #13256 Mobile: Icons not fully shown and shown not correctly
    • #14579 JS Tracker: add rtf to list of downloads
    • #15744 Adds INI setting to disable referrer spam blocklist [by @john357smith, @sgiehl]
    • #15845 Tracking of visitors without JavaScript (image beacon) does not work with strict referrer-policy [by @tsteur]
    • #15931 Add more information to system check and be able to copy/paste for debugging purposes [by @tsteur]
    • #15999 Track ecommerce views as new dimensions instead of custom variables [by @sgiehl]
    • πŸ’» #16197 Make it possible to detect other clients than Browsers [by @sgiehl]
    • #16288 prevent vacation messages in response to Email reports [by @Findus23]
    • #16302 New feature to exclude tracking requests via config file: INI setting exclude_requests [by @tsteur]
    • #16386 System check: Add Matomo Version History and download feature [by @tsteur, @diosmosis]
    • #16446 Do not index the opt out iframe in search engines [by @tsteur]
    • #8505 Visitor map shows info icon but no tooltip when there is no data [by @sgiehl]
    • πŸ”’ #15247 Don't lock log_visit table to check if privilege is granted [by @tsteur]
    • πŸ”Š #15492 New INI setting delete_logs_unused_actions_max_rows_per_query useful for speeding up deletion process for very large sites [by @toredash, @tsteur]
    • 🌲 #15875 Row Evolution PopUp opens after Visitors Log Popup Closed [by @sgiehl]
    • 🐎 #15887 Improve performance/memory of archive selection [by @tsteur, @diosmosis]
    • #15986 Tracker API speed: avoid DB query when recording historical data or other authenticated tracking requests [by @tsteur]
    • πŸ”’ #16092 Allow configuration of a shorter lock wait time in tracker mode (new INI setting innodb_lock_wait_timeout) [by @tsteur, @diosmosis]
    • #16473 Manage Dimensions: Sorting by ID is not numeric [by @nina-py, @tsteur]
    • 🚚 #5341 Move Provider plugin to the Marketplace [by @tsteur]
    • #15601 Fix VisitorFrequency.get API for idsites=all [by @sgiehl]
    • ⚑️ #15974 update php-di to latest version 6.x [by @sgiehl]
    • #15980 JS Tracker: require category and action in trackEvent [by @Findus23, @tsteur]
    • ⚑️ #16031 Get all our plugins and premium plugins to pass w/ updated frontend libs [by @diosmosis, @tsteur, @sgiehl]
    • #16087 wrong escaping of cookie path [by @MichaelHeerklotz, @diosmosis, @tsteur]
    • #15979 no cut-off icons in DataTables [by @Findus23, @sgiehl]
    • #16238 Segmented Visitor profile: Layout breaks when zooming out
    • #16354 properly align pre code [by @Findus23, @sgiehl]
    • #16428 split disabled PHP functions to not break table layout [by @Findus23, @tsteur]
    • #11572 Document adding Custom JS to tracker via tracker.js / tracker.min.js on https://developer.matomo.org/guides/enrich-js-tracker [by @tsteur]
    • #16148 Sort Custom dimensions in reporting page alphabetically [by @sgiehl]
    • #12739 doTrackGoal() in the PHP API should return success or failure response, not tracking GIF [by @tsteur]
    • #15269 Make segment title clickable and add segment definition to tooltip. [by @diosmosis, @tsteur]
    • #15444 When closing a popover, leave opened any previously opened popover [by @sgiehl, @tsteur]
    • #15556 Empty auto complete results in segment editor when changing the segment [by @tsteur, @sgiehl]
    • #15571 Match white label preview background with customised colour
    • ⚑️ #15607 Update Intl translations to CLDR 36 [by @sgiehl]
    • 0️⃣ #15828 add a more helpful info to the default matomo.php output [by @Findus23, @tsteur]
    • #16119 "Password changed" e-mail notification wording doesn't make sense
    • ⚑️ #15857 Update codebase doc blocks with new name Matomo [by @sgiehl]
    • ⚑️ #16030 Update individual libraries through npm [by @diosmosis]
    • πŸ“¦ #16032 replace other libraries in libs/ and in plugin directories w/ npm packages
    • πŸš€ #16165 Matomo 4 first beta release
    • #11086 Make interaction_position and visit_total_interactions MEDIUMINT to prevent Numeric value out of range: 1264 Out of range value for column interaction_position / visit_total_interactions [by @mattab, @tsteur]
    • #12067 Replace Bower (and libs/) with npm [by @diosmosis]
    • #12072 Site Search tracking should not use Custom Variables [by @katebutler, @sgiehl]
    • #12114 JS Tracker: Prevent possible infinite loop when page is unloading [by @yossicohn, @tsteur]
    • πŸ”— #12124 Rename log_link_visit_action.interaction_position to eg pageview_position [by @sgiehl]
    • #12832 UI_CONTROL_MULTI_SELECT does not work as expected
    • πŸ”Œ #13604 Rename CustomPiwikJs plugin to CustomMatomoJs (or CustomTrackerJs) [by @sgiehl]
    • #14094 Change "days since last ..." dimensions to save second duration instead of days and compute in PHP [by @diosmosis]
    • #14841 use a modern PHP library for sending emails and SMTP [by @diosmosis, @sgiehl]
    • πŸ”¨ #15117 Refactor cron archiving for simplicity [by @diosmosis]
    • #15709 year is incorrectly counted in GDPR Overview [by @tsteur]
    • πŸ‘ #15125 Add support for up to 4 fields to multipairfield [by @MichaelHeerklotz, @sgiehl]
    • πŸ”Œ #15248 Make BulkTracking plugin always activated [by @katebutler, @tsteur]
    • πŸ‘ #15370 Save concatenated less file on compiling error so we can better debug issues. [by @diosmosis, @tsteur]
    • #15472 Use safemode when running CLI commands [by @diosmosis, @tsteur]
    • 🚚 #15503 Removes deprecated console param --piwik-domain [by @sgiehl, @tsteur]
    • 🐧 #15508 Fix archiving with console on SELinux: use ps x instead of ps ex [by @leftmostlane, @tsteur]
    • πŸ”¨ #15836 Refactors the way segments are configured in dimensions [by @sgiehl]
    • #15847 Document how to use Dependency Injection
    • 🚚 #15866 Removes deprecated event Live.getAllVisitorDetails [by @sgiehl, @diosmosis]
    • #15957 Allow using matomo prefixed parameters for campaigns such as matomo_campaig/mtm_campaign [by @sgiehl, @diosmosis]
    • βœ… #15998 Date factory test when date object is passed [by @tsteur]
    • 🚚 #16001 Remove code tagged with @deprecated [by @tsteur, @sgiehl]
    • #16261 Document new archiving process [by @diosmosis]
    • πŸ”Œ #16337 Let plugin developers modify the password confirmation view: new Template.confirmPasswordContent event [by @dominik-th, @tsteur]
    • πŸ”Œ #10733 Transition plugin can't handle named characters in URL [by @sgiehl]
    • ⬆️ #11068 Make sure users with an older PHP can't upgrade to Matomo 4 [by @tsteur]
    • #12035 Ecommerce Product average price may be incorrect, review implementation without using Custom Variables [by @katebutler, @sgiehl]
    • #12227 Content tracking doesn't track interaction correctly when using multiple trackers but track as outlink
    • #13417 multi_server_environment INI setting should disable update via GUI module but it doesn’t [by @tsteur]
    • 🌲 #13785 Segments using "Event category is not X" or "Page URL does not contain" etc. will list visits with these actions in the Visits log [by @sgiehl]
    • #14308 Visitor Profile with more than 100 visits shows negative visits
    • #14362 csv export for VisitsSummary.getVisits with idSite=all and non-superuser not working [by @sgiehl]
    • #14485 A fatal error occurred - The string to escape is not a valid UTF-8 string [by @sgiehl]
    • #14934 JS Tracker: trackEvent bug, event value is truncated [by @tsteur]
    • πŸ”§ #14978 JS tracker: visitor cookie is set before configuration [by @tsteur]
    • #15193 Compare to: previous year (day) goes back two years [by @sgiehl]
    • #15194 Compare to: previous year always returning a range [by @sgiehl]
    • #15264 Check site permission should check if site actually exists [by @tsteur]
    • 🌲 #15307 Visits log fails without any error [by @tsteur]
    • πŸ”Œ #15385 String not loaded in javascript while Feedback plugin is disabled
    • ⚑️ #15458 Update davaxi/sparkline composer dependency [by @sgiehl]
    • #15506 Ensure to only show enabled reports in "Goals By" view [by @sgiehl, @tsteur]
    • #15518 fix: change description for segments visitEndServer* [by @toredash, @tsteur]
    • #15529 Content interaction tracking fails if banner is enclosed by A element with external link
    • #15534 Missing crossorigin attribute in manifest link [by @tsteur]
    • #15647 Reporting API - API.get calls may return zeroed data instead of empty [by @sgiehl]
    • #15775 Fix error in InvalidateReportData command on PHP 7.4 [by @sgiehl]
    • #15781 "Last Successful Archiving Completion" is missing command "console"
    • #15805 Fix comparing segments doesn't work with condition startsWith [by @john357smith, @sgiehl]
    • #16072 The display problem of piwik-siteselector in asia language environment [by @sgiehl]
    • #16172 Fix behaviour for segments using "not equals" or "not contains" on an action dimension [by @sgiehl, @tsteur]
    • #16249 SQL error: Data too long for column 'user_id'
    • #16270 Bug: Copying a dashboard to another user - special characters are being urlencoded [by @sgiehl]
    • πŸ”Œ #16281 Make sure confirmPassword uses the currently active login plugin, not always "Login". [by @diosmosis, @tsteur]
    • ⚠ #16294 Warning in sparklines: Argument 1 passed to Piwik\Plugins\CoreVisualizations\Visualizations\Sparkline::ensureValuesEvenIfEmpty() must be of the type array, boolean given [by @sgiehl]
    • πŸ”§ #16341 Use relative URLs for svgBasePath so proxy url doesn't need to be configured to make real time map work [by @tsteur, @sgiehl]
    • #16358 Marketplace search broken in Reports
    • ⚑️ #16466 Do not cache core updater oneClickUpdate page in browser [by @tsteur]
    • #16475 Replaced 'Piwik' with 'Matomo' in console output when creating extra Custom Dimensions [by @nina-py, @tsteur]
    • ⚑️ #8415 Update our Develop guides for Matomo 4.0.0 [by @tsteur]
    • πŸ”Œ #12073 Document how plugins can extend Visitor Log and Visitor Profile [by @sgiehl]
    • #15574 Make all GDPR pages translatable [by @sgiehl]
    • #15973 add missing link to consent help page [by @Findus23, @tsteur]
    • #13471 Tracking API: fail with an error when wrong authentication provided when sending custom ip address (instead of using the sender's ip address) [by @tsteur, @sgiehl]
    • βœ… #9253 UI tests on Travis do not execute UI tests of submodules [by @diosmosis, @sgiehl]
    • πŸ‘ #13301 IgnoreCookie: added support for cookie_domain and ignore cookie signature [by @MichaelHeerklotz, @tsteur]
    • 🚚 #13547 Remove user alias from database [by @tsteur]
    • 🚚 #13957 Remove GeoIP Legacy Implementation and switch users to Db-ip [by @sgiehl]
    • #14342 Restrict open-ended require to the major Matomo version it defined [by @sgiehl]
    • πŸ”Œ #14553 mark BulkTracking plugin as required, not deactivable [by @katebutler]
    • #15115 LoadDataInfile Diagnostics Check is done even in config this setting is disabled [by @sgiehl]
    • #15139 Adds additional system check for CREATE TEMPORARY TABLES permission [by @sgiehl]
    • #15253 Use rebranded composer components [by @sgiehl, @tsteur]
    • #15275 Force using DB sessions once Matomo is installed [by @tsteur]
    • πŸ”¨ #15286 Refactor search category/count to not use custom variables [by @katebutler, @sgiehl, @diosmosis]
    • 🚚 #15413 JS Tracker: remove JSON2 [by @Findus23, @tsteur]
    • πŸš€ #15465 Use latest davaxi/sparkline release [by @sgiehl]
    • 🐳 #15473 Exclude docker files in .gitignore and exclude error_log from the integrity check [by @limitstudios, @tsteur]
    • πŸ‘ #15531 Add support for up to 4 fields to multipairfield [by @sgiehl, @tsteur]
    • ⚑️ #15541 Adds translation updates action [by @sgiehl, @tsteur]
    • πŸ— #15542 Adds action for building tracker js files [by @sgiehl]
    • #15544 Ensure the number of fraction digits is correct [by @sgiehl]
    • ⚑️ #15555 Trigger SafeMode if a plugin update is broken [by @sgiehl, @diosmosis]
    • ⬆️ #15573 Twig 3 upgrade [by @Findus23, @sgiehl]
    • ⚑️ #15581 Update to PHPUnit 8.5 [by @sgiehl]
    • 🚚 #15586 Removes deprecated class Piwik\Translate [by @sgiehl]
    • #15611 New INI setting to set the absolute path to a PHP binary file in case Matomo cannot detect your PHP binary [by @tsteur, @diosmosis]
    • πŸ“š #15612 Update documentation how heart beat timer works
    • 🌲 #15615 Make sure "Event Category" is translated in Visits log API outputs [by @mattab, @sgiehl]
    • βœ… #15617 Make it possible to run tests against PHP 7.4 [by @sgiehl]
    • 🚚 #15632 Remove jquery placeholder [by @pebosi, @sgiehl]
    • #15636 Replace jscrollpane with native [by @pebosi, @tsteur]
    • 0️⃣ #15649 By default a segment should be visible to all users [by @tsteur, @diosmosis]
    • #15662 Fix void return used and "improve" isLeap in Date [by @tolbon, @sgiehl]
    • βœ… #15720 Run tests on bionic distribution & run AllTests with PHP 7.4 [by @sgiehl]
    • ⚑️ #15795 Make sure upgrading from a 3.X or pre- version to 4.X via oneclickupdate works [by @diosmosis]
    • #15813 Fix fatal error when trying to install Matomo when PHP version is too low [by @tsteur, @sgiehl]
    • #15814 Make sure to set cookie name before loading any cookie [by @tsteur, @sgiehl]
    • ⚑️ #15815 Add test to ensure there are no plugin updates for core plugins [by @tsteur]
    • #15818 Prevent possible notice and hiding actual error in debug trace [by @tsteur, @sgiehl]
    • #15919 Bind param values manually since PDOStatement::execute() will assume … [by @diosmosis]
    • #15891 Replace Zend Mail with PHPMailer [by @sgiehl]
    • 🚚 #15907 Removes Zend_Validate [by @sgiehl]
    • 🚚 #15956 Remove gears detection [by @sgiehl]
    • 🚚 #15962 Removes AWS test runner [by @sgiehl]
    • 🚚 #15989 Removes director detection [by @sgiehl]
    • #16052 Rename Piwik -> Matomo in JS tracker where possible [by @tsteur]
    • #16053 Rename Piwik -> Matomo in cookies [by @tsteur, @diosmosis]
    • #16054 Rename PHP Events that contain Piwik to Matomo [by @tsteur, @diosmosis]
    • ⚑️ #16079 run npm update and include node_modules [by @diosmosis]
    • πŸ”Œ #16086 Include CustomDimensions plugin in core [by @sgiehl, @tsteur]
    • 🚚 #16090 Removes CustomVariables plugin from core [by @sgiehl]
    • #16091 Delete segments when a site is deleted [by @tsteur, @diosmosis]
    • #16105 Rename referrer spam list [by @tsteur, @diosmosis]
    • #16162 GeoLite2-ASN Geolocation not working [by @sgiehl]
    • #16163 Make geolocation provider work with isp database only [by @sgiehl, @tsteur]
    • #16181 don't use create_function() anywhere [by @Findus23, @diosmosis]
    • πŸ“¦ #16205 Rename composer package to matomo/matomo [by @sgiehl]
    • #16212 Fix language selector in mobile menu is not visible [by @tsteur, @diosmosis]
    • #16216 Delete remembered archived only for one specific site when a site is deleted [by @tsteur, @diosmosis]
    • πŸ”§ #16232 Fix escaping in site selection for anonymous user configuration [by @sgiehl, @diosmosis]
    • #16235 Avoid API error if invalid idSubtable is given [by @sgiehl, @tsteur]
    • πŸ“‡ #16242 Use category display name for segment metadata [by @sgiehl, @tsteur]
    • 0️⃣ #16282 JS Tracker: Fix default value of heart beat timer [by @sgiehl, @tsteur]
    • #16291 Link to PHP SDK in Reporting Clients developer doc
    • #16301 url decode value in requestcommand [by @diosmosis]
    • 🌲 #16313 don't log silenced errors in php8 [by @Findus23, @tsteur]
    • #16333 show correct transitions info in "Did you know?" section [by @Findus23, @tsteur]
    • ⚑️ #16344 Disable some core updater actions if auto update is not enabled [by @tsteur]
    • #16387 Add more debug information for some specific archiving errors [by @tsteur]
    • πŸ“š #16392 Update/Add documentation about App specific tokens
    • πŸ“š #16401 Documentation generator: remove duplicate assignment [by @l2dy, @tsteur]
    • πŸ‘ #16411 Better describe the brute force IP list behaviour [by @tsteur, @diosmosis]
    • πŸ“š #16420 add documentation to the GetLanguage and GetLanguageCode reports [by @Findus23, @tsteur]
    • πŸ”§ #16463 Help user configure correct GeoIP DB url by checking for protocol [by @tsteur]
    • #16467 We are hiring a senior PHP and JavaScript software developer (HIRING.md) [by @mattab, @tsteur]
    • ⬆️ #16468 Prevent upgrade error should a plugin get disabled during the Matomo 4 upgrade [by @tsteur]
    • 🚚 #16478 Remove unused URL parameter from newsletter sign up [by @tsteur]
    • 🐎 #16572 Broken link to performance report online guide [by @sgiehl]
    • ⚑️ #16682 Update campaign builder with new parameters group and placement [by @sgiehl]
    • #16692 use "Matomo" in user agent used for outgoing HTTP requests [by @Findus23, @tsteur]
    • #16349 Setting parameters rows_to_display is not allowed
    • #16462 Segments: Segments created in real time using API
    • #16464 Percent symbol fails JavaScript matomo code [by @tsteur]
    • #16501 Getting an error when loading "Email eports" page when a segment no longer exists [by @tsteur]
    • #16505 Content reports: don't show option to view table with all columns [by @tsteur]
    • #16522 Piecharts aren't shown at full width [by @sgiehl]
    • #16560 Global list of Excluded IPs shows only one IP [by @sgiehl]
    • πŸ”Œ #16569 Matomo may track a page view even though it was a different request when a plugin was disabled [by @tsteur]
    • #16587 IP exclusion segment produces error when used in eCommerce report [by @sgiehl]
    • πŸ”Œ #16611 Hide the relative % value in the "Browser Plugins" report [by @sgiehl]
    • #16726 Goal conversions wrongly formatted when using German language
    • #15920 Announce LTS for Matomo 3
    • 🐎 #16488 Document the new Page Performance reports in a FAQ [by @sgiehl, @mattab]
    • #16645 Add PR template [by @tsteur]
    • πŸ“¦ #12519 Rename our composer packages [by @sgiehl]
    • #14444 simplified cookies [by @Findus23, @tsteur]
    • #15274 Don't set session.gc_probality=1, instead read value from config
    • #15970 JS Offline tracking [by @tsteur, @diosmosis]
    • πŸ“š #16379 Better documentation of Proxy setup
    • #16413 Rename login_whitelist_ip config to login_allowlist_ip [by @tsteur]
    • #16442 Add dimension "Action URL" [by @tsteur]
    • #16480 The value for session.gc_probability now comes from the config files [by @nina-py, @tsteur]
    • 🚚 #16507 Always set consent removed cookie even when cookies are disabled [by @tsteur]
    • πŸ‘» #16520 Throw exception if dividend or divisor is not a number for easier troubleshooting [by @tsteur]
    • #16535 Fix selectable metrics in pie/bar charts for Events and Contents reports [by @sgiehl]
    • 0️⃣ #16547 By default use https during installation in website setup [by @tsteur, @diosmosis]
    • #16564 Generate segment string even if label value is 0 [by @tsteur]
    • #16565 Custom reports: show server hours in site's timezone [by @tsteur]
    • πŸ‘€ #16582 Fixes downloading files in chunks when not using curl [by @stevenseeley, @sgiehl]
    • #16600 MobileMessaging twig fix for 'Variable "ajax" does not exist.' [by @Findus23, @tsteur]
    • #16601 Allow overwriting rows_to_display property to ensure storing viewDatable settings works [by @sgiehl, @tsteur]
    • ⚑️ #16614 Update tag manager submodule [by @tsteur, @sgiehl]
    • βœ… #16615 Automatically add phpunit group name to a plugin php test [by @tsteur, @sgiehl]
    • ⚑️ #16618 Mention DB Lite DB will be automatically updated (filename etc)
    • ⚑️ #16639 [automatic translation update] Updated 30 strings in 3 languages (da el sq) [by @github-actions[bot], @sgiehl]
    • πŸ–¨ #16640 require PIWIK_PRINT_ERROR_BACKTRACE for exception backtraces in logs [by @diosmosis]
    • #16641 read from the task timetable option more often when executing tasks... [by @diosmosis, @tsteur]
    • πŸ’» #16659 Replace whitelist/blacklist terms in the UI
    • #16660 Add timezone version to php informational system check output [by @tsteur]
    • #16677 Download GeoIP files always to tmp directory [by @sgiehl]
    • #16680 Fix spelling of "Pie chart" [by @danielmcclure, @sgiehl]
    • πŸ”Œ #16683 Keep track of last activate/deactivate date for plugins [by @diosmosis, @tsteur]
    • #16687 Added whitespace to the bottom of email template [by @nina-py, @tsteur]
    • #16690 Show invalidation information in system check [by @tsteur]
    • ⚑️ #16691 update cacert.pem [by @Findus23, @tsteur]
    • πŸ”’ #16695 Add link to PR template to a security checklist [by @tsteur]
    • #16696 Add hash equals method [by @tsteur]
    • ⚑️ #16713 DB-IP URL is automatically updated in the options [by @nina-py, @tsteur]
    • πŸ”Œ #16718 Make it clear that tracking ISP data requires Provider plugin [by @sgiehl, @tsteur]
    • ⚑️ #16723 Updates iso region mapping [by @sgiehl, @tsteur]
    • ⏱ #16727 Add convenience method for rescheduling archiving for a single plugin. [by @diosmosis]

    πŸ“ˆ matomo-org/matomo-log-analytics

    matomo-org/matomo-php-tracker

    • πŸš€ #81 Release new Matomo PHP Tracker 3.0.0 for compatibility with Matomo 4.0.0 [by @diosmosis]
    • #26 Add methods for custom dimensions [by @sgiehl]
    • #43 POST when using PiwikTracker instead of GET to prevent token_auth showing in access_log
    • 🐎 #64 Adds method to set page performance metrics [by @sgiehl]
    • πŸ‘» #65 cURL error should throw an exception to ease debug [by @sgiehl, @tsteur]
    • 🚚 #66 Remove Gears detection [by @sgiehl]
    • 🚚 #67 Removes director detection [by @sgiehl]
    • #68 Track ecommerce views not as custom variables [by @sgiehl]
    • 0️⃣ #72 Allow switching between request methods and post token by default [by @tsteur]
    • #79 handle new cookie values now that tracking cookies changed in Matomo 4 [by @diosmosis]

    matomo-org/tag-manager

    • ⚑️ #210 When publishing a new version, and the version name is auto generated, make sure the update button is active [by @tsteur, @diosmosis]
    • #257 TagManager _mtm dataLayer is an object not an array -> use Array for dataLayer
    • πŸ’» #185 Tag Manager Preview UI tries to encode circular structure as JSON
    • #214 Report Forms variable typo [by @tsteur]
    • #218 Umlauts in Event (category|action|name), probably other fields, too, destroy variable strings in the same field [by @tsteur]
    • #221 Unable to attach event listener to element if theres already an event listener that stops bubbling
    • #230 Tag names are not encoded
    • πŸ”§ #248 Matomo Configuration: Using variable in Matomo URL results in validation error
    • #277 JS error in Tag Manager preview mode [by @tsteur]
    • 🚚 #224 Removes deprecated class Piwik\Translate [by @sgiehl]
    • #235 Fix possible error on PHP 7.4 [by @sgiehl, @tsteur]
    • ⚑️ #238 etracker Configuration update - cookieless tracking by default [by @ben-dw, @tsteur]
    • #240 etracker wrapper function added for single page applications compatibility [by @ben-dw, @tsteur]
    • πŸ”Œ #243 implements event to define plugins database tables [by @sgiehl]
    • πŸ‘ #244 better CSS Selector help [by @Findus23, @tsteur]
    • #251 Ensure a date and period is set even if $_POST might be empty [by @tsteur, @diosmosis]
    • #255 Fail if writing to file fails [by @tsteur]
    • #261 Set idSite on tracker already when creating the tracker [by @tsteur, @diosmosis]
    • #264 Document scroll reach only triggered once [by @tsteur]
    • 🌐 #274 Fix issue in EtrackerTag.web.js [by @ben-dw, @tsteur]
    • πŸ”§ #282 When using _paq.push(['trackPageView']); in a Custom HTML tag (with bundled and default tracker in configuration), no tracking request is fired
    • #226 idSite trough lookup table failing to load
    • #279 Fix etracker Tag (Version 4) [by @ben-dw, @tsteur]
    • #283 Offer possibility to only initialise the tracker without tracking any data [by @tsteur]

    matomo-org/matomo-icons

    • #23 Missing icon for wearable devices

    matomo-org/device-detector

    • πŸš€ #6396 New major release 4.0.0 [by @sgiehl]
    • #6366 Brand Model Detection Suggestions 2020-09-10
    • #6367 Detect new brands: Ziox, iDroid, Aoson, Cloudfone, Oyyu, Primux, iMars, Logic, Vsmart and Detect new apps: Viber, Siri, LinkedIn, Twitter, and Detect devices for existing brands: Vertu, Amigoo, Aligator, Google, Phicomm, Alcatel, Realme, TLS, Xiaomi, Umax, Sony, Lava, OnePlus, Yu, Amazon, Cherry Mobile, ZTE, Mobiistar, MyPhone, Medion, Lenovo, Qilive, Ulefone, Highscreen [by @sanchezzzhak, @sgiehl]
    • πŸ†“ #6368 Console script find free IDs for new brands [by @sanchezzzhak, @sgiehl]
    • #6369 Detect new brands: Ovvi, iBrit, Alcor, Fero and Detect devices for existing brands: Oppo, AllCall, Luna, Itbis, Ziox, Bq, Ginzzu, iPro, Lenovo, Odys, Highscreen [by @sanchezzzhak, @sgiehl]
    • #6379 Brand Xoro model HMT390Q what type of device?
    • #6380 Detect new brands: meanIT, MAXVI, Kenxinda, X-BO, Xgody and Detect devices for existing brands: Alcatel, Mpman, Nokia, Lenovo, Motorola, Neffos, Nomi, Mito, Oppo, Samsung, AllDocube, Huawei, LG, Meizu, ZTE, Highscreen, KrΓΌger&Matz, Positivo BGH, Leagoo, Logicom, Yes, TrekStor, Cloudfone, Mixzo, Karbonn, TCL, Advan, Aiwa, Acer, Wolder, Neomi, Xoro, Blu, Fujitsu, Hoffmann, Maxwest, Aligator [by @sanchezzzhak, @sgiehl]
    • πŸ“œ #6382 Detect browser: Opera when it disguises itself as Firefox and fixes parser for Gecko version [by @sanchezzzhak, @sgiehl]
    • #6386 Detect devices for existing brands: Blu, Gigaset, Samsung, Soundmax [by @sanchezzzhak, @sgiehl]
    • #6387 Add missing Bot 'PRTG Network Monitor'
    • #6388 Add 'PRTG Network Monitor' [by @fakhamatia, @sgiehl]
    • #6389 Strict regular expressions for [);/] [by @sanchezzzhak, @sgiehl]
    • #6391 Detect new brands: 8848, Transpeed and Detect devices for existing brands: ZTE, Realme, Oppo, Vivo, Meitu, Chuwi, Motorola, Asus, Sony, Huawei, Xiaomi [by @sanchezzzhak, @sgiehl]
    • #6394 Detect devices for existing brands: Logicom, Orange, Acer, Vivax, Lang Rover, Sony, Oukitel, Nextbit, Maze, Asus, Samsung, Huawei, Kyocera, Fujitsu, Lenovo, NEC, ZTE, HTC, Sharp, LG [by @sanchezzzhak, @sgiehl]
    • 🍎 #6398 iPad iOS > 12 detected as MacOS
    • πŸ—„ #6399 Deprecate usage of short names [by @sgiehl]
    • #6405 Detect new brands: Artel, A1, Swisstone and Detect devices for existing brands: RCA Tables, ZTE, Digma, Wiko, Vivo, Google, Tone, CUBOT, OPPO, Aligator, Blu, Logicom, Huawei [by @sanchezzzhak, @sgiehl]
    • #6410 Detect new brands: P-UP, iVooMi, Pixelphone and Detect devices for existing brands: Asus, Huawei, Xiaomi, Sony, Samsung, Casper, Blu, Alcatel, Fujitsu, Kyocera, Realme, Oppo, OnePlus, LG, Sharp, Fero, Runbo, Unihertz, Cherry Mobile, KrΓΌger&Matz, CUBOT, Telefunken, Philips, Motorola [by @sanchezzzhak, @sgiehl]
    • #6411 Adds Postman requester as "library" [by @Pierre-Lannoy, @sanchezzzhak]
    • πŸ’» #6414 Detect new browser: Monument Browser, Japan Browser and Detect Improvement Yandex Browse and Detect new brands: Iris and Detect devices for existing brands: Logicom, Asus, Neffos, Motorola, Elephone, Pixus, Vivax, Vontar, Oukitel, Huawei, AIS, teXet, BQ, DEXP, Highscreen, Inoi, Jinga, DNS, Hyundai, MicroMax, Irbis, LG, Advan, Aligator, Condor, Woxter [by @sanchezzzhak, @sgiehl]
    • πŸ“œ #6418 Parsing mismatches between versions
    • #6419 Improves detection of Advan devices and Android [by @sanchezzzhak, @sgiehl]
    • #6420 Fix detection of Mint (OS) [by @sgiehl, @sanchezzzhak]
    • #6421 Adds detection for Sprinklr crawler [by @sgiehl, @sanchezzzhak]
    • #6424 Improve/simplify detection of Jezz devices [by @sgiehl, @sanchezzzhak]
    • #6425 Rename GALAXY model to Galaxy for the Samsung brand [by @sanchezzzhak, @sgiehl]
    • 🐧 #6427 Linux distribution ROSA
    • πŸ’» #6428 Detect os: Rosa, MRE and Detect browser MAUI WAP Browser and Detect new brands: Xtouch, Fonos, Conquest and Detect devices for existing brands: Bush, Cat, DEXP, Lava, Explay, Artel, Pixus, Acer, Ark, MAXVI, Videocon, MicroMax, Huawei, Asus, Realme, Aligator, Unihertz, NOA, Maxtron, Alcatel, Irbis, Lenovo, Oukitel, Invin, Black Fox, Xiaomi, Ulefone, BQ, Wiko, Vestel, Odys, Kivi, Multilaser, Blackview, Haier, Nomu, Vertex, Coolpad [by @sanchezzzhak, @sgiehl]
    • #6432 fix invalid yaml [by @Findus23, @sgiehl]
    • πŸ‘• #6434 Introduce Yaml Lint check to prevent errors in yml files [by @sgiehl]
    • #6435 Improves detection for Allview devices [by @liviuconcioiu, @sanchezzzhak]
    • #6436 Improves detection for OPPO devices [by @liviuconcioiu, @sanchezzzhak]
    • #6437 Adds detection for Okapia devices [by @liviuconcioiu, @sanchezzzhak]
    • πŸ’» #6438 Improves detection for Yaani Browser [by @liviuconcioiu, @sanchezzzhak]
    • 🌐 #6364 Detect bots: Vercelbot, Grammarly, Robozilla, Domains Project, Petal Bot, Serendeputy Bot, ADmantX Service Fetcher, Semantic Scholar Bot, Velen Public Web Crawler [by @sanchezzzhak, @sgiehl]
    • #6365 Detect new brands: TurboKids, SQOOL, Jinga, Nomu. Twoe, iTruck, Torex, Doffler and Detect devices for existing brands: Alcatel, Oysters, Kyocera, Telego, ArmPhone, Karbonn, Majestic, E2, Digma, Megafon, Highscreen, Kivi,Turbo-X, 4Good, Jiay, NUU Mobile, Oukitel, Navon, Essentielb, Huawei, Turbo, Vestel, Ergo, MLS, HTC [by @sanchezzzhak, @sgiehl]
    • #6370 feat(device) detect Samsung GALAXY Note 20 5G [by @pongee, @sgiehl]
    • #6371 Added a few Android devices [by @GregOriol, @sanchezzzhak]
    • #6372 Roblox Android App with unusual User Agent Format
    • #6373 Added Roblox and GOG Galaxy App detection [by @nickperkins, @sgiehl]

    matomo-org/component-network

    • #15 Makes it possible to fully anonymize a IPv6 address [by @sgiehl]

    matomo-org/referrer-spam-list

    πŸ“ˆ We are together creating the best open analytics platform in the world. You can help make Matomo even more awesome by getting involved in Matomo!