eth-brownie / brownie

A Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine.
https://eth-brownie.readthedocs.io
MIT License
2.64k stars 550 forks source link

Add conda-forge recipe #902

Open spinoch opened 3 years ago

spinoch commented 3 years ago

Add a recipe to https://github.com/conda-forge/staged-recipes to have brownie available as a package on conda-forge, so that brownie can be installed using conda.

Not all of brownie's dependencies are available as conda packages, though, so we may want to look into adding recipes for those before we add a recipe for brownie (it shouldn't take more than a few minutes if the package specification is up to date). Those packages are:

eth-event py-solc-ast pygments-lexer-solidity pythx vvm vyper (xref: https://github.com/vyperlang/vyper/issues/2214)

iamdefinitelyahuman commented 3 years ago

I'm fully in support of this, but unfamiliar with how conda works. I'm the principal maintainer of eth-event, py-solc-ast, and vvm so consider them in support as well.

I'll reach out to you on telegram to discuss.

spinoch commented 3 years ago

We now have most dependencies on conda-forge, but we're missing a few for which I haven't yet found any maintainers apart from myself: pygments-lexer-solidity, pythx, web3 and one more (the state of Ethereum python packages is messier than I thought). Any volunteers that would like to step up as a maintainer of these conda packages? I'd rather not be just myself as maintainer as having a bus factor of 1 is not very resilient

spinoch commented 3 years ago

Will close this for now given the state of Ethereum Python packages on which brownie depends. Unfortunate, as this would have resolved environments getting corrupted because of pytest conflicts

spinoch commented 3 years ago

Well, all deps are on conda-forge now, but for some reason, even with soft pinning, grayskull still gives me an old version for mythx-models (1.9.1 to be precise). For the hard pinning version, the following dependency versions are not on conda atm:

conda.exceptions.ResolvePackageNotFound: 
  - lru-dict==1.1.7
  - pythx==1.6.1
  - pygments-lexer-solidity==0.5.1
  - web3==5.11.1
  - mythx-models==1.9.1
  - netaddr==0.8.0
spinoch commented 3 years ago

Perhaps bumping web3's dependencies would solve the issues for the soft pinning, see: https://github.com/conda-forge/staged-recipes/pull/14625

calina-c commented 1 year ago

Hello, all! I know this is an older issue but maybe it is time to revive it. I tried running grayskull and the only dependency that is missing is eip712. A grayskull run for eip712 works perfectly, no missing dependencies on their side. Is it worth exploring this, maybe opening a request with them? If eip712 adds a conda recipe, then it's all clear for brownie as well.

spinoch commented 1 year ago

@calina-c by all means, go ahead and add a recipe for eip712. You can add me as maintainer if you want. Same goes for brownie

calina-c commented 1 year ago

@spinoch https://github.com/conda-forge/staged-recipes/pull/22056

It took a while for me to get back to this, but thank you very much for the support :) Let me know once you've completed the step for conda (agreeing to be a maintainer by commenting on that PR) and I'll ping the team to approve

calina-c commented 1 year ago

@spinoch unfortunately I can't add both packages in the same PR, but I added eip712 for now. I tagged you as a maintainer and you need to confirm in that PR that you agree. I'll come back with the brownie recipe after eip712 is confirmed and merged. Thank you a lot!

calina-c commented 1 year ago

I haven't heard about this one in a while, so I'm commenting again. @spinoch are you still up to be a maintainer? Or should I add someone else?