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
Consider bumping Paramiko requirement pin once Paramiko 2.0.x is definitely stable #1461
Comments
Perhaps consider an intermediary state, where for one or two releases, the |
Not sure I'd ever make Fabric 1.x require paramiko>=2, planning to save that for Fabric 2.x. Depends on Fabric 2.x uptake once it's out I guess. You're right that going back to unpinned "I don't care, paramiko 1 or 2 is ok" is still solvable by letting folks manually downgrade their Paramiko. the pinning was mostly an attempt to head off a flood of "onoz u broke my build" reports. We've gotten some, but not a ton, whether that was due to my pin or not is anybody's guess tho. |
@bitprophet FWIW, I have some dataz! Over the past 2 weeks (so this includes a few days before paramiko 2.0 was actually released), here are the most downloaded Paramiko versions from PyPI:
To me this very large number of 2.0 installs indicates that it's probably safe, and so removing the |
Would it be possible at least to use an environment marker to tell fabric to use paramiko>2 for PyPy at least, where the current status quo is that fabric won't install anyhow? |
@alex belatedly, did you mean "removing the @Julian I assume you mean another few lines of "alter |
Uhhh, yes, I meant it's safe. |
@bitprophet for wheels you do the same thing, just in Basically you rub @dstufft's belly and a genie pops out. (More serious example: https://github.com/Julian/jsonschema/blob/master/setup.py#L25 but you replace I'll try to put that in a PR so you can see how it looks, unless you're about to make this happen either way? |
Oh neat, I only vaguely remember learning about that stuff a while back. Clearly then forgot. I'm definitely down with doing that if it'll help some folks & not harm the majority. A PR would be appreciated. Re: outer issue, I think at this point I'm down with bumping the pin to |
Hi guys Small addition to this discussion:
I got around it by downgrading Paramiko to version 1.16.0 using Macports, which was a bit complicated to do manually, but eventually got it working again. I think this is a mistake from Macports, they should have waited to upgrade Paramiko in their tree until Fabric was compatible. But anyway, it would be great if a new version of Fabric can be released with support for Paramiko > 2.0 so we can get everything to work again using Macports with the latest versions of all the ports. |
Grump, that's annoying - thanks for the news, @hostep. (Not trying to be snarky, but - also surprised MacPorts is still in use, everybody I know switched to Homebrew years ago. Good reminder that "top of mind" != "the only game in town" I guess :)) I popped out a tiny 1.12 on a whim last night (another good reminder to self: stop using literal version numbers when discussing roadmap - just say "an upcoming feature release" or etc) and didn't make this change, but still want to do it soon, so probably the next minor release instead. |
FWIW, we (FreeBSD) experienced the same issue and had to create a paramiko1 port and package for py-fabric to depend on. See Also: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=213893 TLDR: <= and == dependencies are super painful/annoying and create more problems than they purport to solve. There is much less pain for downstream users and packagers/porters when upstreams just proactively test against the latest versions of their dependencies (in development, in advance of releases is the best time to do this) and don't prescribe or constraint dependency versioning unless there are versions which explicitly break compatibility. Even in that case the limitation is only temporary, and only if a release is made while its broken, and only while the dependencies author(s) is/are notified and until fixes are made. The bonus of this method is it teaches upstreams (and upstreams of upstreams) that the decisions they make actually affect their users in practice (not just in theory), and with this knowledge, hopefully minimises the likelihood of it happening again in future. |
To add a bit more info regarding the Macports issue, it seems to be fixed because they added a patch while installing which changes the requirement for Paramiko from |
@hostep Thank you for highlighting that |
@hostep Indeed there are times where I've overridden |
Think I'll execute on this and pop it out as Fab 1.13.0. Revisited what @Julian and I discussed way back but that |
Gah, of course I forgot the sibling ticket, #1462! 1.13.1 on the way...EDIT: and, merged/released. |
Hooray!
On Dec 9, 2016 20:14, "Jeff Forcier" <notifications@github.com> wrote:
Gah, of course I forgot the sibling ticket, #1462
<#1462>! 1.13.1 on the way...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1461 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AAUIXlbJBlS0po_zKgQsUp7-y7I7WgbTks5rGbajgaJpZM4ITeNm>
.
|
- Switch paramiko1 to paramiko (2.x) in RUN_DEPENDS, it is now supported [1] Changelog: http://www.fabfile.org/changelog.html [1] fabric/fabric#1461 > Description of fields to fill in above: 76 columns --| > PR: If and which Problem Report is related. > Submitted by: If someone else sent in the change. > Reported by: If someone else reported the issue. > Reviewed by: If someone else reviewed your modification. > Approved by: If you needed approval for this commit. > Obtained from: If the change is from a third party. > MFC after: N [day[s]|week[s]|month[s]]. Request a reminder email. > MFH: Ports tree branch name. Request approval for merge. > Relnotes: Set to 'yes' for mention in release notes. > Security: Vulnerability reference (one per line) or description. > Sponsored by: If the change was sponsored by an organization. > Differential Revision: https://reviews.freebsd.org/D### (*full* phabric URL needed). > Empty fields above will be automatically removed. M py-fabric/Makefile M py-fabric/distinfo git-svn-id: svn+ssh://svn.freebsd.org/ports/head@445866 35697150-7ecd-e111-bb59-0022644237b5
- Switch paramiko1 to paramiko (2.x) in RUN_DEPENDS, it is now supported [1] Changelog: http://www.fabfile.org/changelog.html [1] fabric/fabric#1461 > Description of fields to fill in above: 76 columns --| > PR: If and which Problem Report is related. > Submitted by: If someone else sent in the change. > Reported by: If someone else reported the issue. > Reviewed by: If someone else reviewed your modification. > Approved by: If you needed approval for this commit. > Obtained from: If the change is from a third party. > MFC after: N [day[s]|week[s]|month[s]]. Request a reminder email. > MFH: Ports tree branch name. Request approval for merge. > Relnotes: Set to 'yes' for mention in release notes. > Security: Vulnerability reference (one per line) or description. > Sponsored by: If the change was sponsored by an organization. > Differential Revision: https://reviews.freebsd.org/D### (*full* phabric URL needed). > Empty fields above will be automatically removed. M py-fabric/Makefile M py-fabric/distinfo
paramiko<2
pinning to prevent peoples' environments from unexpectedly upgrading / breaking, a while back.extras_require
functionality doesn't let you override the same package/version as specified ininstall_requires
, so we can't dopip install fabric[paramiko-2]
or anything.setup.py
CLI parameters - but those are also not a panacea as they do not work with wheels or any other non-sdist installation methodfabric-paramiko2
though that is another option.paramiko<3
in later Fabric releases, so folks can continue getting bug/security/etc fixes from the Paramiko 2.x lineCrypto.atfork
call indecorators.py
(see ImportError: No module named Crypto #1460) and make sure no other PyCrypto baggage remainsThe text was updated successfully, but these errors were encountered: