OSSのコントリビュート自体経験がありませんでしたが、
Laravelを使っていて「ここ改善できそうだな…」と思ったところがあり、
折角ならコントリビュートデビューするかと思い立ちました。
とはいえ、
OSSへのコントリビュート自体が初めてなので、手順が分からなかったので調査すると、Laravel自体が Contribution Guide なる、コントリビュートの手引きが用意されていた。
とりあえず、
て初めてとしてContribution Guideを読んでみたので、記録としてまとめておく。
Contribution Guide
以下公式URL
https://laravel.com/docs/11.x/contributions
なお、Laravelのversion毎に当Guideは用意されているが、
現時点での最新安定バージョンであるversion 11
のGuideを参照している。
Guideの目次は以下の通り
- Bug Reports
- Support Questions
- Core Development Discussion
- Which Branch?
- Compiled Assets
- Security Vulnerabilities
- Coding Style
- Code of Conduct
これらを一つずつ確認していく。
Bug Reports
- Bug Reports ではなく、pull requestの作成を強く推奨している。
(Bub Reportsは、こんな感じでGithub 上にまとめられている。)
- pull request が作成されると、 新しい機能の全てのテストを通して、レビューされる。(draftの状態だとレビューされない上に、そのまま放置されると、自動的にcloseされる)
- LaravelはProject毎にリポジトリが分かれているので、適切なリポジトリに対してpull requestを作成する。
つまり、 何か提案がある場合、pull request(not draft)を適切なrepositoryに対して送ってね、ということ。
Support Questions
- Laravelのissue trackersは、helpやsupportを目的としたものではありません。
- それらが必要な場合には、以下のchannelを利用してください。
つまり、 Laravelに関することで実装上の困りごとがあった場合は、
こちらのような形でissuesではなく、
上記リスト等のサービスで助けを求めてね、ということ。
Core Development Discussion
- Laravelの新機能・既存の改善等がある場合、DIscussionsで議論することもできるよ
- ざっくばらんな議論がしたい場合、Discordのチャンネルがあるから、それも使ってね
つまり、
新機能に関して意見があったりする場合には、 然るべき場所を用意しているから、そちらで積極的に議論してね、ということ。
Which Branch?
- 以下基準で、pull request先のブランチを決定してください。
- Minor version up:最新安定版のブランチ(記事執筆時点:
11.x
)- bugfix
- 下位互換性のある変更 など
- Major version up:masterブランチ
- 破壊的変更を含む場合
- 新機能 など
- Minor version up:最新安定版のブランチ(記事執筆時点:
OSSのGitにおけるBranchの運用に関して、あまり意識したことありませんでしたが、
- master:次のメジャーリリースのための新機能を含む
- n.x(11.xなど):version nの安定版
を指す、ということを初めて知りました。
Compiled Assets
resouces/css
やresouces/js
配下 のような、コンパイル済みのファイルに影響を与えるcommitをする場合、 コンパイル済みのファイルをcommitしないでください。
つまり、
この辺りのresouces配下のファイルを変更する場、コンパイルした場合の成果物として、public配下にファイルが作られるけど、
前者のresouces 配下のファイルだけcommitしてね。 ということだと思う。
Security Vulnerabilities
- Laravelにセキュリティー脆弱性を見つけた場合は、メールでTaylor Otwell(taylorotwell@laravel.com)に連絡してください。全セキュリティー脆弱性は、速やかに対応されるでしょう。
セキュリティーの脆弱性をpull request・issue・Discussion等で挙げてしまうと問題なので、というかと思います。
Coding Style
コーディング規約はありますが、
Style CIが動くので(この辺に設定があった)そこまで気にせずコードを書いてください、ということ。
Code of Conduct
- Laravelの行動規範はRubyの行動規範を基にしています。
- 行動規範
Rubyの行動規範がこちら。
その他 感想
pull requestのマージ頻度が結構多い
Laravel/framework のclose済みのpull requestを見てると、
1時間に一つぐらいのページでマージされていることが分かった。
ここまで高頻度でマージされているとは。
流石の人気ですね。
初めて知れたことが多かった
- Style CIの存在
- OSSにおけるGit上のBrancの運用方法
- Laravelの行動規範は、Rubyのそれを基にしていること
など、副産物として初めて知ることが多く、見識が深まった。
まとめ
コントリビュート方法は概ね分かったので、次はコントリビュートに調整する!!!
コメント