.NETプロジェクトへのプルリクエスト体験談 - 個人が巨大プロジェクトに貢献する面白さとは?
詳細情報
大学2年生の私が、.NETにプルリクエストを送ってマージされた話!
本記事は、2023年8月17日に行われたVRChatの「個人開発集会」でのanatawa12さんによる発表内容を元に、ブログ記事として再構成したものです。
anatawa12さんは、日頃からUnityを使ったツール開発などを精力的に行っている開発者です。 今回の発表では、anatawa12さんが.NETプロジェクトにプルリクエストを送り、見事マージに至るまでの体験談について語ってくださいました。
発表のハイライト
- きっかけは、自身が遭遇した.NET 6のWindows Formsアプリケーションにおけるバグ
- .NETプロジェクトは規模が大きく、最初は戸惑うことも多かった
- 開発チームとのコミュニケーションは英語ベースだったが、非同期コミュニケーションだったため、そこまで問題はなかった
- マージされるまでのやり取りは約1ヶ月間で、テストコードの作成やレビューなどを通して多くの学びがあった
- 規模の大きなプロジェクトに貢献できた達成感は大きく、プルリクエストを送る面白さを実感した
.NETとは?
.NETは、Microsoftが開発しているプログラミング言語のランタイム環境です。Javaに対するJavaVMのように、様々なプログラミング言語を.NET上で動作させることができます。
従来の.NET Frameworkや.NET Coreなどを統合し、Windowsだけでなく、macOSやLinuxでも動作するのが特徴です。
プルリクエストを送るまでの経緯
anatawa12さんは、普段からMacOS環境で開発を行っており、Windows向けのアプリケーション開発もクロスコンパイルで行っていました。
しかし、クロスコンパイルでのみ発生するバグに遭遇してしまいます。
そこでanatawa12さんは、.NETプロジェクトのIssue Trackerを確認したところ、自身が遭遇したバグがオープンな状態であることを発見します。
.NET 8のリリースが迫っていたものの、リソース不足などの理由から、anatawa12さん自身がプルリクエストを送ることを決意しました。
プルリクエストの内容
anatawa12さんが遭遇したバグは、Windows Formsアプリケーションをクロスコンパイルでビルドした際に、本来表示されるべきではないコンソール画面が表示されてしまうというものでした。
この問題を解決するために、anatawa12さんは以下の作業を行いました。
- 問題箇所の特定と修正
- 外部ライブラリの導入
- テストコードの作成
- ドキュメントの修正
.NET開発チームとのやり取り
.NETプロジェクトは、世界中の開発者によって支えられているオープンソースプロジェクトです。 anatawa12さんは、開発チームとのコミュニケーションを英語で行う必要がありました。
時差やコミュニケーションの頻度など、最初は戸惑うことも多かったようですが、開発チームはanatawa12さんの質問に対して丁寧に回答してくれたため、スムーズに開発を進めることができたそうです。
マージされるまでの期間
.NETプロジェクトは非常に大規模なプロジェクトであるため、プルリクエストがマージされるまでにはある程度の時間がかかります。
anatawa12さんの場合、プルリクエストを送信してからマージされるまでにかかった期間は約1ヶ月間でした。
プルリクエストを送ってみての感想
anatawa12さんは、.NETプロジェクトにプルリクエストを送った感想として、以下のように語っています。
- 世界中の開発者が利用するプロジェクトに自分のコードが組み込まれるという、大きな達成感を得られた
- 開発チームとのやり取りやコードレビューを通して、多くのことを学ぶことができた
- 個人でも、オープンソースプロジェクトに貢献できるという面白さを実感した
まとめ
anatawa12さんの体験談は、私たちにオープンソースプロジェクトへの貢献の素晴らしさを教えてくれます。
日頃からソフトウェア開発を行っているのであれば、自分が利用しているソフトウェアのIssue Trackerを確認したり、プルリクエストを送ってみたりしてみてはいかがでしょうか?
あなたの貢献が、世界中の開発者を助けることに繋がるかもしれません。
anatawa12さんの開発情報
anatawa12さんは、Unityを使ったツール開発を多数公開しています。
- VRChat向けツール
- Unityエディタ拡張
- その他
興味のある方は、anatawa12さんのGitHubリポジトリをご覧ください。