Skip to main content

Moodle 3.8

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.

Release date: 18 November 2019

Here is the full list of fixed issues in 3.8.

See our New features page in the user documentation for an introduction to Moodle 3.8 with screenshots.

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.2 or later
  • PHP version: minimum PHP 7.1.0 Note: minimum PHP version has increased since Moodle 3.6. PHP 7.2.x, 7.3.x and 7.4.x (since Moodle 3.8.3) 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)

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.

DatabaseMinimum versionRecommended
PostgreSQL9.411.x then 12.x in Moodle 3.8.2 onwards
Microsoft SQL Server2012 (increased since Moodle 3.7)Latest
Oracle Database11.2Latest

Client requirements

Browser support

Moodle is compatible with any standards compliant web browser. We regularly test Moodle with the following browsers:


  • Chrome
  • Firefox
  • Safari
  • Edge
  • Internet Explorer


  • MobileSafari
  • Google Chrome

For the best experience and optimum security, we recommend that you keep your browser up to date.

Note: Legacy browsers with known compatibility issues with Moodle 3.8:

  • Internet Explorer 10 and below
  • Safari 7 and below

Major features


  • MDL-64739 - Analytics models may be restricted to category or course contexts
  • MDL-65588 - Insights about students who have not logged in recently
  • MDL-65562 - Report on the actions executed by users on predictions
  • MDL-65633 - Allow targets to limit the analysis interval to a specific interface or parent class.
  • MDL-66234 - Extra garbage collection for analytics
  • MDL-66254 - Require enrolments to be active for most of the analysis interval
  • MDL-62191 - Add bulk actions for analytics' insights
  • MDL-66536 - Insight notifications improvements
  • MDL-60949 - Analytics models should be sorted by name and not last modified
  • MDL-66004 - Allow the Python machine learning backend to run from a separate server
  • MDL-58992 - Add multi-class capabilities to prediction processors
  • MDL-65585 - Global on/off switch for analytics

H5P integration

  • MDL-66388 - Create a new button in Atto to add H5P content in anywhere from and external URLs
  • MDL-66398 - Improve H5P filter to allow internal H5P content URLs
  • MDL-66593 - Implement backup and restore process for H5P content
  • MDL-67059 - Add Admin UI to manually upload H5P content-type libraries
  • MDL-67057 - Create a capability to update H5P content-type libraries
  • MDL-67058 - Create a task to install H5P content-type libraries
  • MDL-66609 - Create the basic skeleton, library and interfaces for rendering H5P content
  • MDL-66399 - Improve H5P Atto button to upload content
  • MDL-66397 - Create a new filter to convert and URLs to embed code

Forum summary report

  • MDL-66153 - Forum report: Basic skeleton
  • MDL-66298 - Forum summary report option to message selected users
  • MDL-66268 - Groups filter in forum summary report
  • MDL-66373 - Dates filter in forum summary report
  • MDL-66297 - Link forum summary report to export of each user's post content
  • MDL-66694 - Add columns for word count and character count to the forum summary report
  • MDL-66768 - Add the ability to download the forum summary report

Forum export

  • MDL-66075 - Forum export functionality
  • MDL-66631 - Dates filter in forum export
  • MDL-66808 - Forum export options for human-readable dates and removing HTML

Forum grading

  • MDL-66074 - Create forum grading interface
  • MDL-66358 - Display grading form in the grading panel
  • MDL-66365 - Add a button to display the entire discussion for a post being graded
  • MDL-67116 - Make 'require grade' an activity completion criterion for the forum
  • MDL-66381 - Forum grading user search
  • MDL-66360 - Forum grading option to send notification to student
  • MDL-66906 - Forum view grades option for students
  • MDL-66359 - Support restricting the user list to a specific group

Forum UI improvements

  • MDL-66477 - Create settings side drawer for new discussion view
  • MDL-64821 - Create new discussion view for forum
  • MDL-66481 - Update display of discussion in discussion list table
  • MDL-65129 - Search starred discussions only option in forum advanced search


  • MDL-63349 - Assignment: Annotate PDF - Rotate submitted image automatically
  • MDL-66537 - Annotate PDF - Right-to-left UI - The rotate buttons order is confusing
  • MDL-63878 - Enable the saving and printing of annotated PDFs from previous attempts
  • MDL-64811 - Assignment: Add warning about students falling into Default group if group submissions are enabled but not required
  • MDL-65797 - Performance improvements for user / group overrides for mod assign

Question bank

  • MDL-66553 - Display ID number and tags in the question bank UI
  • MDL-66816 - Question bank: replace the row of edit icons with an Edit menu
  • MDL-67153 - Allow question types to add extra actions to the Question bank edit menu

Course relative dates (experimental)

Course overview

  • MDL-64901 - block_myoverview: Add admin setting to control the available layouts
  • MDL-66016 - An admin can set which filters are available for users to select in their Dashboard course overview
  • MDL-66017 - An admin can specify a course custom field as a filter for users to select in their Dashboard course overview
  • MDL-63612 - Course card pattern colours may be specified by an admin
  • MDL-65621 - Courses with course visibility set to hide should be labelled 'Hidden from students' in the course overview
  • MDL-64860 - block_myoverview: Improve pagination widget
  • MDL-64094 - Change 'Hidden' to 'Removed from view' in the course overview


