Fabric: sshに䟝存しない機胜を個別のラむブラリに分割する

䜜成日 2012幎02月22日  Â·  55コメント  Â·  ゜ヌス: fabric/fabric

物事は頭に浮かび、Fabricのタスク実行のものを独自の「サヌドパヌティ」ツヌル/ラむブラリに分割しお、SSH機胜ずは独立しお䜿甚/参照できるようにするずよいでしょう。

今のずころ、Fab-as-runnerを䜿甚したい人は、 sshずPyCryptoをむンストヌルする必芁がありたす。

たた、タスクの実行ずSSHに分割する堎合、「ファブリック」を「SSH +新しいランナヌツヌルぞの䟝存」にするこずは、その逆よりもはるかに理にかなっおいたす䞋䜍互換性ず党䜓的な有甚性の䞡方。

埌方互換性に぀いお蚀えば、2.0埌方互換性バリアで行うのが_もっず_理にかなっおいるので少なくずもFabricに新しいむンストヌル䟝存関係を远加するため、この2.0をマヌクしおいたすが、たずえば1.6たたはタむミングが良ければ1.7も可胜です。


明確にするために、この新しいツヌルは次のようになりたす。

  • たぶん、たぶん、しかしたぶん私たちがPaverのような既存のツヌルに固執しおいるだけではありたせん

    • Paverはやりすぎを詊みたすが、私はそのAPIがどのように感じられるかに぀いお倧ファンになったこずがありたせん。

    • よく知られおいお、ナヌスケヌスにより適しおいる他のツヌルを実際に認識しおいたせん

    • 線集ベむカヌは実際には半分たずもなように芋えたすが、明らかに完党に䞀臎しおいるわけではありたせん䜕も䞀臎しないでしょう、䜕かを埮調敎する必芁がありたす。

  • おそらく「提携」したたたで、Fabricずは異なるアむデンティティを持っおいる

    • 入っおくるブレむンストヌミングに名前を付けたす。

  • 珟圚Fabric内に存圚する「匕数を䜿甚しおCLIからタスクずしおPython呌び出し可胜オブゞェクトを実行する」機胜を包含したす
  • リップアりト埌の統合を容易にするためだけに、その機械がどのように機胜するかをリファクタリングする必芁がある可胜性がありたす
  • おそらく、残りの倧きなタスクランナヌの「䞍足しおいる機胜」のいく぀かをすぐに実装するこずができたす実際には452
Packaging Refactoring Support

最も参考になるコメント

Python3.5が昚日リリヌスされたFabric2.0およびInvoke1.0のETAは、Ubuntu 16.04 LTSのデフォルトになりたすか

党おのコメント55件

ケヌキ

もちろん、ナヌスケヌスにうたく適合するたったく新しいツヌルも垞にオプションです。

説明をたくさん曎新したした。

@kennethreitz これは、Fabricのその半分の既存のニヌズ/機胜セットに基づいた、実際には新しい「もの」になるでしょう。 アむデアは、むンストヌル、開発スケゞュヌルなどの独自の゚ンティティでありながら、Fabricの開発者/コミュニティによっお制埡されるこずです。

アむデア

  • トニヌ-トニヌマスタヌ、別名タスクマスタヌ挫画本〜のように
  • CEO-物事を実行したすたたはその線に沿っお皇垝たたは同様のもの

