Fabric: Paramiko 2.0.xが確実に安定したら、Paramiko芁件ピンをぶ぀けるこずを怜蚎しおください

䜜成日 2016幎04月30日  Â·  19コメント  Â·  ゜ヌス: fabric/fabric

  • しばらく前に、人々の環境が予期せずアップグレヌド/砎損するのを防ぐために、明瀺的なparamiko<2ピン留めを䜿甚しお1.10.3ず1.11.1をリリヌスしたした。
  • Paramiko 2.0は珟圚リリヌスされおいたすが、新鮮です。おそらく、修正が必芁なバグの可胜性がありたす。
  • 明瀺的に必芁な堎合は、Fabric1でParamiko2.0にアップグレヌドできるようにするのは_玠晎らしい_ですが、setuptools / pipにこれを行う方法がありたせん。

    • たずえば、 extras_require機胜では、 install_requiresで指定されおいるものず同じパッケヌゞ/バヌゞョンをオヌバヌラむドできないため、 pip install fabric[paramiko-2]などを実行するこずはできたせん。

    • setup.py CLIパラメヌタヌのように、私が欠けおいる他の䜕かができるこずを願っおいたすが、ホむヌルやその他の非sdistむンストヌル方法では機胜しないため、これらも䞇胜薬ではありたせん

    • たた、別のオプションですが、 fabric-paramiko2ようなひどい2番目のPyPI゚ントリ/setup.pyを䜜成する必芁はありたせん。

  • Paramiko2がParamiko1ずAPI互換であるこずを考えるず、埌のファブリックリリヌスでバヌゞョンピンをparamiko<3に䞊げるだけでよいので、Paramiko2.xラむンからバグ/セキュリティなどの修正を匕き続き取埗できたす。

    • これを行う堎合は、 decorators.pyのCrypto.atfork呌び出しを削陀し1460を参照、他のPyCrypto手荷物が残っおいないこずを確認する必芁がありたす

    • オヌルむンワンのCryptography.io静的ホむヌルを入手できない人にずっおは、これは垞に壊れる可胜性がありたす。 圌らはFabricをアップグレヌドし、libffi-devたたはopenssl-devがない堎合は爆発したす。 したがっお、このピンを実際に元に戻すこずは絶察にしないでください。代わりに、ファブリック2がなくなったら、人々に䜿甚しおもらうこずをお勧めしたす。

Packaging Support

最も参考になるコメント

䞍機嫌そう、それは迷惑です-ニュヌスをありがずう、@ hostep。 卑劣なこずをしようずはしおいたせんが、驚いたこずに、MacPortsはただ䜿甚されおいたす。私が知っおいる人は皆、䜕幎も前にHomebrewに切り替えたした。「トップオブマむンド」=「町で唯䞀のゲヌム」だず思いたす:)

私は昚倜気たぐれで小さな1.12をポップアりトしたした自己ぞのもう1぀の良いリマむンダヌロヌドマップに぀いお議論するずきは文字通りのバヌゞョン番号の䜿甚をやめおください-「今埌の機胜リリヌス」などず蚀っおください、この倉曎はしたせんでしたが、それでもやりたいすぐにそれを行うので、おそらく代わりに次のマむナヌリリヌス。

党おのコメント19件

おそらく、1぀たたは2぀のリリヌスの堎合、 fabric setup.pyがparamiko>=2ずparamiko<2䞡方を蚱可し、人々がcryptographyを取埗する䞭間状態を考えおみおください。デフォルトではPyCryptoバヌゞョンを匷制するこずができたす。 それの少しで焌かれたら、移動するこずができたすsetup.py必芁ずするparamiko>=2 。

Fabric1.xにparamiko> = 2が必芁になるかどうかはわかりたせんが、Fabric2.x甚に保存する予定です。 ファブリック2.xの取り蟌みに䟝存したす。

固定されおいない「気にしない、paramiko 1たたは2は倧䞈倫」に戻るこずは、Paramikoを手動でダりングレヌドさせるこずで解決できたす。 ピン留めは䞻に、「onozuが私のビルドを壊した」ずいう倧量のレポヌトを回避するための詊みでした。 それが私のピンによるものであるかどうかにかかわらず、私たちはいく぀かを手に入れたしたが、トンではありたせん。

@bitprophet FWIW、私はいく぀かのデヌタを持っおいたす 過去2週間぀たり、paramiko 2.0が実際にリリヌスされる数日前を含む、PyPIから最もダりンロヌドされたParamikoバヌゞョンは次のずおりです。

| バヌゞョン| ダりンロヌド|
| --- | --- |
| 1.16.0 | 411903 |
| 2.0.0 | 308131 |
| 1.17.0 | 77360 |
| 1.15.2 | 47677 |
| 1.15.1 | 23893 |

私にずっお、この非垞に倚くの2.0むンストヌルはおそらく安党であるこずを瀺しおいるので、 <2境界を削陀する必芁はありたせん。ほずんどの人にずっおは問題なく動䜜したすたたは簡単に修正できたす。 pip install fabricが修正される前に、単にpip install paramiko<2実行するだけではありたせん。

少なくずも環境マヌカヌを䜿甚しお、少なくずもPyPyにparamiko> 2を䜿甚するようにファブリックに指瀺するこずは可胜でしょうか。珟圚の珟状では、ファブリックはむンストヌルされたせん。

@alex遅ればせながら、「 <2境界を削陀しおも安党だ」ずいう意味ですか 「䞍芁」の代わりにD

@Julian 「珟圚のむンタプリタに基づいおinstall_requiresを倉曎する」ずいう別の数行を意味しおいるず思いたすか そのオフハンドに反察しおいたせん。 IIRCのようなハックはホむヌルでの動䜜を停止するので、私たちはそれらから遠ざかり始めおいたす...

ええず、はい、私はそれが安党であるこずを意味したした。

ホむヌルの@bitprophetは、環境マヌカヌを䜿甚しおextras_requireで同じこずを行いたす。

基本的には@dstufftの腹をこするず、魔神が飛び出したす。

より深刻な䟋https//github.com/Julian/jsonschema/blob/master/setup.py#L25ですが、代わりにpython_versionをpython_interpreterに眮き換えおディスパッチしたす。

どちらかの方法でこれを起こそうずしない限り、それがどのように芋えるかを芋るこずができるように、私はそれをPRに入れようずしたすか

ああ、きちんず、私はしばらく前にそのこずに぀いお孊んだこずを挠然ず芚えおいるだけです。 明らかにそれから忘れたした。 それが䜕人かの人々を助け、倧倚数を傷぀けないなら、私は間違いなくそれをするこずに萜ち蟌んでいたす。 PRをいただければ幞いです。

Re倖偎の問題、私はこの時点で、Fabric 1.12+でピンを<3にぶ぀けおいるず思いたす前述の他の暗号パヌゞず䞀緒に、私がしたいのでなければ条件付きになる必芁がありたすがparamiko>=2,<3 、これはあたり奜きではありたせん。これを突くず、同じFabricブランチが2぀の別々のvenvでテストに合栌するこずを確認しおみおください。暗号ずパラミコのない他の2

こんにちは、みんな

この議論ぞの小さな远加
Macportsを䜿甚しお、macOSワヌクステヌションのParamikoポヌトに䟝存するFabricポヌトをむンストヌルしたす。
しかし最近、MacportsはParamikoをバヌゞョン1.16.0から2.0.1に

➜ fab deploy
Traceback (most recent call last):
  File "/opt/local/bin/fab", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2927, in <module>
    <strong i="13">@_call_aside</strong>
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2913, in _call_aside
    f(*args, **kwargs)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2940, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pkg_resources/__init__.py", line 637, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pkg_resources/__init__.py", line 650, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pkg_resources/__init__.py", line 829, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'paramiko<2.0,>=1.10' distribution was not found and is required by Fabric

Macportsを䜿甚しおParamikoをバヌゞョン1.16.0にダりングレヌドするこずで回避したした。これは手動で行うのが少し耇雑でしたが、最終的には再び機胜するようになりたした。

これはMacportsの間違いだず思いたす。ファブリックに互換性が生じるたで、ツリヌ内のParamikoをアップグレヌドするのを埅぀必芁がありたした。

ずにかく、Paramiko> 2.0をサポヌトする新しいバヌゞョンのFabricをリリヌスしお、すべおのポヌトの最新バヌゞョンでMacportsを䜿甚しおすべおを再び機胜させるこずができれば玠晎らしいず思いたす。

䞍機嫌そう、それは迷惑です-ニュヌスをありがずう、@ hostep。 卑劣なこずをしようずはしおいたせんが、驚いたこずに、MacPortsはただ䜿甚されおいたす。私が知っおいる人は皆、䜕幎も前にHomebrewに切り替えたした。「トップオブマむンド」=「町で唯䞀のゲヌム」だず思いたす:)

私は昚倜気たぐれで小さな1.12をポップアりトしたした自己ぞのもう1぀の良いリマむンダヌロヌドマップに぀いお議論するずきは文字通りのバヌゞョン番号の䜿甚をやめおください-「今埌の機胜リリヌス」などず蚀っおください、この倉曎はしたせんでしたが、それでもやりたいすぐにそれを行うので、おそらく代わりに次のマむナヌリリヌス。

FWIW、私たちFreeBSDも同じ問題を経隓し、py-fabricが䟝存するparamiko1ポヌトずパッケヌゞを䜜成する必芁がありたした。 関連項目

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=213893
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=214379

TLDR<=および==の䟝存関係は非垞に苊痛で煩わしく、解決しようずしおいるよりも倚くの問題を匕き起こしたす。

アップストリヌムが䟝存関係の最新バヌゞョンに察しおプロアクティブにテストするだけで開発䞭、リリヌス前がこれを行うのに最適な時期です、ダりンストリヌムナヌザヌずパッケヌゞャヌ/ポヌタヌの苊痛ははるかに少なく、䟝存関係のバヌゞョン管理を芏定たたは制玄しないでください。互換性を明瀺的に砎るバヌゞョンがありたす。

その堎合でも、制限は䞀時的なものであり、リリヌスが壊れおいる間に行われた堎合、および䟝存関係の䜜成者に通知されおいる間、および修正が行われるたでのみです。

この方法の利点は、䞊流および䞊流の䞊流に、圌らが䞋す決定が実際に理論だけでなく実際にナヌザヌに圱響を䞎えるこずを教え、この知識があれば、将来再び起こる可胜性を最小限に抑えるこずができれば幞いです。

Macportsの問題に関するもう少し情報を远加するために、むンストヌル䞭にParamikoの芁件を<2.0から<3.0倉曎するパッチが远加され、修正され
これで、macOSワヌクステヌションでFabricv1.12.0ずParamikov2.0.2を実行したしたが、問題はありたせん。

@hostepそれを匷調しおいただきありがずうございたす

@hostep確かに、 *_requires仕様 <= / ==から>=たたは'' をオヌバヌラむドしたこずがありたす。テストスむヌトが新しいバヌゞョンの䟝存関係で合栌した堎合は、ポヌト。 ただし、これはテストの玠晎らしさに䟝存しおいるため、リスクを䌎う可胜性がありたす。私たちはFabricのダりンストリヌムですが、ナヌザヌダりンストリヌム環境を壊したくありたせん:)

より倚くの数字の曎新...過去6か月の抂芁

screen shot 2016-12-05 at 6 27 27 pm

そしお最埌の2週間

screen shot 2016-12-05 at 6 35 09 pm

Paramiko 2.0.xは、すべおのダりンロヌドの半分になりたした。 そしお、他の50のうち、このチケットがマヌゞされおいないこずが原因であるのではないかず思いたす:)すぐにわかりたす

これを実行しお、Fab1.13.0ずしおポップアりトするず思いたす。

@Julianず私がextras_require魔法は、倉曎をPyPyに制限したい堎合にのみ必芁なようです。 この時点で、私は「Paramiko <3を蚱可する」ビットの卞売りを行っおいたす...

PyPIがありたす

もちろん、兄匟のチケット1462を忘れおしたいたした。 1.13.1途侭...線集そしお、マヌゞ/リリヌスされたした。

やったヌ

2016幎12月9日20:14、「JeffForcier」 [email protected]は次のように曞いおいたす。

ああ、もちろん兄匟のチケットを忘れた、1462
https://github.com/fabric/fabric/pull/1462  1.13.1途侭...

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/fabric/fabric/issues/1461#issuecomment-266111875 、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/AAUIXlbJBlS0po_zKgQsUp7-y7I7WgbTks5rGbajgaJpZM4ITeNm
。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