Composer Satis Builder
Complementary tool to Satis for updating the satis.json "require" key from the project composer.json., (*1)
This is particularly useful if you are mirroring for git repositories and package zip files (dist files)., (*2)
Problem description
If you use in satis.json ``"require-all": true`, you will have all versions of all packages in the
repositories you defined which can take a lot of disk space, (*3)
OR, (*4)
You can choose to manually maintain the "require" key which can be time-consuming if you have a lot of packages., (*5)
Usage
build
<composer> Path to the project composer.json file
<satis> Path to the satis.json configuration file
[-rdd|--require-dev-dependencies REQUIRE-DEV-DEPENDENCIES] Sets the "require-dev-dependencies" key
[-rd|--require-dependencies REQUIRE-DEPENDENCIES] Sets the "require-dependencies" key
[-rc|--add-requirements] Add the requirements from the project composer.json
[-drc|--add-dev-requirements] Add the dev requirements from the project composer.json
[-rr|--reset-requirements] Will reset (empty) the satis requirements (require key) before adding the requirements of the composer.json
Example
Given, (*6)
satis.json, (*7)
{
"name": "My Repository",
"homepage": "http://localhost:7777",
"repositories": [
{ "type": "vcs", "url": "https://github.com/mycompany/privaterepo" },
],
"require": {
}
}
and, (*8)
composer.json, (*9)
{
"name": "mycompany/mycompany-project",
"require": {
"mycompany/privaterepo": "^1.3"
},
"repositories": [
{
"packagist": false
},
{
"type": "composer",
"url": "http://localhost:7777/"
}
]
}
and Composer Satis Builder is installed:, (*10)
php composer.phar create-project aoe/composer-satis-builder --stability=dev
After running, (*11)
php composer-satis-builder/bin/composer-satis-builder build composer.json satis.json --reset-requirements --add-requirements
satis.json will look like:, (*12)
{
"name": "My Repository",
"homepage": "http://localhost:7777",
"repositories": [
{ "type": "vcs", "url": "https://github.com/mycompany/privaterepo" },
],
"require": {
"mycompany/privaterepo": "^1.3"
},
}
Now build Satis as before:, (*13)
php bin/satis build satis.json web/
License
Composer Satis Builder is licensed under the MIT License - see the LICENSE file for details, (*14)