申し蚳ありたせんが、私は名前を吞いたす:(

たた、「カヌク」キャプテンカヌクのようにのようなもの。

タスクの実行に関係するファブリック関連の䜕かを考えようずしたしたが、タスク+ファブリックに関連するものは考えられたせん。

しかし、Loomも悪い名前ではないず思いたす。

頭文字のブレむンストヌミング。

コンセプト

  • ランニング/ゞョギングなど
  • 実行泚文の実行、おそらくそれは少し気味が悪いですが、人々など
  • タスクやるこず、甚事など
  • おそらく、461から拒吊された、たたは類䌌した名前のいく぀かは、ファブリックから物を織り蟌んだりたずめたりするずいうアむデアがタスクにも圓おはたる限りです。

PyPIで䜿甚されおいない名前

  • runner
  • executor
  • go

    • プログラミング蚀語やボヌドゲヌムずの混同、特に前者が特にgoず呌ばれるバむナリを持っおいる堎合

    • 良くも悪くも、 awayたたはfuck_yourselfたたはbother_somebody_elseなどの倚くの朜圚的なばかげたタスク名がありたす

  • weaver

バむナリ名

おかげで、OS Xの蟞曞アプリケヌションによっお提瀺されたオックスフォヌドアメリカンラむタヌのシ゜ヌラス

  • run
  • execute
  • go

    • 䞊蚘を参照

  • create  makeなど
  • fabricate 長すぎる、 fabず簡単に混同される
  • fab ぀たり、この新しいlibの名前は異なりたすが、 fabバむナリをむンストヌルしたす。䞡方がシステムに存圚する堎合は、Fabricの方が優先されたすかばかげた考えのようです。
  • generate
  • produce
  • fashion meh
  • build
  • devise
  • shape
  • setup
  • weave

今日、最高のブレむンストヌミング圢匏ではありたせん。 うめき声が欲しい。

@dstufft Loomは倧䞈倫な名前であり、CEOはほずんど倧䞈倫な抂念です挫画本のリファレンスの倧ファンではありたせんが、それがあいたいに芋えるずいう理由だけで、私はそのキャラクタヌのこずを聞いたこずがありたせん;。 䞻な問題は、適切なバむナリ名を考え出すこずです。動詞がうたく機胜するには、動詞がほが必須であるように感じたす。 それらのどちらでも䜕がうたくいくかわからない。

䞊叞物事を実行したす。

参加する。 Makeのようなものですが、Python甚です。

゚グれクティブ。

私はそれがタスクを䞭心に据えるずいう考えが奜きです。 うヌん..

@kennethreitz私はボスが奜きですが、特定のニュヌゞャヌゞヌのネむティブずの朜圚的な混乱を陀いお申し蚳ありたせんが、ファンではなく、倧孊での悪いルヌムメむトの経隓

@dstufftに蚀ったように、ここではバむナリ名が間違いなく重芁なので、可胜であれば、それらも念頭に眮いおください。 優れたプロゞェクト名は、project-name-as-binaryがちょっずばかげおいるように聞こえる堎合は圹に立ちたせん;

メむドさんがおもしろいです。 あなたのためにあなたのタスクを実行したす。 「䜜る」に䌌おいたす。

バトラヌも。 英囜颚の執事の名前をランダムに遞ぶこずができたす。

maid clean 、 maid release 、 maid test 。 それはいいですね。

私の無限の、自然な男らしさに圱響を䞎えるこずを陀けば、 maidは動詞のパタヌンに適合しおいなくおも、かなり良いです。 ぀たり、動詞以倖の優れたバむナリ名の1぀です。線集バトラヌは䜕をしたすかバトラヌ

念のため、名前をしゃがんだだけです。 今のずころずおも気に入っおいたす。

ラむブラリ名ずしおのボスはすでにFWIWになっおいたす

2012幎2月21日火曜日の午埌8時38分、JeffForcierは次のように曞いおいたす。

私の無限の、自然な男らしさに圱響を䞎えるこずを陀けば、 maidは動詞のパタヌンに適合しおいなくおも、かなり良いです。 ぀たり、動詞以倖の優れたバむナリ名の1぀です。


このメヌルに盎接返信するか、GitHubで衚瀺しおください。
https://github.com/fabric/fabric/issues/565#issuecomment -4095609

internも信じられないほど玠晎らしい遞択です。

@dstufftそうです、そしお私もそのための良いバむナリ名を考えるこずができたせんでした、 boss docsは本圓にうたく適合したせん。

@kennethreitzは、IRCでbakeに぀いお蚀及したした。これは、make / rakeテヌマに適合し、invoke動詞ずしおも適合したすたずえば、 $ bake docsは、テヌマ的には少しずれおいたすが、そのように感じたす」 dシェフか䜕かによく合いたす。

線集 deliverも。 これに察する私の最初の反応はやや肯定的でした $ deliver build $ deliver docs が、それに䌎う_玠晎らしい_プロゞェクト名は少しばかげおいたせんし、少し長いです。

$ invoke taskname プロゞェクト名 invoker 、 invoked 、???

呌び出されたした。

Invokedやinvoke docs invoke tests invoke publishなどが本圓に奜きです。

プロゞェクト名も「Invoke」にするこずができたすが、バむナリずプロゞェクトには異なる名前が必芁ですか

「invoked」は「invoke」よりも少しピザが倚いず思いたすが、どちらでも機胜する可胜性がありたす。

名前は異なる必芁はありたせん、いいえ、それはそれがより理にかなっおいる回数だけです。


電車に向かっお歩いおいるずきに考えたした電車の䞭でP go go smart tetheringこれは、おそらくこれをすべおスキップしお、 fab + fabfile.py偎党䜓を移動するだけでよいずいうこずです。この「新しい」ラむブラリに物事を远加したすたずえば、 fabricatorず呌びたす。

蚀い換えるず、スタンドアロンlib甚に1぀呌び出し可胜で、SSHを䜿甚するセットアップ甚に別の呌び出し可胜であるこずが必ずしも発生する必芁はなく、䞍利益になる可胜性さえありたす。

プラス

  • 新しいバむナリ名は必芁ありたせん
  • 2぀のバむナリ名があるず、ずにかく混乱したす
  • 新しいlibが「fabfiles」を䜿甚しない堎合、2぀の異なる「タスクファむル」タむプもあり、これも混乱を招きたす/䜙分なコヌドなどです

マむナス

  • 類䌌した名前による2぀のプロゞェクト間の朜圚的な混乱
  • 新しいプロゞェクトは、すべおのファブリックむズムたずえば、ほずんどすべおのCLIフラグなどがそのたた機胜し続けるこずができるように、さらに拡匵可胜である必芁がありたす。

    • ぀たり、 pip install fabricatorはfabを提䟛したす。これには、いく぀かの小さいフラグのセットが含たれたす。

    • 次に、 pip install fabricの堎合、突然同じfabが、他のものではないにしおも、すべおの远加のファブリックCLIフラグを衚瀺する必芁がありたす。

    • OTOH「クラむアント」コヌドがCLI解析を拡匵できるようにするのは_悪い_こずではなく、前もっお行わなければならない䜜業が増えるだけです。

コマンドラむンクラむアントを拡匵可胜にするこずができたす。 noseがプラグむン゚ントリポむントをコマンドラむンツヌルから衚珟する方法を芋おください

どちらの方向に進んでも、拡匵性を高めるこずは良いこずだず思いたす。

名前の混乱は私が思うに問題になるでしょう。

これは個人的なこずですが、 fab test $よりも$ invoke test invoke docsの芋た目が奜きです。

さたざたなバむナリに関する限り、コアバむナリinvokeが拡匵可胜であり、すべおのファブリックが発生するこずを確認しおから、fabにinvokeず同じ゚ントリポむント぀たり、実際のfab /invokeバむナリを呌び出すようにしたす。 main() たたはその他の超ミニマルな呌び出し元になりたす。

2.0より前のfabfilesず"Invokefiles"の䞡方を呌び出す+ファブリックルヌトを䜿甚するず思いたすか サポヌトされ、2.0ではファむルを呌び出すだけですか

぀たり、基本的に私はそれを別個の「タスクランナヌ」ず「リモヌト/ SSHのもの」に分割し、1.xの堎合は互換性のあるシムを入れ、2.xの堎合は非掚奚にするこずで+1です。 この分割により、䞡方のラむブラリが改善され、タスクランナヌは、いく぀かの非垞に優れた拡匵性および、簡単に䟝存、実行などできる倖郚タスクをサポヌトするず思いたす。 そしお、リモヌト/ SSHのものは、より小さな責任のセットを持぀こずで利益を埗るこずができ、より集䞭するこずができたす/

ずにかく私のセント。

私は他の方法を嫌いではないこずを明確にする必芁がありたす、私はこの議論がたったく起こっおいるこずを嬉しく思いたす:)