Usability improvements

  • MDL-34498 - Session Timeout alert
  • MDL-61043 - Provide a more consistent and better way of selecting and deselecting all items in a list
  • MDL-48610 - Show alphabet filter in grader report even when there are fewer than 100 users
  • MDL-38555 - Forms do not prevent same data submission multiple times
  • MDL-59639 - Browser back button should work as expected in the administration menu with Boost theme
  • MDL-57208 - Let users set their default homepage
  • MDL-66178 - Participants list - Filter users with no roles
  • MDL-65671 - Calendar view selector enables users to switch between month, day and upcoming events
  • MDL-66563 - Improve drag and drop question accessibility in high-contrast mode
  • MDL-64032 - The UI for setting enrolment end date/duration should be consistent
  • MDL-65406 - Boost Theme accessibility: Nav drawer should be marked up as list
  • MDL-65915 - Better progress display while re-grading quiz attempts
  • MDL-67048 - Drag and drop upload progressbar invert inner and outer

Other highlights

Functional changes

  • MDL-64745 - Administrative setting to show/not show "hide" feature in online users block
  • MDL-62835 - The description should be displayed when viewing a Book, Lesson or IMS content package
  • MDL-66496 - Option to include author information when importing entries into a database activity
  • MDL-66740 - Make "course request" capability category context instead of system context
  • MDL-65093 - Users should be informed that they can't block a user who has permission to message all users
  • MDL-64002 - Add send message buffering
  • MDL-66226 - Show plain text in Messages summary pane
  • MDL-61649 - Several core emails provide only text format
  • MDL-35773 - Include files option in backup settings
  • MDL-63453 - VideoJS upgrade to 7.6.5 including HTTP Live Streaming (HLS) and Dynamic Adaptive Streaming over HTTP (MPEG-DASH) support
  • MDL-56549 - Add support for FLAC files
  • MDL-62836 - Make awarding badges groups/groupings compliant
  • MDL-60916 - Global Search: Replace course search form with global search
  • MDL-64438 - Display course category in course related block
  • MDL-66326 - Global search: Delete from search index when courses are deleted
  • MDL-65183 - block_timeline can cause JSON parse error on dashboard when activities are saved with newline characters
  • MDL-66612 - Calendar course event icon is different from course icon
  • MDL-66775 - Add new Mobile setting for forcing a minimum app version to access the site
  • MDL-66375 - Option to disable the "Forgotten password" feature in the app
  • MDL-66753 - The People block is no longer needed and should be removed from core

For administrators

  • MDL-66034 - Log role changes in more detail
  • MDL-66570 - Allow disabling of cron output when capturing logs
  • MDL-61804 - Let the admin control if lists of courses should be pre-sorted by visibility or not
  • MDL-66133 - Let the administrator configure which user filters are shown by default
  • MDL-63643 - Add ability to search/filter users by Last IP Address
  • MDL-66119 - Disable GUI plugin uninstalls (eg $CFG->uninstallclionly similar to $CFG->disableupdateautodeploy)
  • MDL-65201 - Automated backup course ordering
  • MDL-65404 - Add column for enrol start dates to Upload users CSV
  • MDL-40669 - Upload users via text file should include the optional user field 'disable notifications'
  • MDL-66705 - Add an example csv file for bulk uploading of users
  • MDL-59470 - Option to duplicate a user tour
  • MDL-65622 - Add a new event when a grade item has been created
  • MDL-65369 - Include changed course settings in course_updated event
  • MDL-65492 - Cache admin UI: make it easy re-purge the cache you just purged
  • MDL-63127 - Redis Cache: implement compression
  • MDL-66428 - Allow Redis cache to use PHP extension Zstd
  • MDL-46317 - Private files space setting should use MB not Bytes
  • MDL-7339 - Change 'Open to Google' setting to 'Open to search engines'
  • MDL-65208 - Add cli upgrade option to test if an upgrade is required
  • MDL-58439 - Admin pages login as guest and then throw Access denied error (should prompt for login) require_admin()

For developers

  • MDL-66675 - New $CFG->behat_pause_on_fail option added
  • MDL-46267 - The $CFG->httpswwwroot was removed
  • MDL-66335 - New steps to navigate straight to any plugin web page. Plugins must implement their own resolver between page types and URLs.
  • MDL-65349 - Profiling included and excluded URLs now are matched from start. Some adjustments may be needed.
  • MDL-66633 - Quiz: quiz attempt API should let you create an attempt for a different user
  • MDL-66709 - Components other than activity modules should be able to backup and restore question attempt data
  • MDL-66754 - Question engine: report methods should not require a list of slots
  • MDL-62497 - Add a new transpilation tool for ES6
  • MDL-50346 - Remove the restriction to forbid subdirectories in the templates directory
  • MDL-66327 - $DB->get_records uses a lot of Peak RAM (with Postgres)
  • MDL-66173 - Add hooks to extend all forms with /login/
  • MDL-66367 - Caching of templates should use a new templaterev variable
  • MDL-66304 - Allow support for xsendfile in alternative_file_system_class independently of local files
  • MDL-66166 - Improve the moodlebot user agent and expose a function for plugins to use
  • MDL-65646 - Move dependencies and subplugins to JSON
  • MDL-55751 - Remove the CSS chunker from Moodle
  • MDL-65438 - Allow themes to alter the core css url's
  • MDL-65747 - Removed unused Pear_Crypt_CHAP library
  • MDL-65762 - Upgrade Box::Spout to 3.x - Warning! Spout 3.x has a breaking API changes compared to 2.x which was used in Moodle <= 3.7.x. If you are using Spout directly, not through moodle's wrappers, then you need to read

Web services additions and updates

  • MDL-65794 - Make some web service calls idempotent over http GET
  • MDL-67043 - Web service to enable H5P offline access in the Moodle app
  • MDL-64254 - New Web Services for updating a forum post (or a discussion topic post)
  • MDL-65017 - New web service to delete forum posts
  • MDL-64588 - New web services for adding and deleting comments
  • MDL-66376 - Enforce app security by using tokenpluginfile.php instead webservice/pluginfile.php
  • MDL-65400 - Blocks Web Services (for course and dashboard) should return the block settings

Component API upgrades