Template for extensions with QA tools

by Oliver Klee

What is your idea about?

Currently, setting up a new TYPO3 extension from scratch including the usual QA tools is time-consuming and error-prone process each time. This calls for an automated solution that does this for you after asking you a few questions!

What do you want to achieve by the end of Q3 2024?

Create a template for creating TYPO3 extensions that can be used with the CPS project builder GitHub - CPS-IT/project-builder: Composer package to create new projects from project templates

  • query for the TYPO3 LTS versions to support (12LTS, 13LTS)
  • query for the QA tools to us (for example PHPStan, PHP-CS-Fixer, the TYPO3 Testing Framework for unit and functional tests, etc.)
  • set up the required files and dependencies to make the extension installable and all selected tools configured and usable in the way recommended by the TYPO3 Best Practices Team
  • also generate the required runTests.sh to run those tools locally
  • also generate the corresponding CI setup for GitHub Actions

What is the potential impact of your idea for the overall goal?

This template will greatly reduce the amount of work needed to set up a new TYPO3 extension. As setting up the corresponding QA tools will also be quick and easy, this will help establish QA tool usage and hence higher quality for TYPO3 extensions in the community.

Note: The Best Practices Team will take care of the long-team maintainance of this template.

Which budget do you need for your idea?
3.000 Euro

Please note: After the start of the voting we can not change the idea description nor the idea outcome. If this idea is selected by the members, it must be archived as described.

3 Likes

What is the advantage over b13/make? This tool already generates an extension by asking simple questions.

We have just updated all these tools for blog_example and I hope we will made it to keep that extension up2date. Copy 2 directories and a few lines from composer.json.

The difference to b13/make is the focus on including and adding the recommended configuration for QA tools like PHPStan, PHPUnit and PHP linting plus a CI setup for GitHub Actions.