Contributing¶
Thanks for considering contributing to this extension! Since it is an open source product, its successful further development depends largely on improving and optimizing it together.
The development of this extension follows the official TYPO3 coding standards. To ensure the stability and cleanliness of the code, various code quality tools are used and most components are covered with test cases. In addition, we use DDEV for local development. Make sure to set it up as described below. For continuous integration, we use GitHub Actions.
Create an issue first¶
Before you start working on the extension, please create an issue on GitHub: https://github.com/eliashaeussler/typo3-warming/issues
Also, please check if there is already an issue on the topic you want to address.
Contribution workflow¶
Note
This extension follows Semantic Versioning.
Preparation¶
Clone the repository first:
git clone https://github.com/eliashaeussler/typo3-warming.git
cd typo3-warming
Now start DDEV:
ddev start
Next, install all dependencies:
ddev composer install
ddev frontend install
You can access the DDEV site at https://typo3-ext-warming.ddev.site/.
Tip
There's also a dedicated DDEV command to manage TER libraries located at
Resources/Private/Libs/Build
. Run ddev libs <command>
with
any available Composer command, e.g. ddev libs install
.
Check code quality¶
TYPO3¶
# All linters
ddev composer lint
# Specific linters
ddev composer lint:composer
ddev composer lint:editorconfig
ddev composer lint:php
ddev composer lint:typoscript
# Fix all CGL issues
ddev composer fix
# Fix specific CGL issues
ddev composer fix:composer
ddev composer fix:editorconfig
ddev composer fix:php
ddev composer fix:typoscript
# All static code analyzers
ddev composer sca
# Specific static code analyzers
ddev composer sca:php
Frontend¶
# All linters
ddev frontend lint
# Specific linters
ddev frontend lint:scss
ddev frontend lint:ts
# Fix all CGL issues
ddev frontend fix
# Fix specific CGL issues
ddev frontend fix:scss
ddev frontend fix:ts
Run tests¶
# All tests
ddev composer test
# Specific tests
ddev composer test:acceptance
ddev composer test:functional
ddev composer test:unit
# Enable Xdebug to collect code coverage
ddev xdebug on
# All tests with code coverage
ddev composer test:coverage
# Specific tests with code coverage
ddev composer test:coverage:acceptance
ddev composer test:coverage:functional
ddev composer test:coverage:unit
# Merge code coverage of all test suites
ddev composer test:coverage:merge
Code coverage reports are written to .Build/coverage
. You can
open the last merged HTML report like follows:
open .Build/coverage/html/_merged/index.html
Reports of acceptance tests are written to .Build/log/acceptance-reports
.
You can open the last HTML report like follows:
open .Build/log/acceptance-reports/records.html
Build documentation¶
# Rebuild and open documentation
composer docs
# Build documentation (from cache)
composer docs:build
# Open rendered documentation
composer docs:open
The built docs will be stored in .Build/docs
.
Pull Request¶
Once you have finished your work, please submit a pull request and describe what you've done: https://github.com/eliashaeussler/typo3-warming/pulls
Ideally, your PR references an issue describing the problem you're trying to solve. All described code quality tools are automatically executed on each pull request for all currently supported PHP versions and TYPO3 versions.