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

Update documentation with non-optional dependencies #1191

Closed
stevenwinfield opened this issue Apr 19, 2018 · 3 comments
Closed

Update documentation with non-optional dependencies #1191

stevenwinfield opened this issue Apr 19, 2018 · 3 comments
Labels

Comments

@stevenwinfield
Copy link

@stevenwinfield stevenwinfield commented Apr 19, 2018

Hi,

On the installation page at paramiko.org it says:

Paramiko has only one direct hard dependency: the Cryptography library

...but in setup.py:

install_requires=[
        'bcrypt>=3.1.3',
        'cryptography>=1.5',
        'pynacl>=1.0.1',
        'pyasn1>=0.1.7',

...which was a bit of a surprise!

Could the docs be updated, please?

@bitprophet
Copy link
Member

@bitprophet bitprophet commented Apr 19, 2018

This is one reason I don't even like installation docs 😆 patch submitters never remember to update them when they add new imports 😞

Thanks for noticing! My initial reaction was "well those are probably just pinned Cryptography sub-dependencies" but no, they are just similar. (eg pyasn1 vs asn1crypto). (Do note, though, that this documentation does say direct, so if you were hoping to see a full list of ALL packages that will get installed, you're out of luck...!)


Notes to self...

Bcrypt and PyNaCl are required for Ed25519 support, so that's a straight addition.

PyASN1 is currently only needed for optional GSSAPI support, so aside from import-level shenanigans, I don't get why we added it to our top level requires...

Dug and it seems like we used it for Cryptography-1.1 based DSS, etc keys partway through development of that switch-over - but then it was removed again in eb3e117 without also removing it from setup.py?

Going to poke a bit around 2.2.x and see if I can convince things to install and test w/o pyasn1 installed (GSSAPI is an optional test suite as well) and then I'll patch up setup + docs and merge-up.

@bitprophet bitprophet added the Support label Apr 19, 2018
@bitprophet
Copy link
Member

@bitprophet bitprophet commented Apr 19, 2018

Pondering whether we can/should remove pyasn1 on older versions; even though it is removing something, not adding, it still worries me that it'll goof somebody up somewhere (esp eg downstream packagers whose scripts, etc might suddenly break.)

Think I'll just make the changes on master for now?

@bitprophet
Copy link
Member

@bitprophet bitprophet commented Apr 19, 2018

Seems all right, updated the pyasn1 imports in the gssapi module (paramiko.ssh_gss) to all be inlined, and now I can import paramiko in a virtualenv without that module present. Tests all still pass etc.

So, Paramiko 2.5.x, when it comes out, will have this change in its code, and the docs will have the change as soon as I push. Thanks again! 👍

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

Successfully merging a pull request may close this issue.

None yet
2 participants