Fabric の Python 3.x 対応について調べてみた

2015-03-29 時点での情報です。超絶意訳なので正確には原典をあたってください。

まとめ

Fabric 1.x から (Fabric 2.x + Invoke 1.x) の体制に近々移行する予定であり、その過程で Python 3.x 対応はする予定。

参考にした URL

  • Installing - Fabric
    • Fabric の開発では、print のかわりに print() を使ったりと、Python 3.x 対応に向かっている。依存しているモジュールが対応したら、「間違いなく (will definitely)」Python 3.x に移行する。
      • Fabric の依存先は setuptools, Paramiko(とその依存先)で、これらは現在すべて Python 3.x に対応している。
  • Python 3.3 support
    • Fabric 2.x 系で Python 3.x 対応をする、とのメインメンテナの言葉。
  • Split out non-ssh-dependent features into separate lib
    • たとえローカルでしか Fabric を使わないとしても ssh と PyCrypto を導入しなければならない現状はクソだから、Invoke ってプロジェクトを新しく作って ssh 以外のタスク実行はそっちにすべて任せたい(Fabric 2.x + Invoke 1.x でひとまとまりという構成で動くようにしたい)らしい。
    • Invoke がいまだに alpha なのは、Fabric 2 を作る過程で Fabric 1 から機能を移行しているのだが、その際に同時に Invoke のデザインも決定しているから。
    • 2015-01-29 現在、Fabric 2 はメインメンテナが private に作っている。alpha を PyCon 2015 (2015-04-08) に間に合わせたいっぽい。
  • Invoke
    • 新しいタスク実行モジュールとなるべき Invoke は既に Python 3.2+ に対応している。