First, clone the repository of the project :
mkdir /tmp/project-name
git clone ...
Create a packages.json file in the root, containing the following :
{
"package": {
"name": "vendor/project-name",
"version": "1.0.0",
"source": {
"url": "/tmp/project-name/.git",
"type": "git",
"reference": "master"
}
}
}
Make your changes (and commit them), then test them locally :
composer create-project --repository-url=/tmp/project-name/packages.json vendor/project-name
To override some repositories with local copies (for testing commits/tags before you push them) you can add the following snippet in your composer.json (reference can be any branch):
"repositories": [
{
"name": "kunstmaan/pagepart-bundle",
"type": "git",
"url": "/path/to/KunstmaanPagePartBundle/.git",
"reference": "master"
},
{
"name": "kunstmaan/utilities-bundle",
"type": "git",
"url": "/path/to/KunstmaanUtilitiesBundle/.git",
"reference": "master"
}
],
Hey, thanks for this, it's really helpful. There's one more thing I reckon is good to mention. Sometimes the git repo is cached by composer and there's no other way how to force composer to read data from the local path other than call
composer clearcache
prior to calling thecomposer create-project
.