openedx / openedx/openedx-platform

Audit and clean up edx-platform requirements

Open
#31,505 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
8.2k
Forks
4.4k
Avg merge
6d 18h
Merged PRs (30d)
42

Description

Background

As part of https://github.com/openedx/wg-developer-experience/issues/146, we want to optimize pip install for edx-platform. The more packages that edx-platform requires, the longer it will take pip install to run, the more bandwidth it'll use, and the larger the resulting image will be.

Tasks

Find requirements that could either be (a) removed from requirements, or (b) moved from base requirements out to one of the other requirements contexts, like development.

Some ideas:

  • Devise a way to check whether each edx-platform requirement (that is, the Python requirement lists in requirements/, and the JS requirement lists in package.json) is actually being used by the application.
  • Manually scan the list of requirements.:
    • Look for things that seem like they might be unused.
    • Look for things in base.txt that look like they belongs in development.txt.
    • Look for things in package.json that are marked as dependencies but should be devDependencies.
    • Check out the "via" comments, which tell you where the requirements are coming from--oftentimes, a change may need to be made in a package repository in order to remove a transitive dependency.

As you find requirements that could be removed or moved, either make PRs yourself or write up an issue for our backlog. Add those PRs and issues here:

  • Remove libsass from base requirements
    • openedx/edx-platform#31766
    • openedx/edx-ora2#1986
  • openedx/edx-platform#31768

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the Python requirement lists in requirements/, especially edx/base.txt and edx/development.txt, alongside package.json. Inspect the listed dependencies and their "via" comments to identify unused packages or dependencies that belong in another context. Done means producing concrete removal or relocation PRs, or backlog issues, and linking them in this issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, python
Domain
build-system, tooling
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.