Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-80117

Prepare Moodle for PHP 8.4

XMLWordPrintable

    • Prepare Moodle for PHP 8.4
    • Hide

      Note: X0Y_STABLE TBD yet!

      A) Verify the docs have been updated with the information about PHP 8.4 support., at very least:

      B) Verify that X0Y_STABLE (if already exists) and main can be installed using PHP 8.4.

      C) Verify that a 401_STABLE site can be upgraded to X0Y_STABLE (if already exists and main using PHP 8.4.

      D) Check that all CI jobs are passing ok with PHP 8.4.

      Show
      Note: X0Y_STABLE TBD yet! A) Verify the docs have been updated with the information about PHP 8.4 support., at very least: PHP 8.4 support: https://moodledev.io/general/development/policies/php Existing release notes in all the branches affected, see: (to be created) for X.Y: https://moodledev.io/general/releases/X.Y#server-requirements ( example issue ) B) Verify that X0Y_STABLE (if already exists) and main can be installed using PHP 8.4. C) Verify that a 401_STABLE site can be upgraded to X0Y_STABLE (if already exists and main using PHP 8.4. D) Check that all CI jobs are passing ok with PHP 8.4.

      << add CI badges here >>

      The, hopefully small, epic to turn Moodle ready for PHP 8.4.

      Target: TBD (PHP 8.4 release will happen November 21th, 2024).

      When: Being cristal clear (aka transparent), the ideal target release for this is Moodle 5.0.0 (aka, supported since the very beginning of the branch), but be warned that full support may arrive later in any Moodle X.Y.x minor release in the branch, depending of a number of factors (extensions availability and bugs, 3rd part libraries, last minute surprises...).

      Some initial links:

      Some basic requirements for this:

      • Ensure that all the linked issue from the previous PHP epic have been also added to this issue.
      • Get unit and acceptance tests passing against all databases (may imply the need of upgrading phpunit/behat...).
        • phpunit upgrade: ----
        • behat upgrade: ----
      • Check that all the change details have been reviewed and fixed (attached file). Note that, until release, this file is considered WIP and subject to changes! Reference: https://github.com/php/php-src/blob/PHP-8.4/UPGRADING (MDL-xxxxx)
      • Ensure that older versions of Moodle don't work with PHP 8.4 (MDL-xxxxx)
      • (link) - get moodle-php-apache docker images working with the new php version.
      • Verify that php-parallel-lint/php-parallel-lint and others pass for all php versions (MDL-xxxxx)
      • There are a few - search in the tracker for any issue created about "php 8.4" or "php84". Add them to this epic after analysing them.
      • FINAL: Verify that the apache logs are clean of PHP 8.4 notices/warnings/errors (MDL-xxxxx)
      • FINAL: Verify that all the issues found by the dev version of PHPCompatibility are fixed or false positives (MDL-xxxxx).
      • FINAL: When CIs are passing consistently, put all the MySQL (W) jobs in the target branches of the Epic to, manually, use the new PHP version (note that later, in the TODOs, we'll undo this manual configuration).
      • FINAL: Get gha working with the new php version (MDL-xxxxx)
      • FINAL: phpcs.xml.dist : Ensure that the testVersion config setting matches the range of PHP supported versions in all the affected branches. Note that for master branch we leave the range open always (MDL-xxxxx).
      • FINAL: Verify that both install and upgrade from lowest possible site works ok, without any error/warning/notice. Both cli and web (MDL-xxxxx).
      • FINAL: (part of the epic testing instructions). Update docs (and others, see testing instructions) once this is ready. If needed to, ask for the creation of the next major release page in devdocs (example issue / example PR).
      • ...

      And some tasks to do once this is upstream:

      TODO 1: Review the travis (only moodle-plugin-ci) and/or github actions configuration for various repositories. The new PHP version needs to be covered. Known to need review / fix repos include:

            Unassigned Unassigned
            dobedobedoh Andrew Lyons
            Votes:
            4 Vote for this issue
            Watchers:
            13 Start watching this issue

              Created:
              Updated:

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 1 hour, 15 minutes
                1h 15m

                  Error rendering 'clockify-timesheets-time-tracking-reports:timer-sidebar'. Please contact your Jira administrators.