Migrate Wikimedia production from PHP 8.3 to PHP 8.5
Open, In Progress, MediumPublic

Description

T360995: Migrate Wikimedia production from PHP 8.1 to PHP 8.3 | [None yet]

Preparation for MediaWiki (Jan–Mar 2026):

Preparation for WMF (Jul–Aug 2026):

  • SRE: Create Debian packages for PHP 8.5 and upload to apt.wikimedia.org. T432983 Aug 2026.
  • CI: Switch PHP 8.5 images in integration/config.git from sury.org to wikimedia.org and apply to Jenkins jobs. T433254 Aug 2026.
  • DX: Switch PHP 8.5 images in releng/dev-images.git from sury.org to wikimedia.org and apply update to MediaWiki-Docker. T413817 Aug 2026
  • SRE: Create production images for PHP 8.5 and add new flavour to MediaWiki deployments. T432988
  • SRE: Generate and deploy title-case mapping in MediaWiki configuration (wmf-config/UcfirstOverrides.php). T432985
  • SRE: Switch mw-debug/next to PHP 8.5 images, for public opt-in testing via WikimediaDebug. T432989
  • Beta Cluster: Switch to PHP 8.5, includes writing Puppet changes to support PHP 8.5 on baremetal.
  • SRE: Change Scap to use PHP 8.5 images when invoking maintenance scripts, and upgrade Scap in Beta Cluster and production. T432989
  • DX: Switch Catalyst/Patchdemo to PHP 8.5. T435368

Test (Aug–Sep 2026):

  • MW: Start monitoring and fixing deprecation warnings as found in Logstash.
  • QTE, MW, SRE: One week for validation and end-to-end testing via WikimediaDebug "next" and Beta Cluster.
  • SRE, MW: Benchmarking for PHP 8.5, check specific well-known workloads to identify regressions or suboptimal configurations. T435072
  • SRE, MW: Update the production parsoid testing environment to PHP 8.5 and work with Content Transform Team to validate its operation.

Rollout (Oct–Nov 2026):

  • SRE: Ramp up mw-api-ext and mw-web cluster (cookie-based).
  • SRE: Ramp up mw-api-int and mw-jobrunner.
  • SRE: Ramp up mw-api-ext and mw-web cluster (remaining).
  • SRE: Switch other mw-on-k8s server groups (mw-script, mw-cron, mw-experimental, mediawiki-dumps-legacy, etc.) and the deployment server.

Post-rollout (Nov–Dec 2026):

  • SRE: Turn down cookie-based routing and other "next" handling, validating that no workloads still run on the old PHP version (which would hard-fail at this point).
  • SRE: Remove emulation of old-PHP title-case mapping.

People on point

Beta cluster: TBD
CI: @Jdforrester-WMF
MW engineering: TBD
RelEng: @hashar
QTE: TBD
SRE: @Raine

Related Objects

StatusSubtypeAssignedTask
In ProgressNone
ResolvedJdforrester-WMF
Resolvedcscott
ResolvedJdforrester-WMF
Resolvedmatthiasmullie
ResolvedUniversal_Omega
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
Resolvedneriah
Resolvedneriah
ResolvedJdforrester-WMF
Resolvedneriah
ResolvedJdforrester-WMF
Resolvedneriah
Resolvedneriah
Resolvedneriah
ResolvedABreault-WMF
Resolvedneriah
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
ResolvedLucas_Werkmeister_WMDE
Resolvedaude
ResolvedRaine
In ProgressRaine
ResolvedRaine
OpenRaine
OpenNone
OpenNone

Event Timeline

Krinkle renamed this task from Migrate Wikimedia production from PHP 8.4 to PHP 8.4 or PHP 8.5 to Migrate Wikimedia production from PHP 8.3 to PHP 8.4 or PHP 8.5.EditedDec 19 2025, 3:04 PM
Krinkle added a subscriber: Novem_Linguae.

Any thoughts yet on what version of PHP we should target next? 8.4 or 8.5? Picking this would let us create the next ticket in the series, since this one is close to wrapping up.

Not yet. I expect we'll decide this early next year in January as part of the MW 1.46 release (due May 2026). Right now, MediaWiki does not yet officially support either PHP 8.4 or PHP 8.5:

MediaWiki 1.46 will be released in May 2026 (https://www.mediawiki.org/wiki/Version_lifecycle). The next annual PHP upgrade will in Q1 (July-September).

If we add support for PHP 8.4 and PHP 8.5 in MW 1.46, I suggest we upgrade WMF straight there as well.

If we don't think that's feasible, or if we try but run into a problem we can't solve by July/August, then we may want to upgrade to PHP 8.4 first.

I say we should aim for PHP 8.5. The reason for that is that with PHP 8.5, we are catching up with active support from PHP.

I understand that it might be a stretch to prepare it for the upgrade window (FY26-27 Q1), but it would be good to push for it and see which blockers are raised.

Blake triaged this task as Medium priority.Jan 15 2026, 9:43 AM
Krinkle updated the task description. (Show Details)
MLechvien-WMF added subscribers: Raine, MLechvien-WMF.

@Raine to create subtasks for what needs to be done in Q1

Raine added a subscriber: hashar.
brennen changed the task status from Open to In Progress.Wed, Aug 19, 4:29 PM
brennen added a project: User-brennen.
brennen updated the task description. (Show Details)
brennen moved this task from Next to Radar on the User-brennen board.