ethpm / py-ethpm

This library is deprecated. ethPM python tooling is now located in web3.py
MIT License
24 stars 13 forks source link

Refresh deployments when changing w3 attribute on a package #87

Closed njgheorghita closed 6 years ago

njgheorghita commented 6 years ago

What was wrong?

Deployments was a cached property on Package, but if you update the w3 instance belonging to a Package it needs to update the deployments property to reflect the deployments available on the new chain.

How was it fixed?

I'd like to test that switching between w3 instances on separate chains would return different deployments, but I'm not quite if that's possible, since it doesn't seem possible to have two web3 instances (instantiated with EthereumTesterProvider) that have different blockchain uris - to simulate switching between chains and their respective deployments.

Cute Animal Picture

image

njgheorghita commented 6 years ago

@pipermerriam @voith Still unsure what's causing this issue. Pinned eth-typing==1.1.0 and eth-utils==1.1.2 just to see if that would resolve, but it didn't.

Pip lists as those version being correctly installed in the circle env, yet when I uninstall eth-typing locally and reinstall explicity v1.1.0 everything's working fine

voith commented 6 years ago

For me the only thing that fixed the issue was installing from master. Only possible solution that I can think of right now is to create a new release in eth-typing and then retry with the new version.

EDIT: For me pip freeze returnedeth-typing==1.1.0 but was still failing. I didn't try to uninstall/re-install.

pipermerriam commented 6 years ago

@njgheorghita I accidentally broke everything for a few minutes. Turns out that eth-typing==1.2.0 isn't actually a thing and must have been an artifact from a failed release I made at some point. When I pushed it to pypi this morning a bunch of things broke because it was actually an older version of the library. I've since removed it from pypi and the github repo.

You should be able to do a fresh install of eth-typing>=1.1.0. What specifically is the error your encountering?

njgheorghita commented 6 years ago

@pipermerriam The error is that ContractName isn't available to import (which was introduced in the v1.1.0 release)

I pinned eth-typing specifically to v1.1.0 here, but I'm still getting the same error (you can check it out in the broken circle builds here). It says that eth-typing v.1.1.0 and eth-utils v1.1.2 are installed, but my best guess is that pypi is still confused (this is the same error I was getting before you deleted eth-typing v1.2.0 from pypi)? I'm thinking @voith 's suggestion of cutting a new eth-typing release is the easiest way to sort this out