OSS の開発コミュニティってどんなところ?(2)
開発サイクルとバージョン番号
PostgreSQL も他の OSS と同様,定期的に新しいバージョンをリリースしています. PostgreSQL のバージョンは「8.2.0」のような 3 桁の番号で表されており,最初の 2 桁「8.2」が変化するようなバージョンアップは「メジャーバージョンアップ」と呼ばれ,大きな機能が追加され,データベースの互換性もなくなります(データ移行は可能です).
最後の桁が上がるようなバージョンアップは「マイナーバージョンアップ」と呼ばれ,原則バグ修正のみが行われます.
メジャーバージョンアップは,最近では大体 1 年に 1 回位の頻度で行われます.表 1 に今までのメジャーバージョンアップの歴史を示します.
バージョン | リリース月 | 内容 |
---|---|---|
6.0 | 1997/01 | UNIQUE インデックス,BETWEEN,IN |
6.1 | 1997/06 | GEQO オプティマイザ,SET コマンド |
6.2 | 1997/10 | JDBC ドライバ,TRIGGER,多数の SQL92 データ型 |
6.3 | 1998/03 | 副問い合わせ,マルチバイトサポート,ecpg |
6.4 | 1998/10 | PL/pgSQL,PL/tcl,HAVING |
6.5 | 1999/06 | 行ロック,MVCC |
7.0 | 2000/05 | 外部キー |
7.1 | 2001/04 | WAL,TOAST,外部結合 |
7.2 | 2002/02 | concurrent VACUUM |
7.3 | 2002/11 | Schema |
7.4 | 2003/11 | 性能改善,インフォメーションスキーマ |
8.0 | 2005/01 | PITR,セーブポイント,テーブルスペース,Win32 対応 |
8.1 | 2005/11 | 2 相コミット,テーブルパーティショニング,CPU スケーラビリティの改善 |
8.2 | 2006/12 | GIN インデックス,ウォームスタンバイ,CPU スケーラビリティの改善 |
なお,Linux と違って,バージョン番号の奇数/偶数によって開発版/安定版を区別するようなことは行われていません.
PostgreSQL 開発コミュニティの組織構成
PostgreSQL の開発コミュニティは,スタート時点から 完全に個人の集合によるボランティアベースの組織として運営されており,いかなる特定の企業や組織にも支配されていません.
OSS と言っても,中には企業ベースで開発されていたり,特定の組織によってコントロールされているものもありますが, PostgreSQL の開発コミュニティはそのようなものとは対極にあると言えます.
PostgreSQL 開発コミュニティに参加している人々
本稿執筆時点で,PostgreSQL の開発コミュニティは次のような人で構成されています.詳細は Contributor Profiles のページ をご覧ください.
1. コアメンバ
コアメンバとは
文字通り PostgreSQL 開発コミュニティの中心を担う人たちです.現在 7 人います.開発の方向性や,技術的問題の最終的な決定を行います.もちろん,最も高いレベルの技術的を持った人たちです.
コアメンバの権力は絶大ですが,それだけに独裁にならないように,また特定企業の支配を受けないようにかなり気を遣っているようです.
コアメンバはほとんどの人がフルタイムで企業と雇用契約を結び,PostgreSQL の開発に専念できる環境にいます.多数のコアメンバが特定企業に雇用されてしまうと,その企業の意向によって開発の方向性が曲げられてしまうかもしれません.そこで,そのようなことがないようコアメンバの間で契約先の調整が行われているそうです.
また,何かについて意見が分かれ,なかなか議論に決着が付かない場合,メーリングリスト上で「投票」が行われることもあります.そしてその結果,コアメンバの意見が通らないこともあります.
コアメンバの選出
誰が次のコアメンバになるかは,コアメンバが決めます.あまり民主的とは言えませんが,実際にコアメンバに選ばれた人を見ると,さすがにそれぞれ実力があり,相当の実績を積んでいる人ばかりであるのは異論のないところだと思います.
現在のコアメンバの紹介
現在のコアメンバは,表 2 のとおりです.
名前 | 国名 | 役割 |
---|---|---|
Josh Berkus | 米国 | 性能やテストに関する作業を担当.PostgreSQL の広報宣伝活動の責任者でもある |
Peter Eisentraut | ドイツ(※) | ビルドシステムなどの作業を担当 |
Marc G. Fournier | カナダ | サーバやネットワークの提供,管理を担当 |
Tom Lane | 米国 | PostgreSQL のすべての分野に関わっている最も強力な開発者 |
Bruce Momjian | 米国 | 開発者が作成したパッチや,ドキュメントの管理を行っている |
Dave Page | 英国 | おもに Windows プラットフォームを担当 |
Jan Wieck | 米国 | ルールシステム,トリガ,PL/pgSQL を担当 |
【編集註】記事掲載現在はフィンランド
コアメンバの中で,'96 年当初からずっと継続してコアメンバとして参加しているのは,Marc G. Fournier 氏と Bruce Momjian 氏の 2 名だけです.
2. 主要開発者
それぞれ得意分野を持ち,恒常的に開発に参加している人たちで,本稿執筆時点で 27 人います.日本からは 2 名登録されており,筆者もその 1 人です.
3. コミッタ
PostgreSQL の CVS 上のソースコードを直接変更する権限(コミット権限)を持っている人たちです.日本からは 2 名登録されており,筆者もその 1 人です.
コアメンバは当然コミット権限を持っていますが,主要開発者の中にはコミット権限を持っている人と持っていない人がいます.
コミット権限は継続的に開発に参加している人に与えられるものですが,コミット権限がなくても主要開発者としてアクティブに活動している人もいます.ですから,コミット権限も持っている,持っていないでコミュニティにおけるポジションの重要度が決まるというものではありません.
コアメンバを除くと,現在 16 名ほどのコミッタがいるようです.
4. その他の開発者
コアメンバ,主要開発者以外にも 39 名の開発者がリスティングされています.
というわけで,コアメンバ,主要開発者,その他の開発者を合わせると,73 人の開発者がアクティブに開発に参加していることになります.もちろん,この 73 人という数は,上記 Web ページでリスティングされている人たち数だけで,実際にはパッチを投稿するなどの活動を通じてさらに多くの方々が開発に参加しています.
Linux 開発コミュニティとの違い
Linux は,Linux の創始者である Linus Torvalds 氏があくまで中心であり,最終的には「やさしい独裁者」である氏がすべてを決定します.
それに対して PostgreSQL にはそもそも「創始者」がいません.最初から「集団指導体制」だったわけです.
このことは Linus 氏のような強い求心力が不在である半面,集団指導体制による安定した組織運営が望めるメリットがあると思います.
なお,筆者は Linux の開発コミュニティが不安定であると言いたいわけではないので,誤解のなきよう.
(2008年11月25日公開)
(3) (4) は、PostgreSQL のパッチ投稿から適用までの道のりのお話や、コミュニティ参加にあたってのさまざまなアドバイスです!