Piwik 2.9.0 is a new major release of Piwik! In this release we have focused on reliability and stability. 58 tickets have been closed by more than 8 contributors!

Last night Piwik was one of the finalists of the New Zealand Open Source Software Awards and to celebrate we name this release NZOSA.

After You Update

  • Use the forums if you have any question or feedback (free support),
  • Please help us spread the word about Piwik! Maybe you can write about the project on your blog, website, twitter, talk about Piwik Analytics at conferences, or let your friends and colleagues know what is Piwik. Already 1,000,000+ websites have liberated their web analytics, and with your help we can grow the community!
  • To improve Piwik in your language consider contributing to translations,

Database upgrade

Note: This release contains a major database upgrade and upgrading your database will take a long time if you have a lot of data in your database. Please make sure you read the Update Piwik guide for high traffic instances.

Platform Changes

Piwik is an open analytics platform. In an effort to help Piwik developers learn about improvements and changes in the core APIs, we document the changes since the last release.

In this 2.9.0 release there are breaking changes, deprecations, and library updates.

-> Check out this CHANGELOG.md file (in the root of Piwik) to see all changes to the platform and APIs.

Note: the Marketplace showcases more than 33 plugins extending Piwik but we think this is just the beginning!

New and updated guides and FAQs

New Plugins on Marketplace

List of 58 tickets closed in Piwik 2.9.0

  • #6485 ERROR: API returned an error: Trying to add two strings in DataTable\Row::sumRowArray: ‘7.01%’ + ‘7.12%’ for row [by @mattab]
  • #5052 Enable IP anonymisation by default, let users disable anonymisation during Piwik installation [by @mnapoli]
  • #6579 When activating IP anonimisation, anonimise two bytes by default [by @mnapoli]
  • #6581 Let user customize privacy options on last step of installation [by @mnapoli, @mattab]
  • #6566 Let users deactivate DoNotTrack feature during installation [by @mnapoli]
  • #6420 New browser engine reports based on new browser engine detection of DeviceDetector [by @sgiehl, @mattab]
  • #6417 allocateNewArchiveId: Cannot get named lock allocateNewArchiveId [by @tsteur]
  • #4595 Transitions & Page Overlays not working on one page, but working on others [by @mattab]
  • #4558 Raise Password length to 80 [by @tsteur]
  • #1879 Import/Export functionality for Sites and Administrative data
  • #6494 Extracting the IP class into a standalone « network » component
  • #6484 Improving discussions and communication with RFC (Requests for Comments)
  • #6435 Wrong database values when float representation is not set to English standard [by @tsteur]
  • #5365 Do not store Accept-language full string, only store detected language
  • #6511 Scheduled report sends empty file for SiteSearch plugin [by @tsteur]
  • #6508 Slow query from purgeInvalidatedArchiveTable (query is 3-10min long on bigger instances) [by @mattab]
  • #6502 Release WebsiteGroups plugin in the Marketplace [by @tsteur]
  • #6607 Let user specify in config file how many rows will be displayed in Scheduled Reports. [by @czolnowski, @mattab]
  • #6570 Add compatibility for running ./console with php-cgi by setting SERVER args from GET parameters. [by @diosmosis]
  • #6555 Introduced the DI container [by @mnapoli, @mattab]
  • #6632 Increase allowed password length from 26 to 80 [by @tsteur, @mattab]
  • #6612 Change default logger level from WARNING to ERROR [by @mattab, @sgiehl]
  • #6631 Make sure to output float values in row evolution in case a German locale is used [by @tsteur]
  • #6598 When a site ID was invalidated via API CoreAdminHome.invalidateArchivedReports, it should be reprocessed even when archiving fails at first [by @mattab]
  • #6553 Fix 404 errors when opening developer tools (remove all *.js.map source mappings in merged JS) [by @tsteur]
  • #6496 [ScheduledTasks] The SELECT would examine more than MAX_JOIN_SIZE rows [by @tsteur, @mattab]
  • #6517 Extracted the IP class into a standalone Network component [by @mnapoli, @mattab]
  • #6645 Easier configuration to run tests [by @tsteur]
  • #6626 fix list of plugins is not sorted correct [by @tsteur]
  • #6621 Removed group check before running any PHP tests. [by @tsteur, @mattab]
  • #6611 Normalize less decimal fields in System tests [by @tsteur]
  • #6606 API: skip truncation filter if truncate value is negative [by @czolnowski, @mattab]
  • #6595 Piwik 2.8 cannot be installed on PHP 5.3.3 [by @mnapoli]
  • #6591 Added videa.seznam.cz (seznam video) [by @DaSchTour, @mattab]
  • #6588 Remove auto update step « Creating Backup Of Configuration File » [by @mattab]
  • #6587 Refactor out HtmlMessageException [by @tsteur]
  • #6584 Log Import: `php /home/piwik/docroot/misc/cron/updatetoken.php` failed with error: PHP Fatal error: Uncaught exception ‘Exception’ with message ‘General_ExceptionConfigurationFileNotFound’ [by @mattab]
  • #6556 Move code coverage from Travis to Scrutinizer [by @mnapoli]
  • #6549 Speed up unit tests [by @mnapoli]
  • #6547 Remove TestRunner plugin in latest.zip [by @tsteur, @mattab]
  • #6541 Use exceptions instead of calls to Piwik_ExitWithMessage [by @diosmosis]
  • #6540 Added a test runner that launches tests on AWS [by @tsteur]
  • #6537 Searching for a number in Website Selector leads to SQL error [by @mattab]
  • #6533 Show development commands only if development mode is enabled [by @tsteur]
  • #6532 generate:travis-yml command sometimes fails to detect tests in plugin [by @mnapoli]
  • #6523 Add example archiver and CoreConsole task to generate Archiver into plugin. [by @mgazdzik, @tsteur]
  • #6520 fix annotations which were broken in case there was no space after anota… [by @mgazdzik, @mattab]
  • #6519 APIs marked as deprecated can’t be used anymore [by @tsteur]
  • #6514 Entry pages footer links lead to « Action not found » [by @czolnowski, @mattab]
  • #6429 As a developer I want to have a faster response whether my code breaks any tests [by @tsteur]
  • #6414 Run Screenshot tests on PHP 5.3
  • #6353 Scrutinizer-CI
  • #6334 Sorting seems to be lexical instead of numerical in Visitors → Settings → Plugins [by @tsteur]
  • #6317 core:update displays instructions -after- updating [by @tsteur]
  • #6220 Move ‘System check’ menu entry to ‘Diagnostic’ section [by @mattab]
  • #6009 Rename some methods in Plugin Manager [by @tsteur]
  • #5330 German localisation: Avg. generation time shown in full seconds in row evolution graph [by @tsteur]
  • #6596 [automatic translation update] Updated 121 strings in 19 languages (cs, da, de, fa, it, ja, pl, sv, pt, hi, fi, ru, sr, tr, ro, fr, nl, el, es) [by @sgiehl]
  • #6594 [automatic translation update] Updated 427 strings in 24 languages (fi, nl, be, ca, id, ko, lv, pt, sq, vi, ja, da, de, el, fr, it, bg, cs, es, ro, ru, sr, sv, sl) [by @sgiehl]

Did you know you can get involved in the project? Piwik needs you to create together the best analytics platform that gives every user full control over their data!