Contribution guide 

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.

Preparation 

# Clone repository
git clone https://github.com/eliashaeussler/typo3-solver.git
cd typo3-solver

# Install dependencies
composer install
Copied!

Development workflow 

A typical contribution workflow looks like this:

  1. Apply automatic fixes

    Use the following commands to normalize and format the code base:

    # Apply all automatic fixes
    composer fix
    
    # Apply specific fixes
    composer fix:composer
    composer fix:editorconfig
    composer fix:php
    Copied!
  2. Run checks

    Use composer check to run the full code quality pipeline locally. This command bundles dependency analysis, static analysis, coding style checks, and Rector in dry-run mode so that potential refactorings can be reviewed without changing files.

    # Run all checks
    composer check
    
    # Run specific checks
    composer check:deps
    composer check:refactor
    composer check:static
    composer check:style
    
    # Run specific style checks
    composer check:style:composer
    composer check:style:editorconfig
    composer check:style:php
    Copied!
  3. Run refactorings

    Refactorings are intentionally separated from regular checks because they may change the code base.

    # Run all configured refactorings
    composer refactor
    
    # Run specific refactorings
    composer refactor:php
    Copied!
  4. Run tests

    Run the full test suite before opening a pull request:

    # Run all tests
    composer test
    composer test:coverage
    
    # Run functional tests
    composer test:functional
    composer test:functional:coverage
    
    # Run unit tests
    composer test:unit
    composer test:unit:coverage
    
    # Merge coverage reports
    composer test:merge-coverage
    Copied!

Coverage reports 

Code coverage reports are written to Build/tests/coverage. Open the latest merge HTML report with:

open Build/tests/coverage/html/_merged/index.html
Copied!

Pull requests 

Once the changes are ready, please submit a pull request and describe what was changed and why. Ideally, the pull request references an issue that describes the problem being solved.

All documented code quality tools are executed automatically for pull requests across the currently supported PHP versions. For details, refer to the GitHub Actions workflows.