Skip to content

Prepare for Matomo 6 - #196

Merged
sgiehl merged 9 commits into
6.x-devfrom
prepare6x
Aug 10, 2026
Merged

Prepare for Matomo 6#196
sgiehl merged 9 commits into
6.x-devfrom
prepare6x

Conversation

@sgiehl

@sgiehl sgiehl commented Aug 9, 2026

Copy link
Copy Markdown
Member

Description

Prepares VisitorGenerator for Matomo 6.

This branch collects the work done for the Matomo 6 line and targets the new long-lived 6.x-dev
branch, which was created in parity with 5.x-dev.

  • Plugin version bumped to 6.0.0 and the dependency narrowed to >=6.0.0-b1,<7.0.0-b1. The -b1
    lower bound is required so the plugin is not disabled against a beta core.
  • composer.json now requires PHP >=8.1.0, matching Matomo 6's minimum. The declared floor was
    still >=7.2.5.
  • The test matrix uses the matomo6_min_php / matomo6_max_php aliases instead of hardcoded PHP
    versions, so it follows core rather than drifting when the supported range moves. PluginTests runs
    a MySQL 8.0 + MariaDB 10.6 matrix.
  • Vue dist files rebuilt with the Vite build; the unminified UMD bundle Matomo no longer serves has
    been dropped.
  • Changelog entry added for 6.0.0.

A full sweep of the Matomo 6 breaking changes found no incompatible code. The items reviewed and
deliberately kept:

  • Generator/VisitsFake.phpsetCustomVariable() already uses the (int $id, string $name, string $value, string $scope) signature of php-tracker 4, not the removed array form.
  • Generator/Annotations.phpAnnotations.add now requires Write permission instead of View, but
    the only caller wraps it in Access::doAsSuperUser().
  • Generator/VisitsFromLogs.php, Generator/LiveVisitsFromLog.phpHttp::sendHttpRequest() and
    sendHttpRequestBy() gained a trailing $validateEgressIp parameter that defaults to off, so the
    loopback tracking requests these generators make are unaffected.

Issue No

Related to the Matomo 6 plugin preparation.

Steps to Replicate the Issue

  1. Install the plugin on Matomo 6 — previously it was not marked as compatible.
  2. Expected: the plugin activates and generates visits.
  3. Actual (before this PR): the plugin is treated as incompatible with Matomo 6.

Checklist

  • [✔] Tested locally or on demo2/demo3?
  • [NA] New test case added/updated?
  • [NA] Are all newly added texts included via translation?
  • [NA] Are text sanitized properly? (Eg use of v-text v/s v-html for vue)
  • [✔] Version bumped?
  • [✔] I have understood, reviewed, and tested all AI outputs before use
  • [✔] All AI instructions respect security, IP, and privacy rules
  • [NA] Documentation updated?

🤖 This pull request was prepared with assistance from Claude Code.

sgiehl added 9 commits July 9, 2026 14:43
Bump plugin version to 6.0.0 and require Matomo >=6.0.0-b1,<7.0.0-b1.
…violations (#192)

* Rebuild Vue dist files with the Vite build for Matomo 6

* Rebuild Vue dist files for Vue 3.5

* Fix VisitorGenerator Vue declaration type errors

Coerce numeric translate args.
* Run plugin tests against MySQL 8.0 and MariaDB 10.6

The workflow inherited the shared action's MySQL 5.7 default, which is below
Matomo's new minimum. Pin the database-backed jobs to the supported floor:
PluginTests now runs a MySQL 8.0 + MariaDB 10.6 matrix, and the UI/JS jobs run
on MySQL 8.0.

* Only upload plugin test artifacts for the MySQL matrix leg

PluginTests runs a MySQL + MariaDB matrix; the upload-artifacts condition
matched both legs and uploaded twice. Restrict the upload to the MySQL leg.
The type-safe MatomoTracker types setUserId() as ?string; passing false
coerces to '' and is rejected. Use null to de-assign a user id, matching
the tracker's documented behaviour.
Matomo's Vue build no longer emits <Plugin>.umd.js. Only the minified
VisitorGenerator.umd.min.js is ever served: PluginUmdAssetFetcher looks exclusively for
.umd.min.js, and development mode uses the .development.umd.js produced by
vue:build --watch.

The unminified bundle was a leftover from Vue CLI, whose lib build emitted it
alongside the minified one for free. See matomo-org/matomo#25027.
The declared floor was still >=7.2.5, below Matomo 6's minimum of 8.1.0.
Raise it to match core and refresh the lock's content hash.
…ase]

The matrix pinned 8.1 and 8.5 literally, so it would drift from core the
next time the supported range moves. The central action resolves
matomo6_min_php / matomo6_max_php to whatever Matomo 6 supports.
@sgiehl
sgiehl requested a review from a team August 9, 2026 13:52
@sgiehl
sgiehl merged commit 7636aba into 6.x-dev Aug 10, 2026
11 checks passed
@sgiehl
sgiehl deleted the prepare6x branch August 10, 2026 06:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants