Open edX Olive Release

These are the release notes for the Olive release, the 15th community release of the Open edX Platform, spanning changes from April 11 2022 to October 11 2022. You can also review details about earlier releases or learn more about the Open edX Platform.

Breaking Changes

All grades are persisted

The Persistent Grades feature was added as an option in Hawthorne. Legacy, non-persistent grades were deprecated in Nutmeg and enabled by default in Tutor. Now, persistent grades are required.

If you are not using Tutor, and have not turned on persistent grades in your installation yet, grades will disappear from learners’ Progress pages and in Instructors’ data downloads when you upgrade to Olive. You must follow the instructions in Migrating to Persistent Grading for grades to appear. This process can take a significant amount of time, depending on how many graded problems are in your installation, and how long those grades take to be calculated. While we recommend this be run before the upgrade, to ensure learners experience no disruptions to their Progress pages, it will still work if it is run after the upgrade.

Learning MFE is now required

The Learning Micro Frontend (MFE) is no longer optional, and must be run as part of your installation. In Tutor, this means that the MFE plugin must be installed and enabled.

The Learning MFE has been the default since the Maple release, with a setting that allowed for opting out. The setting courseware.use_legacy_frontend has been removed. (See Deprecations & Removals for more).

MFE settings are no longer supported in Tutor configuration

Instead, MFE runtime configuration support should now be used to manage MFE settings. See the Upgrade note for specific MFE variables that have been removed.

JWT access tokens expire in 1 hour

The default expiration for JWT access tokens was changed from ten hours to one hour. This default setting can be overriden now, by setting JWT_ACCESS_TOKEN_EXPIRE_SECONDS.

Learner Experiences

Authentication Micro-frontend (MFE)

The Authentication MFE is responsible for the login, registration and password reset functionality. It is enabled by default in Olive and has all the same features as the legacy login and registration pages. You can revert to the legacy experience by setting FEATURES['ENABLE_AUTHN_MICROFRONTEND'] to False. Although the deprecation process for the legacy experiences has not yet started, they could be removed as soon as the next release, Palm.

The authentication Micro-frontend

There are a number of settings that affect this experience. See the Authentication MFE README for a complete list.

Discussions Micro-frontend (MFE)

The Discussions MFE is included in the Olive release and enabled by default. You can control which learners will see it with the waffle flag discussions.enable_discussions_mfe. To configure course discussions, the Course Authoring Micro-frontend (MFE) must be enabled as well. Although the deprecation process for the legacy discussion experiences has not yet started, they could be removed as soon as the next release, Palm.

Learner view of Discussions Micro-frontend

See the New discussions forum experience wiki page for a detailed explanation of new and improved functionality.

Known issues: Discussions MFE (rendered in Discussions tab) uses tinyMCE v5 which is a different text editor compared to the in-line discussions. As a result, there are some incompatibilities:

  1. Hyperlinks created in MFE do not appear in in-line discussions

  2. Images uploaded in MFE do not appear in in-line discussions in some cases

  3. Code formatted in MFE does not appear formatted in in-line discussions

Other Learner Experience changes

Instructor Experiences

Course Authoring Micro-frontend (MFE)

The Course Authoring Micro-frontend is included and enabled by default in the Olive release, but only the Pages & Resources feature is turned on. The MFE can be disabled by setting COURSE_AUTHORING_MICROFRONTEND_URL to False. The Course Authoring MFE also allows for new course editors in Studio, although only the new Text / HTML Editor is production ready. More details on each of these features are below, and in the Course Authoring MFE README.

Pages & Resources

Part of the Course Authoring Micro-frontend (MFE), when this feature is enabled course authors can now get to the Pages & Resources view from the Content menu (it replaces the “Pages” menu item). This is a modular interface for settings for various course applications and tools. Depending on which ones are enabled, they can include Progress, Discussion, Notes, Wiki, Calculator, Custom pages, Proctoring, and Textbooks. The waffle flag discussions.pages_and_resources_mfe must be set to enable access to Pages & Resources.

new Pages & Resources page in Studio

Text / HTML Editor

Formerly known as the HTML Component, the newly renamed Text Component includes updates that make it even easier to include text and images in your course content. This editor is part the of Course Authoring Micro-frontend (MFE). To enable it, set the waffle flag new_core_editors.use_new_text_editor.

The newly updated editor:

  • makes incorporating special characters and symbols easier,

  • adds undo / redo actions,

  • lets you author tables without going into HTML mode,

  • makes emoticons easy to include,

  • see the wiki page New Text / HTML Editing Experience for details.

Video Editor

Part of the Course Authoring Micro-frontend (MFE), the new video editor is not production ready. If you want to experiment with it, you can enable it by setting the waffle flag new_core_editors.use_new_video_editor

new Video Editor in Studio

Discussions

An email can now be sent out to discussion moderators when content (post/response/comment) is reported. To use it, set the discussions.enable_reported_content_email_notifications waffle flag. See https://github.com/openedx/edx-platform/pull/30276 for more details.

Other Instructor Experience changes

  • Course authors can optionally set Randomized Content Blocks to display a reset option. This allows students to use the Randomize Content Block as a problem-bank for studying. See this video demo for the new user experience.

  • Upgraded TinyMCE version 4 to version 5.5.1 in Studio.

Administrators & Operators

Relevant changes to Tutor are in the Tutor Changelog.

MFE runtime configuration support

Where up until Nutmeg it was only possible to change a micro-frontend’s settings at build time, it is now possible to do so at both server and browser runtime via a new configuration mechanism. In addition to the added convenience, this significantly reduces the frequency at which MFE container images need to be rebuilt. Many operators will never have to build them to begin with, as pre-built ones can be (and are) provided, thus saving up precious time and resources on deployment.

