Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

eth-utils dependency conflicts with other eth-* packages #25

Closed
mbeacom opened this issue Feb 2, 2018 · 14 comments
Closed

eth-utils dependency conflicts with other eth-* packages #25

mbeacom opened this issue Feb 2, 2018 · 14 comments
Assignees

Comments

@mbeacom
Copy link

mbeacom commented Feb 2, 2018

  • Version: 0.5.0
  • Python: 3.5/3.6
  • OS: osx/linux

What was wrong?

Currently, the https://github.com/gitcoinco/web repository Travis builds are failing due to a dependency conflict with other eth- packages.
Explanation: gitcoinco/web#367

Validation is failing due to a conflict in dependencies:

  • eth-keys and eth-keyfile pins eth-utils<2.0.0,>=1.0.0-beta.1
  • eth-abi pins eth-utils==0.7.*

This seems to cause the build to fail dependency validation.

How can it be fixed?

  • Update eth-abi to use >=1.0.0b1 of the eth-utils package?

Note

It appears eth-tester is resulting in the same error due to pinning <1.0.0

@carver carver self-assigned this Feb 2, 2018
@carver
Copy link
Collaborator

carver commented Feb 2, 2018

@mbeacom thanks for highlighting this. There are a few things wrong here, all of which should be fixed eventually. But the most important thing is that some beta dependencies slipped into web3.py v3 stable, so I'll start with that.

  • remove (erroneous) dependency on eth-keys, eth-keyfile, (others?) in v3 this fix alone should solve the issue

Other things that should be attended to:

  • release a version of eth-abi that supports eth-utils v1
  • release a version of eth-tester that supports eth-utils v1

@carver
Copy link
Collaborator

carver commented Feb 2, 2018

Most importantly for this issue:

web3 v3.16.5 is released, and will no longer try to install eth-utils v1. Please report back whether you're all set @mbeacom


Other upcoming releases:

  • eth-abi v1.0.0-beta.0 to support eth-utils v1
  • eth-tester v0.1.0-beta.16 to support eth-utils v1

@mbeacom
Copy link
Author

mbeacom commented Feb 2, 2018

@carver 🙌 Your changes resolved the dependency issues! Thanks for your work on this!

@mbeacom
Copy link
Author

mbeacom commented Feb 3, 2018

@carver Any chance these changes will be ported to web3.py 4.x.x?

Thanks again

@carver
Copy link
Collaborator

carver commented Feb 5, 2018

It will get fixed in v4, but in a totally different way: releasing versions of eth-abi and eth-tester that are compatible with eth-utils v1-beta. I will try to get that out today.

@mbeacom
Copy link
Author

mbeacom commented Feb 5, 2018

@carver Thanks for taking care of this! Let me know if there is anything I can do!

@carver
Copy link
Collaborator

carver commented Feb 7, 2018

If everything goes to plan (famous last words), the next v4 will be released tomorrow.

@carver
Copy link
Collaborator

carver commented Feb 8, 2018

Ok, released: http://web3py.readthedocs.io/en/latest/releases.html#v4-0-0-beta-9
(everything did not go according to plan 😆 )

Please reopen/comment if the issue persists

@hiqua
Copy link

hiqua commented Mar 5, 2018

There seems to be other conflicts between libraries that pipenv does not install without the --skip-lock flag: pipenv install web3 fails with
Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.

After that, pipenv install --skip-lock succeeds, but installs a version of eth-utils which is not (supposed to be) compatible with eth-abi.

@carver
Copy link
Collaborator

carver commented Mar 22, 2018

@hiqua can you try pipenv clean && pipenv lock --clear && pipenv sync mentioned here: pypa/pipenv#1802 (comment)

Then try using pipenv install --pre web3==v4.0.0b11 to get the latest. I don't know why, but pipenv install --pre web3 was not working for me. After seeing the other pipenv weirdnesses, I didn't investigate.

@hiqua
Copy link

hiqua commented Mar 22, 2018

The following:

#!/bin/sh
mkdir web3test
cd web3test
pipenv install web3 || pipenv install --skip-lock

pipenv clean && pipenv lock --clear && pipenv sync
echo "Trying to install the latest"
pipenv install --pre web3==v4.0.0b11

fails.

Trying

pipenv install --pre web3==v4.0.0b11

directly without anything before fails as well.

I don't know how bug-free pipenv is though, I just know that it is "the officially recommended Python packaging tool", so I thought it might be relevant.

@oryband
Copy link

oryband commented Mar 27, 2018

I can confirm this occurs for me as well. Please reopen this issue.

@hiqua
Copy link

hiqua commented Mar 27, 2018

@oryband if you're talking about the pipenv issue, you can follow the discussion there: pypa/pipenv#1802 (comment)

At this point I cannot tell whether it's a bug in pipenv or in web3, and it has its own issue opened there: ethereum/web3.py#707. If you have more information about this issue, I'd be interested as well!

@CasualEngineerZombie
Copy link

Hi everyone, any solution to this issue?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants