やまひろのエンジニア航海記

エンジニアである僕がプライベートの学習の中で学んだことなどを気楽に書いていきます。

初めてOSSにContributeしました。typoの修正ですが。

僕は最近、隙間時間にTypesScript Deep Diveの日本語訳を読んでいます。同時に「OSSにcontributeしたいなあ。まずはtypoの修正とかから始めようかなあ。」なんてことを思っていました。そんなある日、Deep Diveを読んでいると、Deep Diveに一文字のtypoを見つけました。僕は「お!これだ!」と思い、すぐにcontributeのための作業に取り掛かりました。

修正の準備

 僕はまだcontribute未経験です。という訳でまず、contributeのやり方(具体的に何をすれば良いのかや、作業の流れ)を調べました。こちらの記事を参考にして進めました。
 まず、TypesScript Deep Diveの日本語訳のリポジトリhttps://github.com/yohamta/typescript-book-jp をforkします。
 次に、forkしたリポジトリを自分のPCにcloneします。
 自分のPCにcloneしたら、自分の開発用のbranchを切って、CONTRIBUTING.md に書いてある通りに開発環境を作ります。手順に従って、 npm install gitbook-cli -g を実行した後に gitbook serve . を実行しました。しかし、ここでこんなエラーが発生しました。

Error: ENOENT: no such file or directory, stat '[ここまでのフォルダパス]/typescript-book-jp/_book/gitbook/gitbook-plugin-edit-link/plugin.js'

環境構築にエラーは付きものなので怯まずに調べました。
 すると、 こちらの記事 に解決方法が書いてありました。この記事の通りに修正して gitbook serve . を実行すると今度は、こんなエラーが発生しました。

Error: Couldn't locate plugins "edit-link, github, adsense, header", Run 'gitbook install' to install plugins from registry.

エラー文の通りに gitbook install を実行してから、gitbook serve . を実行すると無事に動作しました。 これで準備完了です。次は修正に取り掛かります。

修正

修正対象のファイル、docs/javascript/number.md を開き、「少数演算」を「小数演算」に修正して、add、commitをし、自分のリモートリポジトリにpushします。
 次に、remote リポジトリにfork元のリポジトリを追加します。

git remote add upstream https://github.com/yohamta/typescript-book-jp.git

参考にした記事の通りに、ローカルのmasterにfork元のリポジトリ upstream をpullし、ローカルのmasterを修正用branchにrebaseします。 そして、修正用branchをoriginにpushします。参考記事では -f オプションをつけていますが、僕は -f はつけずにpushしました。

プルリク

いよいよプルリクです。 GitHubの自分のリモートリポジトリのページを開き、New pull request ボタンをクリックし、プルリク作成画面に行きます。 プルリク作成画面に左のbase repositoryが yohamta/typescript-book-jp であることを確認し、プルリクのコメントを書いて、プルリクを作成します。 あとは結果を待ちます。

プルリクの結果

次の日の朝、メールを見ると、プルリクへのコメントの通知が来ていました。承認されてマージされたようです!Deep Diveの該当箇所を開くと、僕が修正した箇所が反映されていました!そして、リポジトリのREADME.mdのContributorsの欄を見ると、僕のアカウントが表示されていました。とても簡単なtypoの修正でしたが、何かに貢献できた感じがして達成感がありました。

おわりに

今回、とても簡単なtypoの修正という形でOSSにcontributeしました。こんな簡単な修正でも自分が修正した部分が実際に反映されていたり、contributorsの欄に自分のアカウントが載っていたりすると貢献した感や達成感がありました。OSSへのcontributeを楽しんでいる人の気持ちの一端を垣間見た気がします。これを第一歩として、今後はよりOSSにcontributeしていけるように励みます。