feat: support MariaDB 10 and 11; default local to 11 LTS, matrix CI#438
Merged
Conversation
tuj
approved these changes
May 7, 2026
ea8b308 to
ddcde64
Compare
- docker-compose.yml: pin local default to upstream `mariadb:11.4` (LTS until 2029-05); override via `MARIADB_IMAGE`. Drops the unused `ENCRYPT=1` toggle that only existed on the itkdev/mariadb wrapper. - .env / .env.test: parametrize Doctrine `serverVersion` via `MARIADB_VERSION` (default `11.4.4-MariaDB`). Also fixes the prior inconsistency where .env claimed `10.11.5-MariaDB` and .env.test claimed the EOL `mariadb-10.5.13`. - phpunit.yaml + doctrine.yaml: matrix-test on `mariadb:10.11` (LTS until 2028-02) and `mariadb:11.4`. `fail-fast: false` so a regression on one major doesn't mask the other. Both jobs are renamed to `... (matrix.mariadb.image)` for clarity in the Checks tab. - README: document `MARIADB_IMAGE` / `MARIADB_VERSION` overrides. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The previous arrangement put MARIADB_VERSION directly above DATABASE_URL with no intervening comment, which fails scripts/check-env-coverage.sh's "every variable in .env has a preceding description comment" rule. Move MARIADB_VERSION (with its own comment block) above the DATABASE_URL comment block so both variables retain a comment immediately above them. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ddcde64 to
14dae5f
Compare
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.
Summary
Pins local dev to MariaDB 11.4 LTS (was the moving
itkdev/mariadb:latestalias, whose underlying version was undeclared) and adds a 2-leg CI matrix so PHPUnit and the Doctrine schema-validate workflow each run onmariadb:10.11LTS andmariadb:11.4LTS.Also fixes an existing inconsistency:
.envclaimedserverVersion=10.11.5-MariaDBwhile.env.testclaimed the EOLmariadb-10.5.13. Both now interpolate${MARIADB_VERSION}from a single source of truth in.env(default11.4.4-MariaDB), and CI overrides per matrix leg.Files Changed
docker-compose.yml—image: ${MARIADB_IMAGE:-mariadb:11.4}. Drops the unused commented-outENCRYPT=1env (itkdev wrapper-only feature)..env— addsMARIADB_VERSION=11.4.4-MariaDB;DATABASE_URLinterpolates it..env.test— same interpolation; reusesMARIADB_VERSIONfrom.env(or CI override)..github/workflows/phpunit.yaml—strategy.matrixovermariadb:10.11+mariadb:11.4;fail-fast: false. ForwardsMARIADB_VERSIONinto the phpfpm container viadocker compose run -e MARIADB_VERSION..github/workflows/doctrine.yaml— same matrix shape for the migrate-and-validate job.README.md— adds a### Database (MariaDB)subsection under Development setup documenting theMARIADB_IMAGE/MARIADB_VERSIONoverrides with a copy-paste example for testing 10.11 locally.CHANGELOG.md—[Unreleased]entry.Why upstream
mariadb:and notitkdev/mariadb?itkdev/mariadbon Docker Hub publishes onlylatestand1.x.ywrapper tags (no major-version tags), so a clean matrix isn't expressible against it. The wrapper's only material extra is an opt-inENCRYPT=1that this repo's compose has commented out —MYSQL_*env vars andhealthcheck.shwork the same on upstream.Local verification (already run on 11.4)
Boot + migrate + full PHPUnit suite + schema-validate, all green against
mariadb:11.4.10:doctrine:schema:validatereports schema in sync10.11 leg verified by CI matrix once this PR runs.
Test Plan
PHP Unit testsjobs and twoValidate Schemajobs (one per matrix leg), all green. Withfail-fast: false, a 10-only or 11-only failure stays visible rather than being masked.🤖 Generated with Claude Code