All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added
phpunit/phpunitto suggested dependencies incomposer.json. - Added
youwe/coding-standard-phpstormto suggested dependencies incomposer.json. - Added support to honor upstream version constraints.
- Github action for php 8.3 and php 8.4 to run unit tests against PHPUnit 12.
- Testing suite now attempts to install phpunit upstream if it isn't available yet.
- Existing upstream versions are honored if already installed.
- Upstream projects not having phpunit installed will install phpunit with an @stable version.
- Added support for Drupal configuration and templates.
- Migration docs for migration from v2 to v3 of the testing suite.
- Option to use PHP CS Fixer instead of PHPCS.
- Pimcore coding standards with PER coding standards.
- Added support for an Allow List within the Security Checker.
- Pimcore PHPStan default config.
- Pimcore PHP Mess Detector default config.
- Added constraint for
PHPMD, since Magento 2.4.8 requires version3.x-dev.
- [BREAKING] The composer.json configurations
config.youwe-testing-suite.typeandconfig.mediact-testing-suite.typeare now moved from theconfigsection to theextrasection. The old location was invalid as theconfigsection belongs to configuration from Composer itself. Moving it to theextrasection which is intended for this purpose (composer docs: "arbitrary extra data for consumption by scripts"). Only the singleextra.youwe-testing-suite.typeis supported now. Update your projectcomposer.jsonaccordingly. - [BREAKING] PHPStan is now configured to scan the full project, also during commit hooks. This will require to
configure the
pathssetting in your projectsphpstan.neon.. See the migration notes for more precise instructions. This behaviour can be modified with thephpstan.use_grumphp_pathsparameter ingrumphp.yml. Please read Why you should always analyse the whole project before reverting to the old behaviour. - Unit tests as part of the testing suite are rewritten for PHPUnit 12.
- Updated GitHub Action workflows to support PHP 8.1, 8.2, 8.3, and 8.4
composer.json: Dropped support for PHP < 8.1.- Moved phpunit from require to require-dev.
- Changed PHPMD suppressions in docblocks to quote the rule name, due to changes in later versions of PHPStan that create false positives on these docblocks if not quoted.
- Moved existing project-type specific rulesets from inner dependencies to testing-suite package.
- Simplified PHPMD rulesets with rationale behind rule changes.
- Updated remote schema location URL for phpmd rulesets to prevent redirecting which may cause flaky builds.
- Bumped phpro/grumphp-shim dependency from v1 to v2
- Bumped youwe/composer-dependency-installer from v1 to v2
- Testing Suite files are only installed in the project when the package itself is installed and/or updated, for example
when running
composer require youwe/testing-suite,composer update [youwe/testing-suite]orcomposer installwhen the package was not installed (yet/anymore). - Default Pimcore coding standards disables PHPCS in favour of PHP CS Fixer.
- JSON Lint will ignore folders
.ddev/andtests/fixtures/. - Added Symfony function
dump()to the git blacklist for all project types
- Removed support for EOL PHP versions. Projects running PHP < 8.1 can stick to version 2 of the testing-suite.
- Removed support for Composer 1. Projects still relying on Composer 1 can stick to version 2 of the testing-suite.
- Removed
youwe/coding-standard-phpstormas dependency (it is still listed in suggest). - Removed
phpunit/phpunitas direct dependency (it is still in require-dev and installed upstream through theyouwe/dependency-installer). - Github actions for php < 8.1.
- Dependency on seperated coding style packages to simplify development and remove overhead.
- Dropped support for Laravel and Magento 1.
- Dropped inner dependencies on coding-standard, coding-standard-magento2, and coding-standard-phpstorm packages.
^0.30restricts updates to only versions within the0.30.xrange, preventing upgrades to 0.32.0 forbitexpert/phpstan-magentoto allow upgrading within a major version notation~0.30is used.
- Option to add/edit whitelist or ignore patterns to yamllint.
- Grumphp will run the git hook in DDev (if available)
- Added
ignore_patternssupport to allow project configurations to make use of this field through configuration overrides
- BitExpert PHP stan module for Magento 2 projects.
alert(was removed from the git blacklist as it conflicts with PSR3, see #18
- Git blacklist now matches on words instead of characters by default.
- The git blacklist configuration for rejecting accidentally commited merge conflicts now properly reflects the full set of characters used by git.
- Resolved issue where the updated git blacklist configuration would provide a false positive result
on functions ending with
add()orodd()due to checks on dump and diedd()statements.
- Git blacklist now checks for
exit()usage.
- Testing suite no longer breaks during installation when composer project type is set to
pimcore-project.
phpcs.xml,phpmd.xmlandphpstan.neonfiles are now automatically installed in a localpimcore-projectif they don't exist yet.
- Project type resolver can now look for pimcore projects.
- Pimcore projects have their own git blacklist configuration.
- In the future, the pimcore coding standard will have its own package for
phpcs.xmlandphpmd.xmlrulesets.
grumphp.ymlfile forpimcoreprojects.- This file falls back on the default configuration and inherits all properties, except for the blacklist triggers.
- Git blacklist documentation.
- The magento2
grumphp.ymlfile is split off from the default configuration.- The
grumphp.ymlthat's part of a project will automatically point to the new magento2-specific config file. - The new file falls back on the default configuration, and overrides the git blacklist keywords and triggers.
- The magento specific constructs are also removed from the default
grumphp.ymltemplate.
- The
- The default
phpcs.xmlfile now references a relative ruleset instead of an absolute path.
- New pathing for
phpcs.xmlfile. - Added updated code styling for project type
Magento2. - Support for
phtmlin project typeMagento2. The phtml files will only be checked based on Magento2 code standards.
- Project type
default/magentouse correct index replacedexcludes_analysewithexcludePathsforphpstan.neonfile. - Project type
defaultuse correct tags forphpunit_dist.xml. - Updated dependency to
youwe/composer-dependency-installer
- Phpcs will now also check files
phtml. If not preferred behaviour overwrite parameterphpcs.triggered_byingrumphp.ymland change back to[php]. .eslintrc.jsonwhich was updated coherent to Fisheye configurations.
- Github actions are now actually executed.
- Dependency
phpro/grumphpnow we preferphpro/grumphp-shimwhich is apharpackage which is not dependent on dependencies of the project the testing suite is installed in.
- Extension Youwe\TestingSuite\Composer\GrumPHP\ParameterFixExtension since we now prefer
phpro/grumphp-shimoverphpro/grumphp. This extension is used to resolve env variables in tasks and since we do not do that it's removed.
- PHP 8 compatibility.
- GitHub Actions Workflow to run testing-suite for PHP 7.4, 8.0, and 8.1.
- Minimum stability to test require packages in a project.
- Old pathing to Mediact pathing in files
phpcs.xml,phpmd.xml&grumphp.ymlwill now be replaced by Youwe pathing to prevent error of phpcs/phpmd/grumphp.
- Versions of packages required are now not using
@stableanymore. - Versions of packages can now be updated.
- Copyright.
- Declare strict type.
- Vendor name from Mediact to Youwe.
grumphp.ymlnow usessecuritychecker_enlightninstead ofsecuritycheckerwhich caused an error with new version of grumphp.
- bitbucket pipeline file. This will be added by a different module.
- Io class from configInstaller since it was never read.
- [AD-210] Run phpcs with the -s flag to output the explicit rule that is failing.