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

Comments

Projects
None yet
2 participants
@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

This comment has been minimized.

Member

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

This comment has been minimized.

Member

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

This comment has been minimized.

Member

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! 👍

bitprophet added a commit that referenced this issue Apr 19, 2018

dkhapun pushed a commit to cyberx-labs/paramiko that referenced this issue Jun 7, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment