筆者について
FreeBSDを通じてOSSにささかな貢献を。
- 日本xrdpユーザ会発起人
- xrdp developer
- FreeBSD developer
OSS活動をご支援いただける方を募集しています
2019-08-06 FreeBSD developer (ports) になる方法
■ FreeBSD developer (ports) になる方法
はじめに
この記事はえのもとさんのNetBSD/pkgsrc開発者になる方法に触発されて書きました。私がOSC東京で喋った内容に触発されてNetBSDの場合はどうなのか書いてみようというのがきっかけの記事なので、インスパイアのインスパイア、逆輸入なのですが。
モチベーションは同じく、FreeBSD開発者になるにはどうしたらいいかという文書が日本語では少ない(少なくなってきている)というところにあり、今後開発者になろうとする人の助けになることを望みます。
FreeBSDを使う
NetBSDの場合と同様、FreeBSDを使わないことには始まりません。FreeBSD開発者になろうとしてこの文書にたどり着いている時点で、既にFreeBSDのユーザーであることは間違いないでしょうから細かい話は省略します。
FreeBSD portsになにか貢献してみる
ここでは「中の人」ではない人による、portsの作業を「貢献(contribute)」と呼ぶことにします。
メンテナのいないports、即ちメンテナのメールアドレスが ports@FreeBSD.org にセットされているものを見つけてメンテナを担当したり、メンテナがいてもそのソフトウェアが新しいバージョンに更新されていないものを見つけて、アップデートをしたりするところから始めるのが良いでしょう。また、ports treeに存在しないソフトウェアを追加するというのもありです。望まれているportsのリストはFreeBSD WikiのWantedPortsに載っているので、それらをFreeBSDで使えるようにすると喜ばれるでしょう。
作業の際はPorter's Handbookで解説されている方法やプラクティスを参考にしながら作業しましょう。日本語版は更新が遅れているため英語版を参照することをおすすめします。
具体的な方法はここでは細かく解説しませんが、Bugzillaにアカウントを取得し、ports treeへのパッチを作って報告、メンテナが承認、コミット権を持っている開発者がコミットするというのが大まかな流れです。
貢献者としての実績を積む
ある程度慣れてきたら、外部の貢献者として作業を続け、実績を積み重ねていきます。これが、後に開発者として推薦してもらう際にスキルや実績の証明となります。実績は必ず必要で、いきなり開発者になることはできません。
ここから開発者になるという先の段階へ進まず、外部貢献者のまま多大な貢献を続けている方も多いです。開発者よりもPorts Frameworkに詳しい人も中にはいます。貢献者のリストはAdditional FreeBSD Contributorsに掲載されていますが「この人よく見るし載せてもいいんじゃない?」と雰囲気で提案することも多いので、ここに掲載されている人で全てではありません。
OSS系のイベントやカンファレンスでの発表はあるに越したことはないですが、必須ではありません。FreeBSDのBugzillaやメーリングリストで「この人よく見るな」というレベルの活動があれば十分です。地理的にFreeBSD勉強会やFreeBSDワークショップに参加しやすい環境にあるならば、参加しておいたほうが良いでしょう。
筆者の場合
地方在住で、地理的な制約もあり上の両イベントにはほとんど参加したことはありません。貢献者としての活動は両イベントが始まる前からで、グローバルなコミュニティにオンラインで参加していました。オープンソースカンファレンスへの出展を通じてNetBSDのebijunさんと交流はありますが、日本のFreeBSD開発者とのオフラインでの交流は皆無でした。また、AsiaBSDConにも参加したいとは思っているものの、現時点では参加したことがありません。
推薦者・メンターを探す
NetBSDでは「スポンサーを探す」という手順です。FreeBSDでも同様に、この手順が最難関となるでしょう。オフラインのカンファレンスに出席したり、発表したりするのは必須ではありませんが、これまでの貢献や成果を示す場としては最適です。
新しい開発者を推薦する流れがNew Account Creation Procedureに書かれています。必要な情報を推薦者に送り、推薦してもらいます。メンターと推薦者は同じ場合もあれば、異なる場合もあります。
- 候補者のこれまでのFreeBSDへの貢献実績(必須)
- 候補者のメンターになることを志願した人
- 候補者のメールアドレス
推薦されたら、候補者を新しい開発者として承認するかどうかの投票が portmgr@ チームによって行われます。通常は7日以内に投票が完了します。
筆者の場合
佐藤 広生先生とKurt Jaegerに志願し、推薦してもらいメンターになっていただきました。「ports committerになりたいんだけどどうしたらいい?メンターになってくれない?」オンラインで声をかけて、2人とも忙しいにも関わらず無理を言って引き受けてもらいました。どちらにもオフラインでお会いしたことはなく、全てオンライン上でのやり取りです。
アカウント作成手続き
新しいコミッターになることが承認されたら、アカウントの作成です。以下の情報を安全な方法でメンターに送り、メンターが安全な方法で(通常はPGP署名で) accounts@ チームに送信します。
- 希望するログイン名(小文字のa-z, 0-9)
- 氏名 (UTF-8; GECOSフィールドに使用されます)
- 追加のGENOS情報
- shell (sh, csh/tcsh, bash, zsh)
- ssh V2 公開鍵
あとは、メンターが新しいコミッターのコミットビットを有効化したりという手続きを行います。FreeBSD開発者として活動する上ではPGPの利用や公開鍵の登録が必須となるので、早めに使い方に習熟しておきましょう。
見習い開発者となる
以上で、FreeBSD開発者の一員となります。ただし、しばらくの間はメンターからの指導を受けながら、メンターの承認があって初めてコミットが行えるという見習い状態が続きます。
ひとりだち
明確な決まりはありませんが、2人のメンターから十分なスキルを身に着けたと判断された時点でメンターが外れ、晴れて一人前となり、1人でコミットできるようになります。スキルが不足していれば長くなり、十分であると判断されれば短期間で見習い期間が終了することがあります。
一人前とはいえ、まだまだ開発者の仲間入りをしたばかりの新米なので、わからないことがあれば他の開発者に尋ね、レビューをしてもらったり、必要に応じて判断や指導を仰ぎましょう。
Ports committerとなっても、担当するportsのメンテナンスを淡々とこなすだけの人から、FreeBSD Ports Frameworkの改良に積極的に関わる人まで、活躍の種類は様々です。
おまけ
FreeBSD開発者となり、commit bit を持つと2年に1度のFreeBSD Core Teamの選挙権が与えられます。