Deprecation/Removal Evaluation

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.

Contagion

  • 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

CategoryDeprecated CodeStill in use?Places where it's in use (if known)Viable non-deprecated alternative?

Contagion
(1-5)

Impact
(1-5)

Fix Cost (1-5)Removal Status
Authentication

External Auth

Yes (only by MIT)MITx uses CAS, which is only in external-auth. third_party_auth2

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 & registrationYes

Open edX and external auth paths.

Still default.

Logistration API

4

(default, fixes are accidentally made to old one)

53

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 ConnectYes

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)235See /wiki/spaces/PLAT/pages/160912480.

EdxRestApiClient

YesAll overOAuthAPIClient (from same package)332Uses Slumber, which isn't supported any longer.
APIsMobile's old video locker APIs Yeslatent code in mobile apps - need to be removed (Jira ticket(s) exist somewhere)Course Blocks API

3

(since REST API)

22

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.

LEARNER-2764 - Getting issue details... STATUS LEARNER-5244 - Getting issue details... STATUS

Old Discussions APIYesDesktop view of DiscussionsNewer Discussions API (used by Mobile)224
Frontend



RequireJSYesedx-platform, edx-mktgwebpack, JS153Can be done incrementally - on a page-by-page basis.
BackboneYesedx-platform, edx-mktgReact

2

55
UI Pattern Library / edx-pattern-libraryYes

edx-platform, insights, ecomerce, other repos

Bootstrap233

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.


INCR-43 - Getting issue details... STATUS

edX-ui-toolkitYesedx-platform, insightsParagon234Re-platforming work by Arch Squad means that we will be rewriting front-end code
FontAwesome webfontsYes
FontAwesome SVG312SVG is smaller size and other benefits. This involves porting from FA 4 to 5, plus using new react bindings. (in paragon or manually)
Notifications

NotifierYesBy Discussionsedx-ACE212

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-NotificationsYesBy Yonkersedx-ACE211ON HOLD. edX has agreed to own this and it can't be removed until either (1) our forked Open edX hosted instance goes away or (2) ACE reaches complete feature parity with it. (Notifications tray and in-browser notifications channel).
Courseware

Old MongoYes (a little)

Old production courses,
check with community, units tests still use the old modulestore

Yes (SplitMongo)333

DEPR-58 - Getting issue details... STATUS

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).

XModuleYessome edX learning components: video, HTML, CAPA problem, etc.XBlock145

Discovery Doc: https://docs.google.com/document/d/1t2P9i2BZKYf_pW61m

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 coursesxblock-lti-consumer122It's marked as deprecated in module/class doc strings.

OfficeMix

Low use, errors in existing blocks

OfficeMix is retired/no longer supported by Microsoft


122

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.

Course Experience waffle flags?

1??Feature Toggle reports would help.  Could be used for certain courses in Prod or Edge.
FeaturesMicrositesYesused in Open edXSites/SiteConfiguration121What does the migration look like?
Shopping cartYes. Used by (a) donations from dashboard and (b) Edge.
Ecommerce service???

DEPR-43 - Getting issue details... STATUS

NR stats on Prod:

shoppingcart.views:donate - 345x
shoppingcart.views:show_receipt - 111x
shoppingcart.views:postpay_callback - 88x

VerifiedTrackCohortYesby 229 coursesEnrollment Track Partition111

It's deprecated. Need to migrate the 229 courses.

Removal work was investigated by the Masters squad with tasks captured at VerifiedTrackCohortRemoval.

Learner Analytics DashboardNo, for a diff paid experiment that is overUnknownThe existing progress page111

Implemented for a diff paid experiment that is now over. Most of this is a giant hack that should go away.

https://github.com/edx/edx-platform/tree/master/openedx/features/learner_analytics

InfrastructureDatadogNo. edX devs don't use this anymore

221

Dependency that does not work with Python 3, so we need to get rid of this.

In progress DEPR-9 - Getting issue details... STATUS

track.backends.django.TrackingLogMaybe Open edX consumers (Stanford?)Not in edx.org
121Can be pulled out and put into a separate installable repo/app, probably.
Lettuce TestsYesedx-platform testingbok-choy133

ON HOLD. Replace both with consumer contract tests on the roadmap.

Can probably remove tests that are not useful any longer entirely.

Dark LangYesedx-platform + IDAsN/A


Currently there isn't a replacement that exists that duplicates this functionality planned or existing.
Opaque Key's deprecated methodsYes




This is only the methods from_deprecated_string and to_deprecated_string. We are not removing the old "org/course/num" slash format.
HaystackYesNotes and Discovery ...?Pure elasticsearch253Haystack 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_escapedYesedx-platform, edx-microsite, edx-themesdisplay_name_with_default
See instructions here.
1 (linter stops spread)12
  • Github search finds 32 usages.
  • Not sure if this is used by the community.
edx-ops/baked-config-secureYesanalytics jenkins jobsanalytics-secure122Stu and Joe have thought about what it would take to delete the repo.

Removed Prior to DEPR process

 Click here to expand...
Deprecated CodeStill in use?Places where it's in use (if known)Viable non-deprecated alternative?

Contagion
(1-5)

Impact
(1-5)

Fix Cost (1-5)Removal Status
Course StructuresYes

Studio's unsupported blocks,
CCX

Yes (modulestore, Course Blocks)

33
REMOVED, by Arch Squad
Annotations XModulesNo
Notes11
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.
CoffeeScriptNo
Pure Javascript


REMOVED by Learner (heart) team