可能性のある複製:
どの「バージョン命名規則」を使用していますか?
私は現在、従来のバージョン管理規約[major].[minor].[revision]
と私自身、ほとんど気まぐれな[YYYY].[MM].[DD].[hh][mm]
私が始めている新しいプロジェクトのために。
という事は承知しています [major].[minor].[revision]
はおそらく地球上で最も人気のあるバージョン管理方法であり、ラベル「メジャー」、「マイナー」、または「リビジョン」に値する変更の決定が...主語。
timestampに基づくバージョン管理システムは、純粋に主観的ではなく、一意性を保証します。
あなたはあなたのプロジェクトのためにどれを選びますか、そしてその理由は?
それらを組み合わせないのはなぜですか:
[メジャー]。[マイナー]。[YYYYMMDDHHMM]
そうすることで、バージョン(利用可能な機能)を簡単に表示する方法と、いつビルドされたかを確認する方法が得られます。
この方法では、2つの異なるバージョンを同時にフィールド(Ver 1/Ver 2)に入れることもできます。
[major].[minor].[revision]
システムを選択するのは、主にユーザー/クライアント/その他を許可するためです。新しい更新の変更の大きさを知っている。
一部のユーザー/クライアント/など。単に[revision]
の場合、新しいバージョンに更新する必要はありません。 [major]
の変更を待つこともできます。 [major]
の変更は、ユーザーインターフェイスの変更である可能性があります。 UIの変更は、たとえ小さなものであっても、エンドユーザーにとって大きな問題になる可能性があります。
[YYYY].[MM].[DD].[hh][mm]
システムでは、この機能が失われます。ユーザー/クライアント/など。更新ログを見ない限り、変更の大きさはわかりません。
ソフトウェア管理の世界には、「依存関係の地獄」と呼ばれる恐ろしい場所があります。システムが大きくなり、ソフトウェアに統合するパッケージが増えるほど、この絶望の穴の中で自分を見つける可能性が高まります。
多くの依存関係があるシステムでは、新しいパッケージバージョンをリリースすることはすぐに悪夢になります。依存関係の仕様が厳しすぎると、バージョンロック(すべての依存パッケージの新しいバージョンをリリースしなければパッケージをアップグレードできない)の危険があります。依存関係があまりにも緩く指定されている場合、バージョンの乱雑さによって必然的に噛まれるでしょう(妥当なものより多くの将来のバージョンとの互換性を想定している)。依存関係の地獄とは、バージョンロックやバージョンの乱雑さにより、プロジェクトを簡単かつ安全に進めることができない場合です。
この問題の解決策として、バージョン番号の割り当て方法とインクリメント方法を指示する簡単なルールと要件のセットを提案します...
このシステムを「セマンティックバージョニング」と呼びます。このスキームでは、バージョン番号とその変更方法は、基礎となるコードの意味と、あるバージョンから次のバージョンに変更されたものを伝えます。
セマンティックバージョニングは、期待の設定と維持に役立ちます。
[メジャー]。[マイナー]。[リビジョン] .[ビルド]リリース日付を使用して日付と時刻を記録し、個別に保持します。バージョンの一部としてビルド番号を含めることにより、日時やチェックアウトなどを考えたり調べたりする必要なく、本番やテストなどの内容を正確に知ることができます。
プロジェクトの種類によって異なります。
タイムスタンプを使用したバージョニングは、一般に、デプロイされたコードのライブコピーが1つしかないWebアプリケーションに適しています。
Major.Minor.Revisionを使用したバージョニングは、同時にデプロイされた複数のバージョンを管理する必要がある場合に、通常はより適切に機能します。
ビルドの番号付けとバージョン管理は同じである必要はありません。ビルドシステムには[YYYY]。[MM]。[DD]。[hh] [mm]を使用できます。作成時にリリースブランチに[メジャー]。[マイナー]。[リビジョン]という名前を付けるだけです。
major
対minor
対revision
は主観的ではなく、非常に単純です。
revisions
はバグ修正または微調整です。
minor
は、既存のAPIや動作を壊さない追加と変更です。
major
は、APIを破壊するか、既存のバージョンの動作を変更する機能を追加します。
これらは経験的なケースであり、主観的なものではありません。
私は個人的に[major]。[minor]。[revision]。[YYYYMMDD]を提案します。それが構築された時間と分が必要な理由が正確にわかりません:$