落ちました。
こんにちは
Google Summer of Code と言うプロジェクトをみなさんはご存知でしょうか。
毎年行われている学生向けの Google が認定した(?)OSS のプロジェクトに参加することで報酬(50 万円!!)なりが貰えるというプロジェクトです。
プロジェクトごとに一人の学生が選ばれるという形になっています。(学生は複数のプロジェクトに応募可能、ただし複数のプロジェクトから承認されることはできない)
かなり多くのプロジェクトがあるので自分の知っているようなものも必ずあると思います。パッとみた感じ有名なものだと Django や Postgresql などがありました。(有名なものはその分倍率はたかそうですね)
僕は今回 Erlang Ecosystem Foundation に申し込みました。Erlang となっていますが、Elixir も含まれます。
出だしの通り僕は落ちてしまいましたが、日本語の GSoC に関する記事はかなり少ないので、申し込みに必要だったことや proposal の書き方などを後世のために残しておこうと思います。
申し込みに必要なもの
必要なものとしては学生であることの証明などがありますが、一番重要なのはproposal(提案書)です。
proposal というのは OSS に対して具体的に自分がどのような機能の追加であったりの活動を行うのかといった内容を書くものになります。
しかし、一から考える必要はありません。プロジェクトごとに IDEAS LIST が用意されています。なので多くの人は IDEAS LIST の中から自分のできそうな or 興味のあるものを選んで proposal を書くことになると思います。
僕は Elixir/Erlang の package システムである Hex に対して
- 脆弱性報告のフォームをhexpmに設ける
- 脆弱性報告 →Elixir の管理者の承認 → ライブラリの管理者へ通知 といった流れの作成
- hexpm上で脆弱性のあるライブラリの情報の公開
mix hex.audit
コマンドの作成- hex の API で脆弱性情報を取得できる API を生やす
といった改善を行う proposal を書きました。
実際の proposal はこちらです
GSoC 2020 Proposal: Package vulnerability disclosure for Hex (Project: Elixir)
英語でうげっと思ったそこのあなた、安心してください。僕もかなりの英弱ですがDeeplという魔法を駆使してなんとか書き上げました。
また、自分の proposal は提出前に実際のプロジェクトのメンターからレビューをもらうことができます。僕は何度か送ったメールにガン無視をキメられたのでメンターさんが忙しかったのかレビューをもらうことはできませんでした。
しかし多くのプロジェクトではレビューをもらうことができているようで、GSoC の参加記のような記事のほとんどにはレビューをもらうことの重要性が書かれていました。
その他、アドバイスとしてよく書かれていたのはそのプロジェクトへの OSS コントリビュート経験です。僕は Elixir や Phoenix 本体にいくつか PR を出したことがあるので(全てが merge されたとは言ってない)その点は大丈夫だったと思います。
原因としては
- シンプルに他に強い人がいた、実力不足(ほぼこれ)
- スケジュールの粒度がアバウトだった(1 週間単位で書いてる人もいました)
- 英語がおかしかった…?
- 50 万円が欲しいという強欲が滲み出ていた
あたりですかね。悔しい
終わりに
GSoC は学生の内しか受けることができません。来年の僕の手の空き具合が分からないですが、再チャレンジしたいと思ってます。
この記事を読んで興味を持った方は来年一緒に頑張りましょう。💪