-
Task
-
Resolution: Done
-
Medium
-
None
Note: This issue is not looking for votes
This issue is not a voted issue, nor looking for votes. We are looking for information and discussing the positives and negatives to any change in our current policy, and any impacts changing or not changing may hve.
What is changing
We currently have the following policy for the supported minimum PHP version:
3. The minimum PHP version supported for a branch will be the lower of:
- The minimum version supported in any way by php the day of the Moodle release (so we provide slow, progressive increments).
- The maximum PHP version supported by the previous LTS branch (so we guarantee jumping between LTS is possible without upgrading PHP at the same time).
However, with the RFC to update the PHP release cycle and extend it from 3 years (2 years of active support + 1 year of security support) to 4 years (2 years of active support + 2 years of security support), it may be a good time to amend our current policy for PHP support.
With our current policy, this means we'll have to support older PHP versions for up to one more year. This also means that we won't be able to use new language features from more recent versions for up to a year more, and that we will have to maintain Moodle with even older PHP versions for even longer.
To demonstrate more visually:
Moodle release | Minimum PHP version before PHP release update | Minimum PHP version when the PHP release update takes effect |
---|---|---|
5.0 | 8.2 | 8.1 |
5.1 | 8.2 | 8.1 |
5.2 | 8.3 | 8.2 |
5.3 (LTS) | 8.3 | 8.2 |
6.0 | 8.4 | 8.3 |
We may wish to amend our policy slighty. Three options are discussed below.
Option A - Do nothing
No change is made to the PHP support policy - that is our minimum PHP version will be longer than in previous releases and will remain at PHP 8.1 until Moodle 5.2 is released:
Moodle release | Release date | PHP Support proposed | Moodle General support ends | Moodle Security support ends | PHP General support ends | PHP Security support ends |
---|---|---|---|---|---|---|
5.0 | April 2025 | 8.1 => 8.4 | April 2026 | October 2026 |
|
|
5.1 | October 2025 | 8.1 => 8.4 | October 2026 | April 2027 |
|
|
5.2 | April 2026 | 8.2 => 8.5 | April 2027 | October 2027 |
|
|
5.3 (LTS) | October 2026 | 8.2 => 8.5 | October 2027 | October 2029 |
|
|
6.0 | April 2027 | 8.3 => 8.6 | April 2028 | October 2028 |
|
|
Whilst this is the simplest option it actually benefits us the least. We are still stuck in the same difficulty as now where every Moodle release is supporting completely unsupported versions of PHP for a large chunk of its lifetime. In some ways it defeats some of the benefits of the extension of PHP support as our userbase does not benefit from the extended lifetime.
Option B - Require that PHP have some support for > 12 months
This proposal amends point 3 of our PHP version support policy to below:
- The minimum PHP version supported by PHP that is under support for at least 12 more months when the new Moodle version gets released.
This keeps the same time-frames as the previous PHP release cycle but allows our users to keep PHP support for 12 months longer.
This will allow us to keep things as-is and use newer language features while developing the next major version of Moodle.
Moodle release | Release date | PHP Support proposed | Moodle General support ends | Moodle Security support ends | PHP General support ends | PHP Security support ends |
---|---|---|---|---|---|---|
5.0 | April 2025 | 8.2 => 8.4 | April 2026 | October 2026 |
|
|
5.1 | October 2025 | 8.2 => 8.4 | October 2026 | April 2027 |
|
|
5.2 | April 2026 | 8.3 => 8.5 | April 2027 | October 2027 |
|
|
5.3 (LTS) | October 2026 | 8.3 => 8.5 | October 2027 | October 2029 |
|
|
6.0 | April 2027 | 8.4 => 8.6 | April 2028 | October 2028 |
|
|
This approach has the added benefit that:
- all versions of PHP supported by a Moodle release will be under PHP security support for their general support lifetime
- all versions of PHP supported by a non-LTS Moodle release will be under PHP security support for their security support too.
Only the LTS version of Moodle will have a security support lifetime which is shorter than that of one or more of their PHP versions.
Option C - Require the highest version of PHP supported by the previous LTS
This approach takes a much more aggressive stance to PHP support. In-line with the new version and deprecation policies, the minimum version of PHP supported by the first release in a series should be the highest version supported by the previous LTS at time of its release (from 5.0.0 onwards).
The has the benefit that all language features used in a Moodle series share the same baseline.
Note: Moodle 4.5 supports PHP versions 8.1 -> 8.3 inclusive.
The following example assumes that Moodle 5.3 includes support for PHP 8.5.
Moodle release | Release date | PHP Support proposed | Moodle General support ends | Moodle Security support ends | PHP General support ends | PHP Security support ends |
---|---|---|---|---|---|---|
5.0 | April 2025 | 8.3 => 8.4 | April 2026 | October 2026 |
|
|
5.1 | October 2025 | 8.3 => 8.4 | October 2026 | April 2027 |
|
|
5.2 | April 2026 | 8.3 => 8.5 | April 2027 | October 2027 |
|
|
5.3 (LTS) | October 2026 | 8.3 => 8.5 | October 2027 | October 2029 |
|
|
6.0 | April 2025 | 8.5 => 8.6 | April 2028 | October 2028 |
|
|
- blocks
-
MDL-83470 Decide Moodle 5.0 requirements and push them to environment.xml (due date: 15 Nov 2024)
-
- Closed
-