Moodle 3.5
You are encouraged to upgrade to a supported version of Moodle.
Release date: 17 May 2018
Here is the full list of fixed issues in 3.5.
See our New Features page for a more user-friendly introduction to Moodle 3.5 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 and operating systems up-to-date.
- Moodle upgrade: Moodle 3.1 or later
- PHP version: minimum PHP 7.0.0 Note: minimum PHP version has increased since Moodle 3.3. PHP 7.1.x and 7.2.x are supported too. See Moodle and PHP for details.
- PHP extension intl is required since Moodle 3.4 (it was recommended in 2.0 onwards)
- (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. If you do enable utf8mb4 you must* use the Barracuda file format.
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 | 11.x - note that 12.x is not yet supported (MDL-67414) |
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.5:
- Internet Explorer 10 and below
- Safari 7 and below
Major features
GDPR
MDL-61275 - GDPR Consenting of Minors and Managing, Versioning and Tracking Privacy Policies and User Consents
MDL-61292 - A new admin tool to manage policy documents
MDL-61423 - Add age and location verification to identify minors
MDL-61302 - Workflow to allow users to agree to all policies
MDL-61301 - Report of user agreed policies and their versions
MDL-61705 - Bulk accept of policies on behalf of users
MDL-61864 - Include policy tool in core
MDL-62286 - Add policy link to the site footer
MDL-61306 - GDPR Data Requests and Data Registry
MDL-59718 - A process to send a request to the data protection officer
MDL-59720 - Delete personal data when it is no longer required
MDL-61307 - Create a new privacy subsystem
MDL-61362 - Ability to create data categories and purposes
MDL-61486 - Data registry with purpose and retention period
MDL-61489 - Report of plugin/components implementing the Privacy API
MDL-61499 - Ability to set default purpose and retention periods for context levels
MDL-61785 - Ability to review and confirm which expired data can be deleted
MDL-61899 - Include data privacy tool in core
MDL-61935 - Ability to specify the lawful bases for the collection of personal data
Question bank tagging improvements
- MDL-61066 - Expanded tagging functionality for question bank
- MDL-61133 - New modal to add/edit/remove tags on questions
- MDL-61135 - Filter questions by tag
- MDL-61138 - Show the list of questions in the 'Add a random question' dialog
- MDL-61363 - Ability to add question tags at a course level in the edit question form
- MDL-61364 - Manage tags at a question and course context level
- MDL-61380 - Allow filtering/adding random questions by tag for quizzes
- MDL-61410 - Add import/export support for course level question tags
- MDL-61444 - New capabilities for tagging questions
UX: Usability improvements
- MDL-62021 - Boost 4.0 Migration
- MDL-56511 - Update bootstrap 4 to final release
- MDL-61657 - Add images to the course cards on the dashboard
LTI Advantage support
- MDL-60416 - Add support for LTI Advantage 1.1
RecordRTC for Atto
- MDL-60848 - Implement RecordRTC Atto plugin as core feature
- MDL-61973 - Update RecordRTC Atto plugin buttons
Messaging database tables
- MDL-61254 - Merge messaging database tables
- MDL-36941 - Create new tables for messaging
- MDL-61255 - Ad-hoc task to upgrade messages to merged table
See also Message API#Changes in Moodle 3.5
Other Highlights
Global search
- MDL-58885 - Add group support
- MDL-59434 - Content aware searching / alternate results sort orders
- MDL-60981 - Reindex a single area
- MDL-61028 - Allow filtering search by user
- MDL-61256 - Search of section titles, summaries
Functional changes
- MDL-2051 - Inform student whether and how their selected choice will display
- MDL-32585 - SCORM: option to force new attempts
- MDL-53226 - Add Moodle DB search engine
- MDL-55491 - Use cohort as badge criteria
- MDL-56246 - Add site wide default for grade export: include feedback
- MDL-59875 - Allow badges as criteria for other badges
- MDL-60119 - Feedback - Multiple choice (rated) - remove weights from answer
- MDL-61203 - Allow uploading of profile picture to be used as badge criteria
- MDL-61601 - Allow cohort themes
- MDL-61651 - LTI: line item definition within link to return gradable LTI links
- MDL-60811 - Bulk delete self-registered enrolments on participants page
- MDL-60682 - Ability to set date/time to nearest minute
- MDL-60441 - Ability to add a link to glossary entries
- MDL-58411 - Ability to apply file type restrictions for essay question type
- MDL-56945 - Add easy return path from PDF grading screen to list of submissions
- MDL-52811 - Add force language capability to course settings
- MDL-41090 - Allow teachers to embed files when manually grading questions
Security issues
- MSA-18-0007 Calculated question type allows remote code execution by Question authors
- MSA-18-0008 Users can download any file via portfolio assignment caller class
- MSA-18-0009 Portfolio forum caller class allows a user to download any file
- MSA-18-0010 User can shift a block from Dashboard to any page
- MSA-18-0011 User who did not agree to the site policies can see the site homepage as if they had full site access
- MSA-18-0012 Portfolio script allows instantiation of class chosen by user
For developers
- MDL-61307 - All plugins must implement Privacy API to be compliant with GDPR requirements. They must implement the API to report on, export and delete stored user data
- MDL-56511 - Bootstrap is upgraded to final release of version 4
- MDL-61869 - Infer rendering of templatables with no render method
- MDL-61298 - Boost: use navigation node icon
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.4 to Moodle 3.5 (note that if you upgrade from earlier versions there may be more files):
- lib/upgrade.txt changes to various core APIs, deprecations, functions removal
- calendar/upgrade.txt changes to Calendar API
- search/upgrade.txt changes to Global search API
- message/upgrade.txt changes to Messages API - See also Message API#Changes in Moodle 3.5
- course/upgrade.txt changes to Course API
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.4 and 3.5:
- enrol/upgrade.txt Enrolment method plugins
- mod/upgrade.txt Activity module plugins
- auth/upgrade.txt Authentication plugins
- course/format/upgrade.txt Course format plugins
- question/type/upgrade.txt Question type plugins
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.4 and 3.5:
tool_mobile, tool_usertours, mod_assign, mod_feedback, mod_quiz, mod_scorm, theme_boost
4. Do a smoke test of your plugin with developer debugging mode
Make sure to check on both Boost and Clean themes. Bootstrap was upgraded in Moodle 3.5
5. Run all behat and phpunit tests