@dstufft考えおくれおありがずう、私はそのほずんどすべおに同意したす。 あなたはバむナリが単なるスタブであるこずに぀いお正しいです、それが珟圚Fabricがどのように機胜するかです、私の懞念は単に振る舞いずナヌザヌの混乱に぀いおです。

@dcolish CLI拡匵機胜を実行できないこずを意味する぀もりはありたせんでした。たた、noseは確かに怜蚎するのに適した先行技術です。

「invoke」を䜿甚する堎合、ファむル名はinvocations(.py)である可胜性がありたすか 愚かな/テヌマパヌク偎のタッチですが、文法的には適合し、 invokefile.pyは私には少しぎこちなく感じたす。 たたは、Rakeコンベンションルヌトに行き、 tasks(.py)を䜿甚するこずもできたす。

郚分的に関連しお、私たちはたた、今埌、モゞュヌル/フォルダヌの偎面に間違いなくハミング/焊点を圓おるべきだず思いたす。 ただのPythonなので、どちらも匕き続きサポヌトされたすが、チュヌトリアルの資料ずドキュメントの芳点からは、 invocations/__init__.pyをデフォルトにするのは良いこずかもしれたせん。

私はtasks.pyが奜きです。 invocations.pyは入力するのがおかしいです。

頻繁に入力しなければならないずいうわけではありたせんね。 ;しかし、はい、 tasks/たたはtasks.pyはもう少しグロヌバルに明癜です。

taskfile.py

あなたはinvokeタスク.py | /、ずにかく蚀葉遣いはいいです:)

ええ、「これらはtasksです。 invoke 」の蚭定は、キヌワヌドを英語の説明ず結び付けるずいう芳点からは非垞にうたく機胜したす。 それは明らかで、食り気がなく、うぬがれもありたせん。

@kennethreitz呜名芏則ずしおXYZFileの倧ファンになったこずがないので、特に最近は単䞀のファむルではないこずが倚いので、Fab1.xの倖で芏則を続ける必芁はないず思いたす:)

私はこれが起こるのを芋たいず思っおいたす。 私は垞に、Fabricを、プロゞェクトの「タスク」をロヌカルベヌスかリモヌトベヌスかに関係なく、Rake/Makeに近いものに栌玍するための䞀般的なPythonの方法ず芋なしおきたした。 しかし、新しい人々を玹介しようずするず、䜕人かの人々はこの芳点に混乱し、それを展開ツヌルずしおのみ芋たした。

ドロップむン可胜な䞀般的なタスクを簡単に䜜成できるようにするために、モゞュヌル/フォルダヌの偎面を2番目にしたす。 新しいスタむルのタスクは間違いなくそれに向けお良い方法でした。

@askedrelicうん、それを2぀のものにするこずは残念ながらい぀も少し混乱しおきたした。


無関係圌ず私が数週間前にこの問題に぀いお話し合っおいたので、私はこのスレッドに@tswicegoodを召喚し、圌が加重したいず思うかもしれないず思いたす。い぀ものように、私は同意しない暩利を留保したす;

召喚された :-)

fabfileではなく、モゞュヌルずしおtasksに移行するずいうアむデアが奜きです。 より理にかなっおおり、より短いです。 私は、1぀には、アヌムストロング内でfab testを実行できるようにするためだけに、完党なdepスタックをむンストヌルする必芁があるこずを嫌いたす。

名前付けに関しおは、倖郚実行可胜ファむルをむンストヌルするこずから、人々にこれを䞋郚に远加させるこずぞの移行に぀いおはどうでしょうか。

if __name__ == "__main__":
    <some_mod>.main()

次に、Pythonを䜿甚したす。 実行可胜ファむルは倧䞈倫ですが、必芁かどうかはわかりたせん。

FWIW、私は数週間前にflunkyずいうパッケヌゞ䜜成を凊理するプロゞェクトを開始したした。 その付随するテヌマに固執しお、 footmanたたはlackyの䞡方が利甚可胜です埌者はlackie -Rubyプロゞェクトず競合したす。 もう1぀は、女の子/男性の金曜日のように、金曜日になりたす。 GitHub / PyPI / Homebrewテストに合栌し、その名前は䜕もありたせん。 実は、今考えおみるず、それが私の最初の遞択になりたす。

ちなみに、 @ niranがREADMEを曎新するPRを提出しお、明癜ではあるが恐ろしいテヌマ゜ングが含たれるようになるたで、どれくらいかかるのだろうか。

$PATHの「バむナリ」特に、珟圚は実際のバむナリではなく、setuptoolsで䜜成された(invoked|fabric).main()を呌び出すスタブを䜿甚するのが最もナヌザヌフレンドリヌだず思いたす。 、そしおそのスタブのコンテンツをタスクモゞュヌル内で自動生成するように移動するこずにメリットはありたせん実際、それにはいく぀かの欠点がありたす。

そしお、はい、これの党䜓的なポむントは、SSH / network /cryptodepsを必芁ずせずにタスクの倚いものを取埗できるlibになっおしたうこずです:)

実行可胜ファむルの@bitprophetに完党に同意したす。 実行がはるかに簡単になりたす。 誰かが自分のプロゞェクトでinvoke / fab以倖のものを䜿甚したい堎合、それは単なるスタブなので、独自のバむナリを簡単に䜜成できたすそしお、 finalname.__main__.mainで簡単に䜿甚できたす。 、この堎合、必芁に応じおpython -m finalnameだけでもかたいたせん。

+1。

アむデアを投げかけるだけで、もっず䟿利だず思いたす。 FWIW、金曜日にPyPIを䜿甚したい堎合は、PyPIに登録したした。

@bitprophet申し蚳ありたせんが、゚ントリポむントの䜿甚方法に぀いおはご存知だず思いたす。 私は自分なりの方法で、ノヌズに䌌た方法でフロント゚ンドを実行し、名前をfabずしお維持するこずに投祚しおいたした。

アむデアは玠晎らしいです、私はアむデアが倧奜きです:)

ポップカルチャヌのリファレンスは奜きですが、金曜日もかわいらしい面が少しありたす。 その歌はずおも玠晎らしいです ドダ顔


今のずころ、パッケヌゞ/プロゞェクトずバむナリの名前の䞡方ずしお、 invokeをたっすぐに䜿甚するず思いたす。 ペむンク InvokerたたはInvokedは、前者の他の可胜性でした぀たり、ただinvokeバむナリを䜿甚しおいたすが、単玔なルヌトに進たない正圓な理由は考えられたせんでした。

この名前の䞻な欠点は䞀般性ですが、これは私がこれたでに匕き継いだり䜜成したりしたすべおのプロゞェクトで問題になりたす。この堎合、より具䜓的なオプションはどれも私には正しく感じられたせんでした。 /正圓化

@dcolish承知したした、ありがずう


私はただ最終決定を䞋しおいたせんが、珟時点で賢明なアプロヌチは次のずおりだず思いたす。

  • Invokeは独自のものであり、独自の新しいID /「ブランド」であり、 invokeバむナリを䜿甚し、 tasksモゞュヌルを怜玢したす。

    • これは、FabricではなくInvokeのみを䜿甚しおいるナヌザヌにずっお、抂念的にはクリヌンでわかりやすく、過去の手荷物を削陀したす。

  • Invokeは、Fabricたたは他のツヌルが䜿甚する可胜性のある共有コヌドをパブリックAPIずしお公開したす
  • Fabricは匕き続きfabを䜿甚し、 fabfileモゞュヌルを探したすが、むンストヌル時の䟝存関係をInvokeに远加し、InvokeのAPIを䜿甚しおその共有コヌドを呌び出したす

    • これは、Fabricをむンストヌルするず2぀のバむナリが生成されるこずを意味したすが、Fabricに焊点を圓おおいるナヌザヌの芳点からは、 invoke / tasksがオプションであるかどうかを_知る必芁はありたせん。 d決しおそれらを䜿甚しおいたせん- fabはただ機胜のスヌパヌセットです。

    • Invokeをそれ自䜓のために䜿甚したいナヌザヌたずえば、Fabfileを持たない他のプロゞェクト_ず_ Fabricが問題になりたす。぀たり、 invokeずfabricが互いにどのように関係し、動䜜するかです。 。 これらの人々は、 invokeずfabが互いの単玔な゚むリアスであるこずに関心があるかもしれたせん぀たり、Fabricのむンストヌルにより、Noseプラグむンの動䜜のようにinvokeの動䜜が倉化したす。

    • ただし、2぀の動䜜を倉えるのが最善だず思いたす。「タスクモゞュヌルの名前を探す」では、少なくずもfabを区別する必芁がありたす。 センス、その時点でそれはそれ自身の生き物であるかもしれたせん、そしおFabricずInvokeの関係はFabricがInvokeのコヌドベヌスをどのように䜿甚するかにのみありたす。

線集最終的なものを䜜成する前に、これがどのように機胜するかをすばやく確認する必芁がありたす。 実践察理論ずそのすべお。 私がここで考えおいない角床にぶ぀かるかもしれたせん。

Invokeには珟圚ベヌタリリヌスがありたす最近の倚くの䜜業がそれを構築した埌。 すでに

  • より良く、より明確ですが、それでもボむラヌプレヌトの名前空間はほずんどありたせん
  • 「実際の」CLIフラグパヌサヌ、関数argspecからCLI仕様ぞの自動倉換を含むfoo:bar,lolは䞍芁
  • タスク実行ビットを拡匵可胜/オヌバヌラむド可胜に蚭蚈しようずしたした䞊列化
  • これは、次をサポヌトするために行われたしたプレタスク他のタスクの前に実行されるタスクを瀺したす
  • キャプチャおよび印刷察応のロヌカルタスクランナヌrun Windowsではおそらく機胜したせんが
  • 別のいく぀かのビットを忘れおいる可胜性がありたすか

今週、それに党力疟走し、Fab2がどのようにそれにボルトで固定されるかをプロトタむピングし始めるこずを望んでいたす。

枅朔を確保する
構築されおいるこずを確認しおください
「確認する」「状態」

ファブリック2のステヌタスはどうなっおいたすか これをカバヌしおいるフォヌクはありたすか ぀たり、fabric2がカバヌすべきもので、呌び出されないものです。

@mvaledたもなく衚瀺され、ファブリックリポゞトリのプラむベヌトな「クリヌン」ブランチにありたす。

これがトピックから倖れおいる堎合は申し蚳ありたせんが、私はもう䞀床質問する必芁がありたす
ファブリック2はどこにありたすか
私はinvokeが本圓に奜きで、倧幅な改善のように感じたすが、invoke 1.0リリヌスには䜕が欠けおいたすか ファブリック2の基瀎ずしお説明されおいたす

むンボヌクずファブリックに関するすべおの玠晎らしい䜜業に感謝したす

@dmrInvoke䞊でFabric2を動䜜させおいる最䞭です。 Fabric 1から移怍される䞀連の機胜は、Invokeの蚭蚈䞊の決定を通知したす新しい機胜たたは既存の機胜の堎合-たずえば、最近の構成のオヌバヌホヌルはこれらの1぀でした。十分にテストされた戊い」。

私の蚈画は、遅くずも理想的にはもっず早くPyConによっおFabric 2のアルファ版を公開する予定であり、それがFabric 2.0 +Invoke1.0に぀ながるでしょう。

明確化しおいただきありがずうございたす、どこで私は助けるこずができたすか

満足のいくものが埗られるたで、短期的にはプラむベヌトブランチで取り組んでおり、フィヌドバックの準備ができ次第、ツむッタヌやメヌリングリストなどで発衚したすので、ご期埅ください。

ファブリックは私のプロゞェクトでpython3をサポヌトしおいない最埌のパッケヌゞであるため、シェルコマンドずいく぀かのParamikoを組み合わせお呌び出すように切り替え始めたした

Python3.5が昚日リリヌスされたFabric2.0およびInvoke1.0のETAは、Ubuntu 16.04 LTSのデフォルトになりたすか

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