Pinning exact version numbers for dependencies makes Brownie very difficult to use as a library
zomglings opened this issue · comments
Environment information
brownie
Version: 1.17.2ganache-cli
Version: 6.12.2solc
Version: 0.8.9+commit.e5eed63a.Linux.g++- Python Version: Python 3.9.6
- OS: linux (on WSL2)
What was wrong?
An example:
Brownie pins web3==5.27.0
.
This causes problems with libraries require higher versions of web3. It is unlikely that brownie needs this exact version of web3. It would be useful if the dependency were specified as web3>=5.27.0
. I realize brownie was intended to be a framework and not a library, but a little work on dependency specification would also make it useful as a library that others could build on top of.
We have also experienced similar issues with black
versions required by brownie
.
Please include information like:
- what command you ran
- the code that caused the failure (see this link for help with formatting code)
- full output of the error you received
How can it be fixed?
Do not use requirements.txt
. Specify all dependencies in setup.py
and treat brownie
as a library/CLI.
I take back everything I said. We should just document BROWNIE_LIB=1
!!! Nice!