私は現在、他の 5 人の開発者と一緒にプロジェクトに取り組んでおり、バージョン管理システムに Subversion を使用しています。ソフトウェアの最初のリリースまでに 12 のマイルストーンがあることを確認しました。バージョン番号 (0.1 から 0.12) と説明的なラベルを使用して、マイルストーンにラベルを付けました。例えば:
- 0.1 - ナビゲーション
- 0.2 - 検索中
- 0.3 - ユーザー管理
ただし、いくつかのマイルストーンごとに、以前のマイルストーンで構成される外部リリースがあります。したがって、次のような結果になります。
- 0.1 - ナビゲーション
- 0.2 - 検索中
- 0.3 - ユーザー管理
- 0.4 - アルファ 1
これらの各マイルストーンは並行して開発できますが、並行して QA も行う必要があります。これは、マイルストーンのバージョン番号だけでラベル付けされた各マイルストーンの Subversion にブランチを作成することで実現しています。自動化されたシステムが各マイルストーンを個別に構築し、マイルストーン番号とアプリケーションの構築元であるサブバージョン リビジョン番号を使用してアプリケーションをバージョン管理します。バージョン番号はアプリケーション内で目立つように表示されるため、QA チームはバージョン番号を見て、それを特定のマイルストーンに関連付け、QA が必要なものとそうでないものを知ることができます。マイルストーンが QA に合格すると、トランクにマージされ、進行中の開発は最新のコードで更新されます。
ただし、バージョン番号の増加には以前のすべてのバージョンが含まれるという仮定があります (当然のことです)。残念ながら、上記のスキームでは、あるマイルストーンが別のマイルストーンより先に終了する可能性があるため、これは発生しない可能性があります。たとえば、0.3 は 0.1 より前に終了する可能性があります。つまり、0.2 または 0.1 の機能を含まない 0.3 の内部リリースがあるということです。
これは私の問題です。複数の並行リリース (内部またはその他) が非連続的に完了する可能性がある場合、ソフトウェアをインテリジェントにバージョン管理するにはどうすればよいですか?