-
Notifications
You must be signed in to change notification settings - Fork 419
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
pin maximum version cryptography
to prevent breaking changes
#1143
Comments
@alex @mhils @reaperhulk, sorry for the ping, but I think this is pretty important, as currently, |
I don't see |
Yes, the root cause here is older pyOpenSSLs with brand new cryptographys. On the one hand pinning would prevent this case. It'd also require us to do a fresh release of pyopenssl for every cryptography release. Maybe that makes sense? I'm loath to do even more pyopenssl work, but maybe the simple trade-off is best. The other potential solution would be a new pip/packaging feature to allow packages to declare constraints that are not dependencies. Then cryptography releases could say "not compatible with pyopenssl x" and pip would take it into account, but not create a dependency on pyopenssl if the user wasn't using it. But that'd be a bunch of work. |
@alex maybe I am confused, but I thought that If so, it makes sense to expect that sometimes a release of Pip only has one method for defining dependencies, and that is Note, we don't have to release If we don't do this, and continue only using a |
Note, when I say "which is the situation we are in right now", I am referring to the fact that every release of Ideally, we would want the following to be true:
With pip's current dependency resolution, using So we are in a very difficult state to resolve, and probably a warning needs to be put in the docs that all versions of |
After spending some time mulling this over, I'm convinced that pinning the cryptography dep, and then bumping + release on any major cryptography release is the way to go. |
This ensures the OS provided python3-openssl package won't be used as it conflicts with a newer cryptography module that is installed through pip. See pyca/pyopenssl#1143 for details. Signed-off-by: Simon Deziel <simon.deziel@canonical.com>
This ensures the OS provided python3-openssl package won't be used as it conflicts with a newer cryptography module that is installed through pip. See pyca/pyopenssl#1143 for details. Signed-off-by: Simon Deziel <simon.deziel@canonical.com>
Currently we pin
cryptography>=37.0.2
in ourinstall_requires
, which will no longer work as of the release of version38.0.0
ofcryptography
, as there was a breaking change specifically, the removal ofX509_V_FLAG_CB_ISSUER_CHECK
.This issue has been raised numerous times across the internet, so we should push out a fix ASAP:
To resolve this issue (and prevent it from happening in the future), I propose that update our pin to
cryptography>=37.0.2,<38.0.0
, and manually verify each major version bump ofcryptography
going forwards.The text was updated successfully, but these errors were encountered: