こんにちは、ひがしです。
この記事はICT委員会 コロナに負けないぞブログリレー 2日目の記事となっています。
1日目はうちぱら先輩の記事でした。
とても感動する内容でしたね。泣いてしまいました。
// ここにうちぱら先輩の記事を貼る
OSSとは
Open Source Softwareの頭文字をとってOSSです。
コードが公開されているソフトのことで、ライセンスに則って使用できます。
OSSに自分のほしい機能を追加したり、バグを修正したりする際はPull Requestsを投げます。頭文字を取ってPRですね。
今回はvim-jpのslacklog-generatorにPRを投げた話を書きます。
vim-jpとは
まず、vim-jpってなんなの?って方のためにvim-jpについて説明します。
「vim-jpはテキストエディタVimと日本・日本語に関わるあらゆるリソースを集約することを目的としたコミュニティです。」(vim-jp HPより引用 https://vim-jp.org/)
一言で表すとVimのユーザー協会です。ドキュメントを翻訳したり、Vimプラグインを開発するときに使えるライブラリを提供したりしています。
また、vim-jpにはSlackがあり、そちらに参加できます。
詳しいことは以下のリンクからどうぞ
https://vim-jp.org/docs/chat.html
slacklog-generatorって何?
活発なワークスペースで発生するログの問題を解決するプロジェクトです。
具体的には過去ログを保存、HTML化しようというプロジェクトです。
開発はGo言語で行われており、5/26現在12人のコミッターがいます。
PRを投げるまで
issueの確認
普段からvim-jpの皆様にはお世話になっているので、こういうところで貢献したいと思いissueを見て貢献できそうなものを探しました。
https://github.com/vim-jp/slacklog-generator/issues/9
発見。メッセージにつけられたリアクションを表示するというissueですね。
以前vimでSlackを見るプラグインを作成していた経験から「メッセージの構造とかは把握しているし行けるやろ」と意気込み、やります宣言をして作業をスタートしました
ちなみにメンバーではないプロジェクトにPRを投げる際にはGitHubのリポジトリをforkしてそこにbranchを生やしてPRを送る必要があります。
プロジェクトのコードを把握する
Go言語のtemplateがわからん
コード読み始めて「あちゃー」となっていました。
HTMLを生成するためにテンプレートを作るのですがそれが全くわからん。
Go言語ではSlackBotとかREST APIとか作ってばっかりでしたからね。
わからないものは仕方がないので、とりあえずtemplate周りの勉強をしました。
勉強後、プロジェクトの全体像を把握するために再びコードを読みました。
わからないことがあったら調べたり聞いたりしていました。
実際にコードを書く
メッセージにつけられたリアクションが表示できるようにコードを書きます。
ここでもわからなかったら調べたり聞いたりしていました。
完成したのでPRを投げる
完成しました。
PRを投げます。
https://github.com/vim-jp/slacklog-generator/pull/124
その後、「指摘された点を修正し報告」の流れを何度か繰り返し、mergeしていただきました。

わーい。
ちなみにこのあと重大なバグがあったようでその修正PRが投げられていました。
申し訳ないです…
vim-jpのslacklogページを確認すると自分の実装した部分が反映されていました。
嬉しいね。

まとめ
slacklog-generatorにPRを投げたわけですが、git rebaseでのコンフリクト解消や、実装に関する色々なアドバイスをいただくことができ、とても勉強になりました。
これからもissueを覗いて解決できそうな問題があったらPRを投げたいです。
OSSに貢献するとき、わからないことがあればリポジトリの主に聞いたり調べたりするとなんとかなります。みなさんもPRを投げてみましょう。
そしてvim-jpのSlackに入り、色々な知見を得ましょう!!
https://vim-jp.org/docs/chat.html
0件のコメント