Conversation
snake14
approved these changes
Aug 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Prepares the plugin for Matomo 6, in six commits.
Metadata —
plugin.jsonversion5.1.0→6.0.0andrequire.matomo>=5.0.0,<6.0.0-b1→>=6.0.0-b1,<7.0.0-b1(the-b1lower bound is required so the plugin is not disabled against a betacore), plus a
6.0.0CHANGELOG entry. Nocomposer.json, so no PHP constraint to raise there.Updates/ — checked, not changed.
core/Updateronly runs update files whereinstalledVersion < fileVersion <= marker, so no file may sort above the new6.0.0marker.5.1.0.phpdoes not.Plugin tests workflow — PHP aliases
matomo5_*→matomo6_*in the matrix, the UI job, theupload-artifactscondition and thegenerate:test-actionheader comment. Added adatabasematrix forMySQL 8.0 and MariaDB 10.6 (Matomo 6's new minimums), passed through as
mysql-engine/mysql-version,with
matrix.database.engine == 'Mysql'added toupload-artifactsso only one leg uploads. The UI jobwas on
node-version: '16'while Matomo 6 requires Node 24 — bumped to'24'with explicitmysql-engine: 'Mysql'/mysql-version: '8.0', without which the job fails withUnknown database 'piwik_tests'before comparing any screenshot.PHPCS / PHPStan workflows — both ran on PHP versions below Matomo 6's 8.1 floor. Bumped to
8.1.These call
setup-phpdirectly, so thematomo6_*aliases do not apply to them.PHPStan configuration —
excludePathslistedgithub-action-tests, which does not exist in therepository. PHPStan 2 (bundled with Matomo 6) fails hard on an entry that matches nothing, so the
analysis aborted with
Invalid entry in excludePathsinstead of running at all. Marked optional asgithub-action-tests/ (?), which keeps it skipped in CI — wherecheckout_matomo.shcopies the actionworkspace into the plugin directory — while letting it pass locally.
tests/*is a wildcard and was leftuntouched.
phpVersion70200→80100.One real finding, now fixed (only visible once the analysis actually ran):
Settings/EncryptedSlackOauthTokenSetting.php:63guarded itssaveValue()call with$backend instanceof PluginSettingsTable && method_exists($backend, 'saveValue'). Themethod_existsarm is dead —
Piwik\Settings\Storage\Backend\PluginSettingsTable::saveValue()is declared in core 6.Removed. (The same dead guard exists in plugin-MicrosoftTeams and is fixed in its own PR.)
Vue — rebuilt with the Vite toolchain; no TypeScript errors. Three tracked artefacts are no longer
produced by the single-pass Vite build —
Slack.umd.js,Slack.umd.js.mapandSlack.umd.min.js.map,all still dated from the old Vue CLI build. Removed, with
/vue/dist/*.umd.jsand/vue/dist/*.mapadded to
.gitignore.Slack.umd.min.jsandumd.metadata.jsonare regenerated.Reviewed and kept:
EnrichTriggeredAlerts.php:15extendsController, which the#[JsonResponse]sweep matches — but that is the CustomAlerts plugin's controller, not a core JSON action, and the
class only overrides
enrichTriggeredAlerts().All six commits are marked
[ignore_release]: this only establishes Matomo 6 compatibility and nothingcan be released for Matomo 6 until core ships.
Issue No
Related to the Matomo 6 plugin preparation effort.
Steps to Replicate the Issue
./console plugin:activate Slacksucceeds../console core:updatereports no pending migrations.phpstan analyse -c plugins/Slack/phpstan.neonreports no errors (before this PR it aborted withInvalid entry in excludePaths)../console vue:build Slackcompletes with no TypeScript errors../vendor/bin/phpcs --standard=phpcs.xmlpasses on PHP 8.1../console tests:run plugins/Slack/tests/Integration— 33 of 39 pass locally. The 6ScheduledReportsTest::testGetAlertMessagecases assert a hard-codedhttp://localhost/...URL andfail on any dev machine whose
[tests] http_hostis notlocalhost; CI useslocalhost, so theypass there.
Checklist