はじめに
どうも、ポケモン廃人です
最近 PokeAPI
という、ポケモンに関するデータを様々取得できるAPIで遊んでいたのですが、APIの返却データに不備がある事に気がつきました。
PokeAPI
はOSSとして公開されているので、自分で直してしまおうということで、人生初のOSSコントリビュートをしてきました。
今回はその体験談を記します。「OSSにコントリビュートするのってこんな流れなんだ〜」くらいを感じていただければと思います。
技術的に踏み込んだ内容はありませんので、どうぞ気軽に読んでくださいませ。
PokeAPIとは
ポケモンのゲームに関するありとあらゆるデータを取得できる神APIです。
マニアックな話は避けますが、ポケモンの身長や体重、技、アイテムなど、基本的に何でも取ってこれます。
OSSとしてリポジトリ公開されており、star数は 3800超(2023/12現在)というAPIになっております。
・PokeAPI - Github
・公式ドキュメント
コントリビュート達成まで
では、自分のプルリクエストがAPI開発者にマージされるまでに体験した、一連の流れを書いていきます。
0. 不具合発見
技データのAPIを叩いていたところ、技「からをやぶる」の返却データにミスがある事に気がつきました。
調べたところ、リポジトリが公開されていることを知り、プルリクエストを出そうと考えます。
1. READMEを読む
まずはREADMEを読み、本APIの開発環境の構築方法や、プルリクエストの作成ルール等を把握しました。
2. 既存のissueを確認
プルリク送信やissueの新規作成前に、既存のissueを確認するよう、READMEに記載がありました。
Please see the issues on GitHub before you submit a pull request or raise an issue, someone else might have beat you to it.
自分が気づいた問題がすでにissueに上がっていないか確認してみたところ、少し前に同様の問題を指摘している方がおりました。
どうやら、私が見つけた技データの他にも、同じように返却ミスのある技がいくつか存在するとのこと。
issueが上がってから日が空いていたので、issueの作成者とAPIの開発者に、私の方でまとめて修正してしまって良いか尋ねました。
次の日、返信がありました。
API開発者:「頑張れ」
issue作成者:「少なくとも数日以内には直せないので、お願い」
自分(心の声):(頑張ります。)
3. リポジトリをfork
ここから開発の準備です。PokeAPI
のリポジトリをforkします。
GUI上でforkボタンを押し、完了。
4. clone→ブランチ作成→ローカル開発
forkしたリポジトリをgit clone
し、ブランチを切って開発していきます。
まずはREADMEの説明を参考に、ローカル環境でAPIの動作検証をするための環境構築を行いました。
あとはコードを読んで修正箇所を特定し、実際に直します。
自分のプロダクトではないので、リポジトリの構造を理解するのは少し大変。
修正自体は、結局小さな変更で済みました。
5. プルリクエスト作成
ローカル環境で動作検証も終わったので、変更をpushし、プルリクエストを出します。
コミットメッセージやプルリクの文章はなるべく丁寧に書きました。
6. マージ完了
数時間後、無事マージされました。
OSSコントリビュート達成です
その後、本番環境のAPIでも正しくデータが返ってくることを確認できました。
感想
第一に、大勢の人が利用しているOSSに貢献できて嬉しい気持ちがあります。PokeAPI
に少し愛着も湧きました。
一方で、修正前にリポジトリの環境構築を行ったり、リポジトリの中身(構造、ソースコード)を理解する必要があったりと、難しさも感じました。
OSS活動に慣れるとこの辺の感覚は変わってくるのかもしれませんね。
今後も機会があればOSSコントリビュートに取り組んでみようと思います。
最後に
最後まで読んでいただきありがとうございました。
ポケモンSVの追加コンテンツ配信まであと2週間。界隈も盛り上がってきましたね。
配信当日は、私もしれっと有休とって遊びます。
それではまた!