Mono-repo setup
This repository is following a mono-repo setup. This means all code and configuration to render documentation is in this repository. This includes scripts to build the documentation and the configuration for the CI/CD pipeline.
Some packages in this repository can be used as standalone packages when not rendering documentation for TYPO3, but for internal company documentation.
To ensure the mono-repo setup works, and also works in separate repositories, we are using a tool called monorepo-builder. This tool will help us to keep the dependencies over packages in sync.
If you add a new dependency to a package, you can run
make monorepo
This will update the root composer.
file with the new dependency.
It is recommended to run the validation check before you commit:
make test-monorepo
Repository split (subtree-split of this mono-repository)
To be listed on Packagist each package
in the folder packages/
of this mono-repository has to have its own
Git repository (called "subtree split"). On merging (push/commit) and
creating tags, these subrepositories are automatically updated by the GitHub
action .github/
.
To add a new split-repository package, the following is needed:
- Create a repository on GitHub with the matching Composer name, special signs replaced by minus.
- Configure the repository with maintain rights to the group PHP-based-rendering-bot
- Add an entry to file
config.
, formatted like the existing subtrees.subsplit- publish. json - Push some change within the correspondig package directory on the
mono-repository's
main
branch. - Add the new repository to Packagist.
Note
Trigger a push first, before a release (tag) is made, to initialize the split-repo. Otherwise you will get an error "fatal: bad object type".