リリースの前後にどのようにブランチとタグを付ける必要がありますか?
-
06-07-2019 - |
質問
現在使用している展開プロセスについて考えてきましたが、本番環境にリリースされる予定のコードの分岐/タグ付けを処理する良い方法があるかどうか疑問に思っています。
ある時点で、リリースブランチとしてブランチを作成し、最後にブランチに変更を加えてリリースしたいと思います。次に、リリース後にタグとして保存します。
明確にするために、命名、ブランチの処理、およびタグ付けの処理の規則を探しています。また、状況の処理について私が話している方法に代わるものがあるかどうか疑問に思っています。
- 毎回リリースブランチに名前を付けますか、それとも新しいコードで同じリリースブランチを使用しますか?
- リリースブランチがタグとして存在したら削除しますか?
- ブランチ/タグの命名方法
解決
この回答を読むことをお勧めします
基本的にRELEASEという名前のブランチが1つあり、必要に応じてそこからタグ付けできます。そして、最新のコードバージョンをトランクに保持します
リリースの命名に関する限り、それはあなたに最適なものとリリース番号を見ている人によって異なります。
MajorRelease.MinorReleaseを使用することを考えてから、技術的に興味がある場合はパッチリリース番号を指定することもできます(e.ggアプリの自動更新とmajor.minorは同じままです)。
メジャー:大きな変更->新機能/ブレークの互換性 マイナー:インターフェース互換性(例:パフォーマンス) パッチ:バグ修正
他のヒント
TFSを使用していない場合でも、ここでの情報をガイダンスとして使用できます。
作業には多くの方法があります。私が使用しているものは次のとおりです。
project_repository | |- trunk //Where the current in support release is. | |- branches //Where new features/big fixes or refactors are made. | |- tags //Where all releases are tagged. | |- releases //where all release tags are located |- daily //where all daily tags are located.
使用する命名は次のとおりです。
- ブランチの場合、ブランチに作成される主なタスクに基づいてブランチに名前を付けます(例:admin_module_refactor)。
- タグの場合、リリースタグに対応するタグにはバージョン番号(mayor.minor.micro。例:1.0.2)を付けます。または、毎日の作業タグの日付(例:YY_MM_DD)。
この構造と命名規則に従うために、この方法で作業するのに役立つツールとスクリプトのセットがあります。また、毎日のタグはビルドサーバーによって一晩中生成されます。
CruiseControl.Netを使用してビルドプロセスを自動化しました。ビルドはビルド番号に対応しているため、dllバージョンは6.5.4.1234になります。 6と5は、メジャーリリースとマイナーリリースがあると、常に手動で更新されます。 4はビルド後に手動で更新されました(1234も0にリセットされました)。ビルドプロセスは常に1234を1235に更新しました。
トランクからリリースしたとき(バージョンは常に6.0.0.xになります)、手動で分岐してBranch_6_0と呼びます。ブランチは6.0.1としてビルドされます。トランクは6.1または7.0に移動します。
CruiseControlには2つのモード(devおよびtest)がありました。テストは常にオンデマンドで作成され、ビルドバージョンに対応するブランチが作成されます。
ある時点でブランチを作りたい リリースブランチとして 枝への最後の変更と リリース
これは私を心配しているビットです。通常、ブランチを作成し、その上ですべての開発を行ってから、そのブランチをトランクに再統合します。このポイントからトランクにタグを作成します。さらに変更する場合は、新しいブランチを作成し、編集、再統合、再リリースします。
リリースブランチに変更を加えようとしないでください。変更を失ったり、トランクにマージするのに苦労したりします。
リリース分岐の代替アプローチは、すべての開発変更をtrunkに加え、準備ができたらリリース/タグ分岐を作成することです。小さなデベロッパーショップの場合、通常これが最も簡単な方法です。 (他の誰もが変更を加えている製品に大きな変更を加えている場合、他のアプローチはうまく機能します。)