Moodle 3.3
You are encouraged to upgrade to a supported version of Moodle.
Release date: 15 May 2017
Here is the full list of fixed issues in 3.3.
See our New Features page for a more user-friendly introduction to Moodle 3.3 with screenshots.
If you are upgrading from previous version, make sure you read the Upgrading documentation.
Server requirements
These are just the minimum supported versions. We recommend keeping all of your software up-to-date.
- Moodle upgrade: Moodle 2.7 or later (if upgrading from earlier versions, you must upgrade to 2.7.14 as a first step)
- PHP version: minimum PHP 5.6.5. Note: minimum PHP version has increased since Moodle 3.1. PHP 7.0.x and 7.1.x are supported but have some engine limitations.
- PHP extensions openssl and fileinfo are now required in Moodle 3.3 (they were recommended in 3.2)
- If you use PostgreSQL the minimum supported version is now 9.3 (was 9.1 in Moodle 3.2)
- (Recommendation only) If you use MySQL or MariaDB, make sure your database supports full UTF-8 (utf8mb4) if you install a new instance of Moodle. CLI script may be used to convert to utf8mb4 if you're upgrading. You may choose to keep using 'utf8_*', but then a warning will show that the database isn't using full UTF-8 support and suggest moving to 'utf8mb4_unicode_ci'. See MySQL full unicode support for details.
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 | 9.3 | Latest |
MySQL | 5.5.31 | Latest |
MariaDB | 5.5.31 | Latest |
Microsoft SQL Server | 2008 | Latest |
Oracle Database | 10.2 | 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
- Internet Explorer
Mobile:
- MobileSafari
- Google Chrome
For the best experience and optimum security, we recommend that you keep your browser up to date. https://whatbrowser.org
Note: Legacy browsers with known compatibility issues with Moodle 3.3:
- Internet Explorer 10 and below
- Safari 7 and below
Major features
Highlights
- MDL-55611 - New Course overview dashboard block featuring timeline of events
- MDL-58220 - Make use of OAuth 2 services to allow users to authenticate with Google G-Suite or Microsoft Office accounts and manage files from associated drives
- MDL-39913 - New Assignment setting for restricting submission file types
- MDL-4782 - "Stealth mode" for resources/activities in a course - not displayed on the course page but available for students
- MDL-40759 - New Font Awesome icon font for all icons in Moodle
For teachers
- MDL-58138 - Activity completion settings for setting activity completion defaults and bulk editing of completion requirements
- MDL-48771 - Quiz activity: Option to delete multiple questions
- MDL-53814 - Quiz activity: Question type icons are displayed in the quiz manual grading overview
- MDL-55459 - Assignment activity: Annotated PDF comments are collapsible
- MDL-23919 - Database activity: The setting "Required entries" is now an activity completion condition
- MDL-57769 - Topic and weeks course formats: After a course is created, sections can be added and removed only from the course page (it is no longer possible to have "orphaned" activities)
- MDL-46929, MDL-57456, MDL-57457 - Forum posts, glossary entries and book chapters may be tagged
- MDL-56251 - For courses in weekly format, a new course setting allows for the course end date to be calculated automatically
- MDL-47354 - Allow the page size in the Single view report to be configurable
Backup and restore
- MDL-34859 - Add site defaults for all restore settings, improve UI around "Overwrite course configuration" select
- MDL-40838 - Allow to restore non-default enrollment methods without restoring users
- MDL-57769 - When restoring/importing big courses in Weeks and Topics formats into small existing courses ajust the number of sections automatically
For administrators
Please read carefully: Possible issues that may affect you in Moodle 3.3
- MDL-46375 - Support for storing files not on the local drive (there are no open-source solutions at the moment, developer's help is required to implement custom cloud storage)
- MDL-55528, MDL-58280 - New document converter plugin type allows alternatives to unoconv, such as the Google Drive converter
- MDL-55980 - Run individual scheduled tasks from web interface
- MDL-57896 - CLI wrapper for get_config() and set_config() methods
- MDL-57789 - Use Cache-Control: immutable when serving files
- MDL-37765 - New capability to bypass access restrictions, separated from capability to view hidden activities
- MDL-57913 - Convert external database authentication synchronisation to scheduled task
Plugins removal and deprecation
- The repository Skydrive is deprecated; please migrate to the newer OneDrive repository
- The Dashboard block Course overview is replaced with a new block Course overview which is a different plugin. If you want to use the old block, you need to download and install it from https://moodle.org/plugins/block_course_overview
Mobile app support
- MDL-57410 - Allow admins to add new external links to pages in the main menu of the Mobile app
- MDL-57408 - Add new settings for allowing renaming strings in the Mobile app
- MDL-49423 - Add new settings for disabling Mobile app functionalities
- MDL-57759 - Allow offline attempts via the Mobile app in the lesson module
- MDL-57162 - Support Native App install banners for Android as well as iOS for the mobile app
Other improvements
- MDL-33483 - Google Docs repository: Save Doc files in different formats to RTF
- MDL-42266 - Improve the list of maximum file size options for file uploads
- MDL-51853 - Calendar subscriptions from imported files should be editable
- MDL-41729 - Add ability to change passwords for users using Shibboleth
- MDL-57572, MDL-57570, MDL-57355 - Redis and static caches performance improvements if igbinary library is installed
- MDL-56808 - SCORM module: Performance improvements when running SCORM 1.2 packages
- MDL-57686 - Add support for PDO databases in external database authentication
- MDL-57638 - RSS Block: RSS feeds are more heavily cached and correctly respect skip values
For developers
- MDL-55528 - New plugin type 'fileconverter' for file conversions, unoconv is now a plugin that can be replaced with scalable commercial solutions (see File Converters)
- MDL-40759 - Font Awesome icon font is used for all icons in Moodle (see Moodle icons)
- MDL-46375 - Support for storing files not on the local drive is implemented by allowing to override functionality of file_storage and stored_file classes (see File System API)
- MDL-12689 - Convert all authentication plugins to use settings.php (see upgrade.txt)
- MDL-53978 - Add extra plugin callbacks for every major stage of page render (see commit)
- MDL-58138 - Course modules may provide additional callbacks to participate in bulk editing of activities completion rules in a course
- MDL-58220 - Better office integration
- MDL-45584 - Multiple caches can be instantiated with the same definition but with different identifiers
- MDL-57769 - Course formats: Attribute 'numsections' was removed from topics and weeks, other course formats may want to implement similar changes
- MDL-55956 - Priority field for the calendar events allowing to specify the priority of overrides
- MDL-58566 - New methods for retrieving calendar events
- MDL-55941 - New element to select first name of first/last names is implemented in tablelib or can be used by developers elsewhere (template)
- MDL-56519 - Lint behat .feature files
- MDL-57273 - New classes (core\persistent, core\form\persistent, core\external\exporter, \core\external\persistent_exporter) used to represent a data-model and export that data in a standard format for webservices (previously was used in competencies) (see Persistent form, Persistent, Exporter)
- MDL-57490 - Removed several legacy JS functions from
javascript-static.js
- MDL-57690 - mcore YUI rollup is no longer included on every single Moodle page (see //moodle.org/mod/forum/discuss.php?d=346520 forum post)
Upgrading plugins
1. Check for changes in core APIs
Read lib/upgrade.txt to check for the deprecations and core API changes, make sure you applied them to your plugin. Note that entries there are not sorted by priority but rather by integration time. Below is the list of upgrade.txt files that contain information about upgrading from Moodle 3.2 to Moodle 3.3 (note that if you upgrade from earlier versions there may be more files):
- lib/upgrade.txt changes to various core APIs, deprecations, functions removal
- admin/upgrade.txt changes to administration-related functions
- cache/upgrade.txt changes to Cache API
- calendar/upgrade.txt changes to Calendar API
- competency/upgrade.txt changes to Competency API
- course/upgrade.txt changes to course-related functions
For the next releases we are thinking about improving the format of upgrade.txt notes, please have your say on policy issue MDL-58879
2. Check for changes in the API of your plugin type
Below is the list of plugin types that had API changes between Moodle 3.2 and 3.3:
- auth/upgrade.txt Authentication plugins
- blocks/upgrade.txt Block plugins
- course/format/upgrade.txt Course format plugins
- enrol/upgrade.txt Enrolment method plugins
- media/upgrade.txt Media player plugins
- mod/upgrade.txt Activity module plugins
- question/type/upgrade.txt Question types plugins
- repository/upgrade.txt Repository plugins
- theme/upgrade.txt Themes
3. Check for changes in the depended plugins
If your plugin depends on another plugin or calls methods from another plugin, read upgrade.txt in this plugin directory (if it exists). Below is the list of standard plugins that had changes between Moodle 3.2 and 3.3:
Due to changes in Authentication plugins settings all standard auth plugins were updated: auth_cas, auth_db, auth_email, auth_fc, auth_imap, auth_ldap, auth_manual, auth_mnet, auth_nntp, auth_none, auth_pam, auth_pop3, auth_shibboleth
Other standard plugins that were updated in 3.3: tool_lp, tool_mobile, enrol_ldap, mod_assign, mod_data, mod_feedback, mod_forum, mod_lesson
4. Do a smoke test of your plugin with developer debugging mode
5. Run all behat and phpunit tests