2019/01/14

GitHubで貢献するイベント“Hacktoberfest”に初参加した話(2018年)

ソフトウェア開発に使用されるサービスのGitHubで公開プロジェクトに対して10月の31日間の期間内に修正取り込みの要求 “Pull Request” (以下 “PR”)を決められた数以上開く(つまり、GitHubで開発されている公開プロジェクトへの貢献をその数以上期間中に行う)ことで限定品のオリジナルTシャツとステッカーが受け取れる “Hacktoberfest” と呼ばれるイベントが毎年開催されており、これに今回初めて参加してみた。

  1. イベント概要
  2. 貢献先と貢献内容を考える
    1. 貢献先
    2. 貢献内容
  3. 期間内にPRを開く
  4. 条件を満たしてからTシャツを受け取るまで
  5. 2019年のHacktoberfest (2019/10/25追記)

イベント概要

開催企業の米DigitalOcean社はオープンソースのプロジェクトの成果物を事業で活用しており、オープンソースのプロジェクトの開発をより活発にする狙いがあるのだが、記念品がもらえることやイベント名からは、催し物(祭典)として “楽しむ” ことも期待しているようにも思える。GitHubでPRを出すやり方に不慣れな人が練習として参加するのもよい。

期間内にGitHubアカウントを用いてDigitalOcean社の特設サイトにログインした上で参加の登録(メールアドレスを入力する)を行いさえすれば、他に同サイト上でする必要のあることはない。このサイトを期間内に訪問すると、自分が開いたPRの合計数と、どのプロジェクトでPRを幾つ開いたかを確認することができる。登録はPRを出した後でも期間内であればよい。

2017年のときはPRの必要数が4だったらしいのだが、5回目になってこれが5つとなってハードルが上がってしまった。そのため、今回は9月の後半を “どのプロジェクトでどのような貢献をするかを検討する” 時期にして、貢献内容を考えたりコードの動作テストを行ったりして準備を行うことにした。

ルールとしては期間内にPRを開いた数のみが記念品を受け取れるかどうかの基準となり、プロジェクトへの取り込み(PRがマージされる)が行われたかどうかは関係がなく、開かれたままの状態で10月が終わったり、PRが却下(マージされずに閉じられる)されたりしても問題はない。ただし、何らかの理由でPRがプロジェクトのメンテナ側から迷惑行為的なものとしてみなされた場合などはカウントから外れる可能性もある。

PRの質についての開催側の考え方としては、それぞれのPRにおける修正の量そのものは少なくても(例:1つのファイルを1行だけ修正する)それに動作改善や誤り修正などの価値があれば問題はないのだが、PRの必要数の全てをタイプミスの修正で満たすというようなやり方は良くないとされる。

貢献先と貢献内容を考える

先程 “9月後半を準備期間とした” ことを書いたように、PRの必要数が満たせるかが不安な場合、事前に貢献先と貢献内容を考えるなどの準備をすると不安の軽減につながる。後からイベントを振り返ると、自分にとってはこの準備を色々と行っていた時期が最も楽しめたような気がする。

ただ、貢献の予定がなかったプロジェクトで成り行きで何かを修正することになったものもあったので、準備したものをそのまま全部出すという形にはならなかった。

貢献先

日常的に成果物を使用して恩恵を受けているプロジェクトや、最近興味を持ったばかりのプロジェクトなど何でもよいし、同イベントの参加者がPR数を稼げるようにと開設されるリポジトリも複数あるので、そうしたものを利用する手もある。

貢献内容

プロジェクトに報告済みの “Issue” (問題)に対する解決策を考えて実装するというのがやりやすい。プロジェクトによってはGitHubのIssueで “Hacktoberfest” というラベルが付いた “お題” も検索で見つけられることがあるが、特にこれにこだわる必要はない。

もちろん、まだ報告されていない問題を解決するようなものや新しい機能の追加などでも問題はない。

今回自分がどのプロジェクトでどのような内容の貢献をしたかについては具体的にはここではふれないが、不具合を修正する類のものが大部分で、一つだけはビルドシステムの置き換えを行う大きな修正(9月からずっと作業していたもの)となった。

期間内にPRを開く

