I've build a composer-patches alternative, with witch I can change any file in any dependency used by Composer, and manage patches for multiple projects, all in one place.
My biggest pain points with the existing composer-patches packages are:
- They work only after a dependency is downloaded/extracted. So no way to change composer.json, for example to adapt the supported PHP version, or another package version, because it's fixed.
- They only support diff patches. I have to update patches anytime the diff doesn't work anymore. Sometimes I just need a simple search&replace, or replace a whole file.
- Sometimes a patch error gets lost in the whole stream of composer messages, when running "composer update". So I don't realize until later that a patch didn't apply.
- Managing same/similar patches across multiple projects and php versions and package versions is a big pain...
- I don't like to fork GitHub Repositories and patch there, and wait until the package core maintainer finally merges my PR (or not), and maintain my fork the whole time (or longer).
So I build my own solution, PatchPub, and already integrated it in production projects.
With PatchPub you can:
- Patch any file, anyway to you want (search&replace of strings, or using regex; replace file content; apply patch, import GitHub Pull Request)
- Manage patches and projects all in one place, which is really helpful with many projects.
- Get error notifications if a patch cannot be applied anymore, right after a new version of a package is released.
- Many more...
Feedback welcome on:
- Are there other game changer features you need to switch from other composer-patches plugins?
- Would you test or use PatchPub at all?
Thx in advance for any feedback...