concretecms / dependency-patches
Patches required for concrete5 and Concrete CMS dependencies
Installs: 109 023
Dependents: 3
Suggesters: 0
Security: 0
Stars: 4
Watchers: 8
Forks: 2
Open Issues: 0
pkg:composer/concretecms/dependency-patches
Requires
- mlocati/composer-patcher: ^1.0.0
README
Dependency patches for concrete5 and Concrete CMS
concrete5 v8 and Concrete CMS v9+ use a lot of third party libraries, installed via Composer.
Internal changes in newer PHP versions require to upgrade some of those composer packages, but some of them are no more compatible with the PHP versions we support, or they haven't been fixed yet.
This dependency-patches project contains those required patches, so that concrete5 and Concrete CMS can still use them.
How to use
The official releases of concrete5 and Concrete CMS that can be downloaded from https://www.concretecms.org/download already contain the patches included in dependency-patches.
If you use a composer-based concrete5/Concrete CMS installation you need to add these lines to your composer.json file:
- in the
requiresection (it it's not already included in thecomposer.jsonfile that comes with concrete5/Concrete CMS):"concretecms/dependency-patches": "^1",
- in the
extrasection:"allow-subpatches": [ "concretecms/dependency-patches" ],
How to add a new patch
If you want to patch a composer package named <vendor>/<package> at version 1.2.3, you should:
- create the
.patchfile:- in the Concrete root directory, run
composer reinstall <vendor>/<package> --prefer-source(requires composer 2.1+) to have a git repository - run
git checkout -b my-patch <tag>inside the package directory (where<tag>is the tag corresponsing to the installed package version) - edit the required files
- create a commit with the changes, by running
git commit -am "My wonderful patch" - create a patch file by running
git format-patch --no-stat -1 - edit that patch by removing useless lines, like:
- the initial
From <sha1> <date> - the git-specific lines (they start with
diff --git ...andindex sha1..sha1 - the closing comments, if any (the
--line at the end of the file and any other lines after it)
- the initial
- move the .patch file to the
<vendor>/<package>directory in the dependency-patches repository
- in the Concrete root directory, run
- add a
<vendor>/<package>:1.2.3key to theextra.patchessection of thecomposer.jsonfile of this project. For example:"<vendor>/<package>:1.2.7": { "Description of the patch": "<vendor>/<package>/name-of-the-patch-file.patch" },
- to test the patch locally, you can edit the
composer.jsonfile of your concrete5/Concrete CMS installation, adding:- In the
requiresection:"concretecms/dependency-patches": "dev-master"
- In the
repositoriessection:{ "type": "path", "url": "relative/or/absolute/path/to/your-local/dependency-patches" }PS: on Windows, you can use forward slashes (/) instead of back-slashes (\) as the directory separator.
- In the