Page MenuHomePhabricator

Drop PHP 7.4 and PHP 8.0 support from MediaWiki
Closed, ResolvedPublic

Description

T278139: Drop PHP 7.3 support in MediaWiki when appropriate | T358666: Drop PHP 8.1 support from MediaWiki

This is a placeholder task for when this work happens, so that other tasks can depend upon it.

Details

Other Assignee
Krinkle
Related Changes in Gerrit:
Show related patches Customize query in gerrit

Related Objects

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Change #1127083 had a related patch set uploaded (by Jforrester; author: Jforrester):

[integration/config@master] [DNM] Zuul: Drop all PHP 7.4 testing for MediaWiki things

https://gerrit.wikimedia.org/r/1127083

Change #1128015 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/core@master] Drop PHP 7.4/8.0 support from master (already dropped from release branches

https://gerrit.wikimedia.org/r/1128015

Change #1128016 had a related patch set uploaded (by Krinkle; author: Jforrester):

[mediawiki/core@master] Drop various PHP 7.4/8.0 support hacks, no longer needed

https://gerrit.wikimedia.org/r/1128016

Krinkle renamed this task from Drop PHP 7.4 support from MediaWiki to Drop PHP 7.4 and PHP 8.0 support from MediaWiki.Apr 28 2025, 4:35 PM
Krinkle updated the task description. (Show Details)
Krinkle reassigned this task from Krinkle to Jdforrester-WMF.
Krinkle added a project: MediaWiki-Engineering.
Krinkle updated Other Assignee, added: Krinkle.
Krinkle subscribed.

I have a dummy question to ask: once we get the green light from the ServiceOps team to proceed with the deprecation of PHP7.4, what's the effort for the work needed to proceed? Is it possible to measure how many weeks are needed to complete the work?

I'm interested in knowing it so I can make an assessment on the MW Release 1.44 timeline. cc/ @Krinkle and @Jdforrester-WMF

I have a dummy question to ask: once we get the green light from the ServiceOps team to proceed with the deprecation of PHP7.4, what's the effort for the work needed to proceed? Is it possible to measure how many weeks are needed to complete the work?

Which work, exactly?

Your follow-up question below suggests you mean just the actual dropping of active PHP 7.4/8.0 support, which is already done in REL1_44 (like with REL1_43 and REL1_42).

The wider work of unwinding large parts of CI and other support will take a fair bit longer, but most of the obvious patches are already written and waiting to go.

Then there's the work that's blocked on this work (see the task tree), which potentially gets quite large, but I don't think any of that is in scope for this work.

I'm interested in knowing it so I can make an assessment on the MW Release 1.44 timeline. cc/ @Krinkle and @Jdforrester-WMF

I don't see how this is relevant to the 1.44 release timeline. PHP 7.4 and 8.0 support were dropped in MW 1.42, with a special hack in master to "temporarily" support it for Wikimedia production, and that remains the case.

Change #1147822 had a related patch set uploaded (by Krinkle; author: Krinkle):

[mediawiki/vendor@master] build: Switch local image from composer-php74 to composer-php81

https://gerrit.wikimedia.org/r/1147822

I have a dummy question to ask: once we get the green light from the ServiceOps team to proceed with the deprecation of PHP7.4, what's the effort for the work needed to proceed? Is it possible to measure how many weeks are needed to complete the work?

[…] Your follow-up question below suggests you mean just the actual dropping of active PHP 7.4/8.0 support, which is already done in REL1_44 (like with REL1_43 and REL1_42).

[…] I don't see how this is relevant to the 1.44 release timeline. PHP 7.4 and 8.0 support were dropped in MW 1.42, with a special hack […]

