はじめに
TechRAMEN 2024 Conferenceに参加するため、北海道は旭川に行ってきた。 TechRAMENは最高カンファレンスだったし、旭川は最高シティだった。 運営陣の勢いが凄すぎて大量のNote記事が書かれているため、今回参加されなかった人にもぜひ読んでほしい。 note.com note.com
TechRAMENに楽しく参加したあと、「後日祭」としてのOSS Gateにも見学枠で参加してきた。 asahikawa.connpass.com OSS Contributionにチャレンジしている皆さんを見守りつつ、たくさんご飯を食べた。圧倒的進捗と言って良いでしょう。This is ASAHIKAWA.#techramen24conf pic.twitter.com/ABg2QSIIv3
— 灰原 (@w_haibara) 2024年7月27日
とはいえ頑張っている人々を前にして食べてばかりいるのも忍びないため、今までに自分が行ってきたOSS Contributionを振り返ってみる。 分量は多くなく、全部で5個のPRをあげていて、そのうち4個をマージしてもらっている。不意にお弁当をいただき、道産食材フードファイト開幕――#techramen24conf#ゆるあさ pic.twitter.com/o7oRhnYWtD
— 灰原 (@w_haibara) 2024年7月28日
google/go-github
github.com
google/go-github はGitHub APIのGoクライアント。これを仕事で使っている時、ちょうどGitHub APIにアップデートがあり、新しいヘッダが追加された。
Expiration options for personal access tokens - The GitHub Blog
このニュースを見た時、こいつはプルリクチャンスだ!!と高まったので、その日のうちに対応PRを出した記憶がある。
すぐにレビューしていただいて、「フォーマットしてね」「テスト追加してね」と言ったあるあるのコメントをいただいた。
これはOSSに限らず、PRを出すときにやるべき基本的なことだが、ここで勉強させていただいた。
この頃はまだ学生で内定先の企業でインターンをしていた。これから職業人生が始まるというタイミングでこういった経験ができたのはとてもよかった。

x-motemen/blogsync
x-motemen/blogsyncは、CLIではてなブログへの投稿などができる便利ソフトウェア。こちらも仕事で使う機会があり、コードを見たところGoのバージョンが当時のlatestと比べて古めだったので、これまたプルリクチャンスであった。高まる。
github.com

aws/aws-cdk
これはマージされなかったPR。
aws/aws-cdkは、TypeScriptやPython/Go/Java/.NETといったプログラミング言語を使ってIaCができる面白ソフトウェア。
これを仕事で使う機会があったのだが、何の問題があってPRを出したのか全然思い出せず、PRを見てもよくわからなかった🤔 (自分が作ったPRなんだけどなぁ)
github.com
これは同じ問題に対処するより良いアプローチのPRが別で出されており、こちらがマージされた。
github.com
ちなみに、「TypeScriptやPython/Go/Java/.NETといったプログラミング言語を使って」とサラッと書いたが、これどうやってると思います?
これはjsiiという激アツソフトウェアで実現されている。気になる人は見てみてほしい。
github.com
runfinch/finch
runfinch/finchは、Mac向けのコンテナランタイム。内部ではlimaを使っていたりして、Mac上でいい感じにコンテナを動かすことを目指して作られている。
これを手元で試してみたところ、どうにもうまくいかなかった。Issueやコードをパラパラと眺めているうちに、自分の環境のユーザ名に . が含まれていることが原因であることがわかった。
これがわかった時、修正できた時にはほんとに興奮した。最高の瞬間である。そんなわけで、興奮冷めやらぬうちにPRを上げた。
github.com
これが無事にマージされて、brew update してバグが治っていたときの感動を忘れはしない。
lumeland/lume.land
(2024/07/29追記) 後日祭開催中に出したPRをマージしてもらっていた。
知らないうちにlumeの2系が出てた。migrationやってる。https://t.co/iUJnUBsWcc
— 灰原 (@w_haibara) 2024年7月28日
lumeはdeno製の静的サイトジェネレータ。自分の個人サイト(w-haibara.com)はこれを使っている。 久しぶりにこのサイトのメンテをしようとしたところ、lumeの2系がリリースされていることに気がついた。migration docにtypo見つけたのでPR出した!https://t.co/ypwMQD8Z94#techramen24conf #ゆるあさ
— 灰原 (@w_haibara) 2024年7月28日
Migration Guideに沿って作業していたところ、1文字typoを発見したので、このドキュメントを管理しているレポジトリにPRを上げた。 Migrate to Lume 2 - Lume github.com
楽しく後日祭の打ち上げをしている間に、シュッとマージしてもらっていた。
おわりに
これまでに自分が行ったOSS Contributionをまとめた。数は少ないが、ひとつひとつに面白く取り組んだのは覚えている。
特にバグ修正をする際には、「仕様は知っているがコードの中身はわからないソフトウェア」を1から読み込んで、原因となっている箇所を特定する必要がある。 こういった経験で、大きいコードベースを読み進めるテクニックだったり、あるいは「まぁ読めばわかるか」という自信というか楽観を持てたのが、確実に仕事にも活きている。 これからもやっていくぞ。