Moodle 4.2
Unsupported Moodle Version
This version of Moodle is no longer supported and will not receive fixes for security risks.
You are encouraged to upgrade to a supported version of Moodle.
You are encouraged to upgrade to a supported version of Moodle.
Release date: 24 April 2023
Here is the full list of fixed issues in 4.2.0.
If you are upgrading from a previous version, please see Upgrading in the user docs.
Server requirements
These are just the minimum supported versions. We recommend keeping all of your software and operating systems up-to-date.
- Moodle upgrade: Moodle 3.11.8 or later.
- PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.2.x is supported too (since Moodle 4.2.3). See PHP for details.
- PHP extension sodium is required. See Environment - PHP extension sodium.
- PHP extension exif is recommended.
- PHP setting max_input_vars must be >= 5000. For further details, see Environment - max input vars.
- PHP variants: Only 64-bit versions of PHP are supported. Note: Changed since 4.1.
Database requirements
Moodle supports the following database servers. Again, version numbers are just the minimum supported version. We recommend running the latest stable version of any software.
| Database | Minimum version | Recommended |
|---|---|---|
| PostgreSQL | 13 (increased since Moodle 4.1) | Latest |
| MySQL | 8.0 (increased since Moodle 4.1) | Latest |
| MariaDB | 10.6.7 (increased since Moodle 4.1) | Latest |
| Microsoft SQL Server | 2017 | Latest |
| Oracle Database | 19 | Latest |
Client requirements
Browser support
Moodle is compatible with any standards compliant web browser. We regularly test Moodle with the following browsers:
Desktop:
- Chrome
- Firefox
- Safari
- Edge
info
Note: Moodle 4.2 does NOT support Internet Explorer.
Mobile:
- MobileSafari
- Google Chrome
For the best experience and optimum security, we recommend that you keep your browser up to date.
Major UX improvements
Gradebook
- MDL-77030 - Display feedback in the Grader report
- MDL-76149 - Implement "records per page" selector in the Grader report
- MDL-75274 - Ability to collapse/expand items (columns) in the Grader report
- MDL-76147 - Implement dropdown menu for the header actions in the Grader report table
- MDL-77029 - Revamp the column sorting in the Grader report
- MDL-77032 - Collapsible grade categories in the Gradebook setup
- MDL-76143 - Implement search functionality in the Grader report
- MDL-77033 - Indicators when the state of a grade item or category is changed in the Gradebook setup
- MDL-76150 - General styling improvements to the Grader report
- MDL-76146 - Move grade actions (hide, show, lock, grade analysis) to dropdown menu in the Grader report table
- MDL-77031 - General styling improvements to the Gradebook setup
- MDL-76139 - Implement a new group selector in the Grader report
Database activity
- MDL-76360 - Improve the look and feel of the Database fields page
- MDL-76357 - Make sticky footer more prominent and noticeable
- MDL-75498 - Add ##otherfields##, [[FIELD#name]] and [[FIELD#description]] tags to the database templates
- MDL-75337 - Change Delete buttons' style on Database to 'danger' button
Course hierarchy
- MDL-76990 - Recover move right/left functionality removed/hidden for 4.0
- MDL-76997 - Add an option for admins to reset indentation for courses on the site
- MDL-76992 - Apply indentation on the course index
- MDL-76991 - New course format setting to enable/disable course indentation in Weeks and Topics
Other Major features
TinyMCE 6 improvements and setting as the default editor
- MDL-76866 - Make TinyMCE the default editor
- MDL-77308 - Remove the legacy TinyMCE editor from core (editor_tinymce)
- MDL-76867 - Allow Moodle TinyMCE plugins to be disabled
- MDL-76520 - Add a TinyMCE link plugin
MoodleNet integration - phase 1
- MDL-75316 - Implement LMS foundation for sharing content to MoodleNet (share activities)
- MDL-75650 - Add OAuth 2.0 Authorization Server Metadata support to issuers and create MoodleNet issuer
Bulk course activity editing
- MDL-76783 - The basic bulk section and activity selection UI
- MDL-76850 - Add bulk duplicate activity action
- MDL-76893 - Add bulk activity move action
- MDL-76848 - Add bulk availability edit action
- MDL-76894 - Add bulk section move
- MDL-76895 - Add fast selections to the bulk editing
- MDL-76851 - Add bulk delete action
- MDL-74989 - Migrate delete activity course tools to the new reactive actions
- MDL-74987 - Migrate duplicate activity course tools to the new reactive actions
BigBlueButton
- MDL-74664 - Option to restrict recording formats viewable by everyone
- MDL-75753 - Add support for SHA256 (and longer) to BigBlueButton
- MDL-76551 - Option to show profile pictures of participants in BBB sessions
- MDL-75334 - Create a set of test courses which include BigBlueButton activities
Quiz and questions
- MDL-35745 - There must be a way to get a "Never submitted" quiz attempt back to the "In progress" state
- MDL-74609 - Quiz: allow the displayed question numbers to be customised
- MDL-71261 - Quiz user override should only get enrolled users
Report builder
- MDL-77056 - Add relative date filter option to select dates before given period
- MDL-74145 - Create API for report bulk actions
- MDL-76154 - Add files to custom blog reporting
- MDL-77062 - Add more filters/conditions fields in course_completion entity
- MDL-77201 - Allow report column callbacks to define how aggregated data is displayed
- MDL-76479 - Custom report time filter should support last/current/next hour
- MDL-76933 - Create "User badges" custom report source
Content bank and H5P
- MDL-67789 - Add support to "Save content state" in mod_h5pactivity
- MDL-77049 - Customise H5P styles via Raw SCSS theme setting
Assignment
- MDL-45301 - Option to set PDF font in course settings for generated PDF files
- MDL-55929 - Messaging from Assignment
Usability improvements
- MDL-75596 - Adding new activities should be possible anywhere in a section
- MDL-62839 - Deselect "Accept grades from this tool" by default for new LTI instances
- MDL-75908 - Links added in the navbar should receive focus/active behaviour (custommenuitems) on the Boost theme
- MDL-31235 - Support text format for marking guide criteria and levels
- MDL-40600 - Add ability to duplicate a course section
- MDL-74465 - Display block configuration form in a popup
- MDL-68347 - Add a way to find which users were created during course restore process
- MDL-76377 - Improve links to moodle.org / moodle.academy (course creators/teachers)
- MDL-76418 - Have a way to get the permalink to a course section
Other Highlights
Functional changes
- MDL-74272 - Reassess the inclusion of the plugin name on the course page
- MDL-77291 - Show text and media elements (aka labels) in the course index also in non edit mode
- MDL-75594 - Change course module creation to support parameter for inserting modules at any place in the section
- MDL-77387 - Copy course UI - enrol a user such as editingteacher in the copied course
- MDL-76312 - Subscribers list should ordered by name
- MDL-76386 - Provide option to have group count before names when adding users to group
- MDL-77130 - Add cohort custom fields functionality
- MDL-70226 - Default tab in the activity chooser should be recommended activities
For administrators
- MDL-68093 - Membership in some groups should be hidden from some roles for FERPA/ADA compliance
- MDL-77406 - Log every time a user adds a file to a draft area
- MDL-73503 - Add filtering by section to report_progress
- MDL-65471 - Optionally allow CLI PHP upgrade.php --no-outage
- MDL-77370 - New setting for the "Services and support" URL
- MDL-74874 - Mark readonly sessions as no longer experimental
- MDL-61789 - Allow to choose custom profile fields from OAuth 2 field mappings
- MDL-70975 - Add new options to admin/cli/adhoc_task.php and from admin web UI
- MDL-77385 - CLI Script to enable or disable the emailstop flag
- MDL-64153 - Allow administrator to override sqlsrv connection options
- MDL-72775 - Add a new status check for the cron task API to watch very long running tasks
Performance
- MDL-70687 - Redis session lock expiration should default shorter than session timeout
- MDL-77232 - Optimize LTI 1.3 gradesync task
- MDL-72559 - The core plugin_functions cache should be allowed to be stored locally
- MDL-77186 - Add a keep-alive setting to admin/cli/cron.php
- MDL-76129 - Improve upgrade/install performance relating to capabilities and settings
- MDL-75667 - Improve speed of admin/blocks.php by combining db counts
Security improvements
- MDL-76722 - Add encrypted mobile notifications support (also see MDL-77893)
- MDL-76755 - Improve default coverage of "cURL blocked hosts list" by including 127.0.0.0/8
For developers
- MDL-76135 - Import the Guzzle library in LMS
- MDL-76989 - Upgrade Font Awesome to 6.3.0
- MDL-76219 - Switch from Box/Spout to OpenSpout/OpenSpout
- MDL-73144 - Allow use of dartsass for scss compilation
- MDL-76134 - Build a reusable filter output component
- MDL-71096 - All APIs should be listed in code
- MDL-77714 - Remove Travis support from core
- MDL-72609 - Convert pendingPromise to native Promise
- MDL-76583 - Move lib/externallib.php to namespaced classes and fix coding style, etc
Migration away from YUI3
- MDL-77172 - Migrate moodle-tool_capability-search to ESM
- MDL-77171 - Migrate moodle-core-tooltip and moodle-core-popuphelp to ESM
- MDL-77009 - Replace moodle-tool_monitor-dropdown with ESM or generic
- MDL-58615 - Remove YUI CDN support
- MDL-77007 - Remove auth-passwordunmask YUI module
- MDL-69164 - Convert question/qengine.js to AMD modules
Web service additions and updates
- MDL-77643 - Return via tool_mobile_get_config site location settings to properly display the user time zone in the app
Core plugins removed
- MDL-72350 - Remove Assignment 2.2 (mod_assignment) from core
- MDL-77163 - Remove cachestore_mongodb from core
- MDL-77161 - Remove cachestore_memcached from core
Deprecations
- MDL-52805 - Final deprecation of legacy log store
- MDL-76898 - Quiz: final deprecations for things deprecated before 3.10
Component API updates
- admin/tool/generator/upgrade.txt
- admin/tool/lp/upgrade.txt
- admin/tool/mobile/upgrade.txt
- admin/upgrade.txt
- analytics/upgrade.txt
- auth/upgrade.txt
- availability/upgrade.txt
- blocks/upgrade.txt
- cache/upgrade.txt
- cohort/upgrade.txt
- comment/upgrade.txt
- course/format/upgrade.txt
- course/upgrade.txt
- customfield/upgrade.txt
- enrol/upgrade.txt
- grade/report/upgrade.txt
- group/upgrade.txt
- lib/editor/tinymce/upgrade.txt
- lib/editor/tiny/plugins/accessibilitychecker/upgrade.txt
- lib/editor/tiny/upgrade.txt
- lib/form/upgrade.txt
- lib/upgrade.txt
- lib/xapi/upgrade.txt
- message/upgrade.txt
- mod/assignment/type/upgrade.txt
- mod/assign/upgrade.txt
- mod/bigbluebuttonbn/upgrade.txt
- mod/data/upgrade.txt
- mod/feedback/upgrade.txt
- mod/h5pactivity/upgrade.txt
- mod/lti/upgrade.txt
- mod/quiz/accessrule/upgrade.txt
- mod/quiz/report/upgrade.txt
- mod/quiz/upgrade.txt
- mod/upgrade.txt
- mod/workshop/upgrade.txt
- plagiarism/upgrade.txt
- question/engine/upgrade.txt
- question/upgrade.txt
- reportbuilder/upgrade.txt
- report/upgrade.txt
- search/upgrade.txt
- theme/upgrade.txt
- user/upgrade.txt
- webservice/upgrade.txt