Skip to content

[DEPR]: All Insights related code, configuration, docs and repositories #221

@kdmccormick

Description

@kdmccormick

(@bmtcril wrote this up originally)

This ticket has been accepted, and the various steps will be carried out in the following sub-tickets:

Sub-tickets

Proposal Date

2023-12-13

Ticket Acceptance Date

2024-01-24

Technology Removal Date

Ongoing

First Open edX Named Release Without This Functionality

This will not be tagged for Redwood, even if no other changes happen.

Rationale

Insights as a product has been largely unsupported for several years, and the lack of community uptake on the project offers little incentive for anyone to take over maintenance. Effectively, the software required to run the product is entirely out of support (the project runs on Python 2.7, requirements haven't been updated in 2-3 years, likely because most packages no longer support 2.7).

Even without a fully released replacement, we should not be suggesting this as a solution.

Note: This is different from the Insights repository that was deprecated in 2019: https://github.com/edx-unsupported/insights

Removal

Insights is a large project that touches many things. This list is known to be incomplete and will grow over the deprecation project, but should give a good cross-section of the work:

The following repositories should be moved to the edx-unsupported organization and clearly labeled as deprecated:

  • edx-analytics-pipeline
  • edx-analytics-dashboard
  • edx-analytics-data-api
  • edx-analytics-data-api-client
  • edx-analytics-configuration
  • edx-analytics-exporter

References to those projects and Insights itself exist in at least the following locations:

edx-platform has settings-gated links to Insights, especially in the Instructor Dashboard, we should make sure that all of those settings make sense for plugging in replacements systems. Settings in edx-platform are:

  • ANALYTICS_API_KEY
  • ANALYTICS_API_URL
  • ANALYTICS_DASHBOARD_URL
  • ANALYTICS_DASHBOARD_NAME

Additionally, calls to the Analytics API should be removed or abstracted such that they can feasibly be reused by replacement systems.

The following repositories (and possibly more) have references to Insights that need to be understood, and made generic enough for replacements to use or (eventually) removed:

  • edx-enterprise-data
  • frontend-app-admin-portal
  • paragon
  • tubular
  • devstack
  • configuration
  • edx-documentation

Localized strings exist in at least edx-platform and ecommerce that need to be revisited or removed.

Replacement

There are community based replacement systems such as Cairn, and home grown solutions that providers have been using instead of Insights for years. While the new Aspects system is not yet generally available, it should be by the time this ticket is ready for work.

Even if there were no viable replacements, it is neither reasonable nor safe to suggest that Insights, in its current state, is a viable solution for operators to adopt.

Deprecation

Given the scope of the work of this project and potential difficulties of migration for large operators that rely on Insights, a tiered deprecation is suggested, in this order:

  • Complete a survey of existing use cases in edx-enterprise-data and frontend-app-admin-portal (and any other relevant places that come up) that seem to have hard dependencies on Insights, determine a course of action for each (deprecate, generalize, remove the links, etc)
  • Remove Insights from Open edX releases
  • Move the repositories listed above to edx-unsupported and clearly label them as deprecated. They should still be usable, but it should also be made clear that they are at-your-own-risk.
  • Update documentation references to clearly state that they are historical / deprecated, or remove
  • Complete generalization work such as replacing hard coded links or URL paths with settings

This is where breaking changes start...

  • Complete removal work of things which cannot be generalized
  • Remove remaining references in operational repos such as tubular, devstack, and configuration

Migration

For almost all installations no migration will be necessary. For those using Insights the migration will depend on whether they wish to continue using it or move to a new system. The steps for migrating to different new systems are outside the scope of this DEPR. The rest of these steps outline the process of keeping Insights running while this ticket is being worked on, and beyond.

During the non-breaking-changes steps the migrations would be things like updating settings / setting names. Deployment steps for the project may need to change if the deployment method doesn't follow GitHub redirects. Documentation links may need to be updated to point to provider-specific locations.

For breaking changes, most things in tubular, devstack, and configuration are either not working/unused or able to be pulled out of those locations and run from different locations.

Removal of code paths which cannot be generalized (such as explicit calls to analytics-api) can be delayed until suitable pluggability functionality can be added, or the code can be forked to support the use case if the Insights functionality is critical to the repository.

Additional Info

See #36 for additional context

Metadata

Metadata

Assignees

Labels

deprProposal for deprecation & removal per OEP-21epicLarge unit of work, consisting of multiple tasks

Type

No type

Projects

Status

Breaking Changes Unblocked

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions