Contribution
Contributions are essential to the success of open source projects, but they are by no means limited to contributing code. Much more can be done, for example by improving the documentation or answering questions on stackoverflow.com.
Contribution workflow
- Please always create an issue on Github before starting a change. This is very helpful to understand what kind of problem the pull request solves, and whether your change will be accepted.
- Bug fixes: Please describe the nature of the bug you wish to report and provide how to reproduce the problem. We will only accept bug fixes if we can can reproduce the problem.
- Features: Not every feature is relevant to the majority of users. In addition: We do not want to complicate the usability of this extension for a marginal feature. It helps to have a discussion about a new feature before before opening a pull request.
- Please always create a pull request based on the updated release branch. This ensures that the necessary quality checks and tests are performed as a quality can be performed.
Contribution information
Commit message
-
This repository uses similar subject prefixes like convential commits, but follows the known prefixes used in the TYPO3 Community:
[FEATURE]instead offeat:for changes introducing new features. Requires aFeature-*.changelog file.rst [BUGFIX]instead offix:[TASK]instead ofchore:for any task.[DOCS]instead ofdocs:for documentation or markdown file related changes.[!!!]before the other prefixes instead of!orBREAKINGto hint breaking changes. Requires aBreaking-*.changelog file.rst
with special
[!!!]before task or feature indicating breaking changes.
Documentation and Changelog
- Breaking changes indicated with prefix
[!!!]requires aBreaking-*.changelog file.rst - Features indicated with prefix
[FEATURE]requires aFeature-*.changelog file.rst - Tasks deprecation methods, classes or functionality needs to be documented
adding
Deprecation-*.changelog files.rst - In case important information needs to be documented
Important-*.changelog files could be provided.rst
Documentation is rendered locally using:
Build/Scripts/runTests.sh -s renderDocumentation
and can ge viewed in the browser opening Documentation-
for example on linux with:
xdg-open Documentation-GENERATED-temp/Index.html
Executing toolchain
All related development tools are executed using the Build/
command dispatcher.
Available general options:
-b <dockerallows to set the container system to use in case both are available, otherwise it is determined.|podman> podmanis used overdockerif not enforced using this option.-s <suite>selectes the suite (command) to execute, see-hfor full description of available options and suites.-p <8.defines the PHP version to use for PHP related suites and commands, for example phpunit, phpstan or composer operations.2 |8. 2 |8. 3 |8. 4 |8. 5> -xenforces xdebug profile=debug for php script executions, use-ful to debug unit- or functional tests.-d <sqliteselects the database to use for functional tests and starts/stops/cleans the selected container.|mysql |mariadb |postgres> -i <version>allows to select the database server version for MariaDB, MySQL or PostgreSQL. See-hfor the list of available options. Used for functional tests.
Examples
Build/Scripts/runTests.sh -t 13 -p 8.2 -s composerUpdate && \
Build/Scripts/runTests.sh -t 13 -p 8.2 -s functional -d sqlite && \
Build/Scripts/runTests.sh -t 13 -p 8.2 -s functional -d mariadb -i 10.7
Build/Scripts/runTests.sh -t 14 -p 8.5 -s composerUpdate && \
Build/Scripts/runTests.sh -t 14 -p 8.5 -s functional -d sqlite && \
Build/Scripts/runTests.sh -t 14 -p 8.5 -s functional -d mariadb -i 10.7
Build/Scripts/runTests.sh -t 13 -p 8.5 -s composerUpdate && \
Build/Scripts/runTests.sh -t 13 -p 8.5 -s unit && \
Build/Scripts/runTests.sh -t 13 -p 8.5 -s unitRandom
Build/Scripts/runTests.sh -t 14 -p 8.2 -s composerUpdate && \
Build/Scripts/runTests.sh -t 14 -p 8.2 -s unit && \
Build/Scripts/runTests.sh -t 14 -p 8.2 -s unitRandom
Build/Scripts/runTests.sh -t 13 -p 8.2 -s composerUpdate && \
Build/Scripts/runTests.sh -t 13 -p 8.2 -s cgl
Build/Scripts/runTests.sh -t 13 -p 8.2 -s composerUpdate && \
Build/Scripts/runTests.sh -t 13 -p 8.2 -s phpstan && \
Build/Scripts/runTests.sh -t 14 -p 8.2 -s composerUpdate && \
Build/Scripts/runTests.sh -t 14 -p 8.2 -s phpstan
Build/Scripts/runTests.sh -t 13 -p 8.2 -s composerUpdate && \
Build/Scripts/runTests.sh -t 13 -p 8.2 -s phpstanGenerateBaseline && \
Build/Scripts/runTests.sh -t 14 -p 8.2 -s composerUpdate && \
Build/Scripts/runTests.sh -t 14 -p 8.2 -s phpstanGenerateBaseline