私はモノレポについて自分自身を教育してきました。それは私のチームと私たちのプロジェクトの現状にとって素晴らしい解決策であると信じているからです。複数のWeb製品(クライアントポータル、内部ポータル、API、コア共有コード)があります。
私が見つけたい答えを見つけるのに苦労しているのはバージョン管理です。
すべてのプロジェクトと製品がモノレポ内にある場合のバージョン管理戦略は何ですか?
また、CIの観点から、プロジェクトAで何かをコミットする場合、依存関係/共有モジュールに必ずしも変更が加えられていなくても、すべてのプロジェクトで一連のテスト全体を起動して、何も壊れていないことを確認する必要がありますか?
すべてのプロジェクトと製品がモノレポ内にある場合のバージョン管理戦略は何ですか?
次の理由から、1つのバージョンがすべてに適合することをお勧めします。
release-x.x.x
のタグを付けることができます。バグが発生した場合は、「XXXのどのバージョンがYYYを使用していたか」を確認する必要はありません。また、CIの観点から、プロジェクトAで何かをコミットする場合、依存関係/共有モジュールに必ずしも変更が加えられていなくても、すべてのプロジェクトで一連のテスト全体を起動して、何も壊れていないことを確認する必要がありますか?
テストの実行に特に時間がかからなければ、これによる害はありません。私は間違いなくこれをお勧めします。テストが頻繁に実行されるほど、時間依存または環境依存のバグをより早く発見できます。
何らかの理由で常にテストを実行したくない場合は、VCSにクエリを実行し、変更内容に応じて条件付きでテストをトリガーするスクリプトを作成できます。これは、VCSとCIサーバー間の統合に大きく依存しています。