-
Task
-
Resolution: Fixed
-
Blocker
-
5.0
Since Moodle 3.5 (MDL-59159), these rules apply to decide the Minimum PHP and Moodle versions supported:
- An LTS will always require the previous LTS (or later) for upgrading.
- The maximum PHP version supported for a branch will be the maximum one achieved throughout the life of the branch. Usually with .0 releases, but it 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 that is under support for at least 12 more months when the new Moodle version gets released (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 version requirements and put all of them into the environmental tests (adding them to all supported branches).
All the still open linked issues have also been cloned here from the 4.5 sister issue (MDL-79809).
Usual discussions:
- PHP minimum version/supported versions.
- Database versions.
- Linked issues.
- ...
Feel free to propose areas to be discussed here. A numbered list with all the proposals will be created to vote on and decide the final outcomes of this issue.
Related Tasks (create issues/PRs whenever they apply):
TODO-0: Recommendation. It's useful to look at the changes performed for previous versions, especially LTS ones, to see which sort of changes must be applied to this issue. Especially 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).
- Done: Minimum Moodle version is set to 4.2.3
TODO-1: Once the agreement is settled, if there are raised requirements (PHP/Database/Extensions...), create a moodle-ubuntu issue to ensure that the external testers' environment is ready for them.
- Done: Issue #2 created
TODO-2: Once the agreement is settled, create an MDL issue to guarantee that all the Community sites running the dev version fulfil the new requirements.
- Done: Created MDLSITE-7866
TODO-3: Once the agreement is settled, warn (apart from the previous points) about the agreed changes, listing them so everybody is ready for the upcoming changes. This includes:
- Integration exposed post.
- General dev chat.
- Internal dev chats.
TODO-4: Composer: To be done as part of this issue (main only):
- Changes in the minimum PHP version mean that core composer stuff will 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).
- Check for the version changes of the packages in the composer.lock file (e.g. behat/gherkin, etc.). Check the packages' changelog and see if there are any breaking changes we need to be aware of and address.
TODO-5: Environment and upgrade: To be done as part of this issue:
- Add the new version section to the admin/environment.xml file for all the supported (security included) branches. Ensure all the new requirements are applied.
- If Moodle requirements have changed, remove any unused upgrade steps (and upgradelib functions) (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).
TODO-6: GHA integration: This is to be done as part of this issue (main only). Ensure requirements are fulfilled and jobs are using the new versions.
- push.yml
- windows.yml
- web-installer-test.yml
- Also create a PR that updates https://github.com/moodlehq/moodle-webinstaller-test
TODO-7: phpcs.xml.dist: This is to be done as part of this issue (main only). Ensure that the testVersion config setting matches the range of supported PHP versions. Note that for the main branch, we leave the range open always.
TODO-8: Once the agreement is settled, ensure that:
- The affected php docker images fulfil all the requirements (extensions...).
- Note: No changes in extensions in this issue.
- 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.
- Note: Perf server unavailable at the moment.
TODO-9: Once the patch is ready for peer-review, update all the configurations @ 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 the correct database versions.
- Done: PR #135
- 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.
- In the "Testing" tab, configure all "developer requested" jobs (4) 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).
- Note: No change applied as PHP 8.2 is already at the top of the list.
( TODO-10: Once applied upstream, changes are needed @ download.moodle.org to show the new requirements (serverscripts).
TODO-11: Once applied upstream, ensure that both the Mac and Windows packages fulfil the requirements and work ok.
- Note: Our Windows XAMPP package comes with PHP8.2 but its MariaDB version is stuck at < 10.6, unfortunately.
- Note: Pinged Ralf Krause to give him a heads-up about the requirements. Hopefully, he'll update the Mac OS package for 5.0dev soon.
TODO-12: Once applied upstream, warn (apart from the previous points) about the imminent changes, listing them so everybody is ready 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:
- PR#309 + PR#310 - 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.
TODO-15: Docs:
- If the PHP requirements change, document it on the PHP docs page (for example, PR).
- Ensure that all the requirements are shown in the corresponding docs (release and/or upgrade). Ask @ devdocs if the new docs version needs to be created (example issue).
- Ensure 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 the 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 non-specific relationship to
-
MDL-80117 Prepare Moodle for PHP 8.4
- Open
-
MDL-80969 Migrate to PHPUnit 10+
- Open
-
MDLSITE-7879 Moodle 5.0 requirements need updating
- Open
-
MDL-69960 Remove all the compatibility bits related with the end of IE11 support
- Open
-
MDL-83848 Prepare for behat/gherkin >= 4.10.0
- Open
-
MDL-73700 Remove all the old php version checks from core
- Waiting for integration review
-
MDL-62352 Set default $CFG->forceclean to 1
- Open
-
MDL-83172 Database: Remove Oracle from LMS
- Waiting for integration review
- is a clone of
-
MDL-79809 Decide Moodle 4.5 requirements and push them to environment.xml (due date: 2024-05-27)
- Closed
- is blocked by
-
MDLSITE-7677 Amend the minimum PHP version support policy
- Resolved
- Testing discovered
-
MDL-83811 Windows GHA runs are failing
- Closed
- will be (partly) resolved by
-
MDLSITE-7866 Ensure that all the community sites are ready for the new Moodle 5.0 requirements
- Development in progress
- links to