この記事は 闇の魔術に対する防衛術 Advent Calendar 2018 の4日目の記事です。
昨日は @teradonburi さんの Headless CMSとWordPressの囚人 でした。
TL;DR
forkしたリポジトリをcomposer.jsonにrepositories を追加する
愚痴
引き継いだ案件やよく分かってない開発者がvendor以下のライブラリを書き換えてgitに突っ込んできた事って有りませんか?
私は年1,2回あります。composer update とか出来なくて困る。アップデート後コンフリクトすると大変
そんな死んだvendorを解放するための防衛術を教えます。
本題
ライブラリを改変したいときってどういう時でしょうか
- バグがある
- 機能が足りない
エラるので取りあえず try catch を埋める (←やめて
思いつく限りでよく遭遇するのはこんな感じです。
バグがある場合は素直に該当ライブラリをforkしてプルリクを送りましょう。
機能が足りない場合も、forkしてプルリクするのがいいですが、プロジェクトの方針によって採用されない機能だったり
メンテナンス期間のバージョンには取り入れてもらえない事もあるでしょう。
また、バグ修正もそうですが、ノーメンテリポジトリの場合はマージされることはないでしょう
(そもそもそういうライブラリは採用しない)
そんな時、どうすれば良いか。
- 魔改造したライブラリをgithubにアップする
- composer.json に repositories を追加する 方法はこちら
- repositoriesに書いた方が優先して読み込まれる。同名でも自分で登録した物が利用される
- できれば魔改造したライブラリはfork元にアップデートを追従させる
という感じでオレオレライブラリとして公開して対応しましょう!
もちろん、できれば
- サポート切れのライブラリは使わない(フレームワークとか特に)
- ノーメンテっぽいライブラリは避ける
ことを先にやった方が良いと思います!
明日は @neutron63zf さんの 投稿です!