OpenJDK コミッターになれました

2022年9月20日付で OpenJDK のコミッターになることができました。
協力してくださった方々に感謝申し上げます。

これからコミッターを目指す方のために、私の例を記載します。

# OpenJDK での役割
OpenJDK では、Contributor, Author, Committer, Reviewer の役割があります。後者の方が権限が高いです。

<table>
<tr>
<td>Contributor</td>
<td>修正を提案するためには Oracle Contributor Agreement を承諾する必要があります。個人として、または会社として承諾が必要になります。個々のケースによって状況が異なるため、詳細は公式ページを確認してください。https://openjdk.org/guide/</td>
</tr>
<tr>
<td>Author</td><td>2件以上修正が採用された後プロジェクトリーダーにメールで依頼すると Authorとして登録されます。Author になると JDK Bug System のユーザーがもらえるので、自分で問題を登録することができます。私の場合は 2018 年に Author にはなっていました。<br>
ソースコードリポジトリへは書き込めませんので、他の Committer の方にスポンサーになってもらって代わりに書き込んでもらうことになります。
</td>
</tr>
<tr>
<td>Comittor</td><td>Reviewer の承認をもらうとソースコードリポジトリへ書き込めます。</td>
</tr>
<tr>
<td>Reviewer</td><td>他の人の patch (Pull Request) を承認したり修正を要求することができます。</td>
</tr>
</table>

# コミッターの基準
コミッターになる手続きは[こちら](https://openjdk.org/projects/#project-committer)に記載されています。ただ、「8件の重要な貢献が大まかな目安」というちょっと曖昧な基準となっています。ここでの貢献(contribution) とは、patch が採用されることです。この基準を満たした後で、推薦してもらい、信任投票で問題がなければコミッターになれます。

> As a rough guide, a Contributor should make at least eight significant contributions to that Project before being nominated.

その曖昧な部分があるため、[OpenJDK Developers' Guide](https://openjdk.org/guide/) では10〜12件でトライするように勧めています。私の場合は、16件でのトライとなりました。

# 過去の貢献
過去の貢献は Github の機能でリストすることができます。Github に移る前のソースコードリポジトリであった Mercurial での貢献もちゃんと取り込まれています。また、Author になる前のものも拾ってくれたので、実績をこれだけで示せました。同姓同名の方がいるとダメですが、すごく便利でした。
https://github.com/openjdk/jdk/search?o=desc&p=2&q=author-name%3A%22Toshio+Nakamura%22+repo%3Aopenjdk%2Fjdk&s=committer-date&type=commits

修正した問題をリストすると以下のようになります。上が新しいものです。
- JDK-8240756 [macos] SwingSet2:TableDemo:Printed Japanese characters were garbled
- JDK-8139173 [macosx] JInternalFrame shadow is not properly drawn
- JDK-8278185 Custom JRE cannot find non-ASCII named module inside
- JDK-8263490 [macos] Crash occurs on JPasswordField with activated InputMethod
- JDK-8255387 Japanese characters were printed upside down on AIX
- JDK-8233829 javac cannot find non-ASCII module name under non-UTF8 environment
- JDK-8243453 java --describe-module failed with non-ASCII module name under non-UTF8 environment
- JDK-8232846 ProcessHandle.Info command shows question marks if the command name is in non-English
- JDK-8240518 Incorrect JNU_ReleaseStringPlatformChars in Windows Print
- JDK-8234386 [macos] NPE was thrown at expanding Choice from maximized frame
- JDK-8224184 jshell got IOException at exiting with AIX
- JDK-8219901 Noto fonts for East Asian countries cannot belong to CompositeFont
- JDK-8220227 Host Locale Provider getDisplayCountry returns error message under non-English Win10
- JDK-8213183 InputMethod cannot be used after its restarting
- JDK-8187100 Wrong rendering of variation sequences
- JDK-8042131 DateTimeFormatterBuilder Mapped-values do not work for JapaneseDate

こうしてみると、16件中12件が日本語や国際化に関連した問題でした。

# 推薦者
私の場合問題だったのが、誰に推薦してもらうかということでした。社内で相談してみたところ、Tyler さんという方がサポートしてくれるということになりました。この方も最近コミッターになられたのですが、手続きについて聞いてくれたようで、コミッターでも推薦するのは問題がないことがわかり、推薦いただき、信任投票へ進めました。コミュニティでの立場が上の方に推薦してもらう方のが良いのは確かなのですが、ちょっとそこにこだわり過ぎていたかなというのが反省点です。

# 信任投票と結果
日本の開発者の方々も投票いただき、無事に信任投票を終えることができました。ありがとうございました。
https://mail.openjdk.org/pipermail/jdk-dev/2022-September/006943.html

終了後、すぐに Mark Reinhold さんから連絡があり [Census](https://openjdk.org/census#tnakamura) に登録していただきました。