This behavior is optional and controlled by the ENABLE_MFE_CONFIG_API Django setting in the LMS, and the APP_ID and MFE_CONFIG_API_URL MFE build-time settings. The actual runtime configuration can then be specified via the MFE_CONFIG and MFE_CONFIG_OVERRIDES variables in the LMS. (These can also be overriden via site configuration, with the effect that such configuration can be changed dynamically via the backing database.) For more details, refer to the corresponding architecture decision record.

Upgrade note

In Tutor, ENABLE_MFE_CONFIG_API is enabled and used by default by all supported MFEs. Because of it, a previously supported mechanism of setting some MFE settings via Tutor configuration is no longer available. When upgrading from Nutmeg to Olive, the following variables can no longer be set via tutor config save --set:

  • Account MFE: COACHING_ENABLED and ENABLE_DEMOGRAPHICS_COLLECTION

  • Profile MFE: ENABLE_LEARNER_RECORD_MFE

Instead, the recommended way to modify MFE settings from Olive onwards is to write a Tutor plugin and use the openedx-lms-production-settings and openedx-lms-development-settings hooks to change MFE_CONFIG or MFE_CONFIG_OVERRIDES as needed. For instance:

MFE_CONFIG["PLATFORM_NAME"] = "My Awesome Platform"
MFE_CONFIG_OVERRIDES["account"]["SITE_NAME"] = "My Awesome Site"

Also note that if you’ve maintained such a plugin prior to Olive, the following hooks are no longer available after the upgrade:

  • mfe-env-production

  • mfe-env-development

You must instead migrate your MFE settings to the LMS settings hooks as described above.

Other Operator Experience changes

  • A performance issue that occurs when using multiple themes in a docker environment was fixed by using an LRU cache when searching themes.

Features not supported in Tutor

The following Micro-frontends (MFEs) are in a “pre-alpha” state. They exist on GitHub but are not yet supported in Tutor. Additionally, they may lack key features such as support for theming, internationalization, and path-based deployments. We include mention of them because we expect all of them to be supported in the next release, Palm.

Settings and Toggles

New settings and toggles added since the Nutmeg release:

The following settings were removed:

  • DISCUSSIONS_MFE_FEEDBACK_URL

  • bypass_olx_failure

  • PersistentGradesEnabledFlag.enabled

  • course_experience.latest_update

  • course_home.course_home_use_legacy_frontend

  • courseware.microfrontend_course_team_preview

  • courseware.use_legacy_frontend

  • grades.assume_zero_grade_if_absent

  • split_library_on_studio_dashboard

Deprecations & Removals

Legacy learner experience

A few pieces of the legacy/deprecated learner experience have been removed entirely in favor of the Learning MFE experience, specifically, the outline, dates, and courseware tabs. Instead, you must run the Learning MFE, and its tabs will be used. Along with the legacy code, a few old waffle flags have been removed: course_experience.latest_update, course_experience.show_upgrade_msg_on_course_home, course_experience.upgrade_deadline_message, course_home.course_home_use_legacy_frontend, courseware.microfrontend_course_team_preview, and courseware.use_legacy_frontend.

Legacy OLX attributes translations removed

Support for importing courses that use obsolete XML attributes has been removed. Courses with attributes slug, name in course tags, display_name and id in discussion tags and attempts in problem tags, will no longer import properly. A simple import and export before upgrading will update the XML attributes. See https://github.com/openedx/public-engineering/issues/74 for more details.

Other removals/deprecations

Developer Experience

Open edX Test Course

In order to make testing your Open edX installation easier, this course and its associated libraries aim to expose as many Open edX Studio & courseware features as possible. It does so by providing example usages of various block types and by enabling various features through Advanced Settings.

Hooks Extension Framework

As part of OEP-50, the following filters were added in Olive:

  • certificate.render.started

  • cohort.change.requested.v1

  • course_about.render.started

  • dashboard.render.started.v1

  • certificate.creation.requested

Researcher & Data Experiences

  • Added analytics event on recommendation course click, edx.bi.user.recommended.course.click

  • Added many new discussion events, including

    • edx.forum.thread.edited

    • edx.forum.response.edited

    • edx.forum.comment.edited

    • edx.forum.thread.deleted

    • edx.forum.response.deleted

    • edx.forum.comment.deleted

    • edx.forum.thread.locked

    • edx.forum.thread.unlocked

    • edx.forum.thread.edited

    • edx.forum.response.edited

    • edx.forum.comment.edited

    • edx.forum.searched

Known Issues

  • The Authentication MFE contains some hard-coded mentioned of edX. We expect these will be fixed by the time Olive.2 is released.

  • The Zoom tool is not working. There is currently no plan for when this may be fixed.

  • Android app support is currently limited to Release 3.0.2 while the current release is 3.2.2. Besides bug fixes and translations improvements, the only new feature that is unavailable is customizing video download settings. (build-test-release-wg#211).

  • The default cookie banner has a hardcoded mention of edX. This should be fixed in Olive.2. (build-test-release-wg#146)

  • Student notes will load the first time a unit loads, but not on subsequent loads. (build-test-release-wg#227)

  • When deleting a file in studio, the “Learn More” link in the warning pop-up leads to a 404. (build-test-release-wg#219)

  • Links in the Notes tab are malformed and do not link to the correct unit in the course. (build-test-release-wg#233)

  • The dashboard model dialogs for unenrolling and changing email settings do not work. This should be fixed in Olive.2. (build-test-release-wg#228)

  • On the instructor dashboard, text is obscured in some data tables. (build-test-release-wg#223 and build-test-release-wg#225)