concretecms / dependency-patches
Patches required for concrete5 and Concrete CMS dependencies
Installs: 71 684
Dependents: 3
Suggesters: 0
Security: 0
Stars: 4
Watchers: 9
Forks: 2
Open Issues: 2
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
require
section (it it's not already included in thecomposer.json
file that comes with concrete5/Concrete CMS):"concretecms/dependency-patches": "^1",
- in the
extra
section:"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
.patch
file:- 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.3
key to theextra
.patches
section of thecomposer.json
file 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.json
file of your concrete5/Concrete CMS installation, adding:- In the
require
section:"concretecms/dependency-patches": "dev-master"
- In the
repositories
section:{ "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