Download the PHP package contao/monorepo-tools without Composer
On this page you can find all versions of the php package contao/monorepo-tools. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download contao/monorepo-tools
More information about contao/monorepo-tools
Files in contao/monorepo-tools
Package monorepo-tools
Short Description Contao Monorepo Tools
License LGPL-3.0-or-later
Informations about the package monorepo-tools
Contao Monorepo Tools
This project provides tools to work with a monorepo. The main usage is continuously splitting up a monorepo of a PHP project into multiple read-only splits for every commit, branch and tag. It also provides a command that can merge the composer.json files of the splits into a single composer.json file for the root directory to make it possible to install the monorepo itself as a replacement of the single packages.
There is also a merger available that can be used to merge multiple projects into one monorepo as a one-time process, but it is still experimental and should be used with caution.
Installation
Usage
How the tools are used in action can be seen in the monorepo.yml and .github/workflows/ci.yml files of the project Contao.
Split command
Splits the monorepo into repositories by subfolder as configured in the monorepo.yml file and pushes the results to the configured remotes.
Composer-json command
Updates (or validates) the root composer.json file to include a union of all settings from the splits. The autoload configuration gets rewritten to include the correct path to the right subfolder. Version constraints for requirements and conflicts get merged using intersections and unions.
Merge command
Merges multiple repositories into one monorepo. This is intended to be a one-time process, and most probably needs some fine-tuning. The biggest benefit of using it is that it’s reversible, meaning that after splitting the monorepo back the splits commit history of the past is kept untouched.
Feel free to contact me (@ausi
) on the Contao Slack workspace
if you consider using it for your project.
Configuration
The configuration is stored in a monorepo.yml file in the root of your monorepo project.
All versions of monorepo-tools with dependencies
ext-json Version *
ext-zlib Version *
composer/semver Version ^3.2
phpspec/php-diff Version ^1.0
symfony/config Version ^5.4 || ^6.4 || ^7.0
symfony/console Version ^5.4 || ^6.4 || ^7.0
symfony/filesystem Version ^5.4 || ^6.4 || ^7.0
symfony/process Version ^5.4 || ^6.4 || ^7.0
symfony/yaml Version ^5.4 || ^6.4 || ^7.0