共通のモジュールを共有するPythonプロジェクトがいくつかあります。これまで、私は...ええと...共通コードの複数のコピーを保持し、手動で同期してきました。しかし、私は明らかに何か他のことをしたいと思っています。
zc.Buildoutがおそらく私が必要としているものであるかのように、今私には見えます。私がすべきことは、システムの再利用可能な各コンポーネントを別々の卵に入れ、ビルドアウトを使用してそれらをプロジェクトにアセンブルすることだと思います。
また、特定のモジュールについては、ユニットテストを別のパッケージまたはeggに入れて、すべてのプロジェクトにコンポーネントのユニットテストのコピーをインストールしないようにする必要があると考えています。ライブラリが使用されているだけではなく、ライブラリが開発されている場所でのみ単体テストを実行したいと思います。
だから多分私はこのようなものが欲しい
projects
lib1
tests
code
lib2
tests
code
app1
tests
appcode
app2
tests
appcode
等
app1とapp2の両方が独自のコードとテストを備えた独立したアプリケーションであるが、lib1とlib2の両方を含み使用している場合。そして、lib1 / test、lib1 / code、lib2 / test、lib2code、app1、app2は別々の卵です。これは正しいですか?
しかし、今は混乱しています。app1を開発するとき、ビルドアウトでlib1、lib2、およびapp1のコピーを、app1の下に直接配置するのではなく、別の作業ディレクトリにプルする必要があると思います。しかし、これは私のSVNソース管理でどのように機能しますか?作業ディレクトリがビルドアウトを使用して動的に構築されている場合、変更をリポジトリにチェックバックできるライブSVNディレクトリにすることはできませんか?
ビルドアウトがどのように使用されるのか誤解しましたか?まったく別のアプローチをとったほうがいいでしょうか?プロジェクト間でソース管理とモジュール再利用をどのように組み合わせますか?
更新:現在この質問に回答してくれた2人に感謝します。私はこれでもっと実験しています。