GitHubでPRを開く流れを通常通りに行う。これを今回は5つ以上行うことになった。

  1. GitHubのWebサイトで貢献対象プロジェクトの “Fork” ボタンから自分の派生リポジトリを作成した後、自分の派生リポジトリを手元にクローン(既に済ませている場合は不要だが、代わりにプロジェクト側のmasterブランチの状態と合わせておくとよい)
  2. 自分のローカルリポジトリで分かりやすい識別用の名前のブランチを作ってチェックアウトとファイル編集を行い、コミットを追加
  3. 自分のリモートリポジトリに対してそのブランチのPushを行う
  4. GitHubのWebサイト内の該当リポジトリのページからPRを開く(概要や説明文を英語で記述する・説明文は修正内容によっては空でも可だが、リポジトリによってはテンプレートが設定されているのでそれに従って記述する)

PRを開いた後は必要に応じて追加の作業(コミット追加やPush)やコメント送信(プロジェクトのメンテナなどとのやりとり)を行うが、これはこのイベントのルールとしては10月である必要はない。

条件を満たしてからTシャツを受け取るまで

PRを開く必要数を満たすと、すぐにではなく10月下旬頃(人によって異なる)からの時期にDigitalOcean社からTシャツの注文用のWebページへのリンクを含んだ電子メールが送られてくる。ここから

  • 男女のどちら向けのTシャツを選択するか
  • Tシャツの希望サイズ
  • 送付先情報(名前, 宛先, 電話番号)

の入力を行う。この注文処理から品物の発送までにはかなりの日数がかかることがあり、今回はフォーム送信から1ヶ月以上経った後でTシャツメーカー(米Kotis Design社)からの発送通知メールが届いた。

サイズについては今回は “XS, S, M, L, XL, 2XL, 3XL, 4XL” と選択肢が幅広かったが、自分にどれが合っているかは試着して確認することができないので少し余裕を持たせたサイズにするとよいかもしれない。ただ、今回届いた現物を見るとMサイズでも結構大きい印象を持った。後日調べたところ、アメリカと日本では同じサイズ表記でもアメリカのもののほうが大きいらしいため、次回はSサイズにするかもしれない。

送付先などの情報の入力については、海外サイトに日本の住所や電話番号をどう書くか(前者は細かい場所から半角英数で・後者は “+81-[先頭の0を省略した日本の電話番号]”)を事前に確認しておくとよい。

品物が手元に届くのは発送メールの受信から少なくとも3週間から1ヶ月は後で、居住地によってはそれ以上の期間を要する。トラッキングURLがメールから参照できるので、状況の確認は可能。

Tシャツメーカーはアメリカにあり、トラッキングURLのページ内の情報によると、アメリカから直接ではなくドイツを経由するルートで日本に入ってくる(“ARRIVAL IN COUNTRY [DESTINATION COUNTRY]” の段階)。その後も配達済み(“DELIVERED”)まで確認はできるが、ページ内の “Delivery by Postal provider” の文字列(今回は13文字の文字列で3文字目から11文字目が数字)を日本郵便のサイトの郵便追跡サービスの入力欄にコピペすると、国内の詳細な進捗の確認もできる。

届いた品物は “Hacktoberfest” のロゴや背景が印刷された水色系の色の(やや汚れた)窮屈な袋に入っており、GitHubのキャラクター “Monalisa” やHacktoberfestのイベントロゴなどのステッカーがTシャツと一緒に入っていた。動画サイトに開封動画を投稿している人も複数いるので、 “2018 Hacktoberfest unboxing” などで検索して動画を見ると、受け取っていない人にも中身の雰囲気が分かる。

2019年のHacktoberfest (2019/10/25追記)

2019年は以下の違いがあった。

  • PRの数は4つで条件達成
    • これが通常時らしく、2017年までも4つが条件となっていた
      • 昨年は節目の年で何故かハードルが上がっていた
    • 今回は出されたPRが(各オープンソースプロジェクトの運営側がスパム的なものとみなさず)有効なものとされるかどうか、1週間のレビュー用期間(サイト上で残り時間が確認可)をおくことになっており、1週間後までに無効なものとされなければ条件達成という流れとなった
  • Tシャツの注文ができるようになったとき(下旬)にメールが来るのは同じだが、Hacktoberfestのサイトにある自分の達成状況のページに誘導されてそこからTシャツメーカーの注文ページへのリンクがある形

Tシャツの注文ページやフォームには昨年との違いは特になかった。前回Mサイズで大きい印象だったので、今回はSサイズで注文した。