これまで通算11個のパッチを書いたので、推薦してもらい、OpenJDKコミュニティ内での信任投票の結果 OpenJDK の Committer になりました。
※推薦してもらった時点では12個でしたが、その間に1個ダメになったので11個でした。
他のOSSだと1個パッチを書くだけでCommitterと呼ばれるようですが、OpenJDKはしっかりとした任命プロセスがあります。プロセスについては以下のリンクに詳細が記載されています。
http://openjdk.java.net/projects/#project-committer
それでは任命プロセスを踏まえて私の例を振り返ってみましょう。私はまず3つのパッチを書いて、Author というロールになりました。これによって、Java Bug SystemやReview用のサーバなどのOpenJDKを開発するためのツールの一部が使えるようになります。
Author になった時のブログはこちらです。
OpenJDK の Author になりました - #chiroito ’s blog
Authorに任命された後もさらにパッチを書き続け、エンハンスも含めて20個ぐらい書きました。しかし、JFRのエンハンスはほとんど不採用となり、8個のパッチが採用され、通算11個のパッチとなりました。
ここに至るまで、ほんとReviewerの末永恭正さん(@YaSuenag)には大変お世話になりました。たくさんアドバイスやレビューをしていただいたので、ほんと足を向けて寝られません。
十分な修正量のパッチが揃ったら、OpenJDKコミュニティにいる誰かに推薦してもらいます。だれに推薦してもらうかによってコミュニティでの信頼度が高まりますので、政治力が非常に重要になります。私の場合は所属している Red Hat の OpenJDK チームのリーダーに推薦してもらいました。
Committerになるには十分な修正量のパッチが通算8個以上必要です。そのため、自信がある人は8個のパッチを書くだけでCommitterになれます。私はそんなにスキルが高くないので、通算11個になるまで推薦してもらうのを控えてました。
こんな感じの推薦メールを出してもらいます。
CFV: New JDK Committer: Chihiro Ito
I hereby nominate Chihiro Ito <xxxx at redhat.com> to JDK Committer. Chihiro Ito has contributed 12 significant fixes to OpenJDK. Votes are due by March 27, 2020. Only current JDK Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. For Lazy Consensus voting instructions, see [2]. Thanks, Anton // http://openjdk.java.net/census#ant [1] http://openjdk.java.net/census [2] http://openjdk.java.net/projects/#committer-vote [3] List of changes: [2] List of changes: http://hg.openjdk.java.net/jdk/jdk/search/?rev=keyword%28chihiro.ito%29%20%7C%20author%28cito%29&revcount=20 (以下パッチの一覧を記載)
このメールに返信する形で投票が始まります。Committer以上の人が良いかダメかを返信することで投票します。投票には期限があり、全てのCommitterが投票をするか、この期限を迎えることで投票が完了します。
私の投票の期限は2020/3/27でした。投票が完了するとこんな感じの結果発表メールを出してもらいます。
Result: New JDK Committer: Chihiro Ito
Voting for Chihiro Ito [1] is now closed. Yes: 15 Veto: 0 Abstain: 0 According to the Bylaws definition of Lazy Consensus, this is sufficient to approve the nomination. [1] https://mail.openjdk.java.net/pipermail/jdk-dev/2020-March/004044.html
この結果がOKだとOpenJDKコミュニティからCommitterとして認められたということになります。(ここから先のプロセスがないのでたぶん)
OpenJDK開発者一覧にあるロールが更新されます。
これでOpenJDKのリポジトリにコミットができるようになり、ブランチを使ったテストの自動実行ができるようになります。
Submit Repo - Build - OpenJDK Wiki
なお、Author から Committer になるために書いたパッチはこちらです。
8219904: ClassCastException when calling FlightRecorderMXBean#getRecordings() http://hg.openjdk.java.net/jdk/jdk/rev/f965bceba123
8232594: Make the output of the JFR command duration more user friendly http://hg.openjdk.java.net/jdk/jdk/rev/43eee1237934
8223697: jfr tool can't format duration values greater than 1 minute http://hg.openjdk.java.net/jdk/jdk/rev/a6c56d661d75
8225694: Destination option missing in FlightRecorderMXBeanImpl http://hg.openjdk.java.net/jdk/jdk/rev/8ca46e186a63
8231317: jdk/jfr/jcmd/TestJcmdConfigure.java fails with "java.lang.RuntimeException: assertTrue: expected true, was false" http://hg.openjdk.java.net/jdk/jdk/rev/cfef85f63f47
8216565: Specifying the same path creates a new directory in JFR.configure http://hg.openjdk.java.net/jdk/jdk/rev/046533575954
8214236: sun.gc.collector.2.name should be changed http://hg.openjdk.java.net/jdk/jdk/rev/5ef581e59d91
8221569: JFR tool produces incorrect output when both --categories and --events are specified http://hg.openjdk.java.net/jdk/jdk/rev/1e83e1a600cb
興味のある方はぜひOpenJDKへ貢献してみてください。