多くの小さなスクリプト、1つのリポジトリ、または複数ですか?


15

同僚と私は、複数の意見を持っている問題に遭遇しました。

現在、すべてのcronジョブを保持しているgitリポジトリがあります。約20のcronがあり、それらはすべて小さなpythonスクリプトであり、いくつかのアクティビティに不可欠であるという事実を除き、実際には関連していません。すべてのスクリプトの要件fabric.pyを展開するrequirements.txtファイルと管理するファイルを使用しています。

私たちの問題は、基本的に、これらのスクリプトをすべて1つのgitリポジトリに保持するのか、それとも独自のリポジトリに分離する必要があるのか​​、ということです。それらを1つのリポジトリに保持することで、1つのサーバーに簡単に展開できます。すべてのスクリプトに1つのcronファイルを使用できます。

ただし、20個のcronジョブは論理的に関連していないため、これは間違っていると感じています。さらに、requirements.txtすべてのスクリプトに1つのファイルを使用する場合、特定のスクリプトの依存関係を把握するのは困難であり、それらはすべて同じバージョンのパッケージを使用する必要があります。

すべてのスクリプトを独自のリポジトリに分離することもできますが、これにより20の異なるリポジトリが作成され、それらを覚えて処理する必要があります。これらのスクリプトのほとんどはそれほど大きくなく、その解決策は行き過ぎているようです。

関連する質問は、すべてのcronジョブに1つの大きなcrontabファイルを使用しますか、それとも個別のファイルを使用しますか?それぞれが独自のものを持っている場合、あるcrontabのインストールは他の19の上書きをどのように回避しますか?これはまた、20種類のcronファイルを追跡する必要があるため、苦痛のように思えます。

要するに、私たちの主な質問と問題は、それらをすべて1つのリポジトリとして密接にバンドルしたままにするのか、それとも独自のrequirements.txtとfabfile.pyを使用して独自のリポジトリに分けるのですか?私たちは、おそらくいくつかの本当に簡単な解決策も検討しているように感じます。この問題に対処する簡単な方法はありますか?


これらのスクリプトのcronジョブは他のアプリケーションに関連していますか、それとも文字通りユーティリティスクリプトの単なるゴミ捨て場ですか?
グレッグブルクハート

それらを同じリポジトリに配置することで、同じrequirements.txtを共有する必要があることを意味しないのですか?リポジトリの別のサブディレクトリに入れた場合、彼らはそれぞれ異なる... requirements.txtを持つことができます
ショーン・バートン

回答:


16

それらのそれぞれが個別のリポジトリに値すると考える特別な理由がない限り(それらは多く成長しますか?おそらくそうではありません!)、すべてを1つのリポジトリに入れて、すべてのクローンを作成する手間を省く方が合理的です20のレポから。

それぞれを別々のリポジトリに保持することは、問題が存在しない場合に問題を作成するパスのように思えます。

自分(および他の人)のために余分な作業を作成しないでください。


2
同意-スクリプトに適切な名前が付けられていて、スクリプト間(つまり、共有ライブラリなど)での重複が少ない限り、grep検索が乱雑にならない限り、これは機能すると思います。
ダニーステープル

1

分割の本当に正当な理由(パフォーマンス、圧倒的な組織/セキュリティの懸念など)がない限り、私の本能はソースドキュメントを同じリポジトリにまとめることです。

通常、システムを別々のリポジトリに分割すると、再利用を妨げる障壁が作成されます。再利用は組織が開発コストを償却する唯一の方法であるため、再利用の邪魔になるものは事実上悪いことです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.