[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freewnn:00275] Re: cvs server for freewnn.org




>> On Sat, 15 Jan 2000 04:10:41 +0900, Tatsuo Furukawa <frkwtto@osk3.3web.ne.jp> said:

> # ただ、私も開発に参加したいので、私が独自に加えたコードも入っていま
> # す。でもこれは私も ML のメンバーだし〜 という立場で行なってます。

いえいえ、メンテナーとしての古川さんと開発者としての古川さんはきちんと
分かれていると思います。開発者としては新しい機能を入れたいけど、それは
リリースを遅らすからメンテナーとしてはcommitしないとかありますしね。

> uraさん> FreeBSD場合
> uraさん> 開発は、HEAD-branchで行なう。stable branchは、bugfixの他に 
> uraさん> current branchに入った機能でstableにたるものは取り込んでいく。

> この方式は是非採り入れたいです。つまり、開発ブランチで好き勝手に試して
> みて、うまく動くものを安定版に採り入れてリリースしていく。

わたしは、どのbranchにどういうfeatureがあるかが分かりやすいことから
FreeBSD方式よりNetBSD方式の方が好きだったりします(ふだんNetBSDだけで
生活していることもあるので、非常に偏りがある意見ですが(^^;;)

> > HEAD ----------o---------------------------------------> 4.0-current
> >                  \
> >                   \
> >                    o---o--------o--------o--------o----> 3-stable
> >                       3.1      3.2      3.3      3.4

> 質問です。これは ura さんが示された FreeBSD の図ですが、この場合、3.4 
> がリリースされた時点で 3.1〜3.3 は開発終了ということですよね? つまり、
> 3.3 でバグが見つかった場合、「3.4 を使ってくれ」ってことになり、3.3.1 
> というバージョンは出さないという理解でいいでしょうか?
>
> となると、いつまでたっても安定しないような気もしますが…… もしくは次
> の安定版を出すのをすごく慎重にしないといけない。

そういうことになっていると思います。ですから、3-stableには怪しいcodeを
入れてはいけないということです。

3.1が出る前後で、FreeBSDは2.2系と3.x系以降ではリリース番号の付け方が
変わって、3.x系以降では、3番目の番号は、bug fix番号に使うという話を
聞いた覚えがあります(この話が違っていたらごめんなさい)。ですから、
3.2.1とか3.3.1とかもでるのか思っていたのですが、実際のところ使われて
いないのですよね。

>                                              1.5
>                                           o--o
>                                          /
>                                         /
>    HEAD ----------o--------------------o---> NetBSD-current
>                    \
>                     \
>                      o--o--------o--------> 1-4-branch
>                        1.4      1.4.1    
>
> となるわけですね? これだと安全ですね。「安定版 1.5 を作るべく頑張った
> が収拾がつかなくなったどうしよう?」というとき運悪く 1.4.1 にバグが見つ
> かっても 1.4.2 をすぐにリリースできますから。

そうなりますが、NetBSDの場合は新しいstable branchを作った段階で、前の
stable branchの開発は終了します。ですから、1.5 branchが切られた後に
1.4 branchからreleaseされることはないです。

> > OpenBSD場合
> > 
> >   HEAD ----------o--------------o---------------> OpenSD-current
> >                   \              \
> >                    \              \
> >                     o              o
> >                     2.5            2.6
> > 
> >   開発は、HEAD branchで行なう。release versionはsecurity
> >   patchのみを個別に出して、stable branchは変更しない

> これって、真の安定版は cvs のソースツリーから作成することはできないっ
> て意味ですか? ちょっと信じられないです…。

いえ、OpenBSDはrelease直前にHEAD branchをfeature freezeしてbug取りに
専念する形で開発を取っています。ですから、2.5や2.6は十分に安定版と
考えてよいです。しかし、security holeなんかは年がら年中出てくるので
security holeを塞ぐためのpatchをrelease用に出すわけです。-currentは
HEAD branchにcommitすればいいわけですから。

使っているuserが全てCVSでcodeを取るわけではないですから、リリース用に
security patchを出すことに関してはOpenBSDが一番きちんとしていると
思いますよ。

これらのFreeBSD,NetBSD,OpenBSDの違いは、そのOSを使っている and/or 
開発している人の数とか、それぞれのOSを使っている人達の欲しているもの
違いとかが反映されていると思います。

> あと開発版というのはブランチが1本しかないのでしょうか? となると、実験
> 的な実装は cvs にどう反映しているのでしょうか? 

先の図は実験用branchとかの余計なbranch、HEAD branchとrelease branch
の説明に特化していましたので、もちろんHEAD brach以外に作業branchは
たくさんあります。たとえば、NetBSD場合はsoftupdateをmergeするための
brachですとか、VMとbuffer cacheを統合するためのbranchですとかです。

下記URLを見るとbranchが切られていることが分かります。

  http://cvsweb.netbsd.org/bsdweb.cgi/syssrc/sys/uvm/uvm_km.c

> あと、安定版でバグフィックスを行なった場合、そのバグフィックスを開発版
> に反映させる必要がありますが、そういう作業は上記のFreeBSDや NetBSD で
> はどのようにしているのでしょう?

NetBSDは、currentでbugを潰してその結果をreleaseに反映するという、常に
current → releaseの流れです。エンバグを抑えるためにこうなっていると
勝手に思っています。FreeBSDは細かく追っていないのでわかりません。すい
ません。

>    3. メインブランチには、最新でかつ安定したものを置く。
>
>    4. 何か作業を行なう時は、その作業の単位毎にブランチを作り、そこで作
>       業する。メインブランチと異なり、安定した状態で commmit する義務
>       はない。

NetBSDだとmain branchこそが開発の先端ですから、main branchを安定である
必要がないのです。もちろん、不安定だと開発に支障ができますから、同じ
原因で不安定であることはわずかな間だけです。それぞれの人がbranchを
切って、それを各々がmain branchにmergeするなると、source codeが膨大です
から、mergeする時に泣きを見る気がしますね。

>    5. 作業が完了した時点でメインブランチにマージする。
>
>    6. メインブランチにマージしたらその作業ブランチは消して良い。
>      (但し、6 には異論もありました。)

CVSは消さなくとも、mergeしたあとは作業branchを放置してしまってよいので、
6.は必要ないですね。そうえいば、CVSでbranchを消す技ってありましたっけ?

あと、聞いた話ではcronとかで毎日毎日最新のsourceを使ってmakeをしてみる
ことは開発に有効だそうです。不安定なcodeを突っ込んだ時には翌日には分かり
ますから。


--
ura