-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
All google-cloud-* packages broke due to poor dependency management #2742
Comments
Thanks for reporting @remcohaszing! @dhermes can we do a |
Thanks for filing @remcohaszing, it was also reported yesterday (#2739). This was an oversight on my part not putting upper bounds on the dependencies. @daspecster I don't see much value in releasing a @remcohaszing I am curious how you ended up in state where |
@dhermes if you make a clean venv and install from google.cloud import storage That's how you get the error that's mentioned. |
@dhermes This state can be achieved exactly as @daspecster said. I assume most packages use semver nowadays. This means a dependency locked as Just for clarity, this is the same as |
Per @dhermes,
Is there something special about your environment that keeps you from upgrading all packages? |
I don't think it's necessarily specific to my environment. I think it makes sense to lock down versions. Actually I still think this is a good idea. #2706 is a breaking change, an automated update to the new version including it has been prevented. I have upgraded by now, but I had to do some refactors. It had become top priority, because tests were failing for unrelated patches in CI. |
All
google-cloud-*
packages broke due to poor dependency management when version 0.21.0 was released.All
google-cloud-*
packages depend ongoogle-cloud-core >= <current_version>
. Version 0.21.0 was a breaking change, compared to 0.20.0.As a result, a dependency on a pinned down version is automatically broken as soon as a new version is released.
The workaround is fairly simple. If one depends on
google-cloud-*
, one must explicitly specify the version ofgoogle-cloud-core
to depend on.The real issue lies at dependency management of the
google-cloud-*
packages. Dependencies should be locked down in the packages that use them. So the requirements should be changed fromgoogle-cloud-core >= <current_version>
togoogle-cloud-core ~= <current_version>
(assuming semver is used and patch versions are non-breaking).Ubuntu 16.0.4
python --version
pip show google-cloud
,pip show google-<service>
orpip freeze
The text was updated successfully, but these errors were encountered: