Koa
The 11th Open edX release will be named Koa.
Put stuff here that we have to remember when we start packaging up for Koa. Especially important is information that system installers or operators will need to know. Please include your name when you add an item, so that we can get back to you with questions.
Timeline
The Koa release timeline is date-based rather than feature-based:
Sep 28, 2020 : community testing of the master branches, on a best effort basis.
Nov 9, 2020 : creation of the open-release/koa.master branch and the open-release/koa.alpha1 tag. New code on master after this date will not be part of Koa; only fixes will be cherry-picked to the open-release/koa.master branch.
Dec 9, 2020 : Koa release.
Installation and Operations
Service upgrades
MySQL 5.6 → 5.7 upgrade
TODO: coordinate with @Natalia Berdnikov (Deactivated) to produce upgrade notes for Juniper users.
Upgrading a MySQL docker container
As described in the official instructions, upgrading an existing MySQL 5.6 docker container is as simple as running:
docker exec mysql bash -e -c "mysql_upgrade -u root -p"
Elasticsearch 1.5.2 → 7.0 upgrade
This upgrade was canceled and Koa will still be running Elasticsearch 1.5.2. The upgrade to Elasticsearch 7.8 is scheduled for Lilac.
Other services
@Felipe Espinoza wrote a convenient script to dump the versions of the various services from the native installation: version.py
On Juniper.3, we had (source):
Service | Software | Version |
---|---|---|
System | mysql | 5.6.32 |
System | mongodb | 3.6.17 |
System | rabbitmq | 3.6.9 |
System | memcached | 1.4.25 |
System | elasticsearch | 1.5.2 |
System | node | v12.19.0 |
System | npm | 6.14.8 |
System | python | 2.7.12 |
edx-platform | python | 3.5.2 |
edx-sandbox | python | 3.5.2 |
certs | python | 2.7.12 |
discovery | python | 3.5.2 |
ecommerce | python | 3.5.2 |
insight | python | 3.5.2 |
xqueue | python | 3.5.2 |
forum | ruby | 2.5.7p206 |
forum | gem | 2.7.8 |
Cautions
Currently, celery can only support a single work queue. Routing tasks to separate queues is disabled in Koa because of difficulties with celery upgraded to 4.x.
Impact on Code
Django app Plugins
The plugins infrastructure was moved from edx/edx-platform into edx/edx-django-utils
see decision for more info @Jinder Singh (Deactivated) @Robert Raposa
Warning: As of 10/23, we are unsure of whether this change will remain or be reverted. https://openedx.atlassian.net/browse/ARCHBOM-1577
This change mostly affects the location of imports other than the LMS/CMS constants (moved from openedx/core/djangoapps/plugins or openedx/core/lib/plugins to edx_django_utils/plugins).
LinkedIn Add to Profile Configuration (and Site Configurations)
The LinkedIn Add to Profile API for certificates was updated and as a result, we were able to make some updates to our logic surrounding this functionality. The change that requires updating on your part is updating your
LinkedinAddToProfileConfiguration company_identifier
field (if you have that configuration defined). If you instead use Site Configurations to manage yourSOCIAL_SHARING_SETTINGS
, then you will want to update theLINKEDIN_COMPANY_ID.
The value will be going from a value that looks like
0_0dPSPyS070e0HsE9HNz_13_d11_
to an integer, such as1337
.
This change will allow for the Add to Profile for certificates to autofill the form and if your Company Identifier is defined, it will link to your LinkedIn page.
Credentials uses boto3
Credentials is now using boto3, and boto has been removed from its requirements. Please follow the instructions to migrate your settings from boto to boto3. @crice (Deactivated)
Credentials removed its custom s3 media storage settings in favor of the standard ones. See this commit for more details.
Changes to canonical import paths in edx-platform
Code in
edx-platform/[lms|cms|common]/djangoapps
should now be imported by its full path, relative to the root of edx-platform. For example:from student import api
should now be:
from common.djangoapps.student import api
There will be partial and temporary support for the abbreviated paths in Koa, but we encourage updating the the full paths sooner than later.
See the forum post or the ADR for details. Contact @Kyle McCormick (Deactivated) with questions.
Deprecations and Removals
Based on Koa Dates: 2020-05-28 to 2020-11-12
Deprecations
Removals
As a part of DEPR-43 work, a migration was added that will drop all tables related to
shoppingcart
.To disable forum digest features, you now just need to set the Django Setting
FEATURES['ENABLE_FORUM_DAILY_DIGEST']
to False.You used to also need to set the waffle flag
edx_discussions.enable_forum_daily_digest
to False, but that has been replaced with the Django Setting and the waffle flag has been removed in this PR. @Robert Raposa
The
COURSE_OUTLINE_PAGE_FLAG
andUNIFIED_COURSE_TAB_FLAG
feature flags have been deprecated (see PR and deprecation ticket DEPR-108). They were replaced by their negative equivalent:DISABLE_COURSE_OUTLINE_PAGE_FLAG
andDISABLE_UNIFIED_COURSE_TAB_FLAG
which default to False. Thus, if you manually set the older flags (which defaulted to True) to False, you should set the new flags to True.The symlinks in /edx/bin to python, pip, and django-admin.py for each service were removed, as a new version of virtualenv used to create the virtual environments prevents such links from working correctly (in exchange for reliably creating working environments even if the newest releases of pip and setuptools have some problems, among other optimizations and fixes). Any scripts that currently call links such as “/edx/bin/python.edxapp” should be updated to instead call the binaries targeted by such links (in the previous example, “/edx/app/edxapp/venvs/edxapp/bin/python”). The PR that removed them has some additional background notes.
Feature Changes