オープンソースにプルリクエストを送ってみよう!

はじめに

こんにちは!エンジニア1年目があっという間に終わろうとしている河瀨です!

今回はオープンソースに実際にプルリクエストを送って、マージされるまでの一連の流れを記事にしてみます。

プルリクエストを送るのは、弊社でメインプロダクトとして利用している国産オープンソースCMSの「baserCMS」

自分の書いたコードが公開されて、処理の一部になる。ロマンしかないですね✨️

これを読んであなたも、オープンソースの開発者になりましょう!

開発環境を準備

さて、早速開発するぞー!と言いたいところですが、OSSの改修をするにあたって準備しなくてはいけないことがあります

それが、「リポジトリのフォーク」です

以下のマニュアルを参考にやってみてください

https://baserproject.github.io/5/contribution_developer/develop

今回の記事ではフォークについては省略しますが、基本的にOSSの開発には必要な工程ですので、baserCMS以外にも、「🔍️ オープンソース フォーク」とかでググったらそれなりに参考になると思います!

対応するIssueを探そう

baserCMSはどうやら「Issue駆動開発」を前提としているらしい…

Issueドリブン開発(課題駆動開発、チケット駆動開発とも)とは
issueつまり実装における課題をタスクとして管理・運用する開発手法です。 新規機能の追加やバグ修正などをissueとして立て、それを解決するためのブランチを切り、コミットやPRで適宜issueを参照しながら開発を進めるというフローを取ります。(GitHubより引用)

なるほどね、それなら今立っているIssueを見てみようじゃないか

おぉぉ、たくさんありますね…!これは選びがいがありそうです!(?)

[Bug]や[Ver5.0]など、タグがつけられているようですが、

なにか頃合いのものはないかしら…

(筆者は新卒1年目の駆け出しエンジニアですので、対応できるIssueのほうが少なかったりします)

頭の中で議論を重ねた結果、今回はこちらの改修をすることに

https://github.com/baserproject/basercms/issues/3997

バージョン5.1.xの「カスタムコンテンツ」は最近よく触っていたので、なんとなく仕様を把握していたのだ、これはちょうどいい…

5.1.xブランチからIssueの番号で作業ブランチを切って作業開始しよう!

再現確認

さて、対応するIssueも決まったことだし、まずはこの不具合は具体的にどんなものなのか知る必要がある…

ということでまずは、ローカル環境で再現確認することに

ふむふむ、カスタムエントリーでグループを使用しているときにレイアウトが崩れると…

同じ条件でエントリーを作成したところ確かにレイアウトが崩れている…!

対象のページを表示しているファイルを見てみよう

このページを表示しているファイルはどこでしょうか?

baserCMS5.1.xでは、管理画面のテーマは/plugin/bc-admin-thirdの中に入っています。更に対象のプラグインやメソッド名からviewファイルを探したところ

plugins/bc-admin-third/templates/plugin/BcCustomContent/Admin/CustomEntries/add.php

plugins/bc-admin-third/templates/plugin/BcCustomContent/Admin/CustomEntries/edit.php

↑↑横スクロールで詳細確認できます↑↑

この辺りが怪しいですね…

内容を見てみると、上の2つのファアイルの中に

$this->BcBaser->lement('CustomEntries/form')

という記述を発見、element/CustomEntries/form.phpを呼び出しているみたいなので覗いてみる

ループ機能を使うグループとループ機能を使わないグループ、それ以外のタイプでエレメントが分かれているみたい

今回は、ループ機能を使わないグループだったので、CustomEntries/form_group.phpファイルが改修の対象ファイルのようです!

ファイルを変更して表示の確認をしてみる

改修するファイルが決まったので、中身を見つつ、どのように変更すればいいか考えてみる

とりあえず画像のように変更してみた、考え方としては

ループ機能を使うか使わないかで表示が変わっていた

→ループ機能を使わないときのレイアウトを、使うときのレイアウトに揃えれば良さそう

ループ機能を使う場合、CustomEntries/form_loop.phpファイルを表示しているので、確認しながら同じHTML構造になるよう調整

お…?いい感じじゃん

ということで改修は問題なさそう、一応その他のページや保存などのアクションに影響が無いことも確認しておく

今回は大丈夫そうなのでコミットしてプッシュ

プルリクエストを送ろう!

プッシュしてgithubにアクセスすると、プルリクエストを作成できます。

どのように変更したか、なぜその変更をしたかを記載してプルリクエスト送信!

プルリクエストのタイトルにfix {課題番号}とつけることで、マージされたタイミングでIssueが自動でクローズされるため忘れずつけておく必要があります!

問題なければマージされるのでこれにて作業完了です!

 

…ちなみに後日談ですが、

今回のものはバグではなく仕様だったみたいです…

ぴえん。まぁ、そんなこともある!!

終わりに

いかがでしたか?

オープンソースの開発に携わることは、ハードルが高く見えますがやってみると楽しいですよ!

まずは簡単なものから、みなさんも挑戦してみましょう!

今日からあなたもオープンソースの開発者です!

 

ということで、また次回お会いしましょう!

baserCMSやWebサイト構築のご相談など
お気軽にお問い合わせください

お問い合わせ
  • このエントリーをはてなブックマークに追加

AUTHOR

河瀬 竜馬

河瀬 竜馬 エンジニア

2002年宮崎県宮崎市生まれ
専門学校でHTML・CSSを学び、Webの道へ
キャッチアップに入社をきっかけに福岡に来ました!

好きな食べ物は甘い物!とオムライスとお好み焼きとハンバーグとお寿司と…美味しいものなら何でも好きです!笑
趣味はゲーム、お酒、音楽で、一番好きなお酒はハイボールです✨
とにかく楽しく生きてます!

失敗を恐れず、何でもチャレンジしてみたいです。
あと、褒められて伸びるタイプです←\_(・ω・`)ココ重要!
よろしくお願いします!!

こんな記事も書いています