Help us understand the problem. What is going on with this article?

生まれて初めてGitHubのOSSにプルリクエストを通した話

正直n番煎じな内容なのですが,自分用のメモとして残しておきます.

OSSとは

オープンソースソフトウェア(英: Open Source Software、略称: OSS)とは、利用者の目的を問わずソースコードを使用、調査、再利用、修正、拡張、再配布が可能なソフトウェアの総称である [https://ja.wikipedia.org/wiki/オープンソースソフトウェア]

GolangやKotlinなどのプログラミング言語をはじめとして,Visual Studio CodeのようなエディタもOSSとして流布されています.また,多くのOSSがGithub上で管理されています.

OSSの開発に貢献するための手順

今回実際に通したPR(プルリクエスト)はこちらになります.株式会社ロックオン様が開発しているECサイトのOSSです.
CSS一行を書き換えただけの簡単な編集しかしていません.

https://github.com/EC-CUBE/ec-cube/pull/4123

OSSの開発ドキュメントを読む

OSSは不特定多数に人が自由に編集し,ソースコードの追加・修正が行われていきます.
そのため,命名規則やディレクトリ構成などがあらかじめ策定されていることが多いです.編集を始める前にドキュメントを一読しておきましょう

issueを探す

現時点での不具合や追加すべき機能などがGithubのissuesで挙げられ,各エンジニアが議論します.
issueは解決の優先順位や修正の難易度によって異なるラベルがつけられています.
今回は簡単に貢献できそうな「Easy」を選んで探しました.

ソースコードを編集してPRを送る

リポジトリをフォークする

  • フォークするリポジトリにアクセスする
  • 右上のforkボタンを押して自分のアカウントのリモートリポジトリにコピーする

スクリーンショット 2019-03-29 23.19.04のコピー.png

フォークした旨がリポジトリ名の下に表示されます
スクリーンショット 2019-03-29 23.52.08.png

ローカルリポジトリにクローンする

フォークした自分のリモートリポジトリからクローンし,remote urlを設定します.

$ git clone [repository url]
$ git remote add origin [your repository url]

さらに,自身の作業用ブランチを用意します.どのissueを解決したのかわかるブランチ名が好ましいようです.
今回はCSSによる表示を変更するだけですので,修正する旨を示すブランチ名にしました.

$ git checkout -b fix/plugin-version-display

実際に作業し,自分環境でテストする

ソースコードの編集を行いコミット,プッシュしていきます.

PRの作成

フォークしたリポジトリにプッシュするとPRを作成するボタンがGithubに出てくるのでボタンを押してPRを作成します.
PRの作成時にはメッセージを書く欄があるので,ここにどのissueを解決したのか,どんな実装を行なったのかなど今回のPRの概観がわかるような説明を記述します.
今回はPRメッセージの形式も決まっているため,それに沿って記述します

CIとレビュー

今回のプロジェクトではPRに対してScrutinizerやTravis CIによるテストが行われていました.
これらのテストに通らないと,そもそもリクエストが承認されることはありません(品質を保つためです).
PRはレビュワーの方が内容を確認し,問題がなければマージされます.今回は修正になんの問題もなくそのままマージしていただきました.

感想

1ファイル1行修正1コミットだけの簡単なPRでしたが,原因を探す間にプロジェクトに用いられている技術的なことが知れたりと学ぶことがたくさんありました.
実際に自分が行なった修正が本バージョンに反映されるとモチベーションが上がるし,次もコントリビュートしたくなります.もっとPR量産していきます!!!!

tirol
しがないエンジニア見習い
https://github.com/TirolJPN
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした