web-dev-qa-db-ja.com

バージョニング:コードまたはリポジトリのどこにバージョン番号を書き込む必要がありますか?

今私はこれをやっています:

  1. Readmeを更新して、新しいバージョン番号とその機能を含めます。
  2. Git commitメッセージでバージョン番号をコミットします(つまり、git commit -m "1.2.1:これで完了")。
  3. リポジトリをプッシュします。

これは適切な方法ですか?この方法ではブランチのバージョン管理方法がわからないので、これは間違っているという予感がしました。以前はほとんど常にマスターで直接作業していました。それは、たいていの場合、リポジトリだけで作業しているためです。これを変えたい。

編集:具体的には、コンパイル済みのバイナリがないWebアプリに取り組んでいます。

コードにバージョンがありません。バージョンがあるのはコンパイル済みプログラムです。

ビルドを行うときにバージョン番号を作成し、ソースをプルした時点でgit repoにそのバージョン番号をタグ付けするビルドステップがあります。

5
Ewan

ほとんどのソフトウェアシステムでは、バージョン番号を、プログラム自体がそれを知る必要があるすべての人に表示できる場所に置くことをお勧めします。それをコードまたはリソースファイルに追加する必要があります。関係するテクノロジーによって正確にどこが異なり、情報を得る必要があるのは誰なのか。

たとえば、簡単に番号を見つけることができるのはエンドユーザーなので、それを表示する機能が必要です。このようにして、サポートホットラインはユーザーに現在使用しているバージョンを尋ねることができます。あるいは、それは単に管理スタッフだけかもしれません。または、Webアプリのインストールが1つしかない場合は、「サポート」がこの1つの固有のインストールを直接確認できる可能性があるため、バージョン番号を完全に内部に保つことを決定できます。

「readme」が変更ログとして機能している場合、はい、バージョン番号もそこで発生します(明らかに、変更説明を参照する方法はありますか)。

ブランチをバージョン管理する方法がわかりません

新しいバージョン番号は、ソフトウェアのリリースごとに、「実稼働」および/または「テスト」環境に割り当てられます。任意のブランチからリリースするべきではありません。「マスター」ブランチまたは特別な「リリース」ブランチからのみリリースし、他のどこからもリリースしないでください。バグ修正ブランチまたは機能ブランチを使用している場合は、リリースを「リリース」にデプロイする前にそれらを統合するかしないかを決定します。

したがって、通常は、新しいリリースが作成された時点で、「Release」ブランチ内のリポジトリのバージョンにマークを付けることが重要です。これの標準ツールはタグですが、テストリリースの場合は、コミットメッセージのバージョン番号で十分であると判断する場合があります。それはあなた次第であり、あなたのチームが一般にどのように機能するか、そしてあなたが構築するシステムの種類に大きく依存します。

したがって、外部の観点から、システムに適用された変更の錯覚を線形の順序で次々に作成し、各バージョンの変更のバージョン番号が大きくなります。特定のブランチのコードファイルに書き込まれる正確なバージョン番号は、通常は重要ではないので、気にする必要はありません。

3
Doc Brown

ほとんどの場合、バージョン番号をソースコードのどこかに(「ソースコード」を数えながら)配置し、コンパイル済み/実行可能コードが独自のバージョン番号を知っているようにします。ユーザーに表示するだけでもかまいません。したがって、プログラムがバージョン2.1.4の場合、これはソースコードのどこかにあるはずです。

一方、開発者として、8か月後に「2.1.4に移行した完全なソースファイルを正確に教えてもらえますか」と尋ねると、簡単にそれを実行できるようになるでしょう。そのための2つの簡単な選択肢があります。gitとはまったく無関係に、これらのソースファイルのバックアップを正確に保持するか、gitでタグを使用します。タグはこれを非常に簡単にします。ブランチから完全に独立しており、タグ付けされたすべてのものを正確に返します。

「バックアップ」方法は、製品のビルドがgitにあるものよりも多くのものに依存している場合、それほど悪くありません。 gitに含まれていないライブラリのバージョンXを使用して2.1.4をビルドした可能性があります。8か月後には、ライブラリをバージョンYに更新したか、コンパイラを更新したため、2.1.4ソースが機能しなくなります。後でバージョンを再現できる場合正確に必須なので、ソースと完全なビルドシステムをバックアップすることは悪い考えではありません。

3
gnasher729

リポジトリにバージョン番号を追加します(つまり、gitリポジトリでは、これは「タグの作成」または「ブランチの作成」と呼ばれます)

1
k3b

Node.jsなどには、この情報を含むパッケージファイルがあります。悪くない。私は主にWebで作業しており、変更ログファイルを使用しています。プログラムでchangelogファイルからバージョンを取得するのは比較的簡単で、bashなどを使用して簡単に実行できます。変更の追加は私のワークフローの通常の部分なので、追加の負担はそれほど多くありません。

0
unflores