6

私はそれが自分のチームと現在のプロジェクトの状態にとって素晴らしい解決策であると信じているので、私はモノレゾリューションについて自分自身を教育してきました。私たちは複数のWeb製品(クライアントポータル、内部ポータル、API、コア共有コード)を持っています。モノレポの中の製品をバージョンアップする方法は?

ここで、私が探したい回答がバージョン管理であることを見つけるのに苦労しています。

あなたのプロジェクトや製品がすべてモノレポの中にある場合のバージョニング戦略は何ですか?

  • 1バージョンはすべて適合しますか?
  • 独立したバージョン管理を持つGitサブモジュール(モノレポを持つ点が壊れている)
  • その他の戦略?

CIの観点からは、プロジェクトAで何かをコミットするときに、必ずしも変更が加えられていなくても、何も壊れていないことを確認するために、依存関係/共有モジュール

+0

使用するVCS(gitと思われる)と使用するビルドツールを明確に記述する必要があります。また、使用するリリースワークフローの種類。また、1の2つの質問は、stackoverflowのために良いではありません。 – tkruse

答えて

2

すべてのプロジェクトと製品がモノレポの中にある場合のバージョン管理戦略は何ですか?

私は1つのバージョンは次のような理由で、すべてに適合することを示唆している:

  • あなたの製品をリリースするときに、例えばrelease-x.x.xとして、全体の枝にタグを付けることができます。バグが発生した場合は、「YYYのバージョンがYYYだったかどうか」を確認する必要はありません。
  • xy.xのバージョンのx.x.xでは、バージョンx.x.xのYYYが使用されます。本質的には、プロジェクトを同期させた状態に保ちます。どのように当然のこのついて行くことは、あなたのプロジェクトが中に書かれているどのような技術に依存します。

そして、CIの観点からプロジェクトAに何かをコミットするとき、あなたはすべての中でのテストのスイート全体を起動しますたとえ依存関係/共有モジュールに変更を加える必要はなかったとしても、何も壊れていないことを確認するプロジェクトでしたか?

テストに長時間かかることがない場合は、このことから害が出ることはありません。私は間違いなくこれをお勧めします。時間の依存性や環境に依存するバグを発見できるほど早くテストを実行する頻度が高くなります。

何らかの理由でテストを実行したくない場合は、VCSにクエリを実行し、何が変更されたかによってテストを条件付きでトリガするスクリプトを作成できます。これは、VCSとCIサーバーの統合に大きく依存しています。

関連する問題