-
Task
-
Resolution: Fixed
-
Minor
-
4.5
-
6
-
Team Hedgehog 2024 Sprint 2.2, Team Hedgehog 2024 Sprint 2.3
Since Moodle 3.5 (MDL-59159), these rules apply to decide Minimum PHP and Moodle versions supported:
- A LTS will always require the previous LTS (or later) for upgrading.
- The maximum PHP version supported for a branch will be the max one achieved along the life of the branch. Usually with .0 releases but may happen later (we added support for php70 with 3.0.1, or support for php73 with 3.6.4, for example).
- 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).
We need to decide ASAP about all the PHP/DB/Moodle versions requirements and put all them into the environmental tests (adding them to all supported branches).
All the still open linked issues have been also cloned here from the 4.4 sister issue (MDL-78496).
Usual discussions:
- PHP min. version/supported versions.
- database versions.
- Linked issues.
- ...
Feel free to propose areas to be discussed here. A numbered list with all them will be created to vote and decide the final outcomes of this issue.
Related Tasks (create issues/PRs whenever they apply):
(We will continue with PHP 8.1 - No changes) TODO-0: Recommendation. It's useful to look to the changes performed for previous versions, specially LTS ones, to see which sort of changes must be applied with this issue. Specially remember that any change to the minimum supported PHP always implies a change to the minimum upgradeable Moodle version (to the first one supporting the new PHP requirement).
(There are no changes for PHP, Database, Extensions...)TODO-1: Once the agreement is settled, if there are raised requirements (PHP/Database/Extensions...) create a MDLSITE issue to ensure that external testers environment is ready for them.
(There are no changes, so the sites can continue to run with the previous requirements)TODO-2: Once the agreement is settled, create a MDL issue about to guarantee that all the Community sites sites running the dev version fulfil the new requirements.
(There are no changes for PHP, Database, Extensions...) TODO-3: Once the agreement is settled, warn (apart from the previous points) about the agreed changes, listing them, so everybody is ready in advance for the upcoming changes. This includes:
- Integration exposed post.
- General dev chat.
- Internal dev chats.
(There are no changes for PHP and Extensions...) TODO-4: Composer: To be done as part of this issue (main only):
- Raised lower PHP version does imply that core composer stuff need to be updated and regenerated with it (link to detailed instructions).
- Also, check that all the php and extensions requirements and recommendations in the composer.json file match the ones specified in the admin/environment.xml file (defined by this issue).
TODO-5: Environment and upgrade: To be done as part of this issue:
- Add the new version section to the admin/environment.xml files, for all the supported (security included) branches. Ensure all the new requirements are applied.
- If Moodle requirements have changed, remove any upgrade step (and upgradelib functions) not used anymore (main only).
- Also, don't forget to edit the moodle_minimum_php_version_is_met() function with any new PHP requirement being changed here (see
MDL-80819as the previous update to that).
(There are no changes for PHP and Extensions...) TODO-6: GHA integration: To be done as part of this issue (main only). Ensure requirements are fulfilled and there are jobs using the new versions.
(There are no changes for PHP) TODO-7: phpcs.xml.dist : To be done as part of this issue (main only). Ensure that the testVersion config setting matches the range of PHP supported versions. Note that for main branch we leave the range open always.
(There are no changes for PHP)TODO-8: Once the agreement is settled, ensure that:
- The affected php docker images fulfill all the requirements (extensions...).
- Same for (still) non-dockered stuff, like:
- Legacy CI server. Ensure that bot main jobs and CiBoT runs are executed with minimum supported php version.
- Performance-comparison jobs.
(There are no changes for PHP, Database and Extensions...) TODO-9: Once the patch is ready to peer-review, update all the configuration @ CI infrastructure:
- Ensure (nightlyjobs) that every Moodle branch knows its lowest and highest PHP supported versions.
- Verify that the runner (moodle-ci-runner) is using correct database versions.
- Configure the following jobs if there is a PHP version bump:
- All "bulk-prelaunch" jobs (5), in the "Tracker" tab, configure main branch run using the new PHP version.
- All "developer requested" jobs (4), in the "Testing" tab, configure them to run by default using the new PHP version (moving it to the top of the list in the available PHP versions list, unless they already have a newer version).
TODO-10: Once applied upstream, changes are needed @ download.moodle.org to show the new requirements there (serverscripts).
TODO-11: Once applied upstream, ensure that both the Mac and Windows packages fulfill the requirements and work ok.
TODO-12: Once applied upstream, warn (apart from the previous points) about the imminent changes, listing them, so everybody is ready in advance for the upcoming changes. This includes:
- Integration exposed post.
- General dev chat.
- Internal dev chats.
TODO-13 Once applied upstream, review the travis (only moodle-plugin-ci) and github actions configuration for various repositories. The new core requirements may be hitting them. Also add new branches if missing. Known to need review / fix repos include:
- moodle_docker (both own GHA and default php/db versions if raised)
- moodle-plugin-ci
- moodle-cs
- local_codechecker
- local_moodlecheck
- webservice_xmlrpc
- local_ci
- ...
TODO-14: Consider if there is any PHPUnit upgrade to perform whenever there are PHP version changes.
- PHPUnit 10 has been released, but we aren't in a hurry to upgrade. More yet, it only supports PHP 8.1 and up, so we cannot update to it until that PHP version is made a requirement for Moodle.
TODO-15: Docs:
- If there is any raise to PHP requirements, document it the PHP docs page (example PR).
- Ensure that all the requirements are shown in the corresponding docs (release and/or upgrade). Ask @ devdocs if the new version docs need to be created (example issue).
- Ensure that there are landing pages @ docs for all the environmental changes performed.
TODO-16: Last one, to be able to create it with all the information in this issue:
- Ensure that the (clone of this) issue for next (to this) requirements issue is created and contains all the information.
- All the non-resolved details and issues must be dragged (linked) to the new issue.
TIA and ciao
- has a clone
-
MDL-83470 Decide Moodle 5.0 requirements and push them to environment.xml (due date: 15 Nov 2024)
- Closed
- has a non-specific relationship to
-
MDL-80117 Prepare Moodle for PHP 8.4
- Open
-
MDL-80969 Migrate to PHPUnit 10+
- Open
-
MDL-69684 It's possible to hold a redis session lock forever
- Closed
-
MDL-76426 Prepare Moodle for PHP 8.3
- Closed
-
MDL-62640 Remove option to disable slash arguments (slashargs)
- Closed
-
MDL-69960 Remove all the compatibility bits related with the end of IE11 support
- Open
-
MDL-64482 Review not needed anymore PHP 5.x & 7.0 checks uses in core
- Closed
-
MDL-80819 Update moodle_minimum_php_version_is_met() to current values
- Closed
-
MDL-62352 Set default $CFG->forceclean to 1
- Open
- is a clone of
-
MDL-78496 Decide Moodle 4.4 requirements and push them to environment.xml (due date for voting: 2023-11-13)
- Closed