-
Notifications
You must be signed in to change notification settings - Fork 286
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
Potential dependency conflicts between oraclebmc and cryptography #255
Comments
Suggested Solution
|
Hi @NeolithEra, thanks for bringing this potential dependency issue to our attention. The reason that the cryptography dependency is set to v2.8 is we have tested with, and have compliance and security approval to use v2.8. While we are reviewing our options regarding updating cryptography, I believe the safest way is to go with option 3 to solve the immediate problem. I would be happy to review your Pull Request. |
Hi @NeolithEra, I see that you made a commit regarding this to your fork. Pinging you to open a pull request as well :) |
Hi @NeolithEra, ping again :) |
I don't want to poach, but would it be alright if I opened this pull request? |
Hi @zedabeta, we're shipping these changes with the next release tomorrow. |
Awesome, thanks for letting me know |
Closing this issue as this is fixed in v2.20.0. Thanks @NeolithEra and @zedabeta for your help! |
Hi, as shown in the following full dependency graph of oci, oci requires cryptography ==2.8, oci requires pyopenssl >=17.5.0 (pyopenssl 19.1.0 will be installed, i.e., the newest version satisfying the version constraint), and directed dependency pyopenssl 19.1.0 transitively introduces cryptography >=2.8.
Obviously, there are multiple version constraints set for cryptography in this project. However, according to pip's “first found wins” installation strategy, cryptography 2.8 (i.e., the newest version satisfying constraint ==2.8) is the actually installed version.
Although the first found package version cryptography 2.8 just satisfies the later dependency constraint (cryptography ==2.8), such installed version is very close to the upper bound of the version constraint of cryptography specified by pyopenssl 19.1.0.
Once pyopenssl upgrades,its newest version will be installed, as oci does not specify the upper bound of version constraint for pyopenssl. Therefore, it will easily cause a dependency conflict (build failure), if the upgraded pyopenssl version introduces a higher version of cryptography, violating its another version constraint ==2.8.
According to the release history of pyopenssl, it habitually upgrates Cryptography in its recent releases. For instance, pyopenssl 19.0.0 upgrated Cryptography’s constraint from >=2.2.1 to >=2.3,and pyopenssl 19.1.0 upgrated Cryptography’s constraint from >=2.3 to >=2.8.
As such, it is a warm warning of a potential dependency conflict issue for oci.
Dependency tree
Thanks for your help.
Best,
Neolith
The text was updated successfully, but these errors were encountered: