Fabric: рдПрдХ рдмрд╛рд░ Paramiko 2.0.x рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдерд┐рд░ рд╣реЛ рдЬрд╛рдиреЗ рдкрд░ Paramiko рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд┐рди рдХреЛ рдЙрдЫрд╛рд▓рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 30 рдЕрдкреНрд░реИрд▓ 2016  ┬╖  19рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: fabric/fabric

  • рд╣рдордиреЗ 1.10.3 рдФрд░ 1.11.1 рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ paramiko<2 рдкрд┐рдирд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдмрд╛рд╣рд░ рд░рдЦрд╛ рд╣реИ рддрд╛рдХрд┐ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдЧреНрд░реЗрдб/рдЯреВрдЯрдиреЗ рд╕реЗ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХреЗред
  • Paramiko 2.0 рдЕрдм рдмрд╛рд╣рд░ рд╣реИ, рд▓реЗрдХрд┐рди рддрд╛рдЬрд╝рд╛ рд╣реИ, рд╕рдВрднрд╡рддрдГ рдХреБрдЫ рдХреАрдбрд╝реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕реНрддреНрд░реА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
  • рдЕрдЧрд░ рд╡реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рд▓реЛрдЧреЛрдВ рдХреЛ рдлреИрдмреНрд░рд┐рдХ 1 рдХреЗ рддрд╣рдд рдкреИрд░рд╛рдореАрдХреЛ 2.0 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ _рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ - рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдкреВрд▓/рдкрд╛рдЗрдк рдореЗрдВ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ

    • рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП extras_require рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЖрдкрдХреЛ рдЙрд╕реА рдкреИрдХреЗрдЬ/рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдирд╣реАрдВ рдХрд░рдиреЗ рджреЗрддреА рдЬреИрд╕рд╛ рдХрд┐ install_requires рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо pip install fabric[paramiko-2] рдпрд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

    • рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреБрдЫ рдФрд░ рд╣реИ рдЬреЛ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ, рдЬреИрд╕реЗ setup.py рд╕реАрдПрд▓рдЖрдИ рдкреИрд░рд╛рдореАрдЯрд░ - рд▓реЗрдХрд┐рди рд╡реЗ рднреА рд░рд╛рдордмрд╛рдг рдирд╣реАрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкрд╣рд┐рдпреЛрдВ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЧреИрд░-рдПрд╕рдбреАрдПрд╕рдЯреА рд╕реНрдерд╛рдкрдирд╛ рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ

    • рдореИрдВ рдХреБрдЫ рднрдпрд╛рдирдХ рджреВрд╕рд░реА рдкреАрдИрдкреАрдЖрдИ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ / setup.py рдЬреИрд╕реЗ fabric-paramiko2 рдмрдирд╛рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИред

  • рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ Paramiko 2, Paramiko 1 рдХреЗ рд╕рд╛рде API рд╕рдВрдЧрдд рд╣реИ, рд╣рдо _may_ рдмрд╛рдж рдХреЗ рдлреИрдмреНрд░рд┐рдХ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдХреЗрд╡рд▓ рд╕рдВрд╕реНрдХрд░рдг рдкрд┐рди рдХреЛ paramiko<3 рдЯрдХреНрдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рд▓реЛрдЧ Paramiko 2.x рд▓рд╛рдЗрди рд╕реЗ рдмрдЧ/рд╕реБрд░рдХреНрд╖рд╛/рдЖрджрд┐ рд╕реБрдзрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХреЗрдВред

    • рдЕрдЧрд░ рд╣рдо рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ Crypto.atfork рдХреЙрд▓ рдХреЛ decorators.py (#1460 рджреЗрдЦреЗрдВ) рдореЗрдВ рд╣рдЯрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХреЛрдИ рдЕрдиреНрдп PyCrypto рд╕рд╛рдорд╛рди рдирд╣реАрдВ рдмрдЪрд╛ рд╣реИ

    • рдпрд╣ рдЕрднреА рднреА рд╣рдореЗрд╢рд╛ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рддреЛрдбрд╝рдиреЗ рдХрд╛ рдореМрдХрд╛ рджреЗрдЧрд╛ рдЬреЛ рдСрд▓-рдЗрди-рд╡рди рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд╝реА.рдЖрдИрдУ рд╕реНрдерд┐рд░ рдкрд╣рд┐рдпрд╛ рдирд╣реАрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рд╡реЗ рдлреИрдмреНрд░рд┐рдХ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЕрдЧрд░ рдЙрдирдХреЗ рдкрд╛рд╕ libffi-dev рдпрд╛ Opensl-dev рдХреА рдХрдореА рд╣реИ рддреЛ рдпрд╣ рдлрдЯ рдЬрд╛рдПрдЧрд╛ред рддреЛ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрджрд╛рд░ рд╣реЛрдЧрд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдкрд┐рди рдХреЛ рдХрднреА рднреА рдкреВрд░реНрд╡рд╡рдд рди рдХрд░реЗрдВ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд▓реЛрдЧ рдлреИрдмреНрд░рд┐рдХ 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЧреНрд░рдореНрдк, рдпрд╣ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ - рд╕рдорд╛рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, @hostepред (рд╕реНрдирд╛рд░реНрдХреА рд╣реЛрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди - рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдореИрдХрдкреЙрд░реНрдЯреНрд╕ рдЕрднреА рднреА рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╣реЛрдордмреНрд░реВ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ рдерд╛ред рдЕрдЪреНрдЫрд╛ рдЕрдиреБрд╕реНрдорд╛рд░рдХ рд╣реИ рдХрд┐ "рджрд┐рдорд╛рдЧ рдХрд╛ рд╢реАрд░реНрд╖"! = "рд╢рд╣рд░ рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдЧреЗрдо" рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ :))

рдореИрдВрдиреЗ рдХрд▓ рд░рд╛рдд рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ 1.12 рдХреЛ рдкреЙрдк рдЖрдЙрдЯ рдХрд┐рдпрд╛ (рд╕реНрд╡рдпрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрд╕реНрдорд╛рд░рдХ: рд░реЛрдбрдореИрдк рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╕рдордп рд╢рд╛рдмреНрджрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрдВрдж рдХрд░реЗрдВ - рдмрд╕ "рдЖрдЧрд╛рдореА рдлреАрдЪрд░ рд░рд┐рд▓реАрдЬ" рдпрд╛ рдЖрджрд┐ рдХрд╣реЗрдВ) рдФрд░ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА рдХрд░реЗрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдВрднрд╡рдд: рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЕрдЧрд▓реА рдЫреЛрдЯреА рд░рд┐рд▓реАрдЬред

рд╕рднреА 19 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╢рд╛рдпрдж рдПрдХ рдордзреНрдпрд╕реНрде рд░рд╛рдЬреНрдп рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ рдПрдХ рдпрд╛ рджреЛ рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП, fabric setup.py рджреЛрдиреЛрдВ paramiko>=2 рдФрд░ paramiko<2 , рдФрд░ рд▓реЛрдЧреЛрдВ рдХреЛ cryptography рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд▓реЗрдХрд┐рди рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдкреБрд░рд╛рдиреЗ PyCrypto рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмрд╛рдзреНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдмрд╛рд░ рдЬрдм рд╡рд╣ рдереЛрдбрд╝рд╛ рдЬрд▓ рдЬрд╛рдП, рддреЛ рдЖрдк setup.py рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ paramiko>=2 ред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдХрднреА рднреА рдлреИрдмреНрд░рд┐рдХ 1.x рдХреЛ рдкреИрд░рд╛рдореАрдХреЛ> = 2 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЗрд╕реЗ рдлреИрдмреНрд░рд┐рдХ 2.x рдХреЗ рд▓рд┐рдП рд╕рд╣реЗрдЬрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред рдлреИрдмреНрд░рд┐рдХ 2.x рдЕрдкрдЯреЗрдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдПрдХ рдмрд╛рд░ рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред

рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ "рдореБрдЭреЗ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИ, paramiko 1 рдпрд╛ 2 рдареАрдХ рд╣реИ" рдЕрдирдкрд┐рди рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдирд╛ рдЕрднреА рднреА рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрдкрдиреЗ Paramiko рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдХрд░ рд╣рд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдкрд┐рдирд┐рдВрдЧ рдЬреНрдпрд╛рджрд╛рддрд░ "рдУрдиреЛрдЬ рдпреВ рдмреНрд░реЗрдХ рдорд╛рдИ рдмрд┐рд▓реНрдб" рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдмрд╛рдврд╝ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдПрдХ рдкреНрд░рдпрд╛рд╕ рдерд╛ред рд╣рдореЗрдВ рдХреБрдЫ рдорд┐рд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЯрди рдирд╣реАрдВ, рдпрд╣ рдореЗрд░реЗ рдкрд┐рди рдХреЗ рдХрд╛рд░рдг рдерд╛ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рдХрд┐рд╕реА рдХрд╛ рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд╣реИред

@bitpropet FWIW, рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ

| рд╕рдВрд╕реНрдХрд░рдг | рдбрд╛рдЙрдирд▓реЛрдб |
| --- | --- |
| 1.16.0 | 411903 |
| 2.0.0 | 308131 |
| 1.17.0 | 77360 |
| рез.резрел.реи | 47677 |
| 1.15.1 | реирейреорепрей |

рдореЗрд░реЗ рд▓рд┐рдП 2.0 рдХреА рдпрд╣ рдмрд╣реБрдд рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡рддрдГ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП <2 рдмрд╛рдЙрдВрдб рдХреЛ рд╣рдЯрд╛рдирд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИ, рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛ (рдпрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдкрдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ' pip install paramiko<2 рд╕реЗ рдкрд╣рд▓реЗ рдХреЗрд╡рд▓ pip install fabric рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдорд╛рд░реНрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдХрд┐ рдХрдкрдбрд╝реЗ рдХреЛ PyPy рдХреЗ рд▓рд┐рдП paramiko>2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВ, рдЬрд╣рд╛рдВ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдпрд╣ рд╣реИ рдХрд┐ рдХрдкрдбрд╝реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛?

@alex рджреЗрд░ рд╕реЗ, рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ " <2 рдмрд╛рдЙрдВрдб рдХреЛ рд╣рдЯрд╛рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ"? ("рдЕрдирд╛рд╡рд╢реНрдпрдХ" рдХреЗ рдмрдЬрд╛рдп) :D

@ рдЬреВрд▓рд┐рдпрди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк "рд╡рд░реНрддрдорд╛рди рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ install_requires рдХреЛ рдмрджрд▓рдиреЗ" рдХреА рдПрдХ рдФрд░ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдорддрд▓рдм рд╣реИ? рдЙрд╕ рдСрдлрд╣реИрдВрдб рдХреЗ рд╡рд┐рд░реЛрдз рдореЗрдВ рдирд╣реАрдВред (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдИрдЖрдИрдЖрд░рд╕реА рдРрд╕реЗ рд╣реИрдХреНрд╕ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрдирд╕реЗ рджреВрд░ рднрд╛рдЧрдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ ...?)

рдЙрд╣, рд╣рд╛рдБ, рдореЗрд░рд╛ рдорддрд▓рдм рдерд╛ рдХрд┐ рдпрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред

@bitpropet рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдк рд╡рд╣реА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдмрд╕ extras_require рдореЗрдВ рдПрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдорд╛рд░реНрдХрд░ рдХреЗ рд╕рд╛рдеред

рдореВрд▓ рд░реВрдк рд╕реЗ рдЖрдк @dstufft рдХреЗ рдкреЗрдЯ рдХреЛ

(рдЕрдзрд┐рдХ рдЧрдВрднреАрд░ рдЙрджрд╛рд╣рд░рдг: https://github.com/Julian/jsonschema/blob/master/setup.py#L25 рд▓реЗрдХрд┐рди рдЖрдк рдЙрд╕ рдкрд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП python_version рдХреЛ python_interpreter рд╕реЗ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВ)ред

рдореИрдВ рдЗрд╕реЗ рдкреАрдЖрд░ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рддрд╛рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рди рд╣реЛрдВ?

рдУрд╣ рдиреАрдЯ, рдореБрдЭреЗ рдХреЗрд╡рд▓ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдЙрд╕ рд╕рд╛рдорд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрдирд╛ рдпрд╛рдж рд╣реИред рд╕рд╛рдл рд╣реИ рддреЛ рднреВрд▓ рдЧрдПред рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдиреАрдЪреЗ рд╣реВрдВ рдЕрдЧрд░ рдпрд╣ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреА рдорджрдж рдХрд░реЗрдЧрд╛ рдФрд░ рдмрд╣реБрдордд рдХреЛ рдиреБрдХрд╕рд╛рди рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛рдПрдЧрд╛ред рдПрдХ рдЬрдирд╕рдВрдкрд░реНрдХ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред

рдкреБрди: рдмрд╛рд╣рд░реА рдореБрджреНрджрд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдореИрдВ рдлреИрдмреНрд░рд┐рдХ 1.12+ рдореЗрдВ рдкрд┐рди рдХреЛ <3 рдЙрдЫрд╛рд▓ рд░рд╣рд╛ рд╣реВрдВ (рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдП рдЧрдП рдЕрдиреНрдп рдХреНрд░рд┐рдкреНрдЯреЛ рдкрд░реНрд╕ рдХреЗ рд╕рд╛рде, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рддрдм рддрдХ рд╕рд╢рд░реНрдд рдмрдирдирд╛ рд╣реЛрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ paramiko>=2,<3 , рдЬрд┐рд╕рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдореИрдВ рдХрдо рд╣реВрдВред рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдЬрдм рдореИрдВ рдЗрд╕реЗ рдкреЛрдХ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдХрд┐рддрдиреА рдмрджрд╕реВрд░рдд рдЪреАрдЬреЗрдВ рдорд┐рд▓рддреА рд╣реИрдВ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреА рд╣реИрдВ рдХрд┐ рдПрдХ рд╣реА рдлреИрдмреНрд░рд┐рдХ рд╢рд╛рдЦрд╛ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡реЗрдирд╡, рдПрдХ рдбрдмреНрд▓реНрдпреВ/рдХреНрд░рд┐рдкреНрдЯреЛ рдФрд░ рдкреИрд░рд╛рдорд┐рдХреЛ 1 рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдХрд░рддреА рд╣реИред рдЕрдиреНрдп рдмрд┐рдирд╛ рдХреНрд░рд┐рдкреНрдЯреЛ рдФрд░ рдкреИрд░рд╛рдорд┐рдХреЛ рдХреЗ 2)

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ

рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдЫреЛрдЯрд╛ рдЬреЛрдбрд╝:
рд╣рдо рдлреИрдмреНрд░рд┐рдХ рдкреЛрд░реНрдЯ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Macports рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ macOS рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдкрд░
рд▓реЗрдХрд┐рди рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореИрдХрдкреЛрд░реНрдЯреНрд╕ рдиреЗ рдкреИрд░рд╛рдореАрдХреЛ рдХреЛ рд╕рдВрд╕реНрдХрд░рдг 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

рдореИрдВ рджреНрд╡рд╛рд░рд╛ рдЙрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд╣реЛ рдЧрдпрд╛ рдкрджрд╛рд╡рдирддрд┐ рд╕рдВрд╕реНрдХрд░рдг 1.16.0 рдХреЛ Paramiko macports рд╣реИ, рдЬреЛ рдереЛрдбрд╝рд╛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░рдирд╛ рдХреЗ рд▓рд┐рдП рдЬрдЯрд┐рд▓ рдерд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░, рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ рдпрд╣ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдорд┐рд▓ рдЧрдпрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореИрдХрдкреЛрд░реНрдЯреНрд╕ рд╕реЗ рдПрдХ рдЧрд▓рддреА рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рдкреЗрдбрд╝ рдореЗрдВ рдкреИрд░рд╛рдорд┐рдХреЛ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ рдЬрдм рддрдХ рдХрд┐ рдлреИрдмреНрд░рд┐рдХ рд╕рдВрдЧрдд рди рд╣реЛред

рд▓реЗрдХрд┐рди рд╡реИрд╕реЗ рднреА, рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдлреИрдмреНрд░рд┐рдХ рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг Paramiko> 2.0 рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдо рд╕рднреА рдкреЛрд░реНрдЯ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде Macports рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдВред

рдЧреНрд░рдореНрдк, рдпрд╣ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ - рд╕рдорд╛рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, @hostepред (рд╕реНрдирд╛рд░реНрдХреА рд╣реЛрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди - рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдореИрдХрдкреЙрд░реНрдЯреНрд╕ рдЕрднреА рднреА рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╣реЛрдордмреНрд░реВ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ рдерд╛ред рдЕрдЪреНрдЫрд╛ рдЕрдиреБрд╕реНрдорд╛рд░рдХ рд╣реИ рдХрд┐ "рджрд┐рдорд╛рдЧ рдХрд╛ рд╢реАрд░реНрд╖"! = "рд╢рд╣рд░ рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдЧреЗрдо" рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ :))

рдореИрдВрдиреЗ рдХрд▓ рд░рд╛рдд рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ 1.12 рдХреЛ рдкреЙрдк рдЖрдЙрдЯ рдХрд┐рдпрд╛ (рд╕реНрд╡рдпрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрд╕реНрдорд╛рд░рдХ: рд░реЛрдбрдореИрдк рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╕рдордп рд╢рд╛рдмреНрджрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрдВрдж рдХрд░реЗрдВ - рдмрд╕ "рдЖрдЧрд╛рдореА рдлреАрдЪрд░ рд░рд┐рд▓реАрдЬ" рдпрд╛ рдЖрджрд┐ рдХрд╣реЗрдВ) рдФрд░ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА рдХрд░реЗрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдВрднрд╡рдд: рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЕрдЧрд▓реА рдЫреЛрдЯреА рд░рд┐рд▓реАрдЬред

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ, рд╣рдордиреЗ (рдлреНрд░реАрдмреАрдПрд╕рдбреА) рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ рдФрд░ рдкрд╛рдЗ-рдлреИрдмреНрд░рд┐рдХ рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрд░рд╛рдорд┐рдХреЛ1 рдкреЛрд░реНрдЯ рдФрд░ рдкреИрдХреЗрдЬ рдмрдирд╛рдирд╛ рдкрдбрд╝рд╛ред рдпрд╣ рд╕рднреА рджреЗрдЦреЗрдВ:

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

TLDR: <= рдФрд░ == рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдЕрддреНрдпрдзрд┐рдХ рдкреАрдбрд╝рд╛рджрд╛рдпрдХ/рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИрдВ рдФрд░ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рдХрд░рддреА рд╣реИрдВред

рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдФрд░ рдкреИрдХреЗрдЬрд░реНрд╕/рдкреЛрд░реНрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рджрд░реНрдж рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХреЗрд╡рд▓ рдЕрдкрдиреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ (рд╡рд┐рдХрд╛рд╕ рдореЗрдВ, рд░рд┐рд▓реАрдЬ рд╕реЗ рдкрд╣рд▓реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдордп рд╣реИ) рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдпрд╛ рдмрд╛рдзрд┐рдд рди рдХрд░реЗрдВ рдЬрдм рддрдХ рдХрд┐ рдРрд╕реЗ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрдЧрддрддрд╛ рдХреЛ рддреЛрдбрд╝рддреЗ рд╣реИрдВред

рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рднреА рд╕реАрдорд╛ рдХреЗрд╡рд▓ рдЕрд╕реНрдерд╛рдпреА рд╣реЛрддреА рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рддрднреА рдЬрдм рдХреЛрдИ рд░рд┐рд▓реАрдЬрд╝ рдЙрд╕рдХреЗ рдЯреВрдЯрдиреЗ рдХреЗ рджреМрд░рд╛рди рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рдЬрдм рдирд┐рд░реНрднрд░рддрд╛ рд▓реЗрдЦрдХ (рд▓реЗрдЦрдХреЛрдВ) рдХреЛ рдЕрдзрд┐рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЬрдм рддрдХ рдХрд┐ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдмреЛрдирд╕ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкрд╕реНрдЯреНрд░реАрдо (рдФрд░ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХреЗ рдЕрдкрд╕реНрдЯреНрд░реАрдо) рдХреЛ рд╕рд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдирд┐рд░реНрдгрдп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рди рдХреЗрд╡рд▓ рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ), рдФрд░ рдЗрд╕ рдЬреНрдЮрд╛рди рдХреЗ рд╕рд╛рде, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕рдХреЗ рдлрд┐рд░ рд╕реЗ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред

рдореИрдХрдкреЛрд░реНрдЯреНрд╕ рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рддрдп рд╣реЛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рдПрдХ рдкреИрдЪ рдЬреЛрдбрд╝рд╛ <2.0 рд╕реЗ <3.0
рдЕрдм рд╣рдо рдЕрдкрдиреЗ macOS рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдкрд░ рдлреИрдмреНрд░рд┐рдХ v1.12.0 рдФрд░ Paramiko v2.0.2 рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рд╕реЗ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

@hostep рдЗрд╕реЗ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж

@рд╣реЛрд╕реНрдЯреЗрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдИ рдмрд╛рд░ рдореИрдВрдиреЗ *_requires рдЪрд╢реНрдорд╛ ( <= / == рд╕реЗ >= рдпрд╛ '' ) рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдкреЛрд░реНрдЯ, рдпрджрд┐ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдкрд╛рд░рд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рднрдпрд╛рдирдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдЬреЛрдЦрд┐рдо рднрд░рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдо рдлреИрдмреНрд░рд┐рдХ рдХреЗ рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рд╣реИрдВ, рд╣рдо рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо) рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рддреЛрдбрд╝рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ :)

рдЕрдзрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЕрдкрдбреЗрдЯ ... рдкрд┐рдЫрд▓реЗ 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 рдЕрдм рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рднреА рдбрд╛рдЙрдирд▓реЛрдб рдХрд╛ рдЖрдзрд╛ рд╣реИред рдФрд░ рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рдЯрд┐рдХрдЯ рдХрд╛ рд╡рд┐рд▓рдп рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдЕрдиреНрдп релреж% рдореЗрдВ рд╕реЗ рдХрд┐рддрдиреЗ рд╣реИрдВ :) рдЬрд▓реНрдж рд╣реА рдкрддрд╛ рдЪрд▓ рдЬрд╛рдПрдЧрд╛!

рд╕реЛрдЪреЗрдВ рдХрд┐ рдореИрдВ рдЗрд╕ рдкрд░ рдЕрдорд▓ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдлреИрдм 1.13.0 рдХреЗ рд░реВрдк рдореЗрдВ рдкреЙрдк рдЖрдЙрдЯ рдХрд░реВрдВрдЧрд╛ред

рдЙрд╕ рдкрд░ рджреЛрдмрд╛рд░рд╛ рдЧреМрд░ рдХрд┐рдпрд╛ рдХрд┐ @Julian рдФрд░ рдореИрдВрдиреЗ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдереА, рд▓реЗрдХрд┐рди рд╡рд╣ extras_require рдЬрд╛рджреВ рдХреЗрд╡рд▓ рддрднреА рдЖрд╡рд╢реНрдпрдХ рд▓рдЧрддрд╛ рд╣реИ рдЬрдм рдореИрдВ PyPy рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛; рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдореИрдВ рд╕рд┐рд░реНрдл "рдкреИрд░рд╛рдорд┐рдХреЛ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдВ <3" рдмрд┐рдЯ рдереЛрдХ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ ...

рдкреАрдкреАрдкреАрдЖрдИ рд╣реИ

рдЧрд╛рд╣, рдмреЗрд╢рдХ рдореИрдВ рднрд╛рдИ-рдмрд╣рди рдХрд╛ рдЯрд┐рдХрдЯ рднреВрд▓ рдЧрдпрд╛, #1462! 1.13.1 рд░рд╛рд╕реНрддреЗ рдореЗрдВ...рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдФрд░, рд╡рд┐рд▓рдп/рд░рд┐рд▓реАрдЬрд╝ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рд╣реБрд░реНрд░реЗ!

9 рджрд┐рд╕рдВрдмрд░ 2016 20:14 рдХреЛ, "рдЬреЗрдл рдлреЛрд░реНрд╕рд┐рдпрд░" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдЧрд╣, рдмреЗрд╢рдХ рдореИрдВ рднрд╛рдИ-рдмрд╣рди рдХрд╛ рдЯрд┐рдХрдЯ рднреВрд▓ рдЧрдпрд╛, #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 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

yuvadm picture yuvadm  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

harobed picture harobed  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

acdha picture acdha  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

neemxyang picture neemxyang  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jmcgrath207 picture jmcgrath207  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