2017-12-12 13 views
3

これは初心者の質問かもしれませんので、ご容赦ください。 私たちは小さなPython開発チームを持っており、私たちのレポは下記のように構成されています。私たちは、複数のスクリプト(ラッパー)で共有され、各ラッパー固有のライブラリを共有するカスタムライブラリを用意しています。以下の構造はGitの下で維持されています。これは開発のために今まで働いてきました。今は個別にラッパーをリリースしたいと思います。で述べたように、別の聴衆(異なるタイムラインとニーズ)をターゲットとし、後でwrapper2をターゲットにしてwrapper1をリリースする必要があります。どちらもshared_libraryとその特定のライブラリのみを含む必要があります。これを行う最善の方法は何ですか?Gitと共有のPythonライブラリ

repo/: 
    wrapper1.py 
    wrapper2.py 
    shared_library/: 
     module1.py 
     module2.py 
    wrapper1_specific_lib/: 
     wrapper1_module1.py 
     wrapper1_module2.py 
    wrapper2_specific_lib/: 
     wrapper2_module1.py 
     wrapper2_module2.py 

私たちは、次の解決策を検討している:3つの別々のレポとして

  1. 再ORG:WRAPPER1、wrapper2とSHARED_LIBRARYを、別々にリリースします。

  2. はWRAPPER1とwrapper2のための2つの別々のリポジトリを持っており、定期的に共有ライブラリを同期(!!?!!)

  3. このようにそれを残すが、選択を解放するために何らかの方法でGitリポジトリを使用することが可能である場合探りますファイル、各ラッパー固有のフォルダー。

Gitを使用してリリース管理を改善するためのPythonコード編成についてお手伝いします。前もって感謝します!!

+1

どのように今リリースしていますか?図書館をgithubから引き抜こうとしていますか? –

+1

組織がピピミラーをホストすることができる場合は、各ラッパーをパッケージとして配布して、エンドユーザーが「pip」経由でインストールできるようにすることができます。 –

+0

@Danまだリリースされていません。計画はGitHubから引き出すことです。ありがとう –

答えて

1

あなたには3つの製品があり、それぞれに独自のリリースタイムラインがあります。 Wrapper1のユーザーは、wrapper2のコードを見るのに興味がなく、その逆もあります。 3レポに入るのが最も簡単なアプローチです。

自動ユニットテストをshared_libraryリポジトリにパッケージ化するように注意してください。どちらの依存アプリも、独自のテストと共有テストを正常に実行できる必要があります。これは、リリースされたアプリケーションが新しい機能要求を送信し、shared_libraryを異なる方向に引き出そうとする際に重要になります。

+0

ありがとうございます。私はこれが私の仕事にとっても良い選択だと感じています。 –

関連する問題