.NETプロジェクトへのプルリクエスト体験談 - 個人が巨大プロジェクトに貢献する面白さとは?

詳細情報

集会名 個人開発集会
日時 2023年08月17日 22:30 - 23:00
テーマ dotnetにpullreq投げた話
発表者 anatawa12
発表資料 リンク

大学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リポジトリをご覧ください。