Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Moodle 3.3 release notes: Difference between revisions

From MoodleDocs
(36 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[[Releases]] > {{FULLPAGENAME}}
[[Releases]] > {{FULLPAGENAME}}
   
   
Release date: 15 May 2017 (Not yet released)
Release date: 15 May 2017
   
   
Here is [https://tracker.moodle.org/secure/IssueNavigator!executeAdvanced.jspa?jqlQuery=project+%3D+mdl+AND+resolution+%3D+fixed+AND+fixVersion+in+%28%223.3%22%29+ORDER+BY+priority+DESC&runQuery=true&clear=true the full list of fixed issues in 3.3].
Here is [https://tracker.moodle.org/secure/IssueNavigator!executeAdvanced.jspa?jqlQuery=project+%3D+mdl+AND+resolution+%3D+fixed+AND+fixVersion+in+%28%223.3%22%29+ORDER+BY+priority+DESC&runQuery=true&clear=true the full list of fixed issues in 3.3].


See our [https://docs.moodle.org/33/en/New_features New Features page] for a more user-friendly introduction to Moodle 3.2 with screenshots.
See our [https://docs.moodle.org/33/en/New_features 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 [https://docs.moodle.org/33/en/Upgrading Upgrading] documentation.  
If you are upgrading from previous version, make sure you read the [https://docs.moodle.org/33/en/Upgrading Upgrading] documentation.  
Line 15: Line 15:
* Moodle upgrade:  Moodle 2.7 or later (if upgrading from earlier versions, you must upgrade to 2.7.14 as a first step)
* 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 [https://docs.moodle.org/dev/Moodle_and_PHP7#Can_I_use_PHP7_yet.3F engine limitations].  
* 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 [https://docs.moodle.org/dev/Moodle_and_PHP7#Can_I_use_PHP7_yet.3F 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 [[:en:MySQL full unicode support|MySQL full unicode support]] for details.


=== Database requirements ===
=== Database requirements ===
Line 71: Line 74:
==Major features==
==Major features==


===Highlights===
=== Highlights ===
 
* ...
* MDL-55611 - New [https://docs.moodle.org/33/en/Course_overview Course overview] dashboard block featuring timeline of events
* MDL-58220 - Make use of [https://docs.moodle.org/33/en/OAuth_2_services OAuth 2 services] to allow users to [https://docs.moodle.org/33/en/OAuth_2_authentication authenticate with Google G-Suite or Microsoft Office accounts] and manage files from associated drives
===Functional changes===
* MDL-39913 - New [https://docs.moodle.org/33/en/Assignment_settings Assignment setting] for restricting submission file types
* MDL-4782 - [https://docs.moodle.org/33/en/Stealth_activities "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
 
===API changes===
=== For teachers ===
 
* ...
* MDL-58138 - [https://docs.moodle.org/33/en/Activity_completion_settings Activity completion settings] for setting activity completion defaults and bulk editing of completion requirements
 
* MDL-48771 - [https://docs.moodle.org/33/en/Building_Quiz Quiz activity]: Option to delete multiple questions
===Fixes and improvements===
* MDL-53814 - Quiz activity: Question type icons are displayed in the quiz manual grading overview
* MDL-55459 - [https://docs.moodle.org/33/en/Assignment_settings Assignment activity]: Annotated PDF comments are collapsible
* ...
* MDL-23919 - [https://docs.moodle.org/33/en/Database_activity_settings 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 - [https://docs.moodle.org/33/en/Using_Forum Forum posts], [https://docs.moodle.org/33/en/Using_Glossary glossary entries] and [https://docs.moodle.org/33/en/Book_settings book chapters] may be tagged
* MDL-56251 - For courses in weekly format, a new [https://docs.moodle.org/33/en/Course_settings 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: [https://docs.moodle.org/33/en/Upgrading#Possible_issues_that_may_affect_you_in_Moodle_3.3 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 [https://docs.moodle.org/33/en/Document_converters document converter] plugin type allows alternatives to unoconv, such as the [https://docs.moodle.org/33/en/Google_Drive_converter 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 [https://docs.moodle.org/33/en/OneDrive_repository OneDrive repository]
* The Dashboard block Course overview is replaced with a new block [https://docs.moodle.org/33/en/Course_overview 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#Font_awesome_icons|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 [https://github.com/moodle/moodle/blob/master/auth/upgrade.txt upgrade.txt])
* MDL-53978 - Add extra plugin callbacks for every major stage of page render (see [https://github.com/moodle/moodle/commit/5ebd1fb9768969956c9131df4274f9cdff7f0134 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 ([https://github.com/moodle/moodle/blob/master/lib/templates/initials_bar.mustache 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 [[https://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):
 
* [https://raw.githubusercontent.com/moodle/moodle/master/lib/upgrade.txt lib/upgrade.txt] changes to various core APIs, deprecations, functions removal
* [https://raw.githubusercontent.com/moodle/moodle/master/admin/upgrade.txt admin/upgrade.txt] changes to administration-related functions
* [https://raw.githubusercontent.com/moodle/moodle/master/cache/upgrade.txt cache/upgrade.txt] changes to Cache API
* [https://raw.githubusercontent.com/moodle/moodle/master/calendar/upgrade.txt calendar/upgrade.txt] changes to Calendar API
* [https://raw.githubusercontent.com/moodle/moodle/master/competency/upgrade.txt competency/upgrade.txt] changes to Competency API
* [https://raw.githubusercontent.com/moodle/moodle/master/course/upgrade.txt 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:
* [https://raw.githubusercontent.com/moodle/moodle/master/auth/upgrade.txt auth/upgrade.txt] Authentication plugins
* [https://raw.githubusercontent.com/moodle/moodle/master/blocks/upgrade.txt blocks/upgrade.txt] Block plugins
* [https://raw.githubusercontent.com/moodle/moodle/master/course/format/upgrade.txt course/format/upgrade.txt] Course format plugins
* [https://raw.githubusercontent.com/moodle/moodle/master/enrol/upgrade.txt enrol/upgrade.txt] Enrolment method plugins
* [https://raw.githubusercontent.com/moodle/moodle/master/media/upgrade.txt media/upgrade.txt] Media player plugins
* [https://raw.githubusercontent.com/moodle/moodle/master/mod/upgrade.txt mod/upgrade.txt] Activity module plugins
* [https://raw.githubusercontent.com/moodle/moodle/master/question/type/upgrade.txt question/type/upgrade.txt] Question types plugins
* [https://raw.githubusercontent.com/moodle/moodle/master/repository/upgrade.txt repository/upgrade.txt] Repository plugins
* [https://raw.githubusercontent.com/moodle/moodle/master/theme/upgrade.txt 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: [https://raw.githubusercontent.com/moodle/moodle/master/auth/cas/upgrade.txt auth_cas], [https://raw.githubusercontent.com/moodle/moodle/master/auth/db/upgrade.txt auth_db], [https://raw.githubusercontent.com/moodle/moodle/master/auth/email/upgrade.txt auth_email], [https://raw.githubusercontent.com/moodle/moodle/master/auth/fc/upgrade.txt auth_fc], [https://raw.githubusercontent.com/moodle/moodle/master/auth/imap/upgrade.txt auth_imap], [https://raw.githubusercontent.com/moodle/moodle/master/auth/ldap/upgrade.txt auth_ldap], [https://raw.githubusercontent.com/moodle/moodle/master/auth/manual/upgrade.txt auth_manual], [https://raw.githubusercontent.com/moodle/moodle/master/auth/mnet/upgrade.txt auth_mnet], [https://raw.githubusercontent.com/moodle/moodle/master/auth/nntp/upgrade.txt auth_nntp], [https://raw.githubusercontent.com/moodle/moodle/master/auth/none/upgrade.txt auth_none], [https://raw.githubusercontent.com/moodle/moodle/master/auth/pam/upgrade.txt auth_pam], [https://raw.githubusercontent.com/moodle/moodle/master/auth/pop3/upgrade.txt auth_pop3], [https://raw.githubusercontent.com/moodle/moodle/master/auth/shibboleth/upgrade.txt auth_shibboleth]
 
Other standard plugins that were updated in 3.3: [https://raw.githubusercontent.com/moodle/moodle/master/admin/tool/lp/upgrade.txt tool_lp], [https://raw.githubusercontent.com/moodle/moodle/master/admin/tool/mobile/upgrade.txt tool_mobile], [https://raw.githubusercontent.com/moodle/moodle/master/enrol/ldap/upgrade.txt enrol_ldap], [https://raw.githubusercontent.com/moodle/moodle/master/mod/assign/upgrade.txt mod_assign], [https://raw.githubusercontent.com/moodle/moodle/master/mod/data/upgrade.txt mod_data], [https://raw.githubusercontent.com/moodle/moodle/master/mod/feedback/upgrade.txt mod_feedback], [https://raw.githubusercontent.com/moodle/moodle/master/mod/forum/upgrade.txt mod_forum], [https://raw.githubusercontent.com/moodle/moodle/master/mod/lesson/upgrade.txt mod_lesson]
 
'''4. Do a smoke test of your plugin with developer debugging mode'''
 
'''5. Run all behat and phpunit tests'''
 
==See also==
==See also==
*[[Moodle 3.2 release notes]]
*[[Moodle 3.2 release notes]]

Revision as of 00:34, 22 December 2017

Releases > Moodle 3.3 release notes

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

For teachers

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

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

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:

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

See also