diff --git a/source/community/release_notes/index.rst b/source/community/release_notes/index.rst index 2a9b6368..e491d80d 100755 --- a/source/community/release_notes/index.rst +++ b/source/community/release_notes/index.rst @@ -11,7 +11,7 @@ The *Open edX Platform Release Notes* provide information about releases, migrat .. toctree:: :maxdepth: 2 - Redwood: The next release - Quince: The current release + Redwood: The current release + Sumac: The next release named_release_branches_and_tags old_releases diff --git a/source/community/release_notes/old_releases.rst b/source/community/release_notes/old_releases.rst index 1b0a8ea4..7b411c25 100644 --- a/source/community/release_notes/old_releases.rst +++ b/source/community/release_notes/old_releases.rst @@ -11,6 +11,7 @@ fixes and features. These older releases will not receive any of those. .. toctree:: :maxdepth: 2 + quince palm olive nutmeg diff --git a/source/community/release_notes/redwood.rst b/source/community/release_notes/redwood.rst index eda81b03..17bee4c5 100644 --- a/source/community/release_notes/redwood.rst +++ b/source/community/release_notes/redwood.rst @@ -13,29 +13,279 @@ These are the release notes for the Redwood release, the 18th community release Breaking Changes **************** +- Deployers must ensure that their + ``JWT_AUTH['JWT_PRIVATE_SIGNING_JWK']`` Django setting in LMS + contains the full complement of private key ``numbers.*`` -Learner Experiences -******************* + - Background: In LMS, we switched from the pyjwkest + library to PyJWT for signing JWTs. (pyjwkest is now unmaintained.) + However, PyJWT has stricter requirements for the private key in + ``JWT_PRIVATE_SIGNING_JWK``. Before you upgrade to Redwood, you + will need to update this key using a script. Otherwise, JWT + signing will fail, and users will be unable to log in. + - Steps: -Instructor Experiences -********************** + 1. Locate ``JWT_PRIVATE_SIGNING_JWK`` in your deployment + configuration. + 2. Check if the JSON contains all of the following params: ``p``, + ``q``, ``dp``, ``dq``, and ``qi``. If it does, you don’t need + to do anything further. Otherwise, continue. + + 3. In your edx-platform virtualenv, run + ``python3 scripts/jwk-precompute-params.py`` and follow the + prompts. (It will ask you to paste in the current JSON.) + + 4. Update your config’s ``JWT_AUTH['JWT_PRIVATE_SIGNING_JWK']`` + with the output of the script. + + 5. You may wish to compare the contents of the private key before + and after running the script, and verify that the only changes + it has made to the contents of the JSON are that the ``p``, + ``q``, ``dp``, ``dq``, and ``qi`` params have been added. (Some + or all may already have been present.) + + - Notes: + + 1. This should be done while you are still running Quince—it is + safe to do ahead of the upgrade, and should not have any + visible effect at that time. + + 2. This key must be handled very carefully. Anyone in possession + of the key may impersonate users. + +- `studio_home.enable_global_staff_optimization flag no longer works in Studio MFE `_ + - Background: This flag works for the legacy Studio Home, improving performance by + adding an organization search bar. This flag does not work in the Studio Home MFE, as it + is not needed within the MFE. The MFE already have a search bar and pagination, which + improves performance for those home pages with lots of courses. + +Learner & Instructor Experiences +******************************** + +For in-depth information on new learner and instructor facing features in the Redwood release, please see the Feature-Based Release Notes. Instructions on how to enable those features are as follows. + +Courseware Sidebar +================== + +To enable the new Courseware Sidebar, set the ``courseware.enable_navigation_sidebar`` waffle flag to True. + +Connect Teams in a course to Content Groups +=========================================== + +#. Go to your site's Django Admin Panel + +#. Enable the teams feature by turning on the waffle flag: ``teams.enable_teams_app`` + +#. Then, turn on the ``teams.content_groups_for_teams`` waffle flag for everyone or specific courses with a waffle flag course overrides + +Make Sections available independently of the course outline +=========================================================== + +Enable this feature flag: ``FEATURES["ENABLE_HIDE_FROM_TOC_UI"] = True`` to your deployment configurations to enable the feature system-wide. Administrators & Operators ************************** +Settings and Toggles +==================== + +Waffle flags added In Redwood: + +* `ANONYMOUS_SURVEY_REPORT `_ +* `ENFORCE_SESSION_EMAIL_MATCH `_ +* `FEATURES['ENABLE_BLAKE2B_HASHING'] `_ +* `FEATURES['ENABLE_CERTIFICATES_INSTRUCTOR_MANAGE] `_ +* `FEATURES['ENABLE_COURSEWARE_SEARCH_VERIFIED_REQUIRED'] `_ +* `FEATURES['ENABLE_GRADING_METHOD_IN_PROBLEMS'] - LMS `_ +* `FEATURES['ENABLE_GRADING_METHOD_IN_PROBLEMS'] - CMS `_ +* `FEATURES['ENABLE_HIDE_FROM_TOC_UI'] `_ +* `FEATURES['ENABLE_HOME_PAGE_COURSE_API_V2'] `_ +* `FEATURES['ENABLE_LTI_PII_ACKNOWLEDGEMENT'] `_ +* `FEATURES['ENABLE_SEND_XBLOCK_LIFECYCLE_EVENTS_OVER_BUS'] `_ +* `FEATURES['SEND_LEARNING_CERTIFICATE_LIFECYCLE_EVENTS_TO_BUS'] `_ +* `JWT_AUTH_ADD_KID_HEADER: `_ +* `SURVEY_REPORT_ENABLE `_ +* `agreements.enable_lti_pii_acknowledgement `_ +* `commerce.transition_to_coordinator.checkout `_ +* `commerce.transition_to_coordinator.refund `_ +* `content_tagging.disabled `_ +* `contentstore.new_studio_mfe.use_new_certificates_page `_ +* `contentstore.new_studio_mfe.use_new_group_configurations_page `_ +* `contentstore.new_studio_mfe.use_new_textbooks_page `_ +* `course_home.new_discussion_sidebar_view `_ +* `teams.content_groups_for_teams `_ +* `courseware.always_open_auxiliary_sidebar `_ +* `courseware.disable_navigation_sidebar_blocks_caching `_ +* `courseware.discovery_default_language_filter `_ +* `courseware.enable_navigation_sidebar `_ +* `discussions.enable_reported_content_notifications `_ +* `notifications.enable_coursewide_notifications `_ +* `notifications.enable_email_notifications `_ +* `notifications.enable_notifications_filters `_ +* `notifications.enable_ora_staff_notifications `_ +* `student.redirect_to_courseware_after_enrollment `_ +* `studio.enable_course_update_notifications `_ +* `user_tours.tours_disabled `_ +* `video_config.transcript_feedback `_ +* `video_config.xpert_translations_ui `_ +* `ENABLE_AUTO_GENERATED_USERNAME `_ +* `EDX_DRF_EXTENSIONS[ENABLE_JWT_AND_LMS_USER_EMAIL_MATCH] `_ +* `FEATURES['ENABLE_ORA_SELECTABLE_LEARNER_WAITING_REVIEW'] `_ +* `enterprise.enterprise_groups_v1 `_ +* `enterprise.feature_prequery_search_suggestions `_ +* `EVENT_BUS_PRODUCER_CONFIG['org.openedx.content_authoring.course.catalog_info.changed.v1'] `_ +* `EVENT_BUS_PRODUCER_CONFIG['org.openedx.learning.course.unenrollment.completed.v1'] `_ +* `EVENT_BUS_PRODUCER_CONFIG['org.openedx.learning.xblock.skill.verified.v1'] `_ + + +Other Operator Changes +====================== + +- The default minimum password length has been updated from 2 + characters to 8 characters. `(PR) `_. + + - For users with an existing password, this change alone will not + force them to update it. However if they reset their password or go + to change it, they'll have to conform to the new guidelines. If you + would like to force people to update their password, you + should take a look at `the password_policy plugin and its settings `_ + +- The Credentials service `updated some requirements `_ and may have implications for anyone + who has a massive ``usersocialauth`` table.  This is because that + table grows endlessly, and the migrations on the table caused by + updating the ``social-auth-app-django`` package can run out of + memory. If maintainers have migration failures on this upgrade, they + should run the management command `truncate_social_auth `_. + + - This will remove all entries from the ``usersocialauth`` table + that haven't been updated in 90 days, which makes the size of the + table tractable for the dependency's migration. This is harmless + in the ``Credentials`` IDA. + +- The scripts related to user retirement across all services + have been moved to the ``edx-platform`` repository. If you’ve been + using the `unsupported tubular repository `_ to run retirement scripts you should update + your code. + + - Relevant Tickets + + - `Move user retirement code to edx-platform and drop it from Tubular `_. + - `Move user retirement scripts code from the tubular repo `_. + - `Deprecate User Retirement Scripts `_. + +- edx-platform and cs_comment_service Mongo Upgrades + - Operators will need to `update their Mongo databases to Mongo 7 `_ to ensure their deployments don't break in the future. + - Operators will need to update their forums' Ruby version from 3.0 to 3.3. + - If you're running Tutor and your Mongo/Ruby are in Tutor, they will get automatically upgraded. + - `chore: add mongo 7 to testing matrix `_. + - `build: Build with newer ruby and mongo versions. `_. + +- The Redwood release includes the `Studio Course Search [BETA] `_, which is disabled by default + as it depends on a new search engine, Meilisearch. We encourage + operators to install Meilisearch, test out this feature, and give us + feedback on the viability of using Meilisearch as a replacement for + Elasticsearch in future releases of Open edX. Here’s how to enable it: + + - For tutor-based deployments, install the `tutor-contrib-mailsearch `_ plugin, and apply the + changes to your deployment. See that plugin’s README for details. + Note in particular that the hostname configured as + ``MEILISEARCH_PUBLIC_HOST`` must be resolvable on the public + internet. + + - If you are not using Tutor, you’ll need to install Meilisearch + manually (or use the cloud product) and explicitly set `the related config variables `_ in the + CMS as well as set ``MEILISEARCH_ENABLED=true`` in the Course + Authoring MFE settings. + + - Whether or not you're using Tutor, you'll need to create and populate the search index. To do so, you must run a one-time + command from the CMS shell: + ``python manage.py cms reindex_studio --experimental``. This + command may take a while if you have a lot of courses and/or + libraries in Studio; it will display regular progress indicators + while it is running. We are interested in hearing how long it + takes for you - please share your experience (see next bullet). + This command reads from MySQL/MongoDB but does not write to them; + it only writes to Meilisearch. Once the indexing has completed, it + should not be necessary to run it again; from that point forward, + the indexes will be updated automatically as needed. + + - Please share your feedback about Meilisearch, indexing, and + operations in `this Discourse thread `_ or the `#ops `_ Slack channel. Please share feedback about + the new course search feature in general `in the discussion forums `_ or in the `#wg-product-core `_ Slack channel. + Deprecations & Removals *********************** +- Badges app has been deprecated and removed from ``edx-platform``. + See `[DEPR]: lms/djangoapps/badges `_ . +- - In edxapp, the Waffle switch ``ip.legacy`` is removed. See `[DEPR]: legacy_ip code and Waffle switch `_ . + + - Any deployment that has been relying on this legacy IP address + option will need to switch to setting + ``CLOSEST_CLIENT_IP_FROM_HEADERS`` appropriately. See `Nutmeg Announcement `_ for + details. +- Asset Processing (webpack, collectstatic, etc.) using Paver Commands in edx-platform is now Deprecated and will not be available in Sumac + + - `[DEPR] Asset processing in Paver`_. + - *Non deployment paver commands will be removed by Sumac* + +- The ``django-splash`` capability was removed from ``edx-platform`` and the relevant code has been archived. + + - https://github.com/openedx/public-engineering/issues/224 + +Flags and toggles removed in Redwood +==================================== + +* ``accomplishments_shared`` field is removed from payloads and settings +* ``ENABLE_OPENBADGES``, ``ENABLE_SEND_XBLOCK_EVENTS_OVER_BUS`` are no longer available for configuration in ``FEATURES`` +* ``BADGING_BACKEND``, ``BADGR_BASE_URL``, ``BADGR_ISSUER_SLUG``, +* ``BADGR_USERNAME``, ``BADGR_PASSWORD``, +* ``BADGR_TOKENS_CACHE_KEY``, ``BADGR_TIMEOUT``, +* ``BADGR_ENABLE_NOTIFICATIONS``, ``SEND_CERTIFICATE_REVOKED_SIGNAL``, +* ``blockstore.use_blockstore_app_api``, +* ``contentstore.enable_copy_paste_units``, +* ``course_apps.proctoring_settings_modal_view``, +* ``course_live.enable_big_blue_button``, +* ``course_live.enable_course_live``, +* ``courseware.learning_assistant``, +* ``discussions.enable_learners_stats``, +* ``discussions.enable_learners_tab_in_discussions_mfe``, +* ``discussions.enable_moderation_reason_codes``, +* ``discussions.enable_reported_content_email_notifications``, +* ``learner_recommendations.enable_course_about_page_recommendations``, +* ``learner_recommendations.enable_dashboard_recommendations``, +* ``student.enable_2u_recommendations``, +* ``student.enable_amplitude_recommendations``, +* ``student.enable_fallback_recommendations``, +* ``blockstore.use_blockstore_app_api`` are also not configurable anymore. Developer Experience ******************** +- Asset Processing (webpack, collectstatic, etc.) using Paver Commands in edx-platform is now Deprecated and will not be available in Sumac + + - - `[DEPR] Asset processing in Paver`_. + - Non deployment paver commands will be removed by Sumac + +.. _[DEPR] Asset processing in Paver: https://github.com/openedx/edx-platform/issues/31895 + Researcher & Data Experiences ***************************** +`Aspects `_ +is an analytics system for the Open edX platform, bringing actionable data +about course and learner performance to instructors and site operators. It is primarily +a Tutor plugin that ties together data from the Open edX learning management system +and Studio using open source tools to aggregate and transform learning traces into data +visualizations. + +See the `Aspects configuration documentation `_ +to learn about setting up Aspects for your production environment. Known Issues ************ + +Please refer to `this board `_ for known issues with Redwood. diff --git a/source/community/release_notes/sumac.rst b/source/community/release_notes/sumac.rst new file mode 100755 index 00000000..78a7c1e3 --- /dev/null +++ b/source/community/release_notes/sumac.rst @@ -0,0 +1,48 @@ +Open edX Sumac Release +###################### + +These are the release notes for the Sumac release, the 19th community release of the Open edX Platform, spanning changes from May 10, 2024 to October 09, 2024. You can also review details about `earlier releases`_ or learn more about the `Open edX Platform`_. + +.. _earlier releases: https://edx.readthedocs.io/projects/edx-developer-docs/en/latest/named_releases.html +.. _Open edX Platform: https://openedx.org + +.. contents:: + :depth: 1 + :local: + +Breaking Changes +**************** + + +Learner Experiences +******************* + + +Instructor Experiences +********************** + + +Administrators & Operators +************************** + +Settings and Toggles +==================== + + +Other Operator Changes +====================== + + +Deprecations & Removals +*********************** + + +Developer Experience +******************** + +Researcher & Data Experiences +***************************** + + +Known Issues +************ diff --git a/source/index.rst b/source/index.rst index c54ccef4..b585dfeb 100644 --- a/source/index.rst +++ b/source/index.rst @@ -43,7 +43,7 @@ Open edX Documentation :maxdepth: 1 :caption: Open Source Community - Current Release: Quince + Current Release: Redwood All Release Notes How to Contribute OEPs (Open edX Proposals): Community Decision Documents