Note |
---|
See Deprecation Working Group for a high-level description of the Deprecation and Removal process and information. Although we may use this page internally as an early scratch area for proposing and evaluating items to remove, eventually it should follow the process defined in OEP-21. |
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 provides a scratch area for early discovery and evaluation of an item for deprecation and removal.
Evaluation Rubric
Ideally, all "deprecated" code should be on a progressing path to "removal". OEP-21 defines a clear process for this. However, given the already large amount of deprecated code that we have now accumulated (prior to defining the OEP process), we can use Tech Debt metrics to prioritize this list. The Contagion and Impact columns are used for this.
...
- 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. Its impact becomes a higher criterion 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)
Fix Cost
- Estimated effort on making the fix.
- Include the cost of actually deploying the fix.
Priorities based on Rubric
This spreadsheet prioritizes the below items based on the above rubric.
Items proposed for Deprecation/Removal
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. | NR stats on Prod: shoppingcart.views:donate - 345x | ||||||||||||||||||
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 |
|
Removed Prior to DEPR process
Expand | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...