Problem statement
We don't have a predictable timeline for when or how often we change the required PHP version of MediaWiki. It is also unclear how we will determine what the required PHP version will be.
The conversation of starting to drop a version evolves organically and ad-hoc, at which point a task, usually involving TechCom. If we forget to during a year, or if the task takes too long to reach consensus, we may forget to bump the requirement in time which then results in long-term cost for maintenance, support, testing etc.
Objective
- To document which criteria MediaWiki releases will use to decide the PHP versions it supports.
- To not have an RFC every time we want to raise the PHP version requirement.
- To evaluate these criteria on a regular basis, and when needed, raise the requirement accordingly.
Proposal 1
Based on @Krinkle's comment at T216165#5284682.
I'd like to propose a set of wishes we would use to determine the PHP versions we want and need to support (and not support versions older than those).
- We prefer not to support a PHP version beyond its EOL. (This means each MW x.0 stable release will only support PHP versions that don't go EOL before the MW release goes EOL; unless required for another bullet point.)
- We prefer not to support an Ubuntu or Debian version beyond its EOL. (This means each MW x.0 stable release will only support Debian+Ubuntu versions and their PHP versions if they don't go EOL before the MW release goes EOL; unless required for another bullet point.)
- Each Ubuntu and Debian version must have at least one MW version that we still support when the Linux release cycle starts.
- Administrators using the Ubuntu and Debian LTSes must have a clear upgrade path from one combination of Linux/PHP/MW to the next without any gaps where they aren't supported, and to be able to remain on such a combination for 2 years.
Proposal 1 (Example for current state)
- PHP 7.1 support: Dec 2016 - Dec 2019
- PHP 7.2 support: Nov 2017 - Nov 2020
- PHP 7.3 support: Dec 2018 - Dec 2021
- Ubuntu 18.04 LTS: mid-2018 - mid-2023 (PHP 7.2)
- Ubuntu 20.04 LTS: mid-2020 - mid-2025 (PHP 7.3, maybe later)
- Debian 9 Stretch: mid-2017 - 2022 (PHP 7.0)
- Debian 10 Buster: mid-2019 - 2022+ (PHP 7.3)
- MediaWiki 1.31: June 2018 - June 2021 (PHP 7.0+)
- MediaWiki 1.32: Jan 2019 - Jan 2020 (PHP 7.0+)
- MediaWiki 1.33: June 2019 - June 2020 (PHP …)
- MediaWiki 1.34: November 2019 - November 2020 (PHP …)
- MediaWiki 1.35 LTS: June 2020 - June 2023 (PHP …)
Let's see which versions we would need to require for MW 1.34+ whilst upholding the proposed criteria.
The only Linux combination we need to look at is Debian 9 Stretch with PHP 7.0. On that platform, we support MW 1.31 from June 2018 to June 2021 within the Debian 9 cycle, which gives them 3 years (we require 2).
By June 2021, there will be Debian 10 and several MediaWiki releases that support for PHP 7.2, which gives them a clear upgrade path without any gaps where they aren't supported.
This means for MW 1.34 we would drop PHP 7.0, and 7.1, and require PHP 7.2+.