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

Decide Moodle 3.11 requirements and push them to environment.xml (due date: 2020-12-21)

XMLWordPrintable

    • MOODLE_310_STABLE
    • MOODLE_310_STABLE, MOODLE_35_STABLE, MOODLE_38_STABLE, MOODLE_39_STABLE
    • Hide

      0 - Prerequisites

      1. Ensure that there is NOT any $CFG->moodledata/environment directory in your installation. If it exists... it contains old environment info. Remove the directory completely before continue with the tests below.
      2. Need to test this on all the databases that are affected by the changes (see next section (differences) to check which databases have changed.

      A - On Master, 311, 310, 39, 38 and 35 (all supported and security supported branches):

      1. Go to admin -> server -> environment
      2. One "3.11 upwards" Moodle version should be available.
      3. VERIFY that It shows the same requirements than a 3.10 version but with these differences:
        1. PHP 7.3 is required.
        2. Moodle 3.6 is required
        3. SQL*Server 2017 (a.k.a. 14) is required. (you need a SQL*Server installed moodle site to see this).
        4. The sodium extension is required.

      B - Verify, for all the numeric (XYZ) branches above, that the environment.xml file is 100% the same (requires git or diff use). All the commands should return NO differences (nothing should be output):

      1. git diff MOODLE_XYZ_STABLE master admin/environment.xml

      C - Upgrade tests (easier with MDK):

      C-1 Using minimum supported version

      1. Install Moodle 3.6.0
        1. Uninstall your current instance

          mdk uninstall -y
          

        2. Checkout the 3.6.0 tag

          git checkout v3.6.0
          

        3. Install

          mdk install
          

      2. Add some courses and one activity or two

        mdk run makecourse
        

      3. Attempt upgrade to master
        1. Checkout the master branch.

          git checkout master
          

        2. Upgrade either via the browser or via CLI (mdk upgrade)
      4. VERIFY: that upgrade works

      C-2 Using older, non-supported version

      1. Install Moodle 3.5.x
        1. Uninstall your current instance

          mdk uninstall -y
          

        2. Checkout the 3.5.0 tag

          git checkout v3.5.0
          

        3. Install

          mdk install
          

      2. Add some courses and one activity or two

        mdk run makecourse
        

      3. Attempt upgrade to master
        1. Checkout the master branch.

          git checkout master
          

        2. Open the moodle instance on your browser
      4. VERIFY: that upgrade is blocked
      Show
      0 - Prerequisites Ensure that there is NOT any $CFG->moodledata/environment directory in your installation. If it exists... it contains old environment info. Remove the directory completely before continue with the tests below. Need to test this on all the databases that are affected by the changes (see next section (differences) to check which databases have changed. A - On Master, 311, 310, 39, 38 and 35 (all supported and security supported branches): Go to admin -> server -> environment One "3.11 upwards" Moodle version should be available. VERIFY that It shows the same requirements than a 3.10 version but with these differences: PHP 7.3 is required. Moodle 3.6 is required SQL*Server 2017 (a.k.a. 14) is required. (you need a SQL*Server installed moodle site to see this). The sodium extension is required. B - Verify, for all the numeric (XYZ) branches above, that the environment.xml file is 100% the same (requires git or diff use). All the commands should return NO differences (nothing should be output): git diff MOODLE_XYZ_STABLE master admin/environment.xml C - Upgrade tests (easier with MDK): C-1 Using minimum supported version Install Moodle 3.6.0 Uninstall your current instance mdk uninstall -y Checkout the 3.6.0 tag git checkout v3.6.0 Install mdk install Add some courses and one activity or two mdk run makecourse Attempt upgrade to master Checkout the master branch. git checkout master Upgrade either via the browser or via CLI ( mdk upgrade ) VERIFY : that upgrade works C-2 Using older, non-supported version Install Moodle 3.5.x Uninstall your current instance mdk uninstall -y Checkout the 3.5.0 tag git checkout v3.5.0 Install mdk install Add some courses and one activity or two mdk run makecourse Attempt upgrade to master Checkout the master branch. git checkout master Open the moodle instance on your browser VERIFY : that upgrade is blocked

      Policy: PHP & Moodle supported versions

      Since Moodle 3.5 (MDL-59159), these rules apply to decide Minimum PHP and Moodle versions supported:

      1. A LTS will always require the previous LTS (or later) for upgrading.
      2. 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).
      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).

      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 3.10 sister issue (MDL-67415).

      Usual discussions:

      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):

      TODO-1: MDLSITE-6382 - 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.

      TODO-2: 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 or performance-comparison jobs.

      TODO-3: MDL-70637 - Raised lower PHP version do imply that both moodlehq/behat-extension and core composer stuff need to be updated and regenerated with it. Followup issue.

      TODO-4: Once the patch is ready to peer-review, update all the configuration @ CI infrastructure (nightlyjobs) to ensure that every Moodle branch knows its lowest and highest PHP supported versions.

      TODO-5: Once applied upstream, changes are needed @ download.moodle.org to show the new requirements there (serverscripts).

      TODO-6: Once applied upstream, ensure that the corresponding release page has the correct agreed requirements updated.

      TODO-7: Once applied upstream, ensure that both the Mac and Windows packages fulfill the requirements and work ok.

      TODO-8: Once applied upstream, review the travis and/or 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:

      TODO-9: Deferred to MDL-70745: Consider if there is any PHPUnit upgrade to perform whenever there are PHP version changes. PHPUnit 9.5.x was finally done @ MDL-71036.

      TODO-10: MDL-70594: 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 to the new issue.

      TIA and ciao

        1. C1 - Moodle 36.png
          C1 - Moodle 36.png
          95 kB
        2. C1 - Upgrade Cli Moodle 36 to master.png
          C1 - Upgrade Cli Moodle 36 to master.png
          15 kB
        3. C1 - Upgrade Moodle 36 to master.png
          C1 - Upgrade Moodle 36 to master.png
          113 kB
        4. Test A Moodle 310 environment.png
          Test A Moodle 310 environment.png
          292 kB
        5. Test A Moodle 311 environment.png
          Test A Moodle 311 environment.png
          298 kB
        6. Test A Moodle 35 environment.png
          Test A Moodle 35 environment.png
          60 kB
        7. Test A Moodle 38 environment.png
          Test A Moodle 38 environment.png
          64 kB
        8. Test A Moodle 39 environment.png
          Test A Moodle 39 environment.png
          512 kB
        9. Test A Moodle master environment.png
          Test A Moodle master environment.png
          527 kB
        10. Test B - git diff Moodle 310.png
          Test B - git diff Moodle 310.png
          6 kB
        11. Test B - git diff Moodle 311.png
          Test B - git diff Moodle 311.png
          6 kB
        12. Test B - git diff Moodle 35.png
          Test B - git diff Moodle 35.png
          5 kB
        13. Test B - git diff Moodle 38.png
          Test B - git diff Moodle 38.png
          7 kB
        14. Test B - git diff Moodle 39.png
          Test B - git diff Moodle 39.png
          6 kB
        15. Test C-2 Upgrade blocked.png
          Test C-2 Upgrade blocked.png
          262 kB
        16. TestA-MSSQL.jpg
          TestA-MSSQL.jpg
          1.26 MB

            stronk7 Eloy Lafuente (stronk7)
            sarjona Sara Arjona (@sarjona)
            Ilya Tregubov Ilya Tregubov
            Sara Arjona (@sarjona) Sara Arjona (@sarjona)
            Carlos Escobedo Carlos Escobedo
            Votes:
            0 Vote for this issue
            Watchers:
            23 Start watching this issue

              Created:
              Updated:
              Resolved:

                Estimated:
                Original Estimate - 0 minutes
                0m
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 4 hours, 45 minutes
                4h 45m

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