Theo de Raadt氏 - The OpenBSD Project leader

FLOSSプロジェクトが成長するにあたって悩みの種となる問題のひとつにリリースエンジニアリングがある。プロジェクトやコミュニティのサイズ、必要とされるシーン、開発者の人数やモチベーションなど多くの要因が絡まってくるためこれといった決め手がないのがリリースエンジニアリングだ。しかも苦労の割に酬われることが少ないため、できれば手を抜きたい工程といえる。しかしリリースするための試験を実施することになるなど、一定の品質を保つ上で欠かせない工程でもある。

2009年3月12日から15日までの4日間、東京で開催された『AsiaBSDCon 2009』にOpenBSDのTheo de Raadt氏が登壇。特別講演としてOpenBSDのリリースエンジニアリングを紹介するとともに、リリースエンジニアリングを実施することの重要性を説明した。

OpenBSDはNetBSDから派生したOS。セキュリティに注力し、OS以外のツールやアプリケーションの開発も手がけている。FreeBSDから比べると規模は小さくなるが半年ごとの定期的なリリースや重要なサブプロジェクトを抱えているなど、一目置かれる存在。

まずTheo de Raadt氏はFreeBSDやDebian、OpenSolarisなどのリリースエンジニアリングを紹介。リリースブランチを切るという典型的な手法を紹介し、それと比較したOpenBSDのリリースエンジニアリングを紹介した。OpenBSDでは単一のブランチで6カ月おきにリリースを実施。ほかのFLOSSプロジェクトが遅延がちなリリースを確実に半年おきに実施している。リリースエンジニアリングが実質的におこなわれていないプロジェクトの紹介もあり、その問題点が指摘された。またリリースエンジニアリングにおいて本質的に少数の人々だけしか試験していないことが問題だという指摘もあった。

典型的なリリーススケジュールとブランチ

OpenBSDでのリリーススケジュールとブランチ - タグは切るだけでブランチはひとつ

こうした定期的なリリースが実現できている背景には毎日のスナップショット作成がベースとしてあるほか、期間が定められたリリース工程(リグレッション試験、API/ABIロック、パッケージビルド、ツリーロック、リリースへ向けた試験サイクル、タグつけ)が用意されているという点も注目できる。FreeBSDと異なり複数のブランチを用意しないことでメンテナンスやマージの手間を省き、その分を開発やリリースに向けているということもいえる。

デイリースナップショットの作成がこうした定期的なリリースの手助けにもなっている

FreeBSDのようにカーネルからユーザランドまで一括したツリーを複数のブランチとして保持するのは多大な労力を必要とする。ある程度の開発者がいなければ実施できない。OpenBSDのようにある程度割り切って単一ブランチのまま開発したり、デイリーのスナップショットで補うのもひとつの有力な方法で、同様のリリースエンジニアリングを実施するようになってきたプロジェクトも存在する。