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 overridden 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.
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.
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:
Hyperlinks created in MFE do not appear in in-line discussions
Images uploaded in MFE do not appear in in-line discussions in some cases
Code formatted in MFE does not appear formatted in in-line discussions
Other Learner Experience changes#
add reset option to the Randomized Content Block. See this video demo for the new user experience.
“Live” tab displayed on course when live content is enabled (for example, Zoom or Big Blue Button). More information about Zoom integration is available in two blog posts in the wiki, Course-Level Zoom Integration and Program & Degree level Zoom Integration
Instructor Experiences#
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.
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
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 openedx/edx-platform#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 overridden 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
andENABLE_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 openedx/public-engineering#74 for more details.
Other removals/deprecations#
The Molecular Structure Problem type was removed.
Removed the last vestiges of the save option from anonymous_id_for_user.
The frontend-learner-portal-base repo has been archived. Any MFEs that depend on this library have been updated.
Removed all dependencies on django-ratelimit-backend library.
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)