openedx / openedx/openedx-platform
Audit and clean up edx-platform requirements
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 inpackage.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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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