Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】My First Open Source PR — Done During Hacktoberfest 2025!

2025年10月03日に「Dev.to」が公開したITニュース「My First Open Source PR — Done During Hacktoberfest 2025!」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

長年開発経験のある筆者がHacktoberfest 2025でオープンソースに初貢献。Javaの新機能デモ作成を通じ、課題発見からPRまでの手順と、OSS貢献が初心者でも難しくないこと、ドキュメントの重要性、バグ修正以外も貢献になることを学んだ体験談。

ITニュース解説

ニュース記事は、Hacktoberfest 2025というイベント中に初めてオープンソースソフトウェアへの貢献を経験した筆者の体験談を語っている。オープンソースソフトウェアとは、プログラムのソースコードが公開され、誰もが利用や改変、再配布を自由にできるものだ。多くの開発者が協力し合って作り上げる。Hacktoberfestは、毎年10月に開催される、オープンソース貢献を促す世界的なイベントで、特に初心者にも参加しやすい環境を提供している。

筆者は長年、Webアプリケーション全体の開発に携わる経験豊富なエンジニアだったが、これまでオープンソースへの積極的な貢献はなかった。しかし、単に利用するだけでなく、自らもオープンソースの世界に貢献したいという思いから、Hacktoberfest 2025をきっかけに一歩を踏み出した。

筆者が選んだ貢献内容は、Java 25という新しいバージョンのJavaで導入が予定されている「JEP 507 - Primitive Types in Patterns, instanceof, and switch」という機能のデモコードを追加することだった。JEP 507は、Javaのコードをより簡潔かつ安全に記述するための機能拡張で、特定のデータ型の判別に使われる「instanceof」演算子や、処理選択に使う「switch」文が、intやbooleanといった基本的なデータ型(プリミティブ型)に対しても、より柔軟な「パターンマッチング」という方法で使えるようになる。この新しい機能の動作を、他の開発者が容易に理解できるように示すデモプログラムを作成することが、筆者の具体的な目標となった。

筆者は、この初めてのオープンソース貢献を、以下の六つのステップで進めていった。

まず第一に、良い「課題(Issue)」を見つけることから始めた。オープンソースプロジェクトでは、追加したい機能や修正すべきバグ、改善提案などがIssueとして登録される。筆者は、Hacktoberfestの対象リポジトリや、「help wanted(手助けを求む)」タグが付いた初心者向けの課題を探した。さらに、得意なプログラミング言語であるJavaに関連する課題に絞り込むことで、作業しやすい課題を見つけ出した。

次に、見つけたプロジェクトのコードを手元で扱えるようにする「フォーク(Fork)」と「クローン(Clone)」という作業を行った。フォークとは、元のプロジェクトのリポジトリを自分のアカウントにコピーして、自分専用のバージョンを作成することだ。これにより、元のプロジェクトに影響を与えることなく自由にコードを改変できる。そして、そのフォークした自分のリポジトリを、インターネット上のサーバーから自分のパソコンにダウンロードする作業が「クローン」である。具体的には、元のリポジトリをフォークし、自分のフォーク版リポジトリのURLを指定してローカルにダウンロードし、ダウンロードしたディレクトリに移動した。

三番目のステップは、コードを書く前に、既存のコードを「理解する」ことだった。闇雲に書き始めるのではなく、既存のデモコードの構造や動作を把握した。また、プロジェクトへの貢献方法や規約がまとめられている「CONTRIBUTING.md」というファイルも丁寧に読み込んだ。加えて、今回デモを作成する対象である「JEP 507」の詳細ドキュメントも熟読し、新しい機能の動作を深く理解した。この事前準備が、効率的なコーディングに繋がったという。

四番目のステップで、デモコードの作成に取り掛かった。筆者は「PrimitiveTypesDemo.java」というデモプログラムを作成した。このプログラムには、JEP 507で導入される機能、例えばプリミティブ型に対する「instanceof」のパターンマッチングや、Javaのデータ構造である「レコード(Record)」を用いたパターンマッチング、そして条件分岐を加えることができる「ガード付き」のパターンベースの「switch」ブロックなどが含まれていた。さらに、他の開発者がデモを実行した際に、それぞれの機能がどのように動作しているかを容易に把握できるよう、結果を表示する「print文」も適切に追加した。

五番目のステップは、作成したコードをプロジェクトに提案する「プッシュ(Push)」と「プルリクエスト(Pull Request)」の作業だ。まず、元のプロジェクトのコードから分岐した新しい作業用の「ブランチ(branch)」を作成した。これにより、自分の変更が他の作業と混ざるのを防ぐ。「add-jep507-demo」という名前のブランチを作成し、作成したデモファイルを追加し、変更内容を説明するメッセージと共に、ローカルでの作業を確定(コミット)した。最後に、その変更内容を自分のフォーク版リポジトリのインターネット上のサーバーにアップロード(プッシュ)した。プッシュ完了後、GitHubなどのプラットフォーム上で、自分の変更を元のプロジェクトに取り込んでもらいたいという「プルリクエスト」を提出した。

最後の六番目のステップは、提出したプルリクエストを関連する課題(Issue)に紐付け、プロジェクトの「メンテナー(維持管理者)」に感謝の意を伝えることだった。プルリクエストがどの課題に対するものかを明確にすることで、メンテナーは変更内容の意図を理解しやすくなる。また、感謝の言葉を伝えるという小さな気遣いが、オープンソースコミュニティにおける良好な人間関係を築く上で非常に重要であると筆者は学んだ。

この一連の経験を通じて、筆者はいくつかの重要な学びを得た。まず、オープンソースへの貢献は、思っていたよりも難しくなく、恐れるようなものではなかった。次に、課題の説明やプロジェクトのドキュメントを注意深く読むことが、結果的に時間の大幅な節約に繋がることを実感した。また、オープンソースへの貢献は、バグ修正だけでなく、今回のように新しい機能の「デモ」作成やドキュメント改善、テストコード追加なども価値ある貢献となるという視点を得た。そして、オープンソースプロジェクトのメンテナーの多くは、新しい貢献者を温かく迎え入れてくれる存在であることを知った。

筆者は、自身の経験を踏まえ、システムエンジニアを目指す初心者や、経験豊富な開発者であってもオープンソースへの貢献をまだ経験していない人々に対し、まずは一歩を踏み出すことを強く勧めている。Hacktoberfestのようなイベントは、プルリクエストのボタンを押すための絶好の機会だ。少しでも興味があれば、臆することなく挑戦してみることが大切だ。

関連コンテンツ

関連IT用語