Repository navigation
Migrate to PHP 8.4.27 (preprod) - #159
Merged
Merged
Conversation
Transform article in a newsletter
str_getcsv() must receive its escape argument explicitly in PHP 8.4, rss.php could pass a NULL slug to rawurlencode() (deprecated since 8.1), and the azure theme used the __ prefix PHP reserves for itself. All changes run unchanged on PHP 7.4, which preprod keeps until its own runtime switch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
php:7.4-apache is Debian 11, whose security mirror is gone, and PHP 7.4 has been end-of-life since 2022. The image, the e2e stack and the workflows now use PHP 8.4.27 (supported until the end of 2028). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Prod moves to PHP 8.4.27 first while preprod keeps 7.4 until its own runtime switch, so the PHP job runs on both versions to catch code that would only break one of them. The ownership mock of the e2e stack moves to 8.4 for consistency. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The decks API image of the e2e stack is built from a pinned commit but on the latest FrankenPHP base, whose Mercure now refuses publisher_jwt / subscriber_jwt outside compatibility mode: the container exits at start and the Playwright job fails before any test, whatever the PHP version. Same setting as preprod (#131). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merged
|
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.

Why
Forward-port of #158 (PHP 8.4.27 migration, targeting
main) topreprod, so both branches carry the same code, Dockerfile, CI and docs. Prod switches its runtime first; preprod keeps PHP 7.4 until AlteredOps PR 2.What changes
chore/php-8.4(not a cherry-pick): the 4 code fixes (str_getcsvescape, NULL slug in RSS,__nav_*→acNav*, cURL docblocks),php:8.4.27-apacheDockerfile,deploy.yml/plugins-ci.ymlon 8.4, docs. The merge applied cleanly onto preprod's newerplugins-ci.yml. It also brings themaincommits that preprod did not have yet (includes/listmonk.php).['7.4', '8.4']while preprod still runs 7.4 (the aggregatedPlugins CIcheck covers both legs). To drop once preprod has switched.docker-compose.stack.yml: the ownership mock moves fromphp:8.3-cli-alpinetophp:8.4-cli-alpine(consistency).Merge order
Merge after #158 is on
mainand prod has been validated on 8.4.27 (AlteredOps PR 1). Merging deploys the code to preprod, which still runs 7.4 — the code is 7.4-compatible. AlteredOps PR 2 then switches the preprod runtime.How it was verified
php -lof the whole tree under 8.4 and 7.4: clean.tests/run.php114/114, core-altered-cards 70/70, equinox-deck-import 21/21 on both 7.4 and 8.4.php:8.4.27-apacheimage.