I believe Mateus, by proxy of me, is operating on the assumption that the "backwards cherry-pick" that we applied to MW 1.42 and MW 1.43 (i.e. the dropping of 7.4 and 8.0 support, which is a patch we kind of backported to those two REL branches, but hasn't landed in the master branch yet), is something we prefer not to repeat for the MW 1.44 release. Instead, we're aiming to upgrade "for real" this release cycle, as per the OKR/Hypothesis for the MW release cycle and PHP upgrade to align.

In addition to the literal "drop support" patch, given that we aim to the upgrade "for real" this time, it also means we can (without diverging prod from release, and without releasing code we haven't deployed at scale) finally unblock all other changes we've been holding back for a while; such as overdue upgrades to Composer library dependencies that we are running on EOL versions due to latest versions requiring PHP 8.

Change #1127093 had a related patch set uploaded (by Krinkle; author: Jforrester):

[integration/config@master] Zuul: [integration/quibble] Stop testing in PHP 7.4

https://gerrit.wikimedia.org/r/1127093

Change #1127117 had a related patch set uploaded (by Krinkle; author: Jforrester):

[integration/config@master] Docker: Provide quibble-bullseye-php81-coverage

https://gerrit.wikimedia.org/r/1127117

Change #1127118 had a related patch set uploaded (by Krinkle; author: Jforrester):

[integration/config@master] jjb: Migrate jobs silently using PHP 7.4 to 8.1

https://gerrit.wikimedia.org/r/1127118

Change #1127118 merged by jenkins-bot:

[integration/config@master] jjb: Migrate jobs silently using PHP 7.4 to 8.1

https://gerrit.wikimedia.org/r/1127118

I have a dummy question to ask: once we get the green light from the ServiceOps team to proceed with the deprecation of PHP7.4, what's the effort for the work needed to proceed? Is it possible to measure how many weeks are needed to complete the work?

[…] Your follow-up question below suggests you mean just the actual dropping of active PHP 7.4/8.0 support, which is already done in REL1_44 (like with REL1_43 and REL1_42).

[…] I don't see how this is relevant to the 1.44 release timeline. PHP 7.4 and 8.0 support were dropped in MW 1.42, with a special hack […]

I believe Mateus, by proxy of me, is operating on the assumption that the "backwards cherry-pick" that we applied to MW 1.42 and MW 1.43 (i.e. the dropping of 7.4 and 8.0 support, which is a patch we kind of backported to those two REL branches, but hasn't landed in the master branch yet), is something we prefer not to repeat for the MW 1.44 release.

Oh, right; that assumption isn't correct, the fix already landed in REL1_44 two weeks ago. https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1143077

Instead, we're aiming to upgrade "for real" this release cycle, as per the OKR/Hypothesis for the MW release cycle and PHP upgrade to align.

"This cycle" is now REL1_45, as the REL1_44 cut has already happened and SRE still aren't in a place for us to do this (and may well not be for weeks yet). We can't hold back rc.0/etc. on the off-chance that Wikimedia prod will finally be ready.

Change #1147822 merged by jenkins-bot:

[mediawiki/vendor@master] build: Switch local image from composer-php74 to composer-php81

https://gerrit.wikimedia.org/r/1147822

Change #1148890 had a related patch set uploaded (by Krinkle; author: Krinkle):

[mediawiki/extensions/DonationInterface@master] build: Allow either monolog 2.x or monolog 3.x to be used

https://gerrit.wikimedia.org/r/1148890

Change #1148890 merged by jenkins-bot:

[mediawiki/extensions/DonationInterface@master] build: Allow either monolog 2.x or monolog 3.x to be used

https://gerrit.wikimedia.org/r/1148890

Change #1127083 merged by jenkins-bot:

[integration/config@master] Zuul: Drop all PHP 7.4 testing for MediaWiki things

https://gerrit.wikimedia.org/r/1127083

Mentioned in SAL (#wikimedia-releng) [2025-06-05T16:09:32Z] <James_F> Zuul: Drop all PHP 7.4 testing for MediaWiki things, for T328921 and T328922

Change #1127093 merged by jenkins-bot:

[integration/config@master] Zuul: [integration/quibble] Stop testing in PHP 7.4

https://gerrit.wikimedia.org/r/1127093

Mentioned in SAL (#wikimedia-releng) [2025-06-05T16:26:26Z] <James_F> Zuul: [integration/quibble] Stop testing in PHP 7.4, for T328921 and T328922

Change #1128015 merged by jenkins-bot:

[mediawiki/core@master] Drop PHP 7.4/8.0 support from master (forward-port from MW 1.42)

https://gerrit.wikimedia.org/r/1128015

Change #1154237 had a related patch set uploaded (by Lucas Werkmeister (WMDE); author: Lucas Werkmeister (WMDE)):

[mediawiki/extensions/EntitySchema@master] Bump secondary CI from PHP 7.4 to 8.1

https://gerrit.wikimedia.org/r/1154237

Change #1154239 had a related patch set uploaded (by Lucas Werkmeister (WMDE); author: Lucas Werkmeister (WMDE)):

[mediawiki/extensions/Wikibase@master] Bump secondary CI from PHP 7.4 to 8.1

https://gerrit.wikimedia.org/r/1154239

Change #1154239 abandoned by Lucas Werkmeister (WMDE):

[mediawiki/extensions/Wikibase@master] Bump secondary CI from PHP 7.4 to 8.1

Reason:

dupe of I0796e7f9f2

https://gerrit.wikimedia.org/r/1154239

Change #1154237 merged by jenkins-bot:

[mediawiki/extensions/EntitySchema@master] Bump secondary CI from PHP 7.4 to 8.1

https://gerrit.wikimedia.org/r/1154237

Change #1154325 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/core@master] Update phan stubs for PHP 8.1

https://gerrit.wikimedia.org/r/1154325

Change #1154327 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/tools/phan@master] Bump minimum target PHP version to 8.1

https://gerrit.wikimedia.org/r/1154327

Change #1128016 merged by jenkins-bot:

[mediawiki/core@master] Drop various PHP 7.4/8.0 support hacks, no longer needed

https://gerrit.wikimedia.org/r/1128016

Change #1154327 merged by jenkins-bot:

[mediawiki/tools/phan@master] Bump minimum target PHP version to 8.1

https://gerrit.wikimedia.org/r/1154327

Let's call this complete.

Change #1154325 merged by jenkins-bot:

[mediawiki/core@master] Update phan stubs for PHP 8.1

https://gerrit.wikimedia.org/r/1154325

Change #1154397 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/vendor@master] composer.json: Bump to php >= 8.1.0

https://gerrit.wikimedia.org/r/1154397

Change #1154397 merged by jenkins-bot:

[mediawiki/vendor@master] composer.json: Bump to php >= 8.1.0

https://gerrit.wikimedia.org/r/1154397

Change #1159372 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/vendor@REL1_44] composer.json: Bump to php >= 8.1.0

https://gerrit.wikimedia.org/r/1159372

Change #1159375 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/vendor@REL1_43] composer.json: Bump to php >= 8.1.0

https://gerrit.wikimedia.org/r/1159375

Change #1159372 merged by Reedy:

[mediawiki/vendor@REL1_44] composer.json: Bump to php >= 8.1.0

https://gerrit.wikimedia.org/r/1159372

Change #1159375 merged by Reedy:

[mediawiki/vendor@REL1_43] composer.json: Bump to php >= 8.1.0

https://gerrit.wikimedia.org/r/1159375

Change #1160713 had a related patch set uploaded (by Reedy; author: Jforrester):

[mediawiki/core@REL1_43] Drop PHP 7.4/8.0 support from master (forward-port from MW 1.42)

https://gerrit.wikimedia.org/r/1160713

Change #1160716 had a related patch set uploaded (by Reedy; author: Jforrester):

[mediawiki/core@REL1_44] Drop PHP 7.4/8.0 support from master (forward-port from MW 1.42)

https://gerrit.wikimedia.org/r/1160716

Change #1160716 merged by jenkins-bot:

[mediawiki/core@REL1_44] Drop PHP 7.4/8.0 support from master (forward-port from MW 1.42)

https://gerrit.wikimedia.org/r/1160716

Change #1160713 merged by jenkins-bot:

[mediawiki/core@REL1_43] Drop PHP 7.4/8.0 support from master (forward-port from MW 1.42)

https://gerrit.wikimedia.org/r/1160713

Change #1199257 had a related patch set uploaded (by Reedy; author: Krinkle):

[mediawiki/vendor@REL1_44] build: Switch local image from composer-php74 to composer-php81

https://gerrit.wikimedia.org/r/1199257

Change #1199259 had a related patch set uploaded (by Reedy; author: Krinkle):

[mediawiki/vendor@REL1_43] build: Switch local image from composer-php74 to composer-php81

https://gerrit.wikimedia.org/r/1199259

Change #1199259 merged by Reedy:

[mediawiki/vendor@REL1_43] build: Switch local image from composer-php74 to composer-php81

https://gerrit.wikimedia.org/r/1199259

Change #1199257 merged by Reedy:

[mediawiki/vendor@REL1_44] build: Switch local image from composer-php74 to composer-php81

https://gerrit.wikimedia.org/r/1199257