Fixer Team is more than happy to announce that @gharlan joined us as a maintainer and puts awesome effort when it comes to providing changes, reviewing PRs and other activities 🎉! Can we get a YEAH?
Full list of changes can be found below, but we would really like to emphasise some of them:
- Support for custom rulesets, initially created by @niklam in 2021, revived by @Wirone in 2023 when he became a maintainer, and then improved by the latter to fit @keradus' requirements. It shows both sides of #OSS: it can be challenging and even frustrating, but with proper approach and common effort, it can also end up nicely!
- Introduction of
@auto[:risky]rulesets that can automatically enable some rulesets depending on your project's setup. - Improved future mode for better future-compatibility (you can prepare your code to be ready for next major version).
- Changed naming convention for version-based rulesets to make them more explicit and readable. Please ensure you're using proper ruleset names in your configs... or switch to
@auto[:risky];) !
In addition, starting with v3.88.2, you can also:
- expand set description to see nested rules, e.g.
php-cs-fixer describe @auto --expand - describe configured set that is in use (e.g. from config file), e.g.
php-cs-fixer describe [@] [--expand]
What's Changed
- feat: Support custom rulesets by @niklam and @Wirone in #6083
- feat: introduce
@auto,@auto:riskysets by @keradus in #9090 - feat: introduce
@autoPHPMigration,@autoPHPMigration:risky,@autoPHPUnitMigration:riskysets by @keradus in #9068 - feat: start using new defaults for rules under future mode by @keradus in #9020
- feat:
symfonyruleset: Add@consttophpdoc_no_alias_tagby @mvorisek in #9016 - feat: rename rule sets from
MAJORMINORandMAJOR.MINORintoMAJORxMINORby @keradus in #9005 - feat: rename
visibility_requiredintomodifier_keywordsby @keradus in #8995 - fix:
BlankLinesBeforeNamespaceFixer- handle namespace without newline before by @gharlan in #9059 - docs: fix typo by @keradus in #9060
- docs: update CONTRIBUTING.md by @keradus in #9074
- docs: update README for updated PHP/PHPUnit set names by @keradus in #9070
- DX: Allow development on PHP 8.5 by @Wirone in #9092
- chore:
getcwd()- ignorefalsereturn value by @gharlan in #9057 - chore:
ReporterFactory- useclass-stringtype by @gharlan in #9055 - chore: enforce list via
array_values()by @gharlan in #9054 - chore: ErrorOutput - line is optional by @keradus in #9047
- chore: fix cs in entry point file by @gharlan in #9064
- chore: fix CS, somehow it missed the CI of
.php-cs-fixer.well-defined-arrays.phpby @keradus in #8987 - chore: fix some
argument.typeerrors by @gharlan in #9056 - chore: groom Automatic rulesets code by @keradus in #9091
- chore: phpstan - do not ignore all
internalusage errors by @gharlan in #9063 - chore: replace wrong
class-stringusages by @gharlan in #8968 - CI:
pushevent only for master branch by @gharlan in #9046 - CI:
pushevent only for master branch by @gharlan in #9050 - CI: check for typos by @kubawerlos in #9048
- CI: don't prevent the build when remote coverage reporting service is down by @keradus in #9095
- CI: fix smoke tests after #9005 by @keradus in #9061
- CI: fix typos in
CHANGELOG.mdby @kubawerlos in #9052 - CI: mutation tests - disable github annotations by @gharlan in #9062
- CI: Test docs generation only once per CI pipeline by @Wirone in #9089
- deps: bump box version by @keradus in #9042
- deps: bump
ergebnis/composer-normalizefrom 2.48.1 to 2.48.2 in /dev-tools by @dependabot[bot] in #9045 - deps: bump
phpstan/phpstanfrom 2.1.25 to 2.1.28 in /dev-tools in the phpstan group by @dependabot[bot] in #9072 - deps: unify Alpine version for PHP 8.4 by @keradus in #9077
- deps: update PHPStan and
phpstan-baseline-per-identifierby @gharlan in #9051 - deps: update
squizlabs/php_codesnifferto v4.0 and other related packages by @keradus in #9075 - deps: upgrade Alpine wherever possible by @keradus in #9078
- deps: upgrade
infection/infectionto ^0.31.0 by @Copilot in #9079 - refactor: introduce concept of AutomaticRuleSet by @keradus in #9067
- refactor: rename
RuleSetDescriptionInterfaceintoRuleSetDefinitionInterfaceby @keradus in #9094 - test: ensure Alpine version same between Dockerfile and
compose.yamlby @keradus in #9076 - test: ensure Alpine version same in
compose.yamlandrelease.ymlby @keradus in #9071 - test: extend tests to cover new migration rule set names by @keradus in #9069
- test: improve testing that objects cannot be serialized/unserialized by @kubawerlos in #9049
Full Changelog: v3.87.2...v3.88.0