branch と RELEASE の関係

FreeBSD の CVS repository には, 4.4BSD-Lite 以降これまで開発され続けた履歴が残されています (FreeBSD のバージョンで言うと 2.0-RELEASE 以降になります).で, CVS 上における branch と,実際に出た RELEASE バージョンの関係は, いったいどうなっているのか,というのを src/sys/conf/newvers.sh に残された記録を用いて追いかけてみます.

2.0-RELEASE
まず (HEAD branch から,以下特に指定がなければ全て branch は HEAD から) ALPHA_2_0 branch が作られます.さらに,この ALPHA_2_0 から RELEASE_2_0 という branch が出来ています.おそらくこの枝から 2.0-RELEASE が出たはずですが, 2.0-RELEASE を出した時点を示す tag はないようです.
2.0.5-RELEASE
RELENG_2_0_5 branch が作られ,この枝から 2.0.5-RELEASE が出ています.
2.1-RELEASE (および以降の 2.1.x-RELEASE)
RELENG_2_1_0 branch が作られ,この枝から 2.1-RELEASE および 2.1.x-RELEASE が出ています.
2.2-RELEASE (および以降の 2.2.x-RELEASE)
RELENG_2_2 branch が作られ,この枝から 2.2-RELEASE および 2.2.x-RELEASE が出ています.ただし,RELENG_2_2 が出来たのは 2.1.5-RELEASE と 2.1.6-RELEASE の間なので,比較的早い時期にこの branch が出来ています.
3.0-RELEASE
HEAD branch から(別途 branch を切ることなく)直接出ています.
3.1-RELEASE 以降の 3.x-RELEASE
RELENG_3 branch が作られ(もちろん 3.0-RELEASE が出た後であり, さらに言えば 2.2.8-RELEASE も出た後に作られています),この枝から 3.x-RELEASE (x は 1 以降)が出ています.現在の 3.5-STABLE はこの枝になります.
4.0-RELEASE (および以降の 4.x-RELEASE)
RELENG_4 branch が作られ,この枝から 4.x-RELEASE が出ています.ただし, RELENG_4 branch が作られてから 4.0-RELEASE が出るまでの期間はあまりない, ということがわかります

これを見ると,branch の切り方は(細かく見ると)ころころ変化している, ということがわかります.しかし,基本的には「branch を切って,そこから出す」 という方針はかわっておらず(3.0-RELEASE という例外がありますが),しかも, 2.1-RELEASE あたりからこの方針はかわっていないことがわかります. で‥‥この辺の経緯は わかった後に src/share/misc/bsd-family-tree (/usr/share/misc/bsd-family-tree) を見ると,だいたいの感じがつかめます.

さらに、branch として認識できる 2.1, 2.2, 3 の 3 つ (4 はまだ開発が積極的に進んでいるので省略)について, 「その branch が存在していた期間」を release バージョンが出た時期で みると以下のようになります.なお,日付は http://www.freebsd.org/releases/ にある奴をそのまま使っています.

こうして見ると,意図的なのかどうかはわかりませんが, 「その branch から出た最初のリリースから最後のリリース(正確には, 次の branch から最初のリリースが出るまでに出たリリース)が出るまでの期間は, 約 1 年半である」 ということがわかります. ここ最近リリースがいっぱい出ている印象を持たれていることが多いようですが, 実は 2.1-RELEASE のころから考えると,そんなに変っていないと言えそうです. さらに,仮にもし同様のパターンが 4.x-RELEASE にあてはまるならば, 5.0-RELEASE が出る直前の 4.x-RELEASE (4.4-RELEASE あたりになるのかもしれませんが)が,2001 年の夏位に出て, それから数ヶ月後に 5.0-RELEASE が出る,ということになります.このことは, 過去 jkh@FreeBSD.org 氏が 5.0-RELEASE の時期について言っている話と, さほどかわりません.

branch と RELEASE バージョンとの関係について見てきましたが, この他にも CVS リポジトリには, いろんな branch や tag が開発の記録として残されています.また, 各変更については,コードを書いた人によるコメントも残されています. 手元に CVS リポジトリがなくとも, CVSweb 等で手軽に参照することもできますので, 時間があれば,いろいろ見てみるのもおもしろいかもしれません.


current.jp.FreeBSD.org で現在 build 対象としているのは, RELENG_3, RELENG_4 そして HEAD の各 branch です.基本的には毎日, その branch における最新のソースコードを使って build しています. スケジュール等についてはトップページに書かれていますので確認してみてください. もちろん,将来 RELENG_5 (5.x-RELEASE 用の branch)が作られたあかつきには, この branch も対象にする予定,です.


目次に戻る

[Powered by FreeBSD]

www@jp.FreeBSD.org
Copyright (C) 2000 The FreeBSD Project (Japan). All rights reserved.
$Date: 2002/01/05 16:13:12 $