Marking dependencies as optional, and removing redundant ones
- Dominant language
- Jupyter Notebook
- Stars
- 13.3k
- Forks
- 5.8k
- Avg merge
- 6d 11h
- Merged PRs (30d)
- 7
Description
When `notebook` is added as a dependency in [poetry](https://python-poetry.org/), it significantly increases the runtime of a `poetry update`, from ~5s to ~120s, due to the many required dependencies.
I noticed that a couple of these could redesignated as optional; they aren't part of core functionality, and are used in only one or two places:
- `prometheus-client`
- `argon2-cffi`
- `send2trash`
Furthermore, it appears that `pyzmq` could be removed altogether, because [this reference to an old Tornado 5 issue](https://github.com/jupyter/notebook/blob/160c27d3c23dafe8b42240571db21b0d5cbae2fe/setup.py#L114-L116) should not be relevant anymore.
Contributor guide
Research direction
Start with the dependency declarations in setup.py and locate the usage sites for prometheus-client, argon2-cffi, send2trash, and pyzmq. Check that optional dependencies remain available where used, pyzmq is unnecessary, and dependency resolution improves without breaking core functionality.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- jupyter-notebook, python
- Domain
- build-system
- Issue type
- Refactor
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100