This is a running list of APIs, apps, features, backends, etc that are "deprecated" and should be removed from the edX platform. Please add/edit this table.
...
- How likely is it to spread (via interfaces, copy-pasting, discovery)?
- If well-contained, the cost to fix it later compared to now is basically identical. It's impact becomes a higher criteria for when to fix.
- If highly contagious, it becomes harder to fix and its impact tends to increase.
Impact
- User-facing issues (bugs, missing features, unexpected behavior)
- Developer-facing issues (slower implementation, workflow issues, higher cognitive load, more things to upgrade)
DEPR tickets
OEP-21 recommends filing a DEPR ticket for each technology to be deprecated. We keep a dynamic table of those tickets here:
DEPR tickets coming up on removal
The rest of this document below tracks older deprecations before we created OEP-21.
Now Removed
Deprecated Code | Still in use? | Places where it's in use (if known) | Viable non-deprecated alternative? | Contagion | Impact | Fix Cost (1-5) | Removal Status | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Course Structures | Yes | Studio's unsupported blocks, | Yes (modulestore, Course Blocks) | 3 | 3 | REMOVED, by Arch Squad | |||||||||
Annotations XModules | No | Notes | 1 | 1 | REMOVED, by Harvard. There's a PR to remove it. We're just waiting for Hawthorn to be cut before moving forward with it. It will delete over 40K lines from edx-platform. Merged in https://github.com/edx/edx-platform/pull/18560. | ||||||||||
CoffeeScript | No | Pure Javascript | REMOVED by Learner team | ||||||||||||
PasswordHistory | Not for edx.org | Yonkers | Could be replaced using a standard plugin Django validator | 1 | 1 | 1 |
|
To Be Deprecated/Removed
Category | Deprecated Code | Still in use? | Places where it's in use (if known) | Viable non-deprecated alternative? | Contagion | Impact | Fix Cost (1-5) | Removal Status | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Authentication | Yes (only by MIT) | MITx uses CAS, which is only in external-auth. | third_party_auth | 2 | 3 (preventing removal of old login/reg) | 2 | We have DEPR-6 for this. Have MIT's blessing. Studio redirects to LMS instead of maintaining a separate login and registration flow. | |||||||||||||||||
Old login & registration | Yes | Open edX and external auth paths. Still default. | Logistration API | 4 (default, fixes are accidentally made to old one) | 5 | 3 | by Diana Huang as part of /wiki/spaces/HACK/pages/600375541 PR: https://github.com/edx/edx-platform/pull/18321 | |||||||||||||||||
django-oauth2-provider (DOP) / OpenID Connect | Yes | OAuth clients, which should be removed if inactive and shifted to DOT if active most of our IDAs are using DOP | django-oauth2-toolkit (DOT) | 2 | 3 | 5 | See /wiki/spaces/PLAT/pages/160912480. | |||||||||||||||||
EdxRestApiClient | Yes | All over | OAuthAPIClient (from same package) | |||||||||||||||||||||
APIs | Mobile's old video locker APIs | Yes | latent code in mobile apps - need to be removed (Jira ticket(s) exist somewhere) | Course Blocks API | 3 (since REST API) | 2 | 2 | Mobile apps updated to use the new Course Blocks API 3 years ago. They just need to remove references and latent code to the old API. Discovery needed to make sure that there isn't data that the apps are relying on.
| ||||||||||||||||
Old Discussions API | Yes | Desktop view of Discussions | Newer Discussions API (used by Mobile) | 2 | 2 | 4 | ||||||||||||||||||
Frontend | RequireJS | Yes | edx-platform, edx-mktg | webpack, JS | 1 | 5 | 3 | Can be done incrementally - on a page-by-page basis. | ||||||||||||||||
Backbone | Yes | edx-platform, edx-mktg | React | 2 | 5 | 5 | ||||||||||||||||||
UI Pattern Library / edx-pattern-library | Yes | edx-platform, insights, ecomerce, other repos | Bootstrap | 2 | 3 | 3 | Hard to (1) know which HTML elements are used by pattern library versus not - since there's no namespacing, (2) colors/fonts/etc are different.
| |||||||||||||||||
edX-ui-toolkit | Yes | edx-platform, insights | Paragon | 2 | 3 | 4 | Re-platforming work by Arch Squad means that we will be rewriting front-end code | |||||||||||||||||
FontAwesome webfonts | Yes | FontAwesome SVG | SVG is smaller size and other benefits. This involves porting from FA 4 to 5, plus using new react bindings. (in paragon or manually) | |||||||||||||||||||||
Notifications | Notifier | Yes | By Discussions | edx-ACE | 2 | 1 | 2 | ON HOLD. Open Source community has been building on it. Has to run inefficient queries on a badly optimized DB. Product has said that we can't remove this until its functionality is duplicated elsewhere. | ||||||||||||||||
edx-Notifications | Yes | By Yonkers | edx-ACE | 2 | 1 | 1 | ON HOLD. edX has agreed to own this and it can't be moved until ACE reaches complete feature parity with it. (Notifications tray and in-browser notifications channel). | |||||||||||||||||
Courseware | Old Mongo | Yes (a little) | Old production courses, | Yes (SplitMongo) | 3 | 3 | 3 | ON HOLD, pending BlockStore planning work. We have a doc on a potential /wiki/spaces/~dormsbee/pages/525861934 for when the time comes. # of course runs using old mongo: 615 We will want a backwards compatible release that enables migration for Open Source installations to Split (and then probably BlockStore). | ||||||||||||||||
XModule | Yes | some edX learning components: video, HTML, CAPA problem, etc. | XBlock | 1 | 4 | 5 | Unification of descriptors and classes, conversion of handlers, serialization is different. Can shave off some of the more painful side of things in smaller chunks. | |||||||||||||||||
lti_module.py | ? | on edx.org in a lot of older courses | xblock-lti-consumer | 1 | 2 | 2 | It's marked as deprecated in module/class doc strings. | |||||||||||||||||
OfficeMix | Low use, errors in existing blocks | OfficeMix is retired/no longer supported by Microsoft | 1 | 2 | 2 | Removed in instructor docs (DOC-3973). This code is installed remotely. The endpoint that it contacts no longer exists, so we can be heavy-handed about removing it. | ||||||||||||||||||
Features | Microsites | Yes | used in Open edX | Sites/SiteConfiguration | 1 | 2 | 1 | What does the migration look like? | ||||||||||||||||
Shopping cart | Yes. Used by (a) donations from dashboard and (b) Edge. | Ecommerce service | ? | ? | ? | Follow up with ecommerce guild about what is still using shopping cart. | ||||||||||||||||||
VerifiedTrackCohort | Yes | by 229 courses | Enrollment Track Partition | 1 | 1 | 1 | It's deprecated. Need to migrate the 229 courses. Removal work was investigated by the Masters squad with tasks captured at VerifiedTrackCohortRemoval. | |||||||||||||||||
Infrastructure | Datadog | No. edX devs don't use this anymore | New Relic, Splunk. Metrics gathering middleware that is used for New Relic (monitoring-utils) | 2 | 2 | 1 | Dependency that does not work with Python 3, so we need to get rid of this. In progress
| |||||||||||||||||
track.backends.django.TrackingLog | Maybe Open edX consumers (Stanford?) | Not in edx.org | 1 | 2 | 1 | Can be pulled out and put into a separate installable repo/app, probably. | ||||||||||||||||||
Lettuce Tests | Yes | edx-platform testing | bok-choy | 1 | 3 | 3 | ON HOLD. Replace both with consumer contract tests on the roadmap. Can probably remove tests that are not useful any longer entirely. | |||||||||||||||||
Dark Lang | Yes | edx-platform + IDAs | N/A | Currently there isn't a replacement that exists that duplicates this functionality planned or existing. | ||||||||||||||||||||
Opaque Key's deprecated methods | Yes | This is only the methods from_deprecated_string and to_deprecated_string. We are not removing the old "org/course/num" slash format. | ||||||||||||||||||||||
Haystack | Yes | Notes and Discovery ...? | Pure elasticsearch | 2 | 5 | 3 | Haystack is forcing us to stay on an ancient version of elasticsearch. And haystack itself is no longer maintained. We should just use direct elasticsearch instead of the haystack abstraction layer. | |||||||||||||||||
display_name_with_default_escaped | Yes | edx-platform, edx-microsite, edx-themes | display_name_with_default See instructions here. | 1 (linter stops spread) | ?1 | 2 |
|
...