-
Notifications
You must be signed in to change notification settings - Fork 185
Description
Describe the bug
Installing this library also installs all libraries used for local development (list below). This makes it impossible to use different versions of these tools in development. It also requires installing all of these tools in production for the bot to function, which unnecessarily bloats the installation size by over 80MB (on windows)
Reproducing steps
Install the library as directed in the documentation, pip install discord-py-interactions
What's normally expected
The library itself and only code necessary for running the bot is downloaded and installed.
What actually happened
Development tools for this project are also installed.
If pip is used, other local tools are overwritten with the specific versions used in this project. If poetry is used, the tools are either downgraded to the version pinned in this library, or an error is generated when there is a version conflict. Either way devs using this library cannot use their own tooling.
Output from pip:
Successfully installed Jinja2-3.0.3 MarkupSafe-2.0.1 Pygments-2.10.0 Sphinx-4.1.2 alabaster-0.7.12 babel-2.9.1 backports.entry-points-selectable-1.1.1 black-21.11b1 certifi-2021.10.8 cfgv-3.3.1 charset-normalizer-2.0.9 click-8.0.3 colorama-0.4.4 discord-py-interactions-4.0.1 distlib-0.3.4 docutils-0.17.1 filelock-3.4.0 identify-2.4.0 imagesize-1.3.0 isort-5.9.3 nodeenv-1.6.0 orjson-3.6.3 packaging-21.3 pathspec-0.9.0 platformdirs-2.4.0 pre-commit-2.16.0 pyparsing-3.0.6 regex-2021.11.10 requests-2.26.0 six-1.16.0 snowballstemmer-2.2.0 sphinx-hoverxref-1.0.0 sphinxcontrib-applehelp-1.0.2 sphinxcontrib-devhelp-1.0.2 sphinxcontrib-htmlhelp-2.0.0 sphinxcontrib-jsmath-1.0.1 sphinxcontrib-qthelp-1.0.3 sphinxcontrib-serializinghtml-1.1.5 tomli-1.2.3 urllib3-1.26.7 virtualenv-20.10.0
pipdeptree shows that only aiohttp, and orjson are necessary for this package to function, the rest of them should be removed and instead placed in an extra dependency (e.g. pip install discord-interactions[dev]):
discord-py-interactions==4.0.1
- aiohttp [required: ==3.7.4.post0, installed: 3.7.4.post0]
- async-timeout [required: >=3.0,<4.0, installed: 3.0.1]
- attrs [required: >=17.3.0, installed: 21.2.0]
- chardet [required: >=2.0,<5.0, installed: 4.0.0]
- multidict [required: >=4.5,<7.0, installed: 5.2.0]
- typing-extensions [required: >=3.6.5, installed: 3.10.0.2]
- yarl [required: >=1.0,<2.0, installed: 1.6.3]
- idna [required: >=2.0, installed: 3.2]
- multidict [required: >=4.0, installed: 5.2.0]
- black [required: ==21.11b1, installed: 21.11b1]
- click [required: >=7.1.2, installed: 8.0.3]
- colorama [required: Any, installed: 0.4.4]
- mypy-extensions [required: >=0.4.3, installed: 0.4.3]
- pathspec [required: >=0.9.0,<1, installed: 0.9.0]
- platformdirs [required: >=2, installed: 2.4.0]
- regex [required: >=2021.4.4, installed: 2021.11.10]
- tomli [required: >=0.2.6,<2.0.0, installed: 1.2.3]
- typing-extensions [required: >=3.10.0.0, installed: 3.10.0.2]
- typing-extensions [required: !=3.10.0.1, installed: 3.10.0.2]
- colorama [required: ==0.4.4, installed: 0.4.4]
- flake8 [required: ==3.9.2, installed: 3.9.2]
- mccabe [required: >=0.6.0,<0.7.0, installed: 0.6.1]
- pycodestyle [required: >=2.7.0,<2.8.0, installed: 2.7.0]
- pyflakes [required: >=2.3.0,<2.4.0, installed: 2.3.1]
- isort [required: ==5.9.3, installed: 5.9.3]
- orjson [required: ==3.6.3, installed: 3.6.3]
- pre-commit [required: ==2.16.0, installed: 2.16.0]
- cfgv [required: >=2.0.0, installed: 3.3.1]
- identify [required: >=1.0.0, installed: 2.4.0]
- nodeenv [required: >=0.11.1, installed: 1.6.0]
- pyyaml [required: >=5.1, installed: 5.4.1]
- toml [required: Any, installed: 0.10.2]
- virtualenv [required: >=20.0.8, installed: 20.10.0]
- backports.entry-points-selectable [required: >=1.0.4, installed: 1.1.1]
- distlib [required: >=0.3.1,<1, installed: 0.3.4]
- filelock [required: >=3.2,<4, installed: 3.4.0]
- platformdirs [required: >=2,<3, installed: 2.4.0]
- six [required: >=1.9.0,<2, installed: 1.16.0]
- Sphinx [required: ==4.1.2, installed: 4.1.2]
- alabaster [required: >=0.7,<0.8, installed: 0.7.12]
- babel [required: >=1.3, installed: 2.9.1]
- pytz [required: >=2015.7, installed: 2021.3]
- colorama [required: >=0.3.5, installed: 0.4.4]
- docutils [required: >=0.14,<0.18, installed: 0.17.1]
- imagesize [required: Any, installed: 1.3.0]
- Jinja2 [required: >=2.3, installed: 3.0.3]
- MarkupSafe [required: >=2.0, installed: 2.0.1]
- packaging [required: Any, installed: 21.3]
- pyparsing [required: >=2.0.2,!=3.0.5, installed: 3.0.6]
- Pygments [required: >=2.0, installed: 2.10.0]
- requests [required: >=2.5.0, installed: 2.26.0]
- certifi [required: >=2017.4.17, installed: 2021.10.8]
- charset-normalizer [required: ~=2.0.0, installed: 2.0.9]
- idna [required: >=2.5,<4, installed: 3.2]
- urllib3 [required: >=1.21.1,<1.27, installed: 1.26.7]
- setuptools [required: Any, installed: 58.3.0]
- snowballstemmer [required: >=1.1, installed: 2.2.0]
- sphinxcontrib-applehelp [required: Any, installed: 1.0.2]
- sphinxcontrib-devhelp [required: Any, installed: 1.0.2]
- sphinxcontrib-htmlhelp [required: >=2.0.0, installed: 2.0.0]
- sphinxcontrib-jsmath [required: Any, installed: 1.0.1]
- sphinxcontrib-qthelp [required: Any, installed: 1.0.3]
- sphinxcontrib-serializinghtml [required: >=1.1.5, installed: 1.1.5]
- sphinx-hoverxref [required: ==1.0.0, installed: 1.0.0]
Versions
- I am using discord.py versions 1.7 and below with my code.
- I am using 2.0 or higher, or a modified fork.
- I am using dis-snek with my code.
- I am not using any of the listed above and am using the library code alone.