Moodle 4.4
You are encouraged to upgrade to a supported version of Moodle.
Release date: 22 April 2024
Here is the full list of fixed issues in 4.4.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 4.1.2 or later.
- PHP version: minimum PHP 8.1.0 Note: minimum PHP version has increased since Moodle 4.3. PHP 8.3.x is supported too. See PHP for details.
- PHP extension sodium is required. See Environment - PHP extension sodium.
- 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 | 19c (increased since Moodle 4.3) | Latest |
Since Moodle 4.3, the maximum length for the database prefix ($CFG->prefix) is 10 characters. Installation or upgrade won't be possible with longer prefixes.
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
Mobile:
- MobileSafari
- Google Chrome
For the best experience and optimum security, we recommend that you keep your browser up to date.
Major UX improvements
Course hierarchy improvements
- MDL-80923 - Remove the Custom checkbox from the Settings page for all course formats
- MDL-80621 - Update activity separators with "+" buttons styling
- MDL-80622 - Improve the shadow element when dragging activity cards
- MDL-80620 - Improve the collapse/expand chevrons styling
- MDL-80219 - Improve activity and section cards
- MDL-80460 - Create section with "New section" name and stop using the auto-renaming for the topics course format
- MDL-80418 - Homogenise Adding / Updating activity titles, regardless the section where it belongs
- MDL-80541 - Homogenise the section form title
- MDL-80248 - In course/section.php, display the General section instead of displaying all the course sections
- MDL-80249 - In course/section.php, hide secondary navigation and add breadcrumb
- MDL-80557 - Change the default order for the course formats
- MDL-79986 - Create a new course section page
- MDL-80461 - Eliminate erroneous references to topic and weeks from the UI
- MDL-80186 - Add delegate section fields to the course_section table
- MDL-80203 - Delegate editing options for delegated sections
- MDL-80220 - Update the section visibility badge to use status dropdown like the activities
- MDL-79987 - Improving the course layout one section per page
Other major features
Messaging phase 2 - Expand Matrix integration & Communication API
- MDL-78551 - Implement initial group support in Communication providers
- MDL-77444 - Add initial Mobile App support to the communication API
Notification improvements phase 1
- MDL-4188 - Send course welcome message for manual and self enrolments
- MDL-46886 - Send users a notification message before they are unenrolled due to inactivity
- MDL-79131 - Send administrators a notification when tasks reach their max fail delay
- MDL-79714 - Web and email notification default on for new installs
BigBlueButton
- MDL-79239 - Require Registration for BigBlueButton Plugin Server Credentials
- MDL-77660 - Completion extension using Subplugins
- MDL-79750 - Make SHA256 the default algorithm for BigBlueButton requests
- MDL-79537 - Remove 'bbb-meeting-size-hint' as a meta parameter on create
Quiz and questions
- MDL-79863 - Integration of the ordering question type into Moodle core including improved accessibility and configuration process
- MDL-74610 - Let a quiz have multiple total grades (e.g. for each section)
- MDL-67259 - Quiz autosave should reassure users that it is working
- MDL-80900 - Review quiz attempt summary improvements
- MDL-80099 - Migrate quiz statistics callbacks to Hooks API
Report builder
- MDL-79510 - Allow Config changes report to filter on Plugin
- MDL-80342 - Allow to filter users in the custom reports by their cohorts
- MDL-77805 - Improve report builder filters dropdown UI
- MDL-77804 - Improve report builder inline filter forms UI
- MDL-79270 - Improve "Browse users" page using Report builder functionality
- MDL-80245 - Support custom reports tagging
- MDL-80722 - Course report source - add time created and time modified
- MDL-80619 - Add capability to view any report in report builder
- MDL-81126 - Add relative date filter option to select dates after given period
- MDL-78427 - New theme usage report
- MDL-80325 - Make "delete" actions in report builder reports red
- MDL-81073 - Add version and expiry date to manage badges page filters
- MDL-79200 - Improve how custom reports filter file types by type
- MDL-79216 - Improve how custom reports filter files by size
- MDL-80843 - Add authentication method column to user entity
- MDL-79646 - Add animation to indicate completion of drag/drop when editing report
- MDL-79629 - Enhance report editor filter/condition selection to use autocomplete
- MDL-80063 - Custom report on assigned roles across the site
- MDL-79788 - Convert tag collection report to a report builder system report
- MDL-80560 - New report for "Browse user list" follow up - picture, download, identity fields
- MDL-79346 - Add filter/condition on cohort visibility field
- MDL-80329 - Report builder filters should trim the spaces
- MDL-79552 - Add cohort data (columns/filters) to user-focused reports
- MDL-79532 - Add blog "title with link" column for custom reporting
- MDL-80052 - Convert remaining reports inside Badges to report builder
TinyMCE 6
- MDL-77325 - Make TinyMCE the default editor for existing installs
- MDL-79709 - Create Capability for TinyMCE Premium plugins
- MDL-78096 - TinyMCE - Improve image adding
Content bank and H5P
- MDL-79543 - H5P activity number of attempts no longer displayed
- MDL-80028 - Grant non-editing teacher mod/h5pactivity:reviewattempts
- MDL-80754 - H5P activity reports page: Add the total attempts to the table column
- MDL-80055 - Restyle and re-position the 'Edit H5P content' link within the H5P activity page.
Accessibility improvements
- MDL-78994 - Guest policy link should be early in the page's tab order for keyboard navigation users
- MDL-80431 - Do not use <fieldset> tag for form elements group that does not have a label
- MDL-81066 - Validate form fields on submit or change, not just tab
Usability improvements
- MDL-77980 - Grade item column headings in the grader report should link to activities
- MDL-69541 - Add option to "Post to all groups" in the quick discussion creation
- MDL-78850 - Clicking on Calendar date through Course page should select course in dropdown and show course events on Calendar event page
- MDL-79769 - Login Page - Add ability to show password in plain text
- MDL-78335 - Normalise the date completion criteria date string
- MDL-79912 - Improve the backup/restore workflow: Create index page
- MDL-79915 - Improve the backup/restore workflow: Improve UI for Restore
- MDL-81337 - Course page plus icon should have a tooltip to inform you what happens if you click it
- MDL-80235 - SCORM should not allow 0 as minimum score required
- MDL-79920 - Authentication: MFA - Improve user factor setup
- MDL-78425 - Theme Selector: Improve UI
- MDL-81172 - Async Backup on by default from Install
Other Highlights
Functional changes
- MDL-78285 - Reintroduce activity mime file type icons (meaning each file has its extension icon)
- MDL-78284 - Implement the new activity icons design
- MDL-43820 - tool_uploadcourse supports multiple enrolment instances of the same type
- MDL-80871 - Add option to user tours to make them always show
- MDL-79044 - Improve gradebook export formats order
- MDL-73626 - Can no longer release individual grades when assignment is anonymous
- MDL-71744 - Configurable defaults for Announcement forums
- MDL-73852 - Allow using meta enrolment when uploading course via CSV
- MDL-80856 - Improve the sticky footer maximum width to dynamically adapt to the page content width
- MDL-79959 - Add custom field picker for SSO identification in repository_equella
- MDL-80828 - Activity action menu should not have a submenu panel when only two choices are available
- MDL-70384 - Allow dialogues for adding database fields to use Bootstrap so they look consistent with other pages
- MDL-80949 - Database field - Remove autolink setting for short text field type
For administrators
- MDL-43056 - Add the capability tool/uploadcourse:use for tool_uploadcourse
- MDL-80914 - Reintroduce the LTI external tool option to set custom params at the instance level
- MDL-79128 - Tasks: Implement no-retry flag for ad-hoc tasks and clean up records of historical failed tasks
- MDL-79130 - Tasks: Ad-hoc tasks shouldn't retry after max fail delay
- MDL-80866 - Disabled by default Chat and Survey activity for new installations
- MDL-67898 - Have an admin_setting which exposes a check
- MDL-80548 - Add bulk actions to the"Browse list of users" page
- MDL-80554 - Show debugging calls in tasks logs regardless of debugdisplay
- MDL-79563 - Add cmid option for backup and course option for restore for CLI script
- MDL-79564 - Implement import CLI script
- MDL-80267 - Asynchronous restore keeps deleting course/student content - Using no-retry flag
- MDL-80328 - Use a confirmation modal when deleting a user
- MDL-78426 - Theme Selector: Settings UI
Performance
- MDL-63128 - Redis Cache & Session: implement cluster support
- MDL-74676 - Speed up limittoenrolled option in course search
- MDL-65403 - messaging_cleanup_task should use an indexed DB field for improved performance
- MDL-66546 - Add support to unix:// connections to redis caching/sessions.
- MDL-79337 - Unnecessary call to set_user_preference when loading a page with an already open drawer in Boost theme
- MDL-73703 - LDAP user sync: update users in chunks
Security improvements
- MDL-78511 - Add SMS as a factor in multi-factor authentication
For developers
- MDL-78334 - Provide a mechanism to deprecate and detect deprecated CSS
- MDL-73483 - Add hooks (instead of callbacks) to extend course edit form
- MDL-80838 - Add support for PSR-20 (Clock) to allow better time management
- MDL-80005 - Add PARAM_ definition class
- MDL-79151 - Backup of custom fields for courses should include images
- MDL-80082 - In tables and reports, when there is no entry, give out the "Nothing to display" string as notification instead of header
- MDL-81011 - Allow hooks to use attributes instead of described_hook interface
- MDL-79974 - Improve developer experience for exceptions when developing and make it easier to open in editor
- MDL-80850 - Create JavaScript core/dropzone module to handle dropzone
- MDL-79520 - Replace custom Clever SSO implementation with OIDC implementation
- MDL-80207 - Replace use of Horde with Roundcube
- MDL-80736 - Move AWS helper code to core namespace
- MDL-80566 - Convert callback 'bulk_user_actions' to hook
- MDL-80096 - Add a tool to execute behat generators in the current instance
- MDL-79985 - Create a dropdown form field for advanced options
Upgrade Boost theme to use Bootstrap 5.x
- MDL-80397 - Refactor some .card-* helpers dropped in Boostrap 5
- MDL-80395 - Refactor dropped mixins in Bootstrap 5
- MDL-80396 - Refactor .media component dropped in Bootstrap 5
- MDL-75673 - Add PopperJS v2 library
- MDL-80244 - Refactor Navbars preparing them for Boostrap 5
- MDL-80259 - Refactor .badge-[warning|info|...] and .badge-pill classes dropped in Bootstrap 5
- MDL-80238 - Refactor .jumbotron dropped in Bootstrap 5
- MDL-75670 - Refactor Bootstrap form layouts preparing them for Boostrap 5
Web service additions and updates
- MDL-81065 - Create a new Web Service to be able to retrieve filter configuration and specific overrides per context
- MDL-65978 - New web services for managing blog entries
- MDL-78088 - New web services for the user data privacy section (Privacy and policies)
- MDL-80300 - New web service for creating quiz overrides
Deprecations
- MDL-75794 - Deprecate i_add_a_field_to_database_and_i_fill_the_form_with() and i_add_an_entry_to_database_with() behat steps
- MDL-77038 - Deprecate stateactions::section_move method
- MDL-67667 - Deprecate is_blocking() for adhoc and scheduled tasks in Task API
- MDL-81326 - Deprecate book_get_nav_classes
- MDL-72656 - Deprecate old course renderer methods
- MDL-74238 - Final deprecation of get_available_completion_tabs() and navigation()
- MDL-73975 - Final deprecation management_heading/course_search_form
- MDL-73545 - Final deprecation lesson_add_header_buttons
- MDL-73426 - Final deprecation print_badge_tabs
- MDL-72376 - Final deprecation of book_get_nav_types
- MDL-73117 - Final deprecation of three-month calendar pseudo block items
- MDL-70483 - Final deprecation of get_forum_discussions_paginated web service
- MDL-80703 - Final deprecation of block_calendar_upcoming::get_upcoming_content()
- MDL-71950 - Final deprecation display_help_icon() and print_help_icon()
- MDL-80409 - Final deprecation of download_as_dataformat method
- MDL-71732 - Final deprecation of functions in lib/deprecatedlib.php initially deprecated in 4.0
- MDL-72438 - Final deprecations in core_question initially deprecated in 4.0
- MDL-71734 - Final deprecation of strings initially deprecated in 4.0
Component API updates
- admin/tool/dataprivacy/upgrade.txt
- admin/tool/mfa/upgrade.txt
- admin/tool/usertours/upgrade.txt
- admin/upgrade.txt
- auth/email/upgrade.txt
- auth/upgrade.txt
- backup/upgrade.txt
- badges/upgrade.txt
- blocks/calendar_upcoming/upgrade.txt
- blocks/recentlyaccesseditems/upgrade.txt
- blog/upgrade.txt
- calendar/upgrade.txt
- completion/upgrade.txt
- course/format/upgrade.txt
- course/upgrade.txt
- customfield/upgrade.txt
- enrol/upgrade.txt
- grade/report/upgrade.txt
- grade/upgrade.txt
- h5p/upgrade.txt
- lib/form/upgrade.txt
- lib/upgrade.txt
- mod/book/upgrade.txt
- mod/data/upgrade.txt
- mod/forum/upgrade.txt
- mod/lesson/upgrade.txt
- mod/quiz/report/upgrade.txt
- mod/quiz/upgrade.txt
- mod/upgrade.txt
- mod/url/upgrade.txt
- question/bank/upgrade.txt
- question/engine/upgrade.txt
- question/type/calculatedmulti/upgrade.txt
- question/upgrade.txt
- reportbuilder/upgrade.txt
- tag/upgrade.txt
- theme/boost/upgrade.txt
- theme/upgrade.txt
- user/upgrade.txt