chore(deps): update dependency friendsofphp/php-cs-fixer to v3.95.1 #5

Open
renovate-bot wants to merge 1 commit from renovate/friendsofphp-php-cs-fixer-3.x-lockfile into master
Collaborator

This PR contains the following updates:

Package Change Age Confidence
friendsofphp/php-cs-fixer 3.16.03.95.1 age confidence

Release Notes

PHP-CS-Fixer/PHP-CS-Fixer (friendsofphp/php-cs-fixer)

v3.95.1

Compare Source

  • chore: add tests for FinalInternalClassFixer (#​9547)
  • chore: cleanup PhpdocToParamTypeFixer (#​9550)
  • fix: MethodArgumentSpaceFixer - Do not collapse nested arguments when using ensure_single_line_for_single_argument option for on_multiline (#​9552)
  • test: fix type after variable name in @param in PhpdocToParamTypeFixerTest (#​9549)

v3.95.0

Compare Source

  • feat: Add option remove_existing_declaration to declare_strict_types fixer (#​9384)
  • feat: Add exclude option to phpdoc_types rule (#​9479)
  • feat: introduce 'list-rules' command (#​9512)
  • feat: introduce NoWhitespaceInEmptyArrayFixer (#​8155)
  • feat: Resolve to json format when AI_AGENT environment variable is set (#​9542)
  • feat: @Symfony:risky - add void_return (#​9546)
  • feat: GlobalNamespaceImportFixer - support first-class callable syntax (#​9484)
  • feat: MethodArgumentSpaceFixer - add ensure_single_line_for_single_argument option for on_multiline (#​9504)
  • feat: MultilinePromotedPropertiesFixer - turn multiline promoted properties into singleline when there are fewer than minimum_number_of_parameters (#​9501)
  • feat: PhpdocLineSpanFixer - add function option (#​9439)
  • feat: ReturnAssignmentFixer - skip variables with the named @var tags with new option skip_named_var_tags (#​9464)
  • fix: ArrayPushFixer - do not stop fixing when array_push with 1 argument found (#​9508)
  • fix: BinaryOperatorSpacesFixer - make it works correctly with multiple match cases (#​9470)
  • fix: EchoTagSyntaxFixer - do not break syntax for single line comments (#​9506)
  • fix: PhpUnitTestClassRequiresCoversFixer - do not add @coversNothing to anonymous classes (#​9481)
  • fix: SimplifiedNullReturnFixer - do not remove null from property hook (#​9471)
  • docs: extend docs about exit code (#​9526)
  • docs: StaticLambdaFixer - document example how to prevent conversion (#​9502)
  • DX: change default PHP_CS_FIXER_FAST_LINT_TEST_CASES=1 and run full linting of test cases only on highest and lowest PHP versions in CI (#​9448)
  • chore: add missing test for SetTypeToCastFixer (#​9518)
  • chore: add test for NoMultipleStatementsPerLineFixer (#​9533)
  • chore: add tests for BracesPositionFixer (#​9522)
  • chore: add tests for PsrAutoloadingFixer (#​9541)
  • chore: cleanup MagicConstantCasingFixer (#​9494)
  • chore: cleanup NoNullPropertyInitializationFixer (#​9493)
  • chore: cleanup ClassAttributesSeparationFixer (#​9545)
  • chore: cleanup GeneralAttributeRemoveFixer (#​9520)
  • chore: cleanup GlobalNamespaceImportFixerTest (#​9482)
  • chore: cleanup NoTrailingCommaInSinglelineFixer (#​9537)
  • chore: cleanup OrderedAttributesFixer (#​9521)
  • chore: cleanup PhpUnitExpectationFixer (#​9505)
  • chore: commands cleanup (#​9478)
  • chore: ensure that regex TypeExpression::REGEX_TYPES does not have unnamed capturing group (#​9514)
  • chore: exclude logo.png and composer-dependency-analyser.php from Composer export (#​9516)
  • chore: group dependabot updates for Docker and GitHub Actions (#​9535)
  • chore: improve AbstractPhpUnitFixer (#​9519)
  • chore: improve ArrayPushFixer (#​9515)
  • chore: update FunctionsAnalyzer (#​9483)
  • chore: MbStrFunctionsFixer - remove the never true condition (#​9509)
  • chore: ModernizeStrposFixer - remove the never true conditions (#​9510)
  • chore: NoAliasFunctionsFixer - cleanup invalid set handling (#​9511)
  • CI: add failOnDeprecation="true" to PHPUnit config (#​8935)
  • CI: cleanup jobs (#​9449)
  • CI: configure Dependabot for composite actions (#​9529)
  • CI: do not run issue_8828_c.test on macOS for now (#​9528)
  • CI: fix Dependabot paths (#​9530)
  • CI: more of ubuntu-slim (#​9450)
  • CI: move spelling checks to dedicated workflow (#​9451)
  • deps: bump actions/cache from 4 to 5 in /.github/composite-actions/install-composer-deps (#​9531)
  • deps: bump actions/github-script from 8 to 9 in /.github/composite-actions/setup-php-with-composer-deps (#​9544)
  • deps: bump crate-ci/typos from 1.43.5 to 1.44.0 (#​9476)
  • deps: bump crate-ci/typos from 1.44.0 to 1.45.0 (#​9523)
  • deps: bump docker/build-push-action from 6 to 7 (#​9486)
  • deps: bump docker/login-action from 3 to 4 (#​9477)
  • deps: bump docker/metadata-action from 5 to 6 (#​9474)
  • deps: bump docker/setup-buildx-action from 3 to 4 (#​9475)
  • deps: bump docker/setup-qemu-action from 3 to 4 (#​9472)
  • deps: bump nick-invision/retry from 3 to 4 (#​9491)
  • deps: bump nick-invision/retry from 3 to 4 in /.github/composite-actions/install-composer-deps (#​9532)
  • deps: bump phpstan/phpstan from 2.1.40 to 2.1.42 in /dev-tools in the phpstan group (#​9490)
  • deps: bump phpstan/phpstan from 2.1.42 to 2.1.44 in /dev-tools in the phpstan group (#​9503)
  • deps: bump phpstan/phpstan-symfony from 2.0.14 to 2.0.15 in /dev-tools in the phpstan group (#​9458)
  • deps: bump shipmonk/dead-code-detector from 0.14.1 to 0.15.1 in /dev-tools in the shipmonk group (#​9473)
  • deps: bump shipmonk/dead-code-detector from 0.15.1 to 1.0.0 in /dev-tools in the shipmonk group (#​9543)
  • deps: update PHPStan (#​9452)
  • deps: upgrade deps (#​9527)
  • deps: upgrade PHPUnit patch versions (#​9455)
  • refactor: ConfigurableFixerTemplateFixer - move handling example file from fixing logic to definition (#​9525)
  • refactor: rename PhpdocTypesNoDuplicatesFixer to PhpdocNoDuplicateTypesFixer (#​9381)
  • test: fix CI for Windows (#​9492)
  • test: MethodArgumentSpaceFixer must run before NoTrailingCommaInSinglelineFixer (#​9507)
  • test: use PhpUnitTestCaseStaticMethodCallsFixerTest::testInvalidConfiguration (#​9460)

v3.94.2

Compare Source

  • fix: AttributeBlockNoSpacesFixer - skipping some attributes when multiple present (#​9445)
  • fix: NoUnusedImportsFixer - do not remove constant types (#​9442)
  • fix: PhpdocLineSpanFixer - handle unions and intersections in properties (#​9438)
  • deps: bump crate-ci/typos from 1.43.4 to 1.43.5 (#​9444)

v3.94.1

Compare Source

  • chore: add tests for ArgumentsAnalyzer (#​9422)
  • chore: bump dev-tools to PHP 8.5 (#​9432)
  • chore: ConfigurableFixerTemplateFixer - allow to remove option from computed options (#​9437)
  • chore: fix Tokens::getIterator() type (#​9433)
  • chore: reduce Generator into iterable (#​9435)
  • chore: reduce Iterator->Traversable and Traversable->iterable when possible (#​9434)
  • CI: cleanup sca.yml (#​9430)
  • deps: bump crate-ci/typos from 1.43.2 to 1.43.4 (#​9426)
  • deps: bump ergebnis/composer-normalize from 2.49.0 to 2.50.0 in /dev-tools (#​9427)
  • deps: bump the phpstan group in /dev-tools with 4 updates (#​9425)
  • deps: dependabot group for shipmonk/ (#​9429)
  • docs: switch sets ordering to case-insensitive (#​9423)
  • test: check PHP env in CI jobs (#​9428)

v3.94.0

Compare Source

  • UX: enable parallel runner by default (#​9408)
  • feat: Add option case to phpdoc_line_span fixer (#​9391)
  • feat: PhpdocLineSpanFixer - support docs for classes, trait usages and other code lines (#​8832)
  • feat: VoidReturnFixer - allow to skip lambdas (#​9417)
  • chore: fix comment (#​9404)
  • chore: Linter tests for Schrodinger's validity (#​9398)
  • chore: ModernizeStrposFixer - no need for configuration hooks (#​9419)
  • chore: VoidReturnFixer - better describe exceptions (#​9418)
  • CI: no need for special handling of MacOS (#​9403)
  • CI: run tests using PHPUnit 13 (#​9410)
  • deps: bump crate-ci/typos from 1.42.1 to 1.42.3 (#​9395)
  • deps: bump crate-ci/typos from 1.42.3 to 1.43.2 (#​9405)
  • deps: bump ergebnis/composer-normalize from 2.48.2 to 2.49.0 in /dev-tools (#​9396)
  • deps: bump the phpstan group in /dev-tools with 2 updates (#​9394)
  • deps: upgrade dev-deps (#​9411)
  • DX: use custom name for custom config (#​9402)
  • fix: absolute path in reports (#​9399)
  • fix: indentation for backed enum with multiline assignment (#​9362)
  • fix: Runner - fix occasional sub-process freeze on parallel execution with --stop-on-violation (#​9393)
  • fix: NoUnreachableDefaultArgumentValueFixer - fix for closures (#​9409)
  • fix: UseArrowFunctionsFixer - do not convert closure in attribute (#​9416)
  • test: create PHP 8.5 risky compat test (#​9420)
  • UX: Do not run interactive configurator when rules are passed explicitly (#​9378)

v3.93.1

Compare Source

  • fix: ErrorOutput - do not show "begin diff"/"end diff" when there is no diff (#​9361)
  • fix: UseArrowFunctionsFixer - don't convert lambda with use($var) clause if it includes another file (#​9389)
  • DX: use null coalescing operator (#​9380)

v3.93.0

Compare Source

  • feat: add ModernSerializationMethodsFixer (#​9108)
  • feat: Add NoRedundantReadonlyPropertyFixer (#​9339)
  • feat: add PhpdocTypesNoDuplicatesFixer (#​9312)
  • feat: do not suggest config file creation if config explicitly skipped with --config=- (#​9379)
  • feat: improve handling of @see tags in FullyQualifiedStrictTypesFixer (#​9350)
  • feat: PER attribute block no spaces (#​9264)
  • feat: php_unit_test_case_static_method_calls - change default 'call_type' to 'this' for v4 (#​9328)
  • feat: protected_to_private - add to@Symfony set (#​9303)
  • feat: PSR/PER-CS - adjust braces_position rule (#​9329)
  • feat: remove php_unit_test_case_static_method_calls from PHPUnit sets (#​9341)
  • feat: @PHP7x0MigrationRisky - update configuration of RandomApiMigrationFixer to match it's newly updated v4 defaults (#​9368)
  • feat: @Symfony:risky - extend set with modern_serialization_methods (#​9366)
  • feat: @Symfony:risky - extend set with static_lambda (#​9365)
  • feat: @Symfony - enable no_unneeded_control_parentheses.statements.negative_instanceof (#​9336)
  • feat: @Symfony - extend set with no_useless_else (#​9363)
  • feat: @Symfony - extend set with no_useless_return (#​9364)
  • feat: RandomApiMigrationFixer - allow to convert mt_getrandmax and mt_srand (#​9367)
  • fix: properly expose memory usage while running parallel mode (#​9352)
  • fix: ModifierKeywordsFixer - closure in attribute (#​9358)
  • fix: NoUselessElseFixer - handle conditional symbol declarations (#​9347)
  • fix: OrderedClassElementsFixer - closure in attribute (#​9357)
  • fix: PhpUnitAttributesFixer - do not add for annotation @testWith when attribute TestWith already present (#​9354)
  • refactor: add base key-existence check for cross-process communication in parallel runner (#​9360)
  • refactor: FixerDocumentGenerator - limit the scope to create rule instance in future mode only (#​9359)
  • test: fix compatibility towards Symfony 8 (#​9370)
  • test: update PHP 8.5 compat test to cover closure in attribute and prevent conversion to empty arrow function (#​9373)
  • chore: add clarifying @return annotations to Config (#​9337)
  • chore: fix assign.propertyType error from PHPStan (#​9332)
  • chore: PHPUnit sets - cleanup test, update docs/comments (#​9342)
  • chore: simplify phpstan:baseline command (#​9346)
  • deps: bump crate-ci/typos from 1.41.0 to 1.42.0 (#​9338)
  • deps: bump crate-ci/typos from 1.42.0 to 1.42.1 (#​9376)
  • deps: bump dev deps (#​9369)
  • deps: bump the phpstan group in /dev-tools with 3 updates (#​9375)
  • docs: show default value for future mode (#​9355)
  • DX: add env for easier finding which fixer break a PHP syntax (#​9356)

v3.92.5

Compare Source

  • fix: CombineConsecutiveUnsetsFixer - proper handling of trailing comma (#​9335)
  • chore: cleanup self-config file (#​9324)
  • chore: fix variable.undefined error from PHPStan (#​9330)
  • deps: bump crate-ci/typos from 1.40.0 to 1.41.0 (#​9325)
  • docs: extend Q&A for creating the rule (#​9331)

v3.92.4

Compare Source

  • fix: ComposerJsonReader - handle more syntaxes (#​9327)
  • UX: Runner/Parallel/Process - friendly message when tmp dir not writable (#​9319)
  • docs: fix RST links (#​9321)
  • DX: internal commands for working with tokens (#​9251)
  • chore: Add CS commit to .git-blame-ignore-revs
  • chore: apply trailing_comma_in_multiline: elements.arguments (#​9314)
  • deps: upgrade dev-deps (#​9318)

v3.92.3

Compare Source

  • fix: using Rule Customisation Policy with parallel runner (#​9309)
  • chore: phpstan - cover .php-cs-fixer.dist.php (#​9311)
  • chore: .php-cs-fixer.dist.php - drop wrongly called ignoreVCSIgnored (#​9310)

v3.92.2

Compare Source

  • fix: let @php-cs-fixer-ignore accept custom fixer names (#​9306)
  • chore: introduce PHP_CS_FIXER_IGNORE_MISMATCHED_RULES_EXCEPTIONS (#​9307)

v3.92.1

Compare Source

  • chore: update php-compatibility config (#​9302)
  • deps: bump actions/cache from 4 to 5 (#​9295)
  • deps: bump phpstan/phpstan-phpunit from 2.0.9 to 2.0.10 in /dev-tools in the phpstan group (#​9293)
  • deps: bump shipmonk/phpstan-baseline-per-identifier from 2.2.0 to 2.3.0 in /dev-tools (#​9294)
  • docs: update README.md (#​9277)
  • DX: make all testFix* methods have no more than 4 parameters (#​9298)
  • DX: make all testFix* methods have second parameter $input (#​9297)
  • DX: rename parameter $config to $configuration (#​9299)
  • DX: restrict testFix* parameter names (#​9301)
  • DX: use WhitespacesFixerConfig in tests (#​9300)
  • fix: describe - skip listing automated rules, as cannot determine them in projects (#​9304)
  • test: PHPUnit sets - check that set is providing proper target for rules (#​9296)
  • test: ProjectCodeTest::testExpectedInputOrder - move checks for testFix... methods (#​9291)

v3.92.0

Compare Source

  • feat: exception for rules via @php-cs-fixer-ignore annotation (#​9280)
  • feat: exception for rules via Rule Customisation Policy (#​9107)
  • feat: PhpUnitTestCaseStaticMethodCallsFixer - add handling of getStubBuilder (#​9276)
  • feat: PhpUnitTestCaseStaticMethodCallsFixer - add target option (#​8498)
  • chore: '.php-cs-fixer.dist.php' - remove no longer needed rule, 'expectedDeprecation' annotation does not exist for long time (#​9266)
  • chore: fix arguments.count error from PHPStan (#​9258)
  • chore: fix generator.valueType error from PHPStan (#​9259)
  • chore: fix plus.*NonNumeric errors from PHPStan (#​9260)
  • chore: Runner - better input types handling (#​9286)
  • chore: watch out for non-final classes (#​9262)
  • chore: Config::getFinder() - fix typehinting (#​9288)
  • deps: bump alpine from 3.22 to 3.23 (#​9269)
  • deps: bump phpcompatibility/php-compatibility from 10.0.0-alpha1 to 10.0.0-alpha2 in /dev-tools (#​9271)
  • deps: bump the phpstan group in /dev-tools with 3 updates (#​9270)
  • deps: dev-tools - upgrade deep deps (#​9272)
  • docs: exception for rules in dedicated doc files, for easier discoverability (#​9281)
  • docs: upgrade docs to not use legacy set (#​9282)
  • DX: make all testFix* methods have first parameter $expected (#​9289)
  • refactor: fix violation of 'no_useless_concat_operator' (#​9267)
  • refactor: ProjectCodeTest - refactor testExpectedInputOrder test (#​9290)
  • Revert (partially) "feat: Finder to find dot-files by default in v4/future-mode (#​9187)" (#​9287)
  • test: RuleSetTest - check against non-deprecated variant of PHPUnit sets (#​9265)
  • UX: exception for rules via Rule Customisation Policy - better error message for wrong customisers (#​9279)
  • UX: exception for rules via Rule Customisation Policy - prevent policy without version (#​9278)

v3.91.3

Compare Source

  • Revert "feat: Symfony - add stringable_for_to_string to set" (#​9268)

v3.91.2

Compare Source

  • fix: fix support call-site generic variance (#​9253)
  • chore: adjust autoloader to exclude all Internal classes in classmap (#​9252)
  • CI: set PHP_CS_FIXER_IGNORE_ENV for PHP 8.6 (#​9254)

v3.91.1

Compare Source

  • UX: show warning on PHP-mismatch only for 'fix' and 'check' commands (#​9243)
  • docs: unify rule/ruleset doc tags (#​9250)
  • refactor: don't expose internal commands/rules (#​9245)
  • refactor: memoize fixer names (#​9219)
  • refactor: use custom set for internal rules (#​9247)
  • test: show that describe command works well for custom sets (#​9246)

v3.91.0

Compare Source

  • UX: init command (#​9215)
  • feat: PHP 8.5 compatibility support (#​9234)
  • feat: Add StringableForToStringFixer (#​9218)
  • feat: support call-site generic variance (#​9212)
  • feat: Symfony - add stringable_for_to_string to set (#​9235)
  • chore: do not mark NamespaceAnalysis as internal, because it's part of public API interface (#​9193)
  • chore: ExampleRuleset - improve test fixture name (#​9214)
  • chore: traits - require interfaces or base classes (#​9086)
  • CI: Add PHPStan rule to validate public API surface completeness (#​9196)
  • CI: auto-select PHP_MAX for special jobs (#​9231)
  • CI: drop duplicated PHP 8.4 jobs (#​9229)
  • CI: fix SCA after Symfony 7.4.0 release (#​9226)
  • CI: no more need for solving PHP 8.4 deprecations in /vendor/ anymore (#​9230)
  • CI: switch trivial jobs to ubuntu-slim (#​9232)
  • CI: upgrade .php-cs-fixer.php-highest.php to fully reflect PHP 8.4 (#​9233)
  • deps: bump actions/checkout from 5 to 6 (#​9210)
  • deps: bump crate-ci/typos from 1.39.2 to 1.40.0 (#​9237)
  • deps: bump shipmonk/composer-dependency-analyser from 1.8.3 to 1.8.4 in /dev-tools (#​9238)
  • deps: bump shipmonk/dead-code-detector from 0.13.5 to 0.14.0 in /dev-tools (#​9239)
  • deps: bump Symfony v8 to RC (#​9221)
  • deps: bump Symfony v8 to stable (#​9222)
  • deps: update xdebug (#​9228)
  • fix: move config template to non-excluded folder (#​9241)
  • fix: DeclareStrictTypesFixer - do not duplicate strict_types if it is already present, with other directive (#​9225)
  • fix: FullyQualifiedStrictTypesFixer - fix crash on T_OPEN_TAG_WITH_ECHO (#​9217)
  • test: allow CI to define both, numeric and non-numeric PHP versions/builds (#​9236)
  • test: do not allow to fail PHP 8.5 job (#​9224)
  • test: let's not dance on the edge of the JIT stack limit (#​9211)
  • test: run smoke tests on any OS (#​9242)
  • test: update PHP 8.5 compatibility test (#​9223)

v3.90.0

Compare Source

  • feat: always have @PHPXxYMigration(:risky) sets for supported PHP versions (#​9207)
  • feat: Finder to find dot-files by default in v4/future-mode (#​9187)
  • fix: manage the space between operator and version on Composer JSON reader (#​9203)
  • fix: PhpdocAnnotationWithoutDotFixer lowercases @param type when description starts with all-uppercase word (#​9169)
  • UX: groom warning of PHP mismatch for runtime vs target project minimum supported version (#​9202)
  • UX: Rules override warning (#​9188)
  • UX: describe command - allow to visualize Set as tree (#​9179)
  • docs: rework .php-cs-fixer.php local config file docs (#​9185)
  • docs: update Set descriptions (#​9183)
  • chore: Declare support for Symfony 8 (#​9172)
  • chore: add missing v4 TODOs (#​9197)
  • chore: mark one remaining Analyzer to become internal (#​9194)
  • chore: mark v2 leftovers with v4 TODO (#​9181)
  • chore: no need for deprecation trigger in internal DataProviderAnalysis (#​9192)
  • deps: bump crate-ci/typos from 1.38.1 to 1.39.0 (#​9175)
  • deps: bump crate-ci/typos from 1.39.0 to 1.39.2 (#​9205)
  • deps: bump the phpstan group in /dev-tools with 2 updates (#​9204)
  • DX: different name for special configs (#​9180)
  • DX: improve types for testInvalidConfiguration methods (#​9206)
  • DX: describe command - allow to expose rules without sets via @- alias (#​9178)
  • refactor: move assertions from tearDown into assertPostConditions to fix Test code or tested code did not remove its own error handlers warning (#​9182)
  • refactor: prevent tests to use actual repository .php-cs-fixer.dist.php file (#​9177)
  • test: add more test(s) for ComposerJsonReader (#​9200)
  • test: ensure calling parent method from hook-alike methods (#​9184)

v3.89.2

Compare Source

  • fix: NoUnneededBracesFixer - do not crash on multiline group import (#​9160)
  • chore: Standardize repository to use British English spelling (#​9154)
  • CI: ensure enforced Symfony version is installed (#​9174)
  • deps: bump php-coveralls to v2.9 (#​9173)
  • refactor: FixerDocumentGenerator::getSetsOfRule - cache resolved sets (#​9170)
  • refactor: FixerDocumentGenerator::getSetsOfRule - use cache (#​9171)

v3.89.1

Compare Source

  • fix: ComposerJsonReader - fix handling asterisk (#​9166)
  • docs: cookbook - update to mention custom fixer option (#​9164)
  • DX: add links in cookbook_fixers.rst (#​9162)
  • deps: upgrade phpcompatibility/* to alpha of next MAJOR instead of using dev branch, plus other minor upgrades (#​9163)

v3.89.0

Compare Source

  • feat: autofix "no-return" phpdoc type to "never" (#​9073)
  • feat: support keeping strict_types=0 in DeclareStrictTypesFixer (#​9121)
  • feat: NoUnneededBracesFixer - remove unneeded braces from imports (#​9118)
  • fix: FullyQualifiedStrictTypesFixer - replacing the real FQCN with a non-existent one (#​8962)
  • fix: PhpdocToCommentFixer on property hooks (#​9123)
  • fix: PhpUnitMethodCasingFixer to not cause a duplicate method declaration (#​9124)
  • fix: StaticLambdaFixer - do not make function static when it contains anonymous class having $this in the constructor (#​9088)
  • fix: UseArrowFunctionsFixer - do not produce two consecutive whitespace tokens (#​9151)
  • UX: better gitlab reporting - add content field (#​9152)
  • UX: better gitlab reporting - more user-friendly description field (#​9141)
  • UX: better gitlab reporting for location.lines (#​9149)
  • UX: Warn if executed php version is higher than the minimum php version defined in composer.json (#​9134)
  • chore: add UX title pattern (#​9132)
  • chore: explicitly use php interpreter for paraunit (#​9126)
  • chore: extend composer scripts (#​9127)
  • chore: fix shellcheck installation for Darwin (#​9125)
  • chore: replace PHPDocs with assert calls (#​9144)
  • deps: bump crate-ci/typos from 1.36.3 to 1.38.1 (#​9136)
  • deps: bump phpstan/phpstan from 2.1.29 to 2.1.31 in /dev-tools in the phpstan group (#​9129)
  • deps: bump shipmonk/dead-code-detector from 0.13.3 to 0.13.4 in /dev-tools (#​9135)
  • deps: bump shipmonk/dead-code-detector from 0.13.4 to 0.13.5 in /dev-tools (#​9146)
  • deps: bump the phpstan group across 1 directory with 2 updates (#​9101)
  • deps: use shipmonk/composer-dependency-analyser instead of icanhazstring/composer-unused and maglnet/composer-require-checker (#​9106)
  • docs: fix docs for @autoPHPUnitMigration:riskyset (#​9147)
  • docs: improve descriptions for NoTrailingWhitespace* fixers (#​9117)
  • docs: more explicit docs on --rules (#​9114)
  • docs: update usage documentation for describe --expand and @ (#​9119)
  • DX: Fix composer qa script (#​9138)
  • refactor: --option value => --option=value (#​9131)
  • test: Fix result randomness in RunnerTest for MacOS (#​9139)

v3.88.2

Compare Source

  • docs: describe command - allow to describe config in use (#​9103)
  • docs: describe command - allow to expand sets (#​9104)

v3.88.1

Compare Source

  • chore: use accidentally missing @auto:risky (#​9102)
  • deps: bump crate-ci/typos from 1.36.2 to 1.36.3 (#​9099)
  • deps: bump icanhazstring/composer-unused from 0.9.4 to 0.9.5 in /dev-tools (#​9100)
  • DX: Ability to run yamllint locally (#​9093)

v3.88.0

Compare Source

  • feat: Support custom rulesets (#​6083)
  • feat: introduce @auto, @auto:risky sets (#​9090)
  • feat: introduce @autoPHPMigration, @autoPHPMigration:risky, @autoPHPUnitMigration:risky sets (#​9068)
  • feat: start using new defaults for rules under future mode (#​9020)
  • feat: rename rule sets from MAJORMINOR and MAJOR.MINOR into MAJORxMINOR (#​9005)
  • feat: rename visibility_required into modifier_keywords (#​8995)
  • feat: symfony ruleset: Add @const to phpdoc_no_alias_tag (#​9016)
  • fix: BlankLinesBeforeNamespaceFixer - handle namespace without newline before (#​9059)
  • docs: fix typo (#​9060)
  • docs: update CONTRIBUTING.md (#​9074)
  • docs: update README for updated PHP/PHPUnit set names (#​9070)
  • DX: Allow development on PHP 8.5 (#​9092)
  • chore: enforce list via array_values() (#​9054)
  • chore: ErrorOutput - line is optional (#​9047)
  • chore: fix cs in entry point file (#​9064)
  • chore: fix CS, somehow it missed the CI of .php-cs-fixer.well-defined-arrays.php (#​8987)
  • chore: fix some argument.type errors (#​9056)
  • chore: groom Automatic rulesets code (#​9091)
  • chore: phpstan - do not ignore all internal usage errors (#​9063)
  • chore: replace wrong class-string usages (#​8968)
  • chore: getcwd() - ignore false return value (#​9057)
  • chore: ReporterFactory - use class-string type (#​9055)
  • CI: check for typos (#​9048)
  • CI: don't prevent the build when remote coverage reporting service is down (#​9095)
  • CI: fix smoke tests after #​9005 (#​9061)
  • CI: fix typos in CHANGELOG.md (#​9052)
  • CI: mutation tests - disable github annotations (#​9062)
  • CI: Test docs generation only once per CI pipeline (#​9089)
  • CI: push event only for master branch (#​9046)
  • CI: push event only for master branch (#​9050)
  • deps: bump box version (#​9042)
  • deps: bump ergebnis/composer-normalize from 2.48.1 to 2.48.2 in /dev-tools (#​9045)
  • deps: bump phpstan/phpstan from 2.1.25 to 2.1.28 in /dev-tools in the phpstan group (#​9072)
  • deps: unify alpine version for PHP 8.4 (#​9077)
  • deps: update phpstan and phpstan-baseline-per-identifier (#​9051)
  • deps: update squizlabs/php_codesniffer to v4.0 and other related packages (#​9075)
  • deps: upgrade alpine wherever possible (#​9078)
  • deps: upgrade infection/infection to ^0.31.0 (#​9079)
  • refactor: introduce concept of AutomaticRuleSet (#​9067)
  • refactor: rename RuleSetDescriptionInterface into RuleSetDefinitionInterface (#​9094)
  • test: ensure alpine version same between Dockerfile and compose.yaml (#​9076)
  • test: ensure alpine version same in compose.yaml and release.yml (#​9071)
  • test: extend tests to cover new migration rule set names (#​9069)
  • test: improve testing that objects cannot be serialized/unserialized (#​9049)

v3.87.2

Compare Source

  • fix: phpdoc_to_param_type, phpdoc_to_return_type, phpdoc_to_property_type - handle type aliasing before handling PHP version (#​9031)
  • docs: unify docs around deprecated sets (#​9036)
  • chore: fix typos (#​9022)
  • chore: provide few missing types for callbacks (#​9026)
  • deps: bump actions/stale from 9 to 10 (#​9029)
  • deps: pin checkbashisms and shellcheck to stable URL with pinned version (#​9032)
  • DX: suggest --sequential when facing fixing error (#​9023)
  • refactor: Future - centralize class for future-looking logic (#​9021)
  • test: Mark DocumentationCommandTest::testGeneratingDocumentation() as large test (#​9028)

v3.87.1

Compare Source

  • chore: AbstractProxyFixer - require non-empty list of proxy fixers (#​9010)
  • deps: update justinrainbow/json-schema (#​9019)

v3.87.0

Compare Source

  • feat: add PhpdocTagNoNamedArgumentsFixer (#​8906)
  • feat: deprecate using config from passed 'path' CLI argument (#​8923)
  • feat: introduce @PHP85Migration set (#​8941)
  • feat: upgrade @PhpCsFixer set towards new defaults of selected rules (#​8981)
  • fix: PhpdocOrderFixer - do not allow duplicated tags in configuration (#​8945)
  • fix: PhpdocOrderFixer when phpstan- / psalm- order is specified (#​8853)
  • docs: README.md updates (#​9013)
  • docs: update README.md (#​9015)
  • docs: update README.md and CONTRIBUTING.md (#​8974)
  • DX: remove methods for kind checks (#​8954)
  • DX: unify class/interface/trait naming (#​8957)
  • chore: Add CS commit to .git-blame-ignore-revs
  • chore: Add TODO for ENUM conversion in ProgressOutputType (#​8991)
  • chore: always use JSON_THROW_ON_ERROR (#​8993)
  • chore: apply (partially) multiline_string_to_heredoc (#​9002)
  • chore: apply phpdoc_tag_no_named_arguments (#​8969)
  • chore: configure phpdoc_tag_no_named_arguments (#​8970)
  • chore: convert private methods to constants (#​8976)
  • chore: deprecate Annotation::getTagsWithTypes in favour of TAGS_WITH_TYPES constant (#​8977)
  • chore: exclude files in .gitattributes (#​8960)
  • chore: extract token types for PHPStan (#​8925)
  • chore: handle fixer options without allowed types defined (#​8973)
  • chore: ignore deprecations in token_get_all (#​8963)
  • chore: minor CS fixes (#​8979)
  • chore: PhpdocTagNoNamedArgumentsFixer - better example (#​8971)
  • chore: PHPUnit - enforce no memory_limit (#​8940)
  • chore: remove not-needed reset-call (#​9014)
  • chore: revert wrong _PhpTokenArray usages (#​8947)
  • chore: rework ci-integration.sh (#​8989)
  • chore: sort .gitattributes (#​8966)
  • chore: unify entries in .gitignore (#​8982)
  • chore: unify env var FAST_LINT_TEST_CASES into PHP_CS_FIXER_FAST_LINT_TEST_CASES (#​8992)
  • chore: use get_debug_type and ::class in exception messages (#​9006)
  • chore: use non-empty-list where appropriate (#​8972)
  • chore: AbstractPhpdocTypesFixer - remove $tags property (#​8980)
  • chore: CheckCommand - use regex instead of explode & substr (#​8936)
  • chore: ClassAttributesSeparationFixer - improve code (#​8950)
  • chore: EregToPregFixer - use constant instead of static property (#​8978)
  • chore: FullyQualifiedStrictTypesFixer - ensure matching number of opening/closing braces (#​9009)
  • chore: OrderedClassElementsFixer - use private method instead of anonymous function (#​8931)
  • chore: PhpdocParamOrderFixer - improve/simplify code (#​9012)
  • chore: PhpUnitDedicateAssertFixer - improve code for phpstan (#​9011)
  • chore: Tokens::offsetSet - explicit validation of input (#​9004)
  • chore: Tokens - override nullability of SplFixedArray (#​9001)
  • refactor: add DocBlockAnnotation trait (#​8953)
  • refactor: PhpdocOrderFixer - calculate order only once (#​8944)
  • CI: add vendor/bin/phpunit --check-php-configuration (#​8934)
  • CI: more self-fixing checks on lowest/highest PHP (#​8943)
  • CI: Re-enable Paraunit in CI under PHP 8.5 (#​8964)
  • CI: update checkbashisms (#​8951)
  • test: extend ProjectCodeTest to check classy names in tests too (#​8959)
  • test: split test so more of them can run under Windows (#​8986)
  • test: TypeDeclarationSpacesFixer - demonstrate PHP 8.3 related config doesn't harm older envs (#​8999)
  • test: update pipe operator tests after pipe & arrow function combination was prohibited (#​8990)
  • test: NoUnneededControlParenthesesFixer - add tests for "clone with" (#​8937)
  • test: PhpdocNoAliasTagFixerTest - add test for @const to @var (#​8998)
  • CS: re-apply rules (#​8988)
  • deps: bump actions/checkout from 4 to 5 (#​8938)
  • deps: bump shipmonk/dead-code-detector from 0.13.1 to 0.13.2 in /dev-tools (#​8939)
  • deps: drop support for justinrainbow/json-schema:^5 (#​8984)
  • deps: minor upgrades (#​8983)
  • deps: remove php-cs-fixer/accessible-object (#​8948)
  • deps: update dev-tools (#​9007)

v3.86.0

Compare Source

  • feat: console application - add completion support (#​8887)
  • feat: introduce PER-CS3.0 rulsets (#​8841)
  • feat: update @Symfony and @PhpCsFixer sets (#​8930)
  • feat: NoSuperfluousPhpdocTagsFixer - support multiline array shapes (#​8903)
  • fix: PhpdocToParamTypeFixerTest - handle types_map for union-types (#​8926)
  • chore: AbstractTransformerTestCase - better virtual type naming (#​8927)
  • chore: add TODO for v4 (#​8912)
  • chore: do not call Reflection*::setAccessible() in PHP >= 8.1 (#​8907)
  • chore: document .env.example (#​8901)
  • chore: fix @todo annotation casing (#​8921)
  • chore: switch to official checkstyle.xsd (#​8910)
  • chore: unify future default of after_heredoc (#​8924)
  • chore: @phpstan-ignore for php version check (#​8920)
  • chore: PhpUnitTestAnnotationFixer - use foreach instead of for (#​8911)
  • CI: allow PHP 8.5 for failure, till it's officially released and we get the stable support (#​8928)
  • ci: run tests under 8.5 via PHPUnit, as ParaUnit failing (#​8933)
  • CI: temporarily skip problematic tests under Sf v8 (#​8919)
  • deps: bump icanhazstring/composer-unused from 0.9.3 to 0.9.4 in /dev-tools (#​8905)
  • deps: update and bump dev-tools/composer (#​8915)
  • docs: extend FullOpeningTagFixer samples (#​8913)
  • docs: extend OperatorLinebreakFixer samples (#​8914)
  • docs: more explicit msg for stop using deprecated code (#​8922)
  • DX: .gitignore - ignore php-cs-fixer.cache, as it's existence is possible when using env var (#​8929)

v3.85.1

Compare Source

v3.85.0

Compare Source

  • feat: ArrayIndentationFixer - handle closures inside attributes (#​8888)
  • feat: NullableTypeDeclarationFixer - support final promoted properties (#​8885)
  • feat: OperatorLinebreakFixer - support pipe operator (#​8891)
  • feat: PhpdocTypesFixer - support multiline array shapes (#​8893)
  • fix: always reach 100% of checked files (#​8861)
  • fix: BracesPositionFixer - handle property hooks correctly (#​8886)
  • fix: NullableTypeDeclarationFixer - handle abstract and final properties (#​8876)
  • fix: PhpdocLineSpanFixer - handle promoted properties (#​8897)
  • fix: PhpUnitDataProviderNameFixer - fix for multiple providers defined by attributes for one test method (#​8849)
  • fix: TernaryOperatorSpacesFixer - handle instanceof static (#​8879)
  • fix: TypeDeclarationSpacesFixer - handle asymmetric visibility and final properties (#​8900)
  • chore: add initial PHP 8.5 integration test (#​8871)
  • chore: add tests for public API methods (#​8895)
  • chore: apply changes from PhpdocTypesFixer for multiline array shapes (#​8894)
  • chore: baseline files without error count (#​8870)
  • chore: cleanup PhpCsFixer\DocBlock\Annotation (#​8892)
  • chore: Command name/descriptions - use attribute and static properties (#​8862)
  • chore: Commands - unify way to define help content (#​8881)
  • chore: ConfigurationResolver - add few missing v4 TODOs (#​8882)
  • chore: fix booleanNot.exprNotBoolean errors (#​8869)
  • chore: fix/optimize some phpdocs (#​8889)
  • chore: more unification of PHP CS Fixer naming (#​8854)
  • chore: PHPStan baseline - use shipmonk/phpstan-baseline-per-identifier (#​8844)
  • chore: remove dead code (#​8896)
  • chore: remove unused constants (#​8864)
  • chore: remove useless @var annotations (#​8867)
  • chore: simplify ClassDefinitionFixer (#​8868)
  • chore: unify usage of image versions to not mention minor (#​8860)
  • chore: update PHPStan (#​8898)
  • chore: update PHPStan extension for Preg::match (#​8872)
  • chore: wrong return values in ErrorsManager (#​8863)
  • chore: OrderedInterfacesFixer - make code more PHPStan friendly (#​8866)
  • chore: Token - add @phpstan-assert-if-true (#​8865)
  • deps: bump phpstan/phpstan from 2.1.17 to 2.1.18 in /dev-tools in the phpstan group (#​8859)
  • deps: bump the phpstan group in /dev-tools with 4 updates (#​8890)
  • docs: better document deprecated rule sets (#​8878)
  • docs: cleanup docs for PHP 7 (#​8873)
  • docs: cleanup docs for PHP < 7.4 (#​8855)
  • docs: ListSetsCommand,FixCommand - document possible formats in Command's definitions (#​8880)
  • DX: Explicitly prevent touching non-monolithic files (#​6517)

v3.84.0

Compare Source

  • feat: Introduce NoUselessPrintfFixer (#​8820)
  • feat: CastSpacesFixer - support (void) cast (#​8851)
  • feat: NewExpressionParenthesesFixer - add to PHP84MigrationSet (#​8788)
  • feat: VisibilityRequiredFixer - support final promoted properties (#​8835)
  • fix: PhpdocToParamTypeFixer - do not convert types from phpstan-type, phpstan-import-type, psalm-type and psalm-import-type (#​8842)
  • fix: PhpdocToPropertyTypeFixer - do not convert types from phpstan-type, phpstan-import-type, psalm-type and psalm-import-type (#​8847)
  • fix: PhpdocToReturnTypeFixer - do not convert types from phpstan-type, phpstan-import-type, psalm-type and psalm-import-type (#​8846)
  • chore: introduce FCT for few missing tokens (#​8845)
  • chore: remove useless static variables for const content (#​8836)
  • chore: simplify isGivenKind/equals/equalsAll calls (#​8843)
  • docs: Support for new PHP version (#​8780)

v3.83.0

Compare Source

  • feat: Suppress enable parallel runner message when only 1 core is available (#​8833)
  • fix: BracesPositionFixer - fix performance issue for massive files with CT::T_CURLY_CLOSE (#​8830)
  • fix: NoUnreachableDefaultArgumentValueFixer - do not crash on property hook (#​8838)
  • chore: Add CS commit to .git-blame-ignore-revs
  • chore: apply native_constant_invocation for build-in consts (#​8837)
  • chore: configure native_constant_invocation (#​8840)
  • chore: early compat check with Symfony 8 (#​8827)
  • chore: FullyQualifiedStrictTypesFixer - reduce function calls (#​8834)
  • CI: mark jobs allow-to-fail declarative, instead of imperative check (#​8829)

v3.82.2

Compare Source

  • fix: ClassAttributesSeparationFixer - handle method get aliased in trait import (#​8822)
  • fix: LowercaseStaticReferenceFixer - do not touch enum's cases (#​8824)
  • fix: StatementIndentationFixer - multi constant statement containing array (#​8825)
  • fix: VisibilityRequiredFixer - handle promoted property with visibility and reference, but without type (#​8823)

v3.82.1

Compare Source

  • fix: OrderedClassElementsFixer - handle property hooks (#​8817)
  • fix: SingleClassElementPerStatementFixer - fix for property hooks (#​8816)

v3.82.0

Compare Source

  • chore: cleanup FCTTest (#​8808)
  • chore: PhpdocOrderFixer.php - CPU optimization (#​8812)
  • deps: update box (#​8795)
  • docs: fix whitespace around code examples and reference sections in rules' docs (#​8810)
  • feat: MagicConstantCasingFixer - support __PROPERTY__ (#​8809)
  • feat: PhpUnitDataProviderNameFixer - support data providers defined by both annotation and attribute for the same test (#​8811)
  • fix: PhpdocToParamTypeFixer - always handle reference in PHPDoc (#​8813)

v3.81.0

Compare Source

  • feat: VisibilityRequiredFixer - handle more than only the first promoted property (#​8801)
  • fix: BracesPositionFixer - do not crash when variable is terminated by PHP close tag (#​8804)
  • fix: PhpUnitDataProviderMethodOrderFixer - handle data provider defined by both annotation and attribute (#​8805)
  • fix: PhpUnitInternalClassFixer - skip adding @internal on instantiation of anonymous classes (#​8807)
  • fix: VisibilityRequiredFixer - handle promoted parameter passed by reference (#​8799)
  • chore: add automatically to milestone "PHP 8.5 initial compatibility" if label is "topic/PHP8.5" (#​8806)
  • chore: fail "Deployment checks" if any job from tests failed (#​8792)
  • docs: update docs about --allow-unsupported-php-version (#​8796)

v3.80.0

Compare Source

  • feat: PHP 8.4 compatibility support (#​8300)

v3.79.0

Compare Source

  • chore: VisibilityRequiredFixerTest - run tests in correct PHP version (#​8790)
  • feat: BracesPositionFixer - do not touch one-line properties with hooks (#​8785)
  • feat: PhpUnitDataProvider(.+)Fixer - support attributes (#​8197)

v3.78.1

Compare Source

  • fix: VisibilityRequiredFixer - do not add public incorrectly (#​8787)

v3.78.0

Compare Source

  • chore: VisibilityRequiredFixer - document behaviour for asymmetric visibility with only set-visibility (#​8783)
  • feat: BracesPositionFixer - support property hooks (#​8782)
  • feat: VisibilityRequiredFixer - support promoted property without visibility (#​8773)
  • fix: NativeFunctionInvocationFixer - fix global function set called in array key (#​8568)
  • fix: NoBreakCommentFixer - handle function having return type (#​8767)
  • fix: StatementIndentationFixer - handle functions set and get (like property hooks, but not) (#​8576)
  • fix: StaticPrivateMethodFixer - handle nested calls (#​8768)

v3.77.0

Compare Source

  • chore: add automatically to milestone "PHP 8.4 initial compatibility" if label is "topic/PHP8.4" (#​8770)
  • chore: Add CS commit to .git-blame-ignore-revs
  • chore: fix adding automatically to milestone "PHP 8.4 initial compatibility" if label is "topic/PHP8.4" (#​8775)
  • chore: fix adding automatically to milestone "PHP 8.4 initial compatibility" if label is "topic/PHP8.4" (#​8776)
  • chore: move all indicators to analyzers (#​8772)
  • chore: move PHP-compat integration tests (#​8781)
  • chore: partially apply NoExtraBlankLinesFixer:tokens.comma (#​8762)
  • chore: reconfigure phpdoc_order in local config (#​8220)
  • feat: PhpdocOrderFixer - extend support for phpstan and psalm annotations (#​8777)
  • feat: support anonymous classes extending TestCase in PHPUnit fixers (#​8707)
  • feat: CommentToPhpdocFixer and PhpdocToCommentFixer - support asymmetric visibility (#​8774)
  • feat: NoEmptyStatementFixer - support abstract property hooks (#​8766)
  • feat: NullableTypeDeclarationForDefaultNullValueFixer - support asymmetric visibility in the constructor (#​8604)
  • feat: ProtectedToPrivateFixer - add support for promoted properties (#​8608)
  • fix: PhpUnitAttributesFixer - correctly remove annotations when configured ['keep_annotations' => false] (#​8577)
  • fix: ProtectedToPrivateFixer - fix asymmetric visibility with only set visibility (#​8763)

v3.76.0

Compare Source

  • chore(release): bump php ci alpine version (#​8581)
  • chore: add missing priority test for BracesPositionFixer and MultilinePromotedPropertiesFixer (#​8596)
  • chore: add more assertions in tests (#​8740)
  • chore: bump dependencies version to maximum for non-newest MAJOR version (#​8753)
  • chore: cast types in tests (#​8742)
  • chore: cleanup booleans use in tests (#​8738)
  • chore: cleanup code in tests (#​8745)
  • chore: cleanup PsrAutoloadingFixerTest.php keywords handling, as always defined currently (#​8730)
  • chore: cleanup AlignMultilineCommentFixerTest (#​8688)
  • chore: cleanup BinaryOperatorSpacesFixerTest (#​8687)
  • chore: cleanup BlankLineBeforeStatementFixerTest (#​8685)
  • chore: cleanup ClassDefinitionFixerTest (#​8684)
  • chore: cleanup ClassDefinitionFixer (#​8580)
  • chore: cleanup ConcatSpaceFixerTest (#​8683)
  • chore: cleanup DoctrineAnnotationArrayAssignmentFixerTest (#​8621)
  • chore: cleanup DoctrineAnnotationBracesFixerTest (#​8623)
  • chore: cleanup DoctrineAnnotationIndentationFixerTest (#​8620)
  • chore: cleanup DoctrineAnnotationSpacesFixerTest (#​8624)
  • chore: cleanup EchoTagSyntaxFixerTest (#​8681)
  • chore: cleanup file_get_contents return types (#​8735)
  • chore: cleanup FunctionDeclarationFixerTest (#​8680)
  • chore: cleanup FunctionToConstantFixerTest (#​8618)
  • chore: cleanup GeneralPhpdocTagRenameFixerTest (#​8627)
  • chore: cleanup GlobalNamespaceImportFixerTest (#​8679)
  • chore: cleanup HeaderCommentFixerTest (#​8677)
  • chore: cleanup HeaderCommentFixerTest (restore @requires for PHP 8.1) (#​8678)
  • chore: cleanup IncrementStyleFixerTest (#​8676)
  • chore: cleanup IndentationTypeFixerTest (#​8675)
  • chore: cleanup ListSyntaxFixerTest (#​8674)
  • chore: cleanup MethodArgumentSpaceFixerTest (#​8673)
  • chore: cleanup MultilineWhitespaceBeforeSemicolonsFixerTest (#​8614)
  • chore: cleanup NativeConstantInvocationFixerTest (#​8672)
  • chore: cleanup NewWithParenthesesFixerTest (#​8592)
  • chore: cleanup NoBlankLinesAfterPhpdocFixerTest (#​8671)
  • chore: cleanup NoBreakCommentFixerTest (#​8670)
  • chore: cleanup NoClosingTagFixerTest (#​8669)
  • chore: cleanup NoEmptyStatementFixerTest (#​8667)
  • chore: cleanup NoSpacesAroundOffsetFixerTest (#​8666)
  • chore: cleanup NoUnneededControlParenthesesFixerTest (#​8665)
  • chore: cleanup NoUselessElseFixerTest (#​8664)
  • chore: cleanup PhpdocAddMissingParamAnnotationFixerTest (#​8663)
  • chore: cleanup PhpdocNoEmptyReturnFixerTest (#​8662)
  • chore: cleanup PhpdocNoPackageFixerTest (#​8626)
  • chore: cleanup PhpdocOrderByValueFixerTest (#​8661)
  • chore: cleanup PhpdocOrderFixerTest (#​8660)
  • chore: cleanup PhpdocParamOrderFixerTest (#​8659)
  • chore: cleanup PhpdocReturnSelfReferenceFixerTest (#​8658)
  • chore: cleanup PhpdocSeparationFixerTest (#​8657)
  • chore: cleanup PhpdocSummaryFixerTest (#​8654)
  • chore: cleanup PhpdocTrimFixerTest (#​8653)
  • chore: cleanup PhpdocTypesOrderFixerTest (#​8652)
  • chore: cleanup PhpdocVarWithoutNameFixerTest (#​8617)
  • chore: cleanup PhpUnitConstructFixerTest (#​8651)
  • chore: cleanup PhpUnitDedicateAssertFixerTest (#​8650)
  • chore: cleanup PhpUnitTestCaseStaticMethodCallsFixerTest (#​8649)
  • chore: cleanup Preg issues (#​8720)
  • chore: cleanup ReturnAssignmentFixerTest (#​8648)
  • chore: cleanup ReturnTypeDeclarationFixerTest (#​8647)
  • chore: cleanup SingleImportPerStatementFixerTest (#​8645)
  • chore: cleanup SingleLineCommentStyleFixerTest (#​8644)
  • chore: cleanup SingleSpaceAroundConstructFixerTest (#​8642)
  • chore: cleanup SpaceAfterSemicolonFixerTest (#​8625)
  • chore: cleanup SpacesInsideParenthesesFixerTest (#​8641)
  • chore: cleanup StatementIndentationFixerTest (#​8640)
  • chore: cleanup YodaStyleFixerTest (#​8638)
  • chore: do not check if JSON_INVALID_UTF8_IGNORE is defined because it always is (since PHP 7.2) (#​8709)
  • chore: handle saveXML failures explicitly (#​8755)
  • chore: ignore remaining PHPStan (false positive) issues (#​8746)
  • chore: improve PHPDoc's types in (#​8741)
  • chore: improve PHPDocs in tests (#​8736)
  • chore: improve PHPDocs in tests (#​8744)
  • chore: improve type of Token::equalsAny (#​8743)
  • chore: lint yaml files (#​8622)
  • chore: MultilinePromotedPropertiesFixer - mark new fixer introduced in #​8595 as experimental (#​8758)
  • chore: PHPMD - cleanup UnusedLocalVariable for foreach (#​8637)
  • chore: refactor FCT (#​8714)
  • chore: remove unused local variables in src (#​8600)
  • chore: remove unused local variables in tests (#​8599)
  • chore: remove useless test from AliasedFixerOptionTest (#​8739)
  • chore: remove defined calls from tests (#​8708)
  • chore: restore original type of Token::equalsAny, partially reverts #​8743 (#​8759)
  • chore: run mutation tests on PHP 8.4 (#​8594)
  • chore: solve one of phpstan warnings (#​8754)
  • chore: update dev tools (#​8737)
  • chore: update PHPUnit config (#​8721)
  • chore: update checkbashisms to 2.25.12 (#​8694)
  • chore: update checkbashisms to 2.25.14 (#​8731)
  • chore: use PHPStan type in data providers (#​8605)
  • chore: use foreach values (#​8636)
  • chore: use Preg class everywhere (#​8689)
  • CI: add self-approved label (#​8757)
  • CI: run on PHP 8.5 (#​8713)
  • deps: bump alpine from 3.21.3 to 3.22.0 (#​8724)
  • deps: bump alpine from 3.21.3 to 3.22.0 (#​8726)
  • deps: bump ergebnis/composer-normalize from 2.45.0 to 2.46.0 in /dev-tools (#​8578)
  • deps: bump ergebnis/composer-normalize from 2.46.0 to 2.47.0 in /dev-tools (#​8584)
  • deps: bump phpstan/phpstan from 2.1.11 to 2.1.12 in /dev-tools in the phpstan group (#​8583)
  • deps: bump phpstan/phpstan-symfony from 2.0.3 to 2.0.4 in /dev-tools in the phpstan group (#​8557)
  • deps: bump the phpstan group across 1 directory with 2 updates (#​8682)
  • deps: upgrade docker deps (#​8566)
  • docs: extend and fix links to code (#​8639)
  • docs: Update SECURITY.md (#​8716)
  • docs: VisibilityRequiredFixer - extend docs (#​8561)
  • docs: VisibilityRequiredFixer - update docs (#​8563)
  • DX: add symfony/polyfill-php84 (#​8555)
  • DX: always use the latest stable checkbashisms package (#​8732)
  • DX: check for preg_ functions in tests (#​8571)
  • DX: cleanup BlankLinesBeforeNamespaceFixerTest (#​8573)
  • DX: cleanup NativeFunctionInvocationFixerTest (#​8567)
  • DX: cleanup NoUselessConcatOperatorFixerTest (#​8572)
  • DX: cleanup SemicolonAfterInstructionFixerTest (#​8570)
  • DX: fix data providers (#​8693)
  • DX: introduce FCT class for tokens not present in the lowest supported PHP version (#​8706)
  • DX: move symfony/polyfill-php84 to dev deps (#​8559)
  • DX: support PHP 8.4 in local Docker development environment (#​8564)
  • DX: trim array/yield keys (#​8460)
  • DX: use WhitespacesAwareFixerInterface only when needed (#​8541)
  • feat: add NewExpressionParenthesesFixer (#​8246)
  • feat: allowUnsupportedPhpVersion (#​8733)
  • feat: introduce MultilinePromotedPropertiesFixer (#​8595)
  • feat: Introduce StaticPrivateMethodFixer (#​4557)
  • feat: BracesPositionFixer - support property hooks in promoted properties (#​8613)
  • feat: ClassAttributesSeparationFixer - add support for property hooks (#​8610)
  • feat: GlobalNamespaceImportFixer - analyse and fix more annotations with types (#​8593)
  • feat: LowercaseKeywordsFixer - support asymmetric visibility (#​8607)
  • feat: NoExtraBlankLinesFixer - add comma to supported tokens (#​8655)
  • feat: NoSuperfluousPhpdocTagsFixer - support asymmetric visibility (#​8700)
  • feat: NullableTypeDeclarationFixer - support asymmetric visibility (#​8697)
  • feat: OrderedClassElementsFixer - add support for property hooks for abstract properties (#​8574)
  • feat: OrderedTypesFixer - add support for asymmetric visibility (#​8552)
  • feat: OrderedTypesFixer - support asymmetric visibility in promoted property (#​8602)
  • feat: PhpdocAddMissingParamAnnotationFixer - support asymmetric visibility (#​8701)
  • feat: PhpdocLineSpanFixer - support asymmetric visibility (#​8702)
  • feat: PhpdocVarWithoutNameFixer - support asymmetric visibility (#​8704)
  • feat: ProtectedToPrivateFixer - add support for asymmetric visibility (#​8569)
  • feat: SingleClassElementPerStatementFixer - support asymmetric visibility (#​8696)
  • feat: SingleSpaceAroundConstructFixer - add support for asymmetric visibility (#​8699)
  • feat: StaticLambdaFixer - support functions having classy elements with $this (#​8728)
  • feat: VisibilityRequiredFixer - support ordering set-visibility modifier (#​8606)
  • fix(dependabot): convert time values to string types (#​8634)
  • fix: "array" type must have no prefix to be fixable to "list" (#​8692)
  • fix: "min"/"max" in int generics must never be prefixed by backslash (#​8691)
  • fix: Allow non-doc comment on opening inline brace line (#​8690)
  • fix: ConstantCaseFixer - do not touch namespaces starting with Null\ (#​8752)
  • fix: LowercaseStaticReferenceFixer - do not change global constants (#​8727)
  • fix: MultilineWhitespaceBeforeSemicolonsFixer - do not touch multiline constants definitions (#​8615)
  • fix: NewWithParenthesesFixer - fix new without parentheses on PHP 8.4 syntax (#​8588)
  • fix: NoMultipleStatementsPerLineFixer - handle set and get in different casing in property hooks (#​8558)
  • fix: NoUnusedImportsFixer - handle imported class name with underscore before or after it in PHPDoc (#​8598)
  • fix: PhpUnitDedicateAssertFixer - fix for assertFalse with instanceof (#​8597)
  • fix: PhpUnitNamespacedFixer must rune before NoUnneededImportAliasFixer (#​8579)
  • fix: PhpUnitTestClassRequiresCoversFixer - do not add @coversNothing annotation when CoversTrait attribute is used (#​8734)
  • fix: VisibilityRequiredFixer - add support for asymmetric visibility (#​8586)
  • refactor: avoid unused local variables in tests (#​8609)
  • test: add more cases to PhpUnitMethodCasingFixerTest (#​8551)
  • test: fix "unused local variables $token" (#​8603)
  • test: More verbose error output for integration test (#​8565)
  • Update SECURITY.md

v3.75.0

Compare Source

  • feat: ClassAttributesSeparationFixer - add support for asymmetric visibility (#​8518)
  • fix: NativeFunctionInvocationFixer - fix for property hooks (#​8540)
  • chore: add return types for data providers for fixers (#​8542)
  • chore: add return types for data providers for non-fixers (#​8543)
  • chore: add return types for remaining data providers (#​8544)
  • chore: make data providers key type int if all the keys are strings (#​8550)
  • chore: make data providers key type string if all the keys are strings (#​8545)
  • chore: SwitchContinueToBreakFixerTest - improve test case descriptions/typehint (#​8546)
  • chore: FunctionsAnalyzerTest cleanup (#​8539)
  • deps: bump the phpstan group in /dev-tools with 2 updates (#​8537)
  • test: ProjectCodeTest::testDataProvidersDeclaredReturnType - allow for int as iterable keys (#​8548)

v3.74.0

Compare Source

  • feat: add --format=@&#8203;auto (#​8513)
  • fix: BracesPositionFixer - do not create two consecutive whitespace tokens (#​8496)
  • fix: MbStrFunctionsFixer - fix imports with leading backslash (#​8507)
  • fix: NoUnreachableDefaultArgumentValueFixer - do not crash on property hook (#​8512)
  • fix: OrderedImportsFixer - do not take the braces part in grouped imports into account (#​8459)
  • fix: OrderedImportsFixer - fix syntax error with grouped use statement and multiple use with comma (#​8483)
  • fix: PhpUnitAttributesFixer - handle parentheses after data provider method name (#​8510)
  • fix: PhpUnitMethodCasingFixer - do not touch anonymous class (#​8463)
  • chore: make options that have default and allowed sets the same size the same array (#​8529)
  • chore: update return type of FixerOptionInterface::getAllowedValues (#​8530)
  • chore: Preg - improve types (#​8527)
  • CI: fix code coverage job (#​8520)
  • CI: try MacOS job without ParaUnit (#​8528)
  • deps: update PHPStan (#​8531)
  • deps: upgrade PHPStan/* (#​8524)

v3.73.1

Compare Source

  • fix: OrderedClassElementsFixer - do not crash on property hook (#​8517)

v3.73.0

Compare Source

  • feat: add support for asymmetric visibility to Doctrine's fixers (#​8415)
  • fix: GeneralPhpdocTagRenameFixer - do not rename keys in array shape definition (#​8477)
  • fix: MethodArgumentSpaceFixer - handle when nested in HTML (#​8503)
  • chore: update checkbashisms to 2.25.5 (#​8519)
  • DX: cleanup NoExtraBlankLinesFixerTest (#​8505)
  • DX: for duplicated test methods check methods without parameters (#​8508)
  • DX: remove more duplicated test methods (#​8506)
  • refactor: Tokenizer hash metode using xxHash (#​8491)
  • refactor: TokensAnalyzerTest - better test isArray and isArrayMultiLine (#​8504)
  • test: run code coverage on PHP 8.4 (#​8448)

v3.72.0

Compare Source

  • feat: StatementIndentationFixer - handle property hooks (#​8492)
  • fix: MbStrFunctionsFixer - fix imports (#​8474)
  • fix: TrailingCommaInMultilineFixer - handle empty match body (#​8480)
  • fix: VisibilityRequiredFixer - handle property hooks (#​8495)
  • deps: upgrade few dev-deps (#​8490)
  • deps: Upgrade PHPStan to 2.1.8 (#​8489)
  • DX: add trailing comma to multiline auto-generated types (#​8499)
  • refactor: generalize CodeHasher into Hasher (#​8500)
  • refactor: Runner - unify paths used when using parallel runner (#​8488)
  • refactor: use Hasher instead of md5 directly (#​8501)

v3.71.0

Compare Source

  • feat: OrderedImportsFixer - deprecate length sorting algorithm (#​8473)
  • fix: BinaryOperatorSpacesFixer - do not break alignment of UTF-8 array keys (#​8484)
  • fix: PhpdocAlignFixer - align correctly type with UTF8 characters (#​8486)
  • fix: SingleSpaceAroundConstructFixer - handle alternative syntax (#​8317)
  • fix: StatementIndentationFixer - return in braceless if (#​8479)
  • chore: update type in SingleSpaceAroundConstructFixerTest::provideFixWithElseIfCases (#​8481)
  • chore: update type in SingleSpaceAroundConstructFixerTest::provideFixWithIfCases (#​8482)
  • deps: bump phpstan/phpstan from 2.1.6 to 2.1.7 in /dev-tools in the phpstan group (#​8485)
  • DX: cleanup PhpdocNoAliasTagFixerTest (#​8476)
  • refactor: add FullyQualifiedNameAnalyzer (#​8048)
  • refactor: codeHash - update when it's (re-)generated (#​8470)
  • refactor: SwitchAnalyzer - improve performance (#​8407)
  • test: NameQualifiedTransformerTest - correct test case (#​8471)

v3.70.2

Compare Source

  • deps: upgrade deep dev-tools deps (#​8472)
  • fix: MbStrFunctionsFixer must run before NativeFunctionInvocationFixer (#​8466)
  • fix: MethodArgumentSpaceFixer - fix nested calls for ensure_fully_multiline option (#​8469)

v3.70.1

Compare Source

  • fix: PhpUnitSizeClassFixer must run before PhpUnitAttributesFixer (#​8457)
  • DX: cleanup OrderedImportsFixerTest (#​8458)

v3.70.0

Compare Source

  • feat: Add PhpUnitDataProviderMethodOrderFixer fixer (#​8225)
  • feat: HeaderCommentFixer - allow validators (#​8452)
  • feat: PhpCsFixer ruleset: use operator_linebreak rule for all operators (#​8417)
  • feat: PhpUnitMethodCasingFixer to support PHPUnit's Test attribute (#​8451)
  • feat: TypeDeclarationSpacesFixer - Fix whitespace between const type and const name (#​8442)
  • chore: extend bug report template (#​8447)
  • chore: extend bug report template - more installation options (#​8450)
  • CI: phpstan-symfony - add entry point for console (#​8292)
  • deps: bump alpine from 3.21.2 to 3.21.3 (#​8454)
  • deps: bump phpstan/phpstan from 2.1.5 to 2.1.6 in /dev-tools in the phpstan group (#​8453)
  • fix: CommentsAnalyzer - allow other forms of assignment as valid structural elements for PHPDocs (#​8371)
  • fix: PhpUnitTestClassRequiresCoversFixer must run before PhpUnitAttributesFixer (#​8444)
  • test: fix CheckCommandTest::testDryRunModeIsUnavailable to correctly check that option --dry-run is unavailable (#​8438)

v3.69.1

Compare Source

  • fix: PhpUnitAttributesFixer - convert correctly version constraint (#​8439)
  • test: PhpUnitAttributesFixer must run before NoEmptyPhpdocFixer (#​8443)

v3.69.0

Compare Source

  • feat: Add unsealed array shape phpdoc support (#​8299)
  • fix: OrderedClassElementsFixer - sort correctly typed constants (#​8408)
  • chore: do not use test class as test data (#​8430)
  • chore: update checkbashisms to 2.25.2 (#​8427)
  • chore: use constants instead of literal strings (#​8422)
  • CI: no need to unlock deps on master (#​8426)
  • CI: run tests using PHPUnit 12 (#​8431)
  • deps: bump kubawerlos/composer-smaller-lock from 1.0.1 to 1.1.0 in /dev-tools (#​8414)
  • deps: bump maglnet/composer-require-checker from 4.14.0 to 4.15.0 in /dev-tools (#​8406)
  • deps: bump phpstan/phpstan from 2.1.3 to 2.1.5 in /dev-tools in the phpstan group (#​8437)
  • deps: bump the phpstan (#​8423)
  • deps: upgrade dev requirements (#​8424)

v3.68.5

Compare Source

  • fix: NativeTypeDeclarationCasingFixer - do not touch constants named as native types (#​8404)

v3.68.4

Compare Source

  • chore: run SCA on PHP 8.4 (#​8396)
  • fix: NativeTypeDeclarationCasingFixer should not touch property names (#​8400)

v3.68.3

Compare Source

  • fix: NativeTypeDeclarationCasingFixer - fix for enum with "Mixed" case (#​8395)

v3.68.2

Compare Source

  • fix: NativeTypeDeclarationCasingFixer - fix for promoted properties, enums, false and mixed (#​8386)
  • chore: ensure that dev-tools dependencies are bumped (#​8389)
  • chore: experiment to see if we can auto-shrink the lock after dependabot (#​8383)
  • chore: experiment to see if we can auto-shrink the lock after dependabot /part (#​8384)
  • chore: Get rid of Docker warnings during build (#​8379)
  • chore: remove redundant check (#​8391)
  • chore: update types (#​8390)
  • CI: stale - update close msg to emphasize contribution over demand (#​8385)
  • deps: bump phpcompatibility/phpcompatibility-symfony from 1.2.1 to 1.2.2 in /dev-tools (#​8378)
  • deps: bump the phpstan group in /dev-tools with 4 updates (#​8387)
  • refactor: Use native Yaml::parseFile() instead of custom method (#​8380)

v3.68.1

Compare Source

  • chore: AutoReview/CiConfigurationTest - handle failure of reading files (#​8375)
  • CI: Docker - check all compose services (#​8370)
  • deps: bump alpine from 3.18 to 3.21 (#​8377)
  • deps: bump alpine from 3.18.4 to 3.21.2 (#​8362)
  • refactor: Tokens::clearEmptyTokens - optimize cache handling (#​8335)

v3.68.0

Compare Source

  • feat: ModernizeStrposFixer - support stripos (#​8019)
  • chore: FullyQualifiedStrictTypesFixer - reduce conditions count (#​8368)
  • test: PhpUnitSetUpTearDownVisibilityFixer - extend test for anonymous classes (#​8369)

v3.67.1

Compare Source

  • fix: FullyQualifiedStrictTypesFixer - fix return types (#​8367)
  • fix: PhpUnitSetUpTearDownVisibilityFixer - do not touch anonymous classes (#​8366)
  • chore: allow for class-string in doc types of rule options (#​8358)
  • chore: CS: Move data provider methods after their test method (#​8302)
  • chore: dependabot integration (#​8357)
  • chore: PHPStan - upgrade to 2.1 (#​8355)
  • CI: Introduce PHP compatibility check (#​7844)
  • deps: bump docker/build-push-action from 5 to 6 (#​8361)
  • docs: update installation instructions (#​8356)

v3.67.0

Compare Source

  • chore: simplify loops using end/prev functions (#​8352)
  • feat: Introduce general_attribute_remove fixer (#​8339)

v3.66.2

Compare Source

  • chore: do not use bitwise "or" assignment operator (#​8346)
  • chore: remove extra check, never happening (#​8348)
  • chore: remove impossible @throws annotation (#​8353)
  • chore: Tokens - cleanup (#​8350)
  • chore: Tokens - minor performance and types optimizations (#​8349)

v3.66.1

Compare Source

  • chore: fix CI for Windows (#​8326)
  • chore: NoMultipleStatementsPerLineFixer - be aware of PHP 8.4 property hooks (#​8344)
  • chore: TernaryToElvisOperatorFixer - improvements based on PHPStan detections (#​8345)
  • chore: PhpUnitTestCaseStaticMethodCallsFixer - fix type of methods option in documentation and add example with it (#​8338)
  • chore: update legacy deps (#​8342)
  • deps: update box (#​8336)

v3.66.0

Compare Source

  • feat: Tokenizer - initial support for PHP 8.4 property hooks (#​8312)
  • feat: PhpUnitTestCaseStaticMethodCallsFixer - cover PHPUnit v11.5 methods (#​8314)
  • feat: PhpUnitTestCaseStaticMethodCallsFixer - make sure all static protected methods are handled (#​8327)
  • feat: PhpUnitTestCaseStaticMethodCallsFixer - support createStub (#​8319)
  • feat: UseArrowFunctionsFixer - support multiline statements (#​8311)
  • fix: NullableTypeDeclarationFixer - do not break multi-line declaration (#​8331)
  • test: CiConfigurationTest - drop not needed condition, logic is checked in upcoming assertion (#​8303)
  • chore: add more typehints (#​8325)
  • chore: DotsOutput - more const, better typing (#​8318)
  • chore: mark classes as readonly (#​8275)
  • chore: more const, better typing (#​8320)
  • chore: temporarily prevent symfony/process 7.2+ (#​8322)
  • chore: Tokens - simplify (un)registerFoundToken types (#​8328)
  • chore: upgrade PHPStan (#​8321)
  • chore: BraceTransformer - don't touch curly index braces since 8.4, as it's not a valid syntax anymore (#​8313)
  • CI: enable phpdoc_to_property_type on php-lowest (#​8324)
  • Create SECURITY.md
  • docs: Tokens - fix docs (#​8332)

v3.65.0

Compare Source

  • feat: Ability to set upper limit when using CPU auto-detection (#​8280)
  • feat: create @PHP82Migration:risky ruleset (#​8277)
  • feat: Impl. TypeExpression::mapTypes() (#​8077)
  • feat: Parse array/generic/nullable type into inner expression (#​8106)
  • feat: phpdoc_to_property_type - handle virtual types and null initialization, enable in php-highest CI job (#​8283)
  • feat: Store PHPDoc offset in DataProviderAnalysis (#​8226)
  • feat: Support for complex PHPDoc types in fully_qualified_strict_types (#​8085)
  • fix: check for priority tests correctly (#​8221)
  • fix: Do not mark with @coversNothing if CoversMethod/CoversFunction attribute is used (#​8268)
  • fix: enum-case mistaken for const invocation (#​8190)
  • fix: fix typing of few properties wrongly typed as non-nullable (#​8285)
  • fix: fix typing property wrongly typed as non-nullable (#​8290)
  • fix: MethodChainingIndentationFixer does not fix indentation of last chained property (#​8080)
  • fix: NoSuperfluousPhpdocTagsFixer - Remove superfluous phpdoc of parameter with attribute (#​8237)
  • fix: parsing mixed & and | in TypeExpression (#​8210)
  • fix: proper base class used for AbstractDoctrineAnnotationFixer templates generation (#​8291)
  • fix: Properly recognise constants in foreach loops (#​8203)
  • fix: Tokens::overrideRange() block cache pruning (#​8240)
  • fix: BlankLineAfterOpeningTagFixer - add blank line in file starting with multi-line comment (#​8256)
  • fix: MultilineWhitespaceBeforeSemicolonsFixer - do not produce syntax error when there is a meaningful token after semicolon (#​8230)
  • fix: NullableTypeDeclarationFixer - do not break syntax when there is no space before ? (#​8224)
  • fix: PhpUnitDataProvider(.+)Fixer - do not omit when there is an attribute between PHPDoc and test method (#​8185)
  • fix: PhpUnitDataProviderNameFixer - for an attribute between PHPDoc and test method (#​8217)
  • chore: add todo for PHP v8 (#​8274)
  • chore: auto-fallback to sequential runner if single CPU would handle it (#​8154)
  • chore: block changing tokens collection size using PhpCsFixer\Tokenizer\Tokens::setSize (#​8257)
  • chore: bump dev-tools (#​8286)
  • chore: bump PHPStan (#​8245)
  • chore: Cheaper file check first (#​8252)
  • chore: ConfigInterface - better types (#​8244)
  • chore: do not call Tokens::setSize in GroupImportFixer (#​8253)
  • chore: do not use Reflection*::setAccessible (#​8264)
  • chore: fix priority tests (#​8223)
  • chore: Fix typos in AbstractFixerTestCase (#​8247)
  • chore: GithubClient - make URL injectable (#​8272)
  • chore: Implement PHPStan Preg::match() extensions (#​8103)
  • chore: mark remaining Analysis as @internal (#​8284)
  • chore: PHPStan - upgrade to v2 (#​8288)
  • chore: reduce amount of class mutable properties (#​8281)
  • chore: remove from priority tests exceptions tests that are not actually exceptions (#​8222)
  • chore: remove incorrect priority tests (#​8231)
  • chore: remove not needed PHP version requirements in descriptions (#​8265)
  • chore: remove unnecessary methods (#​8200)
  • chore: tests/Tokenizer/Transformer - better typehinting (#​8243)
  • chore: Token - remove 'changed' property (#​8273)
  • chore: Token::getContent() phpdoc return type (#​8236)
  • chore: update dev dependencies in root (#​8289)
  • chore: update PHPStan to 1.12.9 (#​8271)
  • chore: update checkbashisms to 2.24.1 (#​8258)
  • chore: use null coalescing assignment operator where possible (#​8219)
  • CI: allow macos to fail (#​8194)
  • CI: build phar on PHP 8.3 (#​8195)
  • CI: drop matrix for single-matrix-entry jobs of SCA and Deployment checks (#​8193)
  • CI: Ensure php-cs-fixer PHP compatibility /part (#​8241)
  • CI: Ensure php-cs-fixer PHP compatibility (#​8235)
  • CI: generate and execute code in assert (#​8207)
  • CI: update PHPStan to 1.12.2 (#​8198)
  • CI: update PHPStan to 1.12.3 (#​8204)
  • CI: use phpstan-symfony (#​8287)
  • depr: ConfigInterface::getPhpExecutable() and ConfigInterface::setPhpExecutable() (#​8192)
  • deps: add composer-smaller-lock (#​8263)
  • deps: Update PHPStan to 1.12.4 (#​8215)
  • deps: Update PHPStan to 1.12.5 (#​8218)
  • deps: update PHPStan to 1.12.7 (#​8255)
  • docs: fix inconsistency in config doc (#​8269)
  • docs: mention github action example instead of travis-ci (#​8250)
  • DX: Cover php-cs-fixer file with static analysis (#​8229)
  • DX: Make TypeExpression API more explicit about composite types (#​8214)
  • refactor: change _AttributeItems to non-empty-list<_AttributeItem> to allow using single attribute item (#​8199)
  • refactor: Rename newly introduced option (#​8293)
  • refactor: Runner - Enhance eventing system (#​8276)
  • refactor: Runner - make 4.0 TODOs easier to understand (#​8196)
  • refactor: use arrow functions in more places (#​8294)
  • test: @PHP82Migration:risky - add integration tests (#​8278)

v3.64.0

Compare Source

  • feat: Symfony - adjust configuration for sets (#​8188)
  • feat: Symfony.trailing_comma_in_multiline - adjust configuration (#​8161)
  • feat: Update PSR2, PSR12 and PER-CS2 with single_space_around_construct config (#​8171)
  • CI: Update PHPStan to 1.12.0 and fix the error that appeared (#​8184)

v3.63.2

Compare Source

  • fix: FullyQualifiedStrictTypesFixer - reset cache even if there is no use (#​8183)

v3.63.1

Compare Source

  • dummy release

v3.63.0

Compare Source

  • feat: Add array_destructuring as option for trailing_comma_in_multiline (#​8172)
  • feat: remove braces even for single import (#​8156)
  • feat: TrailingCommaInMultilineFixer - dynamically evaluate config against PHP version (#​8167)
  • fix: Do not shorten FQN for class resolution if imported symbol is not a class (#​7705)
  • fix: Ensure PHP binary path is used as a single CLI argument in parallel worker process (#​8180)
  • fix: PhpUnitAttributesFixer - fix priorities with PhpUnitDataProvider(.+)Fixer (#​8169)
  • chore: add tags for data providers that will change PHPStan's baseline (#​8178)
  • chore: add @return tags for data providers already having PHPDoc (#​8176)
  • chore: add @return tags for data providers that do not have array in data (#​8179)
  • chore: remove duplicates from data providers (#​8164)
  • chore: remove duplicates from data providers that are copies in code (#​8145)
  • chore: remove beStrictAboutTodoAnnotatedTests from PHPUnit's config (#​8160)
  • CI: Update PHPStan to 1.11.10 (#​8163)
  • CI: Update PHPStan to 1.11.11 and fix error that changed (#​8174)
  • docs: fix indent on rule date_time_create_from_format_call (#​8173)

v3.62.0

Compare Source

  • feat: set new_with_parentheses for anonymous_class to false in PER-CS2.0 (#​8140)
  • chore: NewWithParenthesesFixer - create TODO to change the default configuration to match PER-CS2 (#​8148)

v3.61.1

Compare Source

  • fix: NoSuperfluousPhpdocTagsFixer - fix "Undefined array key 0" error (#​8150)

v3.61.0

Compare Source

  • feat: no_superfluous_phpdoc_tags - also cover ?type (#​8125)
  • feat: support PHPUnit v9.1 naming for some asserts (#​7997)
  • fix: Do not mangle non-whitespace token in PhpdocIndentFixer (#​8147)
  • DX: add more typehints for class-string (#​8139)
  • DX: refactor ProjectCodeTest::provideDataProviderMethodCases (#​8138)

v3.60.0

Compare Source

  • feat: Add sprintf in the list of compiler optimized functions (#​8092)
  • feat: PhpUnitAttributesFixer - add option to keep annotations (#​8090)
  • chore: cleanup tests that had @requires PHP 7.4 ages ago (#​8122)
  • chore: cleanup TokensAnalyzerTest (#​8123)
  • chore: fix example issue reported by reportPossiblyNonexistentGeneralArrayOffset from PHPStan (#​8089)
  • chore: NoSuperfluousPhpdocTagsFixer - no need to call heavy toComparableNames method to add null type (#​8132)
  • chore: PHPStan 11 array rules (#​8011)
  • chore: PhpUnitSizeClassFixerTest - solve PHP 8.4 issues (#​8105)
  • chore: reduce PHPStan errors in PhpUnitAttributesFixer (#​8091)
  • chore: reuse test methods (#​8119)
  • CI: check autoload (#​8121)
  • CI: Update PHPStan to 1.11.8 (#​8133)
  • deps: upgrade dev-tools (#​8102)
  • DX: check for duplicated test data (#​8131)
  • DX: check for duplicated test methods (#​8124)
  • DX: check for duplicated test methods (as AutoReview test) (#​8134)
  • DX: do not exclude duplicates that are clearly mistakes (#​8135)
  • DX: Dump offsetAccess.notFound errors to baseline (#​8107)
  • fix: Better way of walking types in TypeExpression (#​8076)
  • fix: CI for PHP 8.4 (#​8114)
  • fix: update TokensTest to shrink PHPStan's baseline (#​8112)
  • fix: no_useless_concat_operator - do not break variable (2) (#​7927)
  • fix: NullableTypeDeclarationFixer - don't convert standalone null into nullable union type (#​8098)
  • fix: NullableTypeDeclarationFixer - don't convert standalone NULL into nullable union type (#​8111)
  • fix: NullableTypeDeclarationFixer - insert correct token (#​8118)
  • fix: PhpUnitAttributesFixer - handle multiple annotations of the same name (#​8075)

v3.59.3

Compare Source

  • refactor: refactor to templated trait+interface (#​7988)

v3.59.2

Compare Source

  • fix: "list" is reserved type (#​8087)
  • chore: add missing type in method prototype (#​8088)
  • CI: bump Ubuntu version (#​8086)
  • deps: bump infection to unblock PHPUnit 11, and few more as chore (#​8083)

v3.59.1

Compare Source

  • fix: Bump React's JSON decoder buffer size (#​8068)
  • docs: options - handle enums in dicts (#​8082)

v3.59.0

Compare Source

  • feat(Docker): Multi-arch build (support for arm64) (#​8079)
  • feat: @PhpCsFixer ruleset - normalise implicit backslashes in single quoted strings (#​7965)
  • feat: SimpleToComplexStringVariableFixer - support variable being an array (#​8064)
  • fix: Look up for PHPDoc's variable name by only chars allowed in the variables (#​8062)
  • fix: Update PhpUnitTestCaseStaticMethodCallsFixer::STATIC_METHODS (#​8073)
  • fix: native_constant_invocation - array constants with native constant names (#​8008)
  • chore: update PHPStan (#​8060)
  • CI: Update PHPStan to 1.11.4 (#​8074)
  • docs: don't expose list as config type for dicts (#​8081)
  • docs: Make wording in final_class docs less dismissive (#​8065)
  • docs: Update 1-bug_report.yml (#​8067)
  • DX: Remove version from Docker Compose files (#​8061)

v3.58.1

Compare Source

  • fix: ConstantCaseFixer - do not change class constant usages (#​8055)
  • fix: PhpUnitTestClassRequiresCoversFixer - do not add annotation when attribute with leading slash present (#​8054)

v3.58.0

Compare Source

  • chore(doc): Use FQCN for parallel config in documentation (#​8029)
  • chore: fix typo in PhpUnitTestClassRequiresCoversFixerTest (#​8047)
  • chore: RandomApiMigrationFixer - do not modify configuration property (#​8033)
  • chore: Tokens::setCode - further improvements to cache (#​8053)
  • chore: update PHPStan (#​8045)
  • docs: Add missing imports in a cookbook about creating custom rules (#​8031)
  • docs: fix deprecated string interpolation style (#​8036)
  • docs: global_namespace_import - simplify allowed config types (#​8023)
  • feat(GroupImportFixer): Ability to configure which type of imports should be grouped (#​8046)
  • fix: clear Tokens::$blockStartCache and Tokens::$blockEndCache when calling Tokens::setCode (#​8051)
  • fix: correctly handle PHP closing tag with simplified_null_return (#​8049)
  • fix: ConstantCaseFixer - do not change namespace (#​8004)
  • fix: PhpUnitAttributesFixer - do not add attribute if already present (#​8043)
  • fix: PhpUnitSizeClassFixer - do not add annotation when there are attributes (#​8044)
  • fix: PhpUnitTestClassRequiresCoversFixer - attribute detection when class is readonly (#​8042)

v3.57.2

Compare Source

  • docs: better ConfigurableFixer allowed types (#​8024)
  • docs: Improve Docker usage example (#​8021)
  • feat: Report used memory to 2 decimal digits only (#​8017)
  • fix: Support named args in ParallelConfigFactory::detect() (#​8026)
  • fix: php_unit_test_class_requires_covers Attribute detection when class is final (#​8016)

v3.57.1

Compare Source

  • chore: update PHPDoc in Preg::matchAll (#​8012)
  • fix: Runner - handle no files while in parallel runner (#​8015)

v3.57.0

Compare Source

  • feat: Ability to run Fixer with parallel runner 🎉 (#​7777)

v3.56.2

Compare Source

  • chore: update PHPStan (#​8010)
  • DX: Fix Mess Detector violations (#​8007)
  • DX: Install PCov extension for local Docker (#​8006)

v3.56.1

Compare Source

  • chore: improve PHPDoc typehints (#​7994)
  • CI: Allow any integer in PHPStan error for Token's constructor (#​8000)
  • fix: Better array shape in PhpUnitDedicateAssertFixer (#​7999)
  • fix: ConstantCaseFixer - do not touch typed constants (#​7998)

v3.56.0

Compare Source

  • feat: TrailingCommaInMultilineFixer - handle trailing comma in language constructs (#​7989)
  • fix: TrailingCommaInMultilineFixer - language constructs should be covered by arguments, not parameters (#​7990)
  • chore: remove invalid comment (#​7987)
  • DX: Cache optimisation (#​7985)

v3.55.0

Compare Source

  • feat: Introduce OrderedAttributesFixer (#​7395)
  • chore: few SCA fixes and dev-tools update (#​7969)
  • chore: fix phpdoc types (#​7977)
  • chore: narrow PHPDoc types (#​7979)
  • chore: Normalize implicit backslashes in single quoted strings internally (#​7786)
  • chore: phpdoc - rely on strict list/tuple/assoc instead of array (#​7978)
  • chore: PhpUnitDataProviderNameFixer - follow config creation pattern (#​7980)
  • chore: Preg - drop half-support for array-pattern (#​7976)
  • chore: re-use CodeHasher (#​7984)
  • chore: RuleSetsTest - assert that Fixer is configurable (#​7961)
  • chore: sugar syntax (#​7986)
  • chore: Tokens should be always a list (#​7698)
  • CI: Ad-hoc fix for MacOS jobs (#​7970)
  • CI: Fix calculating diff between branches in PRs (#​7973)
  • DX: allow to enforce cache mechanism by env var (#​7983)
  • DX: do not typehint fixed-length arrays as lists (#​7974)
  • DX: Prevent having deprecated fixers listed as successors of other deprecated fixers (#​7967)
  • DX: Resolve/Ignore PHPStan issues on level 6 + bump to level 7 with new baseline (#​7971)
  • DX: use list type in PHPDoc (#​7975)
  • fix: PhpUnitAttributesFixer - fix for #[RequiresPhp] exceeding its constructor parameters (#​7966)
  • test: don't count comment after class as another classy element (#​7982)

v3.54.0

Compare Source

  • feat: introduce PhpUnitAttributesFixer (#​7831)
  • chore: Properly determine self-approval trigger commit (#​7936)
  • chore: Revert ref for self-approval Git checkout (#​7944)
  • CI: check if proper array key is declared (#​7912)
  • DX: cleanup FullyQualifiedStrictTypesFixerTest (#​7954)
  • DX: cleanup PhpdocNoAccessFixerTest (#​7933)
  • DX: cleanup PhpUnitMethodCasingFixerTest (#​7948)
  • DX: cleanup PhpUnitStrictFixerTest (#​7938)
  • DX: Improve internal dist config for Fixer (#​7952)
  • DX: Improve issue templates (#​7942)
  • DX: there is no namespace if there is no PHP code (#​7953)
  • DX: update .gitattributes (#​7931)
  • fix: Remove Infection during Docker release (#​7937)
  • fix: FullyQualifiedStrictTypesFixer - do not add imports before PHP opening tag (#​7955)
  • fix: PhpUnitMethodCasingFixer - do not double underscore (#​7949)
  • fix: PhpUnitTestClassRequiresCoversFixer - do not add annotation when there are attributes (#​7880)
  • test: Ignore PHP version related mutations (#​7935)

v3.53.0

Compare Source

  • chore: Use list over array in more places (#​7905)
  • CI: allow for self-approvals for maintainers (#​7921)
  • CI: Improve Infection setup (#​7913)
  • CI: no need to trigger enable auto-merge when self-approve (#​7929)
  • DX: reduce array_filter function usages (#​7923)
  • DX: remove duplicated character from trim call (#​7930)
  • DX: update actions producing warnings (#​7925)
  • DX: update actions producing warnings (#​7928)
  • DX: update phpstan/phpstan-strict-rules (#​7924)
  • feat: Add trailing comma in multiline to PER-CS 2.0 (#​7916)
  • feat: Introduce AttributeAnalysis (#​7909)
  • feat: @PHP84Migration introduction (#​7774)
  • fix: Constant invocation detected in typed constants (#​7892)
  • fix: PhpdocArrayTypeFixer - JIT stack limit exhausted (#​7895)
  • test: Introduce Infection for mutation tests (#​7874)

v3.52.1

Compare Source

  • fix: StatementIndentationFixer - do not crash on ternary operator in class property (#​7899)
  • fix: PhpCsFixer\Tokenizer\Tokens::setSize return type (#​7900)

v3.52.0

Compare Source

  • chore: fix PHP 8.4 deprecations (#​7894)
  • chore: fix PHPStan 1.10.60 issues (#​7873)
  • chore: list over array in more places (#​7876)
  • chore: replace template with variable in Preg class (#​7882)
  • chore: update PHPStan (#​7871)
  • depr: nullable_type_declaration_for_default_null_value - deprecate option that is against @PHP84Migration (#​7872)
  • docs: Fix typo (#​7889)
  • feat: Add support for callable template in PHPDoc parser (#​7084)
  • feat: Add array_indentation to PER-CS2.0 ruleset (#​7881)
  • feat: @Symfony:risky - add no_unreachable_default_argument_value (#​7863)
  • feat: PhpCsFixer ruleset - enable nullable_type_declaration_for_default_null_value (#​7870)
  • fix: Constant invocation detected in DNF types (#​7869)
  • fix: Correctly indent multiline constants and properties (#​7875)
  • fix: no_useless_concat_operator - do not break variable (#​7827)
  • fix: TokensAnalyzer - handle unary operator in arrow functions (#​7862)
  • fix: TypeExpression - fix "JIT stack limit exhausted" error (#​7843)

v3.51.0

Compare Source

  • chore: add missing tests for non-documentation classes (#​7848)
  • chore: do not perform type analysis in tests (#​7852)
  • chore: list over array in more places (#​7857)
  • chore: tests documentation classes (#​7855)
  • feat: @Symfony - add nullable_type_declaration (#​7856)
  • test: fix wrong type in param annotation (#​7858)

v3.50.0

Compare Source

  • chore: add missing types (#​7842)
  • chore: BlocksAnalyzer - raise exception on invalid index (#​7819)
  • chore: DataProviderAnalysis - expect list over array (#​7800)
  • chore: do not use @large on method level (#​7832)
  • chore: do not use @medium on method level (#​7833)
  • chore: Fix typos (#​7835)
  • chore: rename variables (#​7847)
  • chore: some improvements around array typehints (#​7799)
  • CI: fix PHP 8.4 job (#​7829)
  • DX: Include symfony/var-dumper in dev tools (#​7795)
  • feat: Ability to remove unused imports from multi-use statements (#​7815)
  • feat: allow PHPUnit 11 (#​7824)
  • feat: Allow shortening symbols from multi-use statements (only classes for now) (#​7816)
  • feat: introduce PhpdocArrayTypeFixer (#​7812)
  • feat: PhpUnitTestCaseStaticMethodCallsFixer - cover PHPUnit v11 methods (#​7822)
  • feat: Support for multi-use statements in NamespaceUsesAnalyzer (#​7814)
  • feat: MbStrFunctionsFixer - add support for mb_trim, mb_ltrim and mb_rtrim functions (#​7840)
  • feat: NoEmptyPhpdocFixer - do not leave empty line after removing PHPDoc (#​7820)
  • feat: no_superfluous_phpdoc_tags - introduce allow_future_params option (#​7743)
  • fix: do not use wrongly named arguments in data providers (#​7823)
  • fix: Ensure PCNTL extension is always installed in Docker (#​7782)
  • fix: PhpdocListTypeFixer - support key types containing <…> (#​7817)
  • fix: Proper build target for local Docker Compose (#​7834)
  • fix: union PHPDoc support in fully_qualified_strict_types fixer (#​7719)
  • fix: ExecutorWithoutErrorHandler - remove invalid PHP 7.4 type (#​7845)
  • fix: fully_qualified_strict_types must honour template/local type identifiers (#​7724)
  • fix: MethodArgumentSpaceFixer - do not break heredoc/nowdoc (#​7828)
  • fix: NumericLiteralSeparatorFixer - do not change float to int when there is nothing after the dot (#​7805)
  • fix: PhpUnitStrictFixer - do not crash on property having the name of method to fix (#​7804)
  • fix: SingleSpaceAroundConstructFixer - correctly recognise multiple constants (#​7700)
  • fix: TypeExpression - handle array shape key with dash (#​7841)

v3.49.0

Compare Source

  • chore(checkbashisms): update to 2.23.7 (#​7780)
  • chore: add missing key types in PHPDoc types (#​7779)
  • chore: Exclude topic/core issues/PRs from Stale Bot (#​7788)
  • chore: DescribeCommand - better handling of deprecations (#​7778)
  • docs: docker - use gitlab reporter in GitLab integration example (#​7764)
  • docs: docker in CI - don't suggest command that overrides path from config file (#​7763)
  • DX: check deprecations exactly (#​7742)
  • feat: Add ordered_types to @Symfony (#​7356)
  • feat: introduce PhpdocListTypeFixer (#​7796)
  • feat: introduce string_implicit_backslashes as escape_implicit_backslashes replacement (#​7669)
  • feat: update Symfony.nullable_type_declaration_for_default_null_value config (#​7773)
  • feat: @PhpCsFixer ruleset - enable php_unit_data_provider_static (#​7685)
  • fix: Allow using cache when running in Docker distribution (#​7769)
  • fix: ClassDefinitionFixer for anonymous class with phpdoc/attribute on separate line (#​7546)
  • fix: ClassKeywordFixer must run before FullyQualifiedStrictTypesFixer (#​7767)
  • fix: function_to_constant get_class() replacement (#​7770)
  • fix: LowercaseStaticReferenceFixer - do not change typed constants (#​7775)
  • fix: PhpdocTypesFixer - handle more complex types (#​7791)
  • fix: TypeExpression - do not break type using walkTypes method (#​7785)

v3.48.0

Compare Source

  • chore: FullyQualifiedStrictTypesFixer must run before OrderedInterfacesFixer (#​7762)
  • docs: Add PHP-CS-Fixer integration in a GitHub Action step (#​7757)
  • feat: PhpdocTypesOrderFixer Support DNF types (#​7732)
  • fix: Support shebang in fixers operating on PHP opening tag (#​7687)
  • fix: work correctly for a switch/case with ternary operator (#​7756)
  • fix: NoUselessConcatOperatorFixer - do not remove new line (#​7759)

v3.47.1

Compare Source

  • fix: Do not override short name with relative reference (#​7752)
  • fix: make BinaryOperatorSpacesFixer work as pre-v3.47 (#​7751)
  • fix: Proper Docker image name suffix (#​7739)
  • fix: FullyQualifiedStrictTypesFixer - do not change case of the symbol when there's name collision between imported class and imported function (#​7750)
  • fix: FullyQualifiedStrictTypesFixer - do not modify statements with property fetch and :: (#​7749)

v3.47.0

Compare Source

  • chore: better identify EXPERIMENTAL rules (#​7729)
  • chore: fix issue detected by unlocked PHPStan + upgrade dev-tools (#​7678)
  • chore: handle extract() (#​7684)
  • chore: Mention contributors in app info (#​7668)
  • chore: no need to mark private methods as internal (#​7715)
  • chore: ProjectCodeTests - dry for function usage extractions (#​7690)
  • chore: reduce PHPStan baseline (#​7644)
  • chore: use numeric literal separator for PHP version IDs (#​7712)
  • chore: use numeric_literal_separator for project (#​7713)
  • chore: Utils::sortElements - better typing (#​7646)
  • CI: Allow running Stale Bot on demand (#​7711)
  • CI: Fix PHP 8.4 (#​7702)
  • CI: Give write permissions to Stale Bot (#​7716)
  • CI: Use actions/stale v9 (#​7710)
  • docs: Add information about allowing maintainers to update PRs (#​7683)
  • docs: CONTRIBUTING.md - update Opening a PR (#​7691)
  • docs: Display/include tool info/version by default in commands and reports (#​7733)
  • DX: fix deprecation tests warnings for PHP 7.4 (#​7725)
  • DX: update host.docker.internal in Compose override template (#​7661)
  • DX: NumericLiteralSeparatorFixer - change default strategy to use_separator (#​7730)
  • feat: Add support for official Docker images of Fixer (#​7555)
  • feat: Add spacing option to PhpdocAlignFixer (#​6505)
  • feat: Add union_types option to phpdoc_to_param_type, phpdoc_to_property_type, and phpdoc_to_return_type fixers (#​7672)
  • feat: Introduce heredoc_closing_marker fixer (#​7660)
  • feat: Introduce multiline_string_to_heredoc fixer (#​7665)
  • feat: Introduce NumericLiteralSeparatorFixer (#​6761)
  • feat: no_superfluous_phpdoc_tags - support for arrow function (#​7666)
  • feat: Simplify closing marker when possible in heredoc_closing_marker fixer (#​7676)
  • feat: Support typed properties and attributes in fully_qualified_strict_types (#​7659)
  • feat: @PhpCsFixer ruleset - enable no_whitespace_before_comma_in_array.after_heredoc (#​7670)
  • fix: Improve progress bar visual layer (#​7708)
  • fix: indentation of control structure body without braces (#​7663)
  • fix: make sure all PHP extensions required by PHPUnit are installed (#​7727)
  • fix: PhpdocToReturnTypeFixerTest - support for arrow functions (#​7645)
  • fix: Several improvements for fully_qualified_strict_types (respect declared symbols, relative imports, leading backslash in global namespace) (#​7679)
  • fix: SimplifiedNullReturnFixer - support array return typehint (#​7728)
  • fix: Support numeric values without leading zero in numeric_literal_separator (#​7735)
  • fix: BinaryOperatorSpacesFixer - align correctly when multiple shifts occurs in single line (#​7593)
  • fix: ClassReferenceNameCasingFixer capitalizes the property name after the nullsafe operator (#​7696)
  • fix: fully_qualified_strict_types with leading_backslash_in_global_namespace enabled - handle reserved types in phpDoc (#​7648)
  • fix: NoSpaceAroundDoubleColonFixer must run before MethodChainingIndentationFixer (#​7723)
  • fix: no_superfluous_phpdoc_tags must honour multiline docs (#​7697)
  • fix: numeric_literal_separator - Handle zero-leading floats properly (#​7737)
  • refactor: increase performance by ~7% thanks to Tokens::block*Cache hit increased by ~12% (#​6176)
  • refactor: Tokens - fast check for non-block in 'detectBlockType', evaluate definitions only once in 'getBlockEdgeDefinitions' (#​7655)
  • refactor: Tokens::clearEmptyTokens - play defensive with cache clearing (#​7658)
  • test: ensure we do not forget to test any short_open_tag test (#​7638)

v3.46.0

Compare Source

  • chore: fix internal typehints in Tokens (#​7656)
  • chore: reduce PHPStan baseline (#​7643)
  • docs: Show class with unit tests and BC promise info (#​7667)
  • feat: change default ruleset to @PER-CS (only behind PHP_CS_FIXER_FUTURE_MODE=1) (#​7650)
  • feat: Support new/instanceof/use trait in fully_qualified_strict_types (#​7653)
  • fix: FQCN parse phpdoc using full grammar regex (#​7649)
  • fix: Handle FQCN properly with leading_backslash_in_global_namespace option enabled (#​7654)
  • fix: PhpdocToParamTypeFixerTest - support for arrow functions (#​7647)
  • fix: PHP_CS_FIXER_FUTURE_MODE - proper boolean validation (#​7651)

v3.45.0

Compare Source

  • feat: Enable symbol importing in @PhpCsFixer ruleset (#​7629)
  • fix: NoUnneededBracesFixer - improve handling of global namespace (#​7639)
  • test: run tests with "short_open_tag" enabled (#​7637)

v3.44.0

Compare Source

  • feat: Introduce percentage bar as new default progress output (#​7603)

v3.43.1

Compare Source

  • fix: Import only unique symbols' short names (#​7635)

v3.43.0

Compare Source

  • chore: change base of @Symfony set to @PER-CS2.0 (#​7627)
  • chore: PHPUnit - allow for v10 (#​7606)
  • chore: Preg - rework catching the error (#​7616)
  • chore: Revert unneeded peer-dep-pin and re-gen lock file (#​7618)
  • docs: drop extra note about 8.0.0 bug in README.md (#​7614)
  • feat: add cast_spaces into @PER-CS2.0 (#​7625)
  • feat: Configurable phpDoc tags for FQCN processing (#​7628)
  • feat: StatementIndentationFixer - introduce stick_comment_to_next_continuous_control_statement config (#​7624)
  • feat: UnaryOperatorSpacesFixer - introduce only_dec_inc config (#​7626)
  • fix: FullyQualifiedStrictTypesFixer - better support annotations in inline {} (#​7633)
  • fix: Improve how FQCN is handled in phpDoc (#​7622)
  • fix: phpdoc_align - fix multiline tag alignment issue (#​7630)

v3.42.0

Compare Source

  • chore: aim to not rely on internal array pointer but use array_key_first (#​7613)
  • chore: deprecate Token::isKeyCaseSensitive (#​7599)
  • chore: deprecate Token::isKeyCaseSensitive, 2nd part (#​7601)
  • chore: do not check PHP_VERSION_ID (#​7602)
  • chore: FileFilterIteratorTest - more accurate type in docs (#​7542)
  • chore: minor code cleanup (#​7607)
  • chore: more types (#​7598)
  • chore: PHPDoc key-value spacing (#​7592)
  • chore: PHPUnit - run defects first (#​7570)
  • chore: ProjectCodeTest - DRY on Tokens creation (#​7574)
  • chore: ProjectCodeTest - prepare for symfony/console v7 (#​7605)
  • chore: ProjectCodeTest::provide*ClassCases to return iterable with key for better tests execution log (#​7572)
  • chore: ProjectCodeTest::testDataProvidersDeclaredReturnType - use better DataProvider to simplify test logic (#​7573)
  • chore: TokensAnalyzer - string-enum for better typehinting (#​7571)
  • chore: unify tests not agnostic of PHP version (#​7581)
  • chore: use ::class more (#​7545)
  • CI: Introduce composer-unused (#​7536)
  • DX: add types to anonymous functions (#​7561)
  • DX: Allow running smoke tests within Docker runtime (#​7608)
  • DX: check fixer's options for wording (#​7543)
  • DX: cleanup deprecation message (#​7576)
  • DX: do not allow overriding constructor of PHPUnit\Framework\TestCase (#​7563)
  • DX: do not import ExpectDeprecationTrait in UtilsTest (#​7562)
  • DX: Enforce consistent naming in tests (#​7556)
  • DX: fix checking test class extends PhpCsFixer\Tests\TestCase (#​7567)
  • DX: make sure that exceptions in AbstractFixerTestCase::testProperMethodNaming are not already fixed (#​7588)
  • DX: remove recursion from AbstractIntegrationTestCase::testIntegration (#​7577)
  • DX: remove PhpUnitNamespacedFixerTest::testClassIsFixed (#​7564)
  • DX: remove symfony/phpunit-bridge (#​7578)
  • DX: replace fixture classes with anonymous ones (#​7533)
  • DX: Unify Docker mount points and paths (#​7549)
  • DX: unify fixer's test method names - quick wins (#​7584)
  • DX: unify tests for casing fixers (#​7558)
  • DX: use anonymous function over concrete classes (#​7553)
  • feat(EXPERIMENTAL): ClassKeywordFixer (#​2918)
  • feat(EXPERIMENTAL): ClassKeywordFixer, part 2 (#​7550)
  • feat(PhpdocToCommentFixer): Add option to handle return as valid docblock usage (#​7401) (#​7402)
  • feat: Ability to import FQCNs found during analysis (#​7597)
  • feat: add phpDoc support for fully_qualified_strict_types fixer (#​5620)
  • feat: Handle deprecated rule sets similarly to deprecated fixers (#​7288)
  • feat: PhpUnitTestCaseStaticMethodCallsFixer - cover PHPUnit v10 methods (#​7604)
  • feat: Support more FQCNs cases in fully_qualified_strict_types (#​7459)
  • fix: AbstractFixerTestCase - fix checking for correct casing (#​7540)
  • fix: Better OS detection in integration tests (#​7547)
  • fix: NativeTypeDeclarationCasingFixer - handle static property without type (#​7589)
  • test: AutoReview - unify data provider returns (#​7544)
  • test: check to have DataProviders code agnostic of PHP version (#​7575)

v3.41.1

Compare Source

  • DX: Change @testWith to @dataProvider (#​7535)
  • DX: Introduce Markdownlint (#​7534)
  • fix: NativeTypeDeclarationCasingFixer - do not crash on var keyword (#​7538)

v3.41.0

Compare Source

  • chore: Move mb_str_functions PHP 8.3 cases to separate test (#​7505)
  • chore: Symfony v7 is now stable (#​7469)
  • CI: drop PHP 8.3 hacks (#​7519)
  • docs: Improve docs for no_spaces_after_function_name (#​7520)
  • DX: Ability to run Sphinx linter locally (#​7481)
  • DX: AbstractFixerTest - use anonymous classes (#​7527)
  • DX: Add progress output for cs:check script (#​7514)
  • DX: align doubles naming (#​7525)
  • DX: remove AbstractFixerTestCase::getTestFile() (#​7495)
  • DX: remove jangregor/phpstan-prophecy (#​7524)
  • DX: remove Prophecy (#​7509)
  • DX: replace Prophecy with anonymous classes in CacheTest (#​7503)
  • DX: replace Prophecy with anonymous classes in ProcessLintingResultTest (#​7501)
  • DX: Utilise auto-discovery for PHPStan formatter (#​7490)
  • feat: Support mb_str_pad function in mb_str_functions rule (#​7499)
  • fix: BinaryOperatorSpacesFixer - do not add whitespace inside short function (#​7523)
  • fix: Downgrade PDepend to version not supporting Symfony 7 (#​7513)
  • fix: GlobalNamespaceImportFixer - key in PHPDoc's array shape matching class name (#​7522)
  • fix: SpacesInsideParenthesesFixer - handle class instantiation parentheses (#​7531)
  • Update PHPstan to 1.10.48 (#​7532)

v3.40.2

Compare Source

  • docs: fix link to source classes (#​7493)

v3.40.1

Compare Source

  • chore: Delete stray file x (#​7473)
  • chore: Fix editorconfig (#​7478)
  • chore: Fix typos (#​7474)
  • chore: Fix YAML line length (#​7476)
  • chore: Indent JSON files with 4 spaces (#​7480)
  • chore: Make YAML workflow git-based (#​7477)
  • chore: Use stable XDebug (#​7489)
  • CI: Lint docs (#​7479)
  • CI: Use PHPStan's native Github error formatter (#​7487)
  • DX: fix PHPStan error (#​7488)
  • DX: PsrAutoloadingFixerTest - do not build mock in data provider (#​7491)
  • DX: PsrAutoloadingFixerTest - merge all data providers into one (#​7492)
  • DX: Update PHPStan to 1.10.46 (#​7486)
  • fix: NoSpacesAfterFunctionNameFixer - do not remove space if the opening parenthesis part of an expression (#​7430)

v3.40.0

Compare Source

  • chore: officially support PHP 8.3 (#​7466)
  • chore: update deps (#​7471)
  • CI: add --no-update while dropping non-compat facile-it/paraunit (#​7470)
  • CI: automate --ignore-platform-req=PHP (#​7467)
  • CI: bump actions/github-script to v7 (#​7468)
  • CI: move humbug/box out of dev-tools/composer.json (#​7472)

v3.39.1

Compare Source

  • DX: introduce SwitchAnalyzer (#​7456)
  • fix: NoExtraBlankLinesFixer - do not remove blank line after ? : throw (#​7457)
  • fix: OrderedInterfacesFixer - do not comment out interface (#​7464)
  • test: Improve ExplicitIndirectVariableFixerTest (#​7451)

v3.39.0

Compare Source

  • chore: Add support for Symfony 7 (#​7453)
  • chore: IntegrationTest - move support of php< requirement to main Integration classes (#​7448)
  • CI: drop Symfony ^7 incompat exceptions of php-coveralls and cli-executor (#​7455)
  • CI: early compatibility checks with Symfony 7 (#​7431)
  • docs: drop list.rst and code behind it (#​7436)
  • docs: remove Gitter mentions (#​7441)
  • DX: Ability to run Fixer on PHP8.3 for development (#​7449)
  • DX: describe command - for rules, list also sets that are including them (#​7419)
  • DX: Docker clean up (#​7450)
  • DX: more usage of spaceship operator (#​7438)
  • DX: Put Preg's last error message in exception message (#​7443)
  • feat: Introduce @PHP83Migration ruleset and PHP 8.3 integration test (#​7439)
  • test: Improve AbstractIntegrationTestCase description (#​7452)

v3.38.2

Compare Source

  • docs: fix 'Could not lex literal_block as "php". Highlighting skipped.' (#​7433)
  • docs: small unification between FixerDocumentGenerator and ListDocumentGenerator (#​7435)
  • docs: unify ../ <> ./../ (#​7434)

v3.38.1

Compare Source

  • chore: ListSetsCommand::execute - add missing return type (#​7432)
  • chore: PHPStan - add counter to dataProvider exception, so we do not increase the tech debt on it (#​7425)
  • CI: Use actions/checkout v4 (#​7423)
  • fix: ClassAttributesSeparationFixer - handle Disjunctive Normal Form types parentheses (#​7428)
  • fix: Remove all variable names in @var callable signature (#​7429)
  • fix: Satisfy composer normalize (#​7424)

v3.38.0

Compare Source

  • chore: upgrade phpstan (#​7421)
  • CI: add curl and mbstring to build php (#​7409)
  • CI: cache dev-tools/bin (#​7416)
  • CI: Composer - move prefer-stable to file config (#​7406)
  • CI: conditionally install flex (#​7412)
  • CI: dev-tools/build.sh - no need to repeat 'prefer-stable', but let's use '--no-scripts' (#​7408)
  • CI: Do not run post-autoload-dump on Composer install (#​7403)
  • CI: general restructure (#​7407)
  • CI: GitHub Actions - use actions/cache for Composer in composite action (#​7415)
  • CI: Improve QA process - supplement (#​7411)
  • CI: prevent Infection plugins during build time, as we do not use it (#​7422)
  • CI: simplify setup-php config (#​7404)
  • DX: Do not mark as stale issues/PRs with milestone assigned (#​7398)
  • DX: Improve QA process (#​7366)
  • feat: phpDoc to property/return/param Fixer - allow fixing mixed on PHP >= 8 (#​6356)
  • feat: phpDoc to property/return/param Fixer - allow fixing union types on PHP >= 8 (#​6359)
  • feat: Support for array destructuring in array_indentation (#​7405)
  • feat: @Symfony - keep Annotation,NamedArgumentConstructor,Target annotations as single group (#​7399)
  • fix(SelfAccessorFixer): do not touch references inside lambda and/or arrow function (#​7349)
  • fix: long_to_shorthand_operator - mark as risky fixer (#​7418)
  • fix: OrderedImportsFixer - handle non-grouped list of const/function imports (#​7397)

v3.37.1

Compare Source

  • docs: config file - provide better examples (#​7396)
  • docs: config file - provide better link to Finder docs (#​6992)

v3.37.0

Compare Source

  • feat: add parallel cache support (#​7131)

v3.36.0

Compare Source

  • chore: disable infection-installer plugin, as we do not use infection/* yet (#​7391)
  • chore: Run dev-tools on PHP 8.2 (#​7389)
  • CI: Run Symfony 6 compat check on PHP 8.1 (#​7383)
  • CI: use fast-linter when calculating code coverage (#​7390)
  • docs: extend example for nullable_type_declaration (#​7381)
  • DX: FixerFactoryTest - make assertion failing msg more descriptive (#​7387)
  • feat: PhpdocSummaryFixer - support lists in description (#​7385)
  • feat: PSR12 - configure unary_operator_spaces (#​7388)
  • feat: StatementIndentationFixer - support comment for continuous control statement (#​7384)

v3.35.1

Compare Source

  • fix: Mark PhpdocReadonlyClassCommentToKeywordFixer as risky (#​7372)

v3.35.0

Compare Source

  • chore: Autoreview: test all formats are listed in usage.rst (#​7357)
  • chore: no need for phpunitgoodpractices/traits anymore (#​7362)
  • chore: Rename indexes to indices (#​7368)
  • chore: stop using phpunitgoodpractices/traits (#​7363)
  • chore: typo (#​7367)
  • docs: Sort options in documentation (#​7345)
  • feat(PhpdocReadonlyClassCommentToKeywordFixer): Introduction (#​7353)
  • feat: Ability to keep/enforce leading \ when in global namespace (#​7186)
  • feat: Update @PER-CS2.0 to match short closure space (#​6970)
  • feat: use ordered_types in @PhpCsFixer (#​7361)
  • fix(SingleLineThrowFixer): fixer goes out of range on close tag (#​7369)

v3.34.1

Compare Source

  • deps: revert "prevent using PHPCSFixer along with unfinalize package (#​7343)" (#​7348)

v3.34.0

Compare Source

  • feat: Introduce check command (alias for fix --dry-run) (#​7322)

v3.33.1: The Old Guard

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.33.0...v3.33.1

v3.33.0

Compare Source

  • feat: Introduce native_type_declaration_casing fixer (#​7330)

v3.32.1: Deprecation train

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.32.0...v3.32.1

v3.32.0

Compare Source

  • deps: Prevent using PHPCSFixer along with unfinalize package (#​7343)
  • feat: Deprecate CompactNullableTypehintFixer and proxy to CompactNullableTypeDeclarationFixer (#​7339)
  • feat: Deprecate CurlyBracesPositionFixer and proxy to BracesPositionFixer (#​7334)
  • feat: Deprecate NewWithBracesFixer and proxy to NewWithParenthesesFixer (#​7331)
  • feat: Deprecate NoUnneededCurlyBracesFixer and proxy to NoUnneededBracesFixer (#​7335)
  • feat: Rename CurlyBraceTransformer to BraceTransformer (#​7333)

v3.31.0

Compare Source

  • chore: Use type declaration instead of type hint (#​7338)
  • feat: Introduce attribute_placement option for MethodArgumentSpaceFixer (#​7320)
  • fix: Adjust wording related to deprecations (#​7332)
  • fix: Correct deprecation header in rules' docs (#​7337)
  • fix: Replace mention of bracket with parenthesis (#​7336)
  • fix: FunctionToConstantFixer should run before NativeConstantInvocationFixer (#​7344)

v3.30.0

Compare Source

  • feat: Introduce AttributeEmptyParenthesesFixer (#​7284)
  • fix(method_argument_space): inject new line after trailing space on current line (#​7327)
  • fix(YodaStyleFixer): do not touch require(_once), include(_once) and yield from statements (#​7325)
  • fix: illegal offset type on file-wide return in ReturnToYieldFromFixer (#​7318)

v3.29.0

Compare Source

  • chore: fix TODO tasks about T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG support (#​7316)
  • feat(@PhpCsFixer:risky): use newest @PER-CS:risky instead of locked @PER-CS2.0:risky (#​7323)
  • feat: Introduce @PER-CS ruleset (#​7321)
  • fix: priority issue between array_syntax and space after rules (#​7324)

v3.28.0

Compare Source

  • chore(prlint): allow for 'deps' type (#​7304)
  • CI(prlint): allow for special chars in parentheses (#​7308)
  • deps(dev-tools): update dev-tools (#​7309)
  • DX: Bump XDebug version in Docker services (#​7300)
  • feat(@PER-CS2.0): Add concat_space to the ruleset (#​7302)

v3.27.0

Compare Source

  • docs: cleanup old mention of --show-progress=estimating in docs (#​7287)
  • DX: add Composer script for applying CS fixes in parallel (#​7274)
  • feat: Clone PER-CS1.0 to PER-CS2.0 to prepare for adding new rules (#​7249)
  • feat: Introduce LongToShorthandOperatorFixer (#​7295)
  • feat: Mark PER-CS v1 as deprecated (#​7283)
  • feat: Move single_line_empty_body to @PER-CS2.0 (#​7282)
  • fix: Priorities for fixers related to curly braces, empty lines and trailing whitespace (#​7296)
  • fix: OrderedTraitsFixer - better support for multiple traits in one use statement (#​7289)

v3.26.1

Compare Source

  • fix: Handle superfluous asterisk in no_superfluous_phpdoc_tags (#​7279)

v3.26.0

Compare Source

  • chore(checkbashisms): update to 2.23.6 (#​7276)
  • chore(phpstan): reduce baseline (#​7275)
  • feat: Add single_line_empty_body to @PhpCsFixer (#​7266)
  • fix(YieldFromArrayToYieldsFixer): mark as Risky (#​7272)
  • fix(YieldFromArrayToYieldsFixer): skip touching empty array (#​7273)
  • test: Introduce common way of creating fake Composer project in InstallViaComposerTest (#​7265)

v3.25.1

Compare Source

  • fix: PhpdocTypesFixer - do not crash for type followed by braces/brackets/chevrons/parentheses (#​7268)

v3.25.0

Compare Source

  • feat: Remove Doctrine dependencies (#​7263)

v3.24.0

Compare Source

  • chore: apply CS (#​7240)
  • chore: apply static_lambda rule (#​7239)
  • chore: Improve template for creating new issue (#​7255)
  • CI: Conventional Commits support in PRLint config (#​7037)
  • CI: Remove Travis leftovers (#​7259)
  • docs: Add information about installing Fixer as dev dependency (#​7129)
  • docs: document composer script aliases (#​7230)
  • DX: Add script for running Composer Require Checker (#​7252)
  • DX: composer script aliases - ensure templated description (#​7235)
  • DX: composer-script - count PHPMD as static-analysis (#​7231)
  • DX: do not allow version specific code sample with minimum PHP version lower than the lowest supported one (#​7207)
  • DX: ensure version specific code samples are suitable for at least 1 supported PHP version (#​7212)
  • DX: Improve contributing guide (#​7241)
  • DX: More descriptive stale messages (#​7236)
  • feat(@​PhpCsFixer:risky): add static_lambda rule (#​7237)
  • feat: Add literal separator support for integer_literal_case (#​7081)
  • feat: Configurable case sensitivity for more ordering fixers (#​7021)
  • feat: Support for attributes in method_argument_space (#​7242)
  • fix: import detection for attributes at NoUnusedImportsFixer (#​7246)
  • fix: no_superfluous_phpdoc_tags with null phpdoc (#​7234)
  • fix: phpdoc_types must not lowercase literal types (#​7108)
  • test: Add static methods from PHPUnit 9.6.11 (#​7243)

v3.23.0

Compare Source

  • bug: BlankLineBeforeStatementFixer - do not enforce/add a blank line when there is a blank line between the comment and the statement already (#​7190)
  • bug: Fix detecting classy invocation in catch (#​7191)
  • bug: Fix names resolving in no_superfluous_phpdoc_tags fixer (#​7189)
  • bug: Fix various bugs in FullyQualifiedStrictTypesFixer fixer (#​7188)
  • bug: Fixed line between general script documentation and require (#​7177)
  • bug: Support annotations with arguments in FinalInternalClassFixer (#​7160)
  • bug: YieldFromArrayToYieldsFixer - fix for yield from after } (#​7169)
  • bug: YieldFromArrayToYieldsFixer - fix handling the comment before the first array element (#​7193)
  • bug: HeaderCommentFixer must run before BlankLinesBeforeNamespaceFixer (#​7205)
  • bug: NoUselessReturnFixer must run before SingleLineEmptyBodyFixer (#​7226)
  • bug: PhpdocInlineTagNormalizerFixer - do not break tags (#​7227)
  • docs: Add allowed values of tags in the phpdoc_align (#​7120)
  • docs: Add extra information for GitLab reporter's integration with GitLab Code Quality (#​7172)
  • docs: Change the single backticks to double in description of the rules option (#​7173)
  • docs: Condensed output for rule sets' list that fixer is included in (#​7182)
  • docs: Improve contributing guide (#​7204)
  • docs: MethodArgumentSpaceFixer - mention PSR in Fixer definition (#​7157)
  • DX: add first auto-review tests for composer.json file (#​7210)
  • DX: add YieldFromArrayToYieldsFixer to PhpCsFixer set (#​7115)
  • DX: Allow OS conditions for integration tests (#​7161)
  • DX: Apply current CS rules (#​7178)
  • DX: Apply suggestions from PR 7210 (#​7213)
  • DX: apply ReturnToYieldFromFixer (#​7181)
  • DX: Do not mark "long term ideas" as stale (#​7206)
  • DX: enable HeredocIndentationFixer for the codebase (#​7195)
  • DX: enable UseArrowFunctionsFixer for the codebase (#​7194)
  • DX: few phpstan fixes (#​7208)
  • DX: fix contravariant types in PHPDocs (#​7167)
  • DX: Fix detecting trailing spaces (#​7216)
  • DX: Fix some PHPStan issues (#​7180)
  • DX: Get rid of deprecation warnings in Mess Detector (#​7215)
  • DX: Improve Composer scripts (#​7214)
  • DX: Improve Mess Detector Integration (#​7224)
  • DX: Introduce Composer scripts as common DX (#​6839)
  • DX: refactor ErrorOutputTest (#​7183)
  • DX: remove unnecessary arrays from data providers (#​7170)
  • DX: update CurlyBracesPositionFixer code samples (#​7198)
  • DX: update HeredocIndentationFixer code samples (#​7197)
  • DX: update PhpdocToReturnTypeFixer code samples (#​7199)
  • feature: add at least one space around binary operators (#​7175)
  • feature: BlankLineBeforeStatementFixer - take into account comment before statement (#​7166)
  • feature: Introduce ReturnToYieldFromFixer (#​7168)
  • feature: Introduce SpacesInsideParenthesesFixer (#​5709)
  • feature: Support array destructuring in trim_array_spaces (#​7218)
  • feature: BlankLineBeforeStatementFixer - skip enum cases (#​7203)
  • minor: more arrow function usage (#​7223)
  • minor: PhpdocAlignFixerTest - convert CUSTOM tags test to not rely on non-custom tag from TAGS_WITH_NAME (#​7209)
  • minor: use JSON_THROW_ON_ERROR for trivial cases (#​7221)
  • minor: use more spread operator (#​7222)

v3.22.0

Compare Source

  • DX: add proper test for SelfAccessorFixer must run before SelfAccessorFixer (#​7153)
  • DX: FixerFactoryTest - apply CS (#​7154)
  • feature: Introduce PhpUnitDataProviderReturnTypeFixer (#​7156)
  • feature: Introduce YieldFromArrayToYieldsFixer (#​7114)

v3.21.3

Compare Source

  • Revert "DX: encourage to provide wider description" (#​7155)

v3.21.2

Compare Source

  • docs: check format of FixerDefinition::getDescription() (#​7127)
  • DX: add phpstan/phpstan-strict-rules (#​7143)
  • DX: allow for progressive cache (#​7132)
  • DX: Copy-pasteable class::getPriority for phpDoc diffs (#​7148)
  • DX: do not allow linebreak at the beginning of code sample (#​7126)
  • DX: encourage to provide wider description (#​7128)
  • DX: fix function calls (#​7136)
  • DX: fix PHPDoc types issues (#​7135)
  • DX: improve Tokens checking for found tokens (#​7139)
  • DX: Make AbstractFixerTestCase::getTestFile() final (#​7116)
  • DX: make array_search call strict (#​7145)
  • DX: remove empty calls (#​7138)
  • DX: store cache to file only if content will get modified (#​7151)
  • DX: unify Preg:match in logical conditions (#​7146)
  • DX: use booleans in conditions (#​7149)
  • DX: Use ParaUnit to speed up tests (#​6883)
  • DX: Use relative fixture path as integration test case's name (#​7147)
  • DX: use strict assertions (#​7144)
  • DX: AbstractIntegrationTestCase::provideIntegrationCases - yield over array, better typehinting (#​7150)

v3.21.1

Compare Source

experimental release

  • Require PHP ^8.0.1

v3.21.0

Compare Source

  • bug: Fix and enhance Gitlab reporter (#​7089)
  • bug: Import with different case must not be removed by non-risky fixer (#​7095)
  • bug: ordered imports fixer top group only (#​7023)
  • bug: FinalPublicMethodForAbstractClassFixer - fix for readonly classes (#​7123)
  • DX: do not nest ".editorconfig" files (#​7112)
  • DX: exclude Dockerfile from dist (#​7113)
  • DX: fix checkbashisms installation (#​7102)
  • DX: fix Smoke tests for various git default branch name (#​7119)
  • DX: Fix FileRemovalTest (do not fail when running it standalone) (#​7104)
  • DX: Progress output refactor (#​6848)
  • DX: Rename abstract test classes to *TestCase convention (#​7100)
  • DX: test all PHPUnit migration sets (#​7107)
  • DX: [Docker] Distinguish Alpine version between PHP versions (#​7105)
  • feature: Create cache path if it does not exist (#​7109)
  • feature: Introduce NullableTypeDeclarationFixer (#​7002)
  • feature: Introduce TypeDeclarationSpacesFixer (#​7001)
  • feature: BlankLineBetweenImportGroupsFixer - keep indent (#​7122)
  • minor: Parse callable using full phpdoc grammar (#​7094)
  • minor: PHP8.3 const type tokenizing (#​7055)

v3.20.0

Compare Source

  • DX: fix priority of FinalClassFixer (#​7091)
  • DX: use FAST_LINT_TEST_CASES=1 for CI run on macOS (#​7092)
  • feature: SingleLineEmptyBodyFixer - support interfaces, traits and enums (#​7096)
  • feature: NullableTypeDeclarationForDefaultNullValue - support for nullability in union types (#​5819)

v3.19.2

Compare Source

  • bug: NoMultipleStatementsPerLineFixer must run before CurlyBracesPositionFixer (#​7087)
  • bug: PhpdocAddMissingParamAnnotationFixer - fix for promoted properties (#​7090)
  • DX: fix priority of SingleBlankLineBeforeNamespaceFixer (#​7088)
  • minor: Parse all phpdoc types using full grammar (#​7010)

v3.19.1

Compare Source

  • bug: CurlyBracesPositionFixer must run before StatementIndentationFixer (#​7085)

v3.19.0

Compare Source

  • bug: SelfAccessorFixer - fix for union types (#​7080)
  • DX: add php_unit_data_provider_name to @PhpCsFixer:risky set (#​7069)
  • DX: make data providers return type "iterable" (#​7072)
  • DX: rename tests and data providers (#​7070)
  • feature: Introduce PhpUnitDataProviderNameFixer (#​7057)

v3.18.0

Compare Source

  • bug: Fix tokenizing of type hints (#​7054)
  • bug: CompactNullableTypehintFixer - fix for whitespace between ? and static (#​6993)
  • bug: consider function modifiers for statement_indentation (#​6978)
  • bug: Exclude $this from TernaryToNullCoalescingFixer (#​7052)
  • bug: False positive on used imports when docblock includes it with mismatching case (#​6909)
  • bug: Fix chained calls semicolon indent in switch case (#​7045)
  • bug: Fix multiline_whitespace_before_semicolons for echo tags (#​7019)
  • bug: Fix phpDoc align when there is inconsistent spacing after comment star (#​7012)
  • bug: Fix phpDoc parsing without PCRE JIT (#​7031)
  • bug: Fix PhpdocVarWithoutNameFixer with Closure with $this (#​6979)
  • bug: Fix return_assignment not formatting when variables are used in catch and finally (#​6960)
  • bug: Fix TypeExpression::allowsNull() with nullable (#​7000)
  • bug: Improve definition of conflicting fixers (#​7066)
  • bug: LambdaNotUsedImportFixer - fix for anonymous class with a string argument (#​6972)
  • bug: ListFilesCommand - fix computing of relative path (#​7028)
  • bug: make php_unit_namespaced less greedy (#​6952)
  • bug: PhpdocToCommentFixer - fix for PHPDoc before fn (#​6973)
  • bug: Restructure PER-CS rule sets (#​6707)
  • bug: SelfStaticAccessor - fix static access inside enums (#​7024)
  • bug: SingleSpaceAroundConstructFixer - fix more cases involving static (#​6995)
  • bug: FullyQualifiedStrictTypesFixer - fix shortening when namespace is not empty and import exists (#​7027)
  • bug: NoUnneededControlParenthesesFixer PHP8.0 null-safe operator (#​7056)
  • bug: PhpdocToCommentFixer support for enum cases (#​7040)
  • DX: add more tests to CommentsAnalyzer (#​7041)
  • DX: Cleanup duplicate files in finder (#​7042)
  • DX: ControlCaseStructuresAnalyzerTest - cleanup (#​6874)
  • DX: Fix warning when running test on PHP<8 (#​7008)
  • DX: handle @ in PR title (#​6982)
  • DX: officially deprecate internal Utils anti-pattern class (#​7039)
  • DX: Remove Fabbot.io conditional configuration (#​7038)
  • DX: rename data providers (#​7058)
  • DX: Use actions/stale to handle stale issues and pull requests (#​5085)
  • DX: Use Utils::naturalLanguageJoin() in implode calls (#​7032)
  • feature: Add support for custom method placement in ordered_class_elements (#​6360)
  • feature: Allow case sensitive order for OrderedClassElementsFixer (#​7020)
  • feature: PHP8.3 - Add CT and block type for Dynamic class constant fetch (#​7004)
  • feature: Support attributes in FinalClassFixer (#​6893)
  • minor: "Callback" must not be fixed to "callback" by default (#​7011)
  • minor: Add Util::naturalLanguageJoin() (#​7022)
  • minor: ClassDefinitionFixer - handle attributes and readonly in anonymous class definitions (#​7014)
  • minor: FixerFactory::getFixersConflicts - better type hinting (#​7044)
  • minor: PHP8.3 - Fix TokensAnalyzer::isAnonymousClass support for readonly (#​7013)
  • minor: PHP8.3 - Typed class constants - handle nullable by transformer (#​7009)
  • minor: Reduce phpDoc type parser complexity from O(n^2) to O(nlog(n)) (#​6988)
  • minor: ReturnAssignmentFixer - Better handling of anonymous classes (#​7015)
  • minor: Transfer HelpCommand::toString() to Utils (#​7034)
  • minor: Unify "blank lines before namespace" fixers (#​7053)
  • minor: SelfStaticAccessorFixer improvements for enums (#​7026)
  • minor: SingleSpaceAroundConstructFixer - support space before as (#​7029)
  • minor: UseArrowFunctionsFixer - run before FunctionDeclarationFixer (#​7065)

v3.17.0

Compare Source

  • bug: Allow string quote to be escaped within phpdoc constant (#​6798)
  • bug: ConfigurationResolver - fix running without cache (#​6915)
  • bug: Fix array/object shape phpdoc type parse (#​6962)
  • bug: Fix FullyQualifiedStrictTypesFixer common prefix bug (#​6898)
  • bug: Fix non-parenthesized callable return type parse (#​6961)
  • bug: Fix parsing of edge cases phpdoc types (#​6977)
  • bug: FullyQualifiedStrictTypesFixer - fix for FQCN type with class with the same name being imported (#​6923)
  • bug: GroupImportFixer - support for aliased imports (#​6951)
  • bug: MultilineWhitespaceBeforeSemicolonsFixer - fix chained calls (#​6926)
  • bug: MultilineWhitespaceBeforeSemicolonsFixer - fix for discovering multi line calls (#​6938)
  • bug: NoBreakCommentFixer - fix for nested match (#​6899)
  • bug: NoExtraBlankLinesFixer - fix for attribute in abstract function (#​6920)
  • bug: PhpdocTypesFixer - handle types with no space between type and variable (#​6922)
  • bug: PhpUnitMockShortWillReturnFixer - fix for trailing commas (#​6900)
  • bug: StatementIndentationFixer - fix comments at the end of if/elseif/else blocks (#​6918)
  • bug: StatementIndentationFixer - fix for multiline arguments starting with "new" keyword (#​6913)
  • bug: StatementIndentationFixer - fix for multiline arguments starting with "new" keyword preceded by class instantiation (#​6914)
  • bug: VoidReturnFixer - fix for intervening attributes (#​6863)
  • docs: improve code samples for MultilineWhitespaceBeforeSemicolonsFixer (#​6919)
  • docs: improve cookbook (#​6880)
  • DX: add cache related tests (#​6916)
  • DX: Apply self_static_accessor fixer to the project (again) (#​6927)
  • DX: cancel running builds on subsequent pushes in CI (#​6940)
  • DX: convert more static to self assert calls (#​6931)
  • DX: fix GitHub Actions errors and warnings (#​6917)
  • DX: fix Unsafe call to private method errors reported by PHPStan (#​6879)
  • DX: Improve performance of FunctionsAnalyzer (#​6939)
  • DX: improve test method names to avoid confusion (#​6974)
  • DX: Include self_static_accessor fixer in PhpCsFixer set (#​6882)
  • DX: make data providers static with straight-forward changes (#​6907)
  • DX: Mark Tokens::getNamespaceDeclarations as @​internal (#​6949)
  • DX: PHPStan improvements (#​6868)
  • DX: refactor PhpdocAlignFixerTest (#​6925)
  • DX: Remove @​inheritdoc PHPDoc (#​6955)
  • DX: Run AutoReview tests only once (#​6889)
  • DX: simplify EncodingFixer (#​6956)
  • DX: update Symfony rule set (#​6958)
  • DX: Use $tokens->getNamespaceDeclarations() to improve performance (#​6942)
  • DX: use force option for php_unit_data_provider_static in PHPUnit 10.0 migration set (#​6908)
  • DX: use only PHP modules that are required (#​6954)
  • DX: use PHPUnit's "requires" instead of "if" condition (#​6975)
  • feature: Add align_multiline_comment rule to @​Symfony (#​6875)
  • feature: Add no_null_property_initialization rule to @​Symfony (#​6876)
  • feature: Add operator_linebreak rule to @​Symfony (#​6877)
  • feature: add SingleLineEmptyBodyFixer (#​6933)
  • feature: DescribeCommand - allow describing custom fixers (#​6957)
  • feature: Introduce OrderedTypesFixer (#​6571)
  • feature: Order of PHPDoc @​param annotations (#​3909)
  • feature: Parse parenthesized & conditional phpdoc type (#​6796)
  • feature: PhpUnitInternalClassFixer - add empty line before PHPDoc (#​6924)
  • feature: [PhpdocAlignFixer] Add support for every tag (#​6564)
  • minor: align NoSuperfluousPhpdocTagsFixer with actual Symfony configuration (#​6953)
  • minor: do not add empty line in PHPDoc when adding annotation in PHPUnit class (#​6928)
  • minor: PhpdocAlignFixer - support cases with type and variable separated with no space (#​6921)
  • minor: PhpdocSeparationFixer - add integration tests (#​6929)
  • minor: update PHPStan (to fix CI on master branch) (#​6901)
  • minor: Use single Dockerfile with multiple build targets (#​6840)

Configuration

📅 Schedule: Branch creation - "after 3am every weekday,every weekend" in timezone Europe/Amsterdam, Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [friendsofphp/php-cs-fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer) | `3.16.0` → `3.95.1` | ![age](https://developer.mend.io/api/mc/badges/age/packagist/friendsofphp%2fphp-cs-fixer/3.95.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/friendsofphp%2fphp-cs-fixer/3.16.0/3.95.1?slim=true) | --- ### Release Notes <details> <summary>PHP-CS-Fixer/PHP-CS-Fixer (friendsofphp/php-cs-fixer)</summary> ### [`v3.95.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3951) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.95.0...v3.95.1) - chore: add tests for `FinalInternalClassFixer` ([#&#8203;9547](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9547)) - chore: cleanup `PhpdocToParamTypeFixer` ([#&#8203;9550](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9550)) - fix: `MethodArgumentSpaceFixer` - Do not collapse nested arguments when using `ensure_single_line_for_single_argument` option for `on_multiline` ([#&#8203;9552](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9552)) - test: fix type after variable name in `@param` in `PhpdocToParamTypeFixerTest` ([#&#8203;9549](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9549)) ### [`v3.95.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3950) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.94.2...v3.95.0) - feat: Add option `remove_existing_declaration` to `declare_strict_types` fixer ([#&#8203;9384](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9384)) - feat: Add `exclude` option to `phpdoc_types` rule ([#&#8203;9479](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9479)) - feat: introduce 'list-rules' command ([#&#8203;9512](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9512)) - feat: introduce `NoWhitespaceInEmptyArrayFixer` ([#&#8203;8155](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8155)) - feat: Resolve to `json` format when `AI_AGENT` environment variable is set ([#&#8203;9542](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9542)) - feat: `@Symfony:risky` - add `void_return` ([#&#8203;9546](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9546)) - feat: `GlobalNamespaceImportFixer` - support first-class callable syntax ([#&#8203;9484](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9484)) - feat: `MethodArgumentSpaceFixer` - add `ensure_single_line_for_single_argument` option for `on_multiline` ([#&#8203;9504](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9504)) - feat: `MultilinePromotedPropertiesFixer` - turn multiline promoted properties into singleline when there are fewer than `minimum_number_of_parameters` ([#&#8203;9501](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9501)) - feat: `PhpdocLineSpanFixer` - add `function` option ([#&#8203;9439](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9439)) - feat: `ReturnAssignmentFixer` - skip variables with the named `@var` tags with new option `skip_named_var_tags` ([#&#8203;9464](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9464)) - fix: `ArrayPushFixer` - do not stop fixing when `array_push` with 1 argument found ([#&#8203;9508](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9508)) - fix: `BinaryOperatorSpacesFixer` - make it works correctly with multiple match cases ([#&#8203;9470](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9470)) - fix: `EchoTagSyntaxFixer` - do not break syntax for single line comments ([#&#8203;9506](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9506)) - fix: `PhpUnitTestClassRequiresCoversFixer` - do not add `@coversNothing` to anonymous classes ([#&#8203;9481](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9481)) - fix: `SimplifiedNullReturnFixer` - do not remove `null` from property hook ([#&#8203;9471](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9471)) - docs: extend docs about exit code ([#&#8203;9526](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9526)) - docs: StaticLambdaFixer - document example how to prevent conversion ([#&#8203;9502](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9502)) - DX: change default PHP\_CS\_FIXER\_FAST\_LINT\_TEST\_CASES=1 and run full linting of test cases only on highest and lowest PHP versions in CI ([#&#8203;9448](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9448)) - chore: add missing test for `SetTypeToCastFixer` ([#&#8203;9518](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9518)) - chore: add test for NoMultipleStatementsPerLineFixer ([#&#8203;9533](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9533)) - chore: add tests for `BracesPositionFixer` ([#&#8203;9522](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9522)) - chore: add tests for `PsrAutoloadingFixer` ([#&#8203;9541](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9541)) - chore: cleanup MagicConstantCasingFixer ([#&#8203;9494](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9494)) - chore: cleanup NoNullPropertyInitializationFixer ([#&#8203;9493](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9493)) - chore: cleanup `ClassAttributesSeparationFixer` ([#&#8203;9545](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9545)) - chore: cleanup `GeneralAttributeRemoveFixer` ([#&#8203;9520](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9520)) - chore: cleanup `GlobalNamespaceImportFixerTest` ([#&#8203;9482](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9482)) - chore: cleanup `NoTrailingCommaInSinglelineFixer` ([#&#8203;9537](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9537)) - chore: cleanup `OrderedAttributesFixer` ([#&#8203;9521](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9521)) - chore: cleanup `PhpUnitExpectationFixer` ([#&#8203;9505](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9505)) - chore: commands cleanup ([#&#8203;9478](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9478)) - chore: ensure that regex `TypeExpression::REGEX_TYPES` does not have unnamed capturing group ([#&#8203;9514](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9514)) - chore: exclude logo.png and composer-dependency-analyser.php from Composer export ([#&#8203;9516](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9516)) - chore: group dependabot updates for Docker and GitHub Actions ([#&#8203;9535](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9535)) - chore: improve `AbstractPhpUnitFixer` ([#&#8203;9519](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9519)) - chore: improve `ArrayPushFixer` ([#&#8203;9515](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9515)) - chore: update `FunctionsAnalyzer` ([#&#8203;9483](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9483)) - chore: `MbStrFunctionsFixer` - remove the never `true` condition ([#&#8203;9509](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9509)) - chore: `ModernizeStrposFixer` - remove the never `true` conditions ([#&#8203;9510](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9510)) - chore: `NoAliasFunctionsFixer` - cleanup invalid set handling ([#&#8203;9511](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9511)) - CI: add `failOnDeprecation="true"` to PHPUnit config ([#&#8203;8935](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8935)) - CI: cleanup jobs ([#&#8203;9449](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9449)) - CI: configure Dependabot for composite actions ([#&#8203;9529](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9529)) - CI: do not run `issue_8828_c.test` on macOS for now ([#&#8203;9528](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9528)) - CI: fix Dependabot paths ([#&#8203;9530](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9530)) - CI: more of ubuntu-slim ([#&#8203;9450](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9450)) - CI: move spelling checks to dedicated workflow ([#&#8203;9451](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9451)) - deps: bump actions/cache from 4 to 5 in /.github/composite-actions/install-composer-deps ([#&#8203;9531](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9531)) - deps: bump actions/github-script from 8 to 9 in /.github/composite-actions/setup-php-with-composer-deps ([#&#8203;9544](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9544)) - deps: bump crate-ci/typos from 1.43.5 to 1.44.0 ([#&#8203;9476](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9476)) - deps: bump crate-ci/typos from 1.44.0 to 1.45.0 ([#&#8203;9523](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9523)) - deps: bump docker/build-push-action from 6 to 7 ([#&#8203;9486](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9486)) - deps: bump docker/login-action from 3 to 4 ([#&#8203;9477](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9477)) - deps: bump docker/metadata-action from 5 to 6 ([#&#8203;9474](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9474)) - deps: bump docker/setup-buildx-action from 3 to 4 ([#&#8203;9475](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9475)) - deps: bump docker/setup-qemu-action from 3 to 4 ([#&#8203;9472](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9472)) - deps: bump nick-invision/retry from 3 to 4 ([#&#8203;9491](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9491)) - deps: bump nick-invision/retry from 3 to 4 in /.github/composite-actions/install-composer-deps ([#&#8203;9532](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9532)) - deps: bump phpstan/phpstan from 2.1.40 to 2.1.42 in /dev-tools in the phpstan group ([#&#8203;9490](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9490)) - deps: bump phpstan/phpstan from 2.1.42 to 2.1.44 in /dev-tools in the phpstan group ([#&#8203;9503](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9503)) - deps: bump phpstan/phpstan-symfony from 2.0.14 to 2.0.15 in /dev-tools in the phpstan group ([#&#8203;9458](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9458)) - deps: bump shipmonk/dead-code-detector from 0.14.1 to 0.15.1 in /dev-tools in the shipmonk group ([#&#8203;9473](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9473)) - deps: bump shipmonk/dead-code-detector from 0.15.1 to 1.0.0 in /dev-tools in the shipmonk group ([#&#8203;9543](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9543)) - deps: update PHPStan ([#&#8203;9452](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9452)) - deps: upgrade deps ([#&#8203;9527](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9527)) - deps: upgrade PHPUnit patch versions ([#&#8203;9455](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9455)) - refactor: ConfigurableFixerTemplateFixer - move handling example file from fixing logic to definition ([#&#8203;9525](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9525)) - refactor: rename `PhpdocTypesNoDuplicatesFixer` to `PhpdocNoDuplicateTypesFixer` ([#&#8203;9381](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9381)) - test: fix CI for Windows ([#&#8203;9492](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9492)) - test: `MethodArgumentSpaceFixer` must run before `NoTrailingCommaInSinglelineFixer` ([#&#8203;9507](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9507)) - test: use `PhpUnitTestCaseStaticMethodCallsFixerTest::testInvalidConfiguration` ([#&#8203;9460](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9460)) ### [`v3.94.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3942) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.94.1...v3.94.2) - fix: `AttributeBlockNoSpacesFixer` - skipping some attributes when multiple present ([#&#8203;9445](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9445)) - fix: `NoUnusedImportsFixer` - do not remove constant types ([#&#8203;9442](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9442)) - fix: `PhpdocLineSpanFixer` - handle unions and intersections in properties ([#&#8203;9438](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9438)) - deps: bump crate-ci/typos from 1.43.4 to 1.43.5 ([#&#8203;9444](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9444)) ### [`v3.94.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3941) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.94.0...v3.94.1) - chore: add tests for `ArgumentsAnalyzer` ([#&#8203;9422](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9422)) - chore: bump dev-tools to PHP 8.5 ([#&#8203;9432](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9432)) - chore: ConfigurableFixerTemplateFixer - allow to remove option from computed options ([#&#8203;9437](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9437)) - chore: fix Tokens::getIterator() type ([#&#8203;9433](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9433)) - chore: reduce Generator into iterable ([#&#8203;9435](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9435)) - chore: reduce Iterator->Traversable and Traversable->iterable when possible ([#&#8203;9434](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9434)) - CI: cleanup sca.yml ([#&#8203;9430](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9430)) - deps: bump crate-ci/typos from 1.43.2 to 1.43.4 ([#&#8203;9426](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9426)) - deps: bump ergebnis/composer-normalize from 2.49.0 to 2.50.0 in /dev-tools ([#&#8203;9427](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9427)) - deps: bump the phpstan group in /dev-tools with 4 updates ([#&#8203;9425](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9425)) - deps: dependabot group for shipmonk/ ([#&#8203;9429](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9429)) - docs: switch sets ordering to case-insensitive ([#&#8203;9423](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9423)) - test: check PHP env in CI jobs ([#&#8203;9428](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9428)) ### [`v3.94.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3940) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.93.1...v3.94.0) - UX: enable parallel runner by default ([#&#8203;9408](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9408)) - feat: Add option `case` to `phpdoc_line_span` fixer ([#&#8203;9391](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9391)) - feat: PhpdocLineSpanFixer - support docs for classes, trait usages and other code lines ([#&#8203;8832](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8832)) - feat: `VoidReturnFixer` - allow to skip lambdas ([#&#8203;9417](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9417)) - chore: fix comment ([#&#8203;9404](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9404)) - chore: Linter tests for Schrodinger's validity ([#&#8203;9398](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9398)) - chore: ModernizeStrposFixer - no need for configuration hooks ([#&#8203;9419](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9419)) - chore: `VoidReturnFixer` - better describe exceptions ([#&#8203;9418](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9418)) - CI: no need for special handling of MacOS ([#&#8203;9403](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9403)) - CI: run tests using PHPUnit 13 ([#&#8203;9410](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9410)) - deps: bump crate-ci/typos from 1.42.1 to 1.42.3 ([#&#8203;9395](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9395)) - deps: bump crate-ci/typos from 1.42.3 to 1.43.2 ([#&#8203;9405](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9405)) - deps: bump ergebnis/composer-normalize from 2.48.2 to 2.49.0 in /dev-tools ([#&#8203;9396](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9396)) - deps: bump the phpstan group in /dev-tools with 2 updates ([#&#8203;9394](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9394)) - deps: upgrade dev-deps ([#&#8203;9411](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9411)) - DX: use custom name for custom config ([#&#8203;9402](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9402)) - fix: absolute path in reports ([#&#8203;9399](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9399)) - fix: indentation for backed enum with multiline assignment ([#&#8203;9362](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9362)) - fix: Runner - fix occasional sub-process freeze on parallel execution with `--stop-on-violation` ([#&#8203;9393](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9393)) - fix: `NoUnreachableDefaultArgumentValueFixer` - fix for closures ([#&#8203;9409](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9409)) - fix: `UseArrowFunctionsFixer` - do not convert closure in attribute ([#&#8203;9416](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9416)) - test: create PHP 8.5 risky compat test ([#&#8203;9420](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9420)) - UX: Do not run interactive configurator when rules are passed explicitly ([#&#8203;9378](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9378)) ### [`v3.93.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3931) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.93.0...v3.93.1) - fix: `ErrorOutput` - do not show "begin diff"/"end diff" when there is no diff ([#&#8203;9361](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9361)) - fix: `UseArrowFunctionsFixer` - don't convert lambda with `use($var)` clause if it includes another file ([#&#8203;9389](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9389)) - DX: use null coalescing operator ([#&#8203;9380](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9380)) ### [`v3.93.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3930) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.92.5...v3.93.0) - feat: add `ModernSerializationMethodsFixer` ([#&#8203;9108](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9108)) - feat: Add `NoRedundantReadonlyPropertyFixer` ([#&#8203;9339](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9339)) - feat: add `PhpdocTypesNoDuplicatesFixer` ([#&#8203;9312](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9312)) - feat: do not suggest config file creation if config explicitly skipped with `--config=-` ([#&#8203;9379](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9379)) - feat: improve handling of `@see` tags in `FullyQualifiedStrictTypesFixer` ([#&#8203;9350](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9350)) - feat: PER attribute block no spaces ([#&#8203;9264](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9264)) - feat: php\_unit\_test\_case\_static\_method\_calls - change default 'call\_type' to 'this' for v4 ([#&#8203;9328](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9328)) - feat: protected\_to\_private - add to`@Symfony` set ([#&#8203;9303](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9303)) - feat: PSR/PER-CS - adjust `braces_position` rule ([#&#8203;9329](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9329)) - feat: remove `php_unit_test_case_static_method_calls` from PHPUnit sets ([#&#8203;9341](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9341)) - feat: `@PHP7x0MigrationRisky` - update configuration of `RandomApiMigrationFixer` to match it's newly updated v4 defaults ([#&#8203;9368](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9368)) - feat: `@Symfony:risky` - extend set with `modern_serialization_methods` ([#&#8203;9366](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9366)) - feat: `@Symfony:risky` - extend set with `static_lambda` ([#&#8203;9365](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9365)) - feat: `@Symfony` - enable `no_unneeded_control_parentheses.statements.negative_instanceof` ([#&#8203;9336](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9336)) - feat: `@Symfony` - extend set with `no_useless_else` ([#&#8203;9363](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9363)) - feat: `@Symfony` - extend set with `no_useless_return` ([#&#8203;9364](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9364)) - feat: `RandomApiMigrationFixer` - allow to convert `mt_getrandmax` and `mt_srand` ([#&#8203;9367](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9367)) - fix: properly expose memory usage while running parallel mode ([#&#8203;9352](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9352)) - fix: `ModifierKeywordsFixer` - closure in attribute ([#&#8203;9358](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9358)) - fix: `NoUselessElseFixer` - handle conditional symbol declarations ([#&#8203;9347](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9347)) - fix: `OrderedClassElementsFixer` - closure in attribute ([#&#8203;9357](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9357)) - fix: `PhpUnitAttributesFixer` - do not add for annotation `@testWith` when attribute `TestWith` already present ([#&#8203;9354](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9354)) - refactor: add base key-existence check for cross-process communication in parallel runner ([#&#8203;9360](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9360)) - refactor: FixerDocumentGenerator - limit the scope to create rule instance in future mode only ([#&#8203;9359](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9359)) - test: fix compatibility towards Symfony 8 ([#&#8203;9370](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9370)) - test: update PHP 8.5 compat test to cover closure in attribute and prevent conversion to empty arrow function ([#&#8203;9373](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9373)) - chore: add clarifying `@return` annotations to `Config` ([#&#8203;9337](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9337)) - chore: fix `assign.propertyType` error from PHPStan ([#&#8203;9332](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9332)) - chore: PHPUnit sets - cleanup test, update docs/comments ([#&#8203;9342](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9342)) - chore: simplify `phpstan:baseline` command ([#&#8203;9346](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9346)) - deps: bump crate-ci/typos from 1.41.0 to 1.42.0 ([#&#8203;9338](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9338)) - deps: bump crate-ci/typos from 1.42.0 to 1.42.1 ([#&#8203;9376](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9376)) - deps: bump dev deps ([#&#8203;9369](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9369)) - deps: bump the phpstan group in /dev-tools with 3 updates ([#&#8203;9375](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9375)) - docs: show default value for future mode ([#&#8203;9355](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9355)) - DX: add env for easier finding which fixer break a PHP syntax ([#&#8203;9356](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9356)) ### [`v3.92.5`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3925) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.92.4...v3.92.5) - fix: `CombineConsecutiveUnsetsFixer` - proper handling of trailing comma ([#&#8203;9335](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9335)) - chore: cleanup self-config file ([#&#8203;9324](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9324)) - chore: fix `variable.undefined` error from PHPStan ([#&#8203;9330](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9330)) - deps: bump crate-ci/typos from 1.40.0 to 1.41.0 ([#&#8203;9325](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9325)) - docs: extend Q\&A for creating the rule ([#&#8203;9331](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9331)) ### [`v3.92.4`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3924) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.92.3...v3.92.4) - fix: `ComposerJsonReader` - handle more syntaxes ([#&#8203;9327](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9327)) - UX: Runner/Parallel/Process - friendly message when tmp dir not writable ([#&#8203;9319](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9319)) - docs: fix RST links ([#&#8203;9321](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9321)) - DX: internal commands for working with tokens ([#&#8203;9251](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9251)) - chore: Add CS commit to .git-blame-ignore-revs - chore: apply trailing\_comma\_in\_multiline: elements.arguments ([#&#8203;9314](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9314)) - deps: upgrade dev-deps ([#&#8203;9318](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9318)) ### [`v3.92.3`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3923) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.92.2...v3.92.3) - fix: using Rule Customisation Policy with parallel runner ([#&#8203;9309](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9309)) - chore: phpstan - cover `.php-cs-fixer.dist.php` ([#&#8203;9311](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9311)) - chore: `.php-cs-fixer.dist.php` - drop wrongly called `ignoreVCSIgnored` ([#&#8203;9310](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9310)) ### [`v3.92.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3922) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.92.1...v3.92.2) - fix: let `@php-cs-fixer-ignore` accept custom fixer names ([#&#8203;9306](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9306)) - chore: introduce `PHP_CS_FIXER_IGNORE_MISMATCHED_RULES_EXCEPTIONS` ([#&#8203;9307](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9307)) ### [`v3.92.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3921) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.92.0...v3.92.1) - chore: update php-compatibility config ([#&#8203;9302](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9302)) - deps: bump actions/cache from 4 to 5 ([#&#8203;9295](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9295)) - deps: bump phpstan/phpstan-phpunit from 2.0.9 to 2.0.10 in /dev-tools in the phpstan group ([#&#8203;9293](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9293)) - deps: bump shipmonk/phpstan-baseline-per-identifier from 2.2.0 to 2.3.0 in /dev-tools ([#&#8203;9294](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9294)) - docs: update README.md ([#&#8203;9277](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9277)) - DX: make all `testFix*` methods have no more than 4 parameters ([#&#8203;9298](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9298)) - DX: make all `testFix*` methods have second parameter `$input` ([#&#8203;9297](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9297)) - DX: rename parameter `$config` to `$configuration` ([#&#8203;9299](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9299)) - DX: restrict `testFix*` parameter names ([#&#8203;9301](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9301)) - DX: use `WhitespacesFixerConfig` in tests ([#&#8203;9300](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9300)) - fix: describe - skip listing automated rules, as cannot determine them in projects ([#&#8203;9304](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9304)) - test: PHPUnit sets - check that set is providing proper target for rules ([#&#8203;9296](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9296)) - test: `ProjectCodeTest::testExpectedInputOrder` - move checks for `testFix...` methods ([#&#8203;9291](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9291)) ### [`v3.92.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3920) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.91.3...v3.92.0) - feat: exception for rules via `@php-cs-fixer-ignore` annotation ([#&#8203;9280](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9280)) - feat: exception for rules via `Rule Customisation Policy` ([#&#8203;9107](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9107)) - feat: `PhpUnitTestCaseStaticMethodCallsFixer` - add handling of `getStubBuilder` ([#&#8203;9276](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9276)) - feat: `PhpUnitTestCaseStaticMethodCallsFixer` - add `target` option ([#&#8203;8498](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8498)) - chore: '.php-cs-fixer.dist.php' - remove no longer needed rule, 'expectedDeprecation' annotation does not exist for long time ([#&#8203;9266](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9266)) - chore: fix `arguments.count` error from PHPStan ([#&#8203;9258](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9258)) - chore: fix `generator.valueType` error from PHPStan ([#&#8203;9259](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9259)) - chore: fix `plus.*NonNumeric` errors from PHPStan ([#&#8203;9260](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9260)) - chore: Runner - better input types handling ([#&#8203;9286](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9286)) - chore: watch out for non-final classes ([#&#8203;9262](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9262)) - chore: `Config::getFinder()` - fix typehinting ([#&#8203;9288](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9288)) - deps: bump alpine from 3.22 to 3.23 ([#&#8203;9269](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9269)) - deps: bump phpcompatibility/php-compatibility from 10.0.0-alpha1 to 10.0.0-alpha2 in /dev-tools ([#&#8203;9271](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9271)) - deps: bump the phpstan group in /dev-tools with 3 updates ([#&#8203;9270](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9270)) - deps: dev-tools - upgrade deep deps ([#&#8203;9272](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9272)) - docs: exception for rules in dedicated doc files, for easier discoverability ([#&#8203;9281](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9281)) - docs: upgrade docs to not use legacy set ([#&#8203;9282](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9282)) - DX: make all `testFix*` methods have first parameter `$expected` ([#&#8203;9289](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9289)) - refactor: fix violation of 'no\_useless\_concat\_operator' ([#&#8203;9267](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9267)) - refactor: `ProjectCodeTest` - refactor `testExpectedInputOrder` test ([#&#8203;9290](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9290)) - Revert (partially) "feat: Finder to find dot-files by default in v4/future-mode ([#&#8203;9187](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9187))" ([#&#8203;9287](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9287)) - test: RuleSetTest - check against non-deprecated variant of PHPUnit sets ([#&#8203;9265](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9265)) - UX: exception for rules via `Rule Customisation Policy` - better error message for wrong customisers ([#&#8203;9279](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9279)) - UX: exception for rules via `Rule Customisation Policy` - prevent policy without version ([#&#8203;9278](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9278)) ### [`v3.91.3`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3913) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.91.2...v3.91.3) - Revert "feat: Symfony - add stringable\_for\_to\_string to set" ([#&#8203;9268](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9268)) ### [`v3.91.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3912) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.91.1...v3.91.2) - fix: fix support call-site generic variance ([#&#8203;9253](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9253)) - chore: adjust autoloader to exclude all Internal classes in classmap ([#&#8203;9252](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9252)) - CI: set `PHP_CS_FIXER_IGNORE_ENV` for PHP 8.6 ([#&#8203;9254](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9254)) ### [`v3.91.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3911) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.91.0...v3.91.1) - UX: show warning on PHP-mismatch only for 'fix' and 'check' commands ([#&#8203;9243](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9243)) - docs: unify rule/ruleset doc tags ([#&#8203;9250](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9250)) - refactor: don't expose internal commands/rules ([#&#8203;9245](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9245)) - refactor: memoize fixer names ([#&#8203;9219](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9219)) - refactor: use custom set for internal rules ([#&#8203;9247](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9247)) - test: show that `describe` command works well for custom sets ([#&#8203;9246](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9246)) ### [`v3.91.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3910) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.90.0...v3.91.0) - UX: init command ([#&#8203;9215](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9215)) - feat: PHP 8.5 compatibility support ([#&#8203;9234](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9234)) - feat: Add `StringableForToStringFixer` ([#&#8203;9218](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9218)) - feat: support call-site generic variance ([#&#8203;9212](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9212)) - feat: Symfony - add stringable\_for\_to\_string to set ([#&#8203;9235](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9235)) - chore: do not mark NamespaceAnalysis as internal, because it's part of public API interface ([#&#8203;9193](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9193)) - chore: ExampleRuleset - improve test fixture name ([#&#8203;9214](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9214)) - chore: traits - require interfaces or base classes ([#&#8203;9086](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9086)) - CI: Add PHPStan rule to validate public API surface completeness ([#&#8203;9196](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9196)) - CI: auto-select PHP\_MAX for special jobs ([#&#8203;9231](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9231)) - CI: drop duplicated PHP 8.4 jobs ([#&#8203;9229](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9229)) - CI: fix SCA after Symfony 7.4.0 release ([#&#8203;9226](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9226)) - CI: no more need for solving PHP 8.4 deprecations in `/vendor/` anymore ([#&#8203;9230](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9230)) - CI: switch trivial jobs to ubuntu-slim ([#&#8203;9232](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9232)) - CI: upgrade `.php-cs-fixer.php-highest.php` to fully reflect PHP 8.4 ([#&#8203;9233](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9233)) - deps: bump actions/checkout from 5 to 6 ([#&#8203;9210](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9210)) - deps: bump crate-ci/typos from 1.39.2 to 1.40.0 ([#&#8203;9237](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9237)) - deps: bump shipmonk/composer-dependency-analyser from 1.8.3 to 1.8.4 in /dev-tools ([#&#8203;9238](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9238)) - deps: bump shipmonk/dead-code-detector from 0.13.5 to 0.14.0 in /dev-tools ([#&#8203;9239](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9239)) - deps: bump Symfony v8 to RC ([#&#8203;9221](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9221)) - deps: bump Symfony v8 to stable ([#&#8203;9222](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9222)) - deps: update xdebug ([#&#8203;9228](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9228)) - fix: move config template to non-excluded folder ([#&#8203;9241](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9241)) - fix: `DeclareStrictTypesFixer` - do not duplicate `strict_types` if it is already present, with other directive ([#&#8203;9225](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9225)) - fix: `FullyQualifiedStrictTypesFixer` - fix crash on `T_OPEN_TAG_WITH_ECHO` ([#&#8203;9217](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9217)) - test: allow CI to define both, numeric and non-numeric PHP versions/builds ([#&#8203;9236](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9236)) - test: do not allow to fail PHP 8.5 job ([#&#8203;9224](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9224)) - test: let's not dance on the edge of the JIT stack limit ([#&#8203;9211](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9211)) - test: run smoke tests on any OS ([#&#8203;9242](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9242)) - test: update PHP 8.5 compatibility test ([#&#8203;9223](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9223)) ### [`v3.90.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3900) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.89.2...v3.90.0) - feat: always have `@PHPXxYMigration(:risky)` sets for supported PHP versions ([#&#8203;9207](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9207)) - feat: Finder to find dot-files by default in v4/future-mode ([#&#8203;9187](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9187)) - fix: manage the space between operator and version on Composer JSON reader ([#&#8203;9203](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9203)) - fix: PhpdocAnnotationWithoutDotFixer lowercases `@param` type when description starts with all-uppercase word ([#&#8203;9169](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9169)) - UX: groom warning of PHP mismatch for runtime vs target project minimum supported version ([#&#8203;9202](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9202)) - UX: Rules override warning ([#&#8203;9188](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9188)) - UX: `describe` command - allow to visualize Set as tree ([#&#8203;9179](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9179)) - docs: rework `.php-cs-fixer.php` local config file docs ([#&#8203;9185](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9185)) - docs: update Set descriptions ([#&#8203;9183](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9183)) - chore: Declare support for Symfony 8 ([#&#8203;9172](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9172)) - chore: add missing v4 TODOs ([#&#8203;9197](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9197)) - chore: mark one remaining Analyzer to become internal ([#&#8203;9194](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9194)) - chore: mark v2 leftovers with v4 TODO ([#&#8203;9181](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9181)) - chore: no need for deprecation trigger in internal DataProviderAnalysis ([#&#8203;9192](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9192)) - deps: bump crate-ci/typos from 1.38.1 to 1.39.0 ([#&#8203;9175](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9175)) - deps: bump crate-ci/typos from 1.39.0 to 1.39.2 ([#&#8203;9205](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9205)) - deps: bump the phpstan group in /dev-tools with 2 updates ([#&#8203;9204](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9204)) - DX: different name for special configs ([#&#8203;9180](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9180)) - DX: improve types for `testInvalidConfiguration` methods ([#&#8203;9206](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9206)) - DX: `describe` command - allow to expose rules without sets via `@-` alias ([#&#8203;9178](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9178)) - refactor: move assertions from `tearDown` into `assertPostConditions` to fix `Test code or tested code did not remove its own error handlers` warning ([#&#8203;9182](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9182)) - refactor: prevent tests to use actual repository `.php-cs-fixer.dist.php` file ([#&#8203;9177](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9177)) - test: add more test(s) for ComposerJsonReader ([#&#8203;9200](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9200)) - test: ensure calling parent method from hook-alike methods ([#&#8203;9184](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9184)) ### [`v3.89.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3892) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.89.1...v3.89.2) - fix: `NoUnneededBracesFixer` - do not crash on multiline group import ([#&#8203;9160](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9160)) - chore: Standardize repository to use British English spelling ([#&#8203;9154](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9154)) - CI: ensure enforced Symfony version is installed ([#&#8203;9174](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9174)) - deps: bump php-coveralls to v2.9 ([#&#8203;9173](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9173)) - refactor: FixerDocumentGenerator::getSetsOfRule - cache resolved sets ([#&#8203;9170](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9170)) - refactor: FixerDocumentGenerator::getSetsOfRule - use cache ([#&#8203;9171](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9171)) ### [`v3.89.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3891) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.89.0...v3.89.1) - fix: ComposerJsonReader - fix handling asterisk ([#&#8203;9166](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9166)) - docs: cookbook - update to mention custom fixer option ([#&#8203;9164](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9164)) - DX: add links in `cookbook_fixers.rst` ([#&#8203;9162](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9162)) - deps: upgrade `phpcompatibility/*` to alpha of next MAJOR instead of using dev branch, plus other minor upgrades ([#&#8203;9163](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9163)) ### [`v3.89.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3890) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.88.2...v3.89.0) - feat: autofix "no-return" phpdoc type to "never" ([#&#8203;9073](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9073)) - feat: support keeping strict\_types=0 in DeclareStrictTypesFixer ([#&#8203;9121](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9121)) - feat: `NoUnneededBracesFixer` - remove unneeded braces from imports ([#&#8203;9118](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9118)) - fix: `FullyQualifiedStrictTypesFixer` - replacing the real FQCN with a non-existent one ([#&#8203;8962](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8962)) - fix: `PhpdocToCommentFixer` on property hooks ([#&#8203;9123](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9123)) - fix: `PhpUnitMethodCasingFixer` to not cause a duplicate method declaration ([#&#8203;9124](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9124)) - fix: `StaticLambdaFixer` - do not make function static when it contains anonymous class having `$this` in the constructor ([#&#8203;9088](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9088)) - fix: `UseArrowFunctionsFixer` - do not produce two consecutive whitespace tokens ([#&#8203;9151](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9151)) - UX: better gitlab reporting - add content field ([#&#8203;9152](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9152)) - UX: better gitlab reporting - more user-friendly description field ([#&#8203;9141](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9141)) - UX: better gitlab reporting for location.lines ([#&#8203;9149](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9149)) - UX: Warn if executed php version is higher than the minimum php version defined in composer.json ([#&#8203;9134](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9134)) - chore: add UX title pattern ([#&#8203;9132](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9132)) - chore: explicitly use php interpreter for paraunit ([#&#8203;9126](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9126)) - chore: extend composer scripts ([#&#8203;9127](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9127)) - chore: fix shellcheck installation for Darwin ([#&#8203;9125](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9125)) - chore: replace PHPDocs with `assert` calls ([#&#8203;9144](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9144)) - deps: bump crate-ci/typos from 1.36.3 to 1.38.1 ([#&#8203;9136](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9136)) - deps: bump phpstan/phpstan from 2.1.29 to 2.1.31 in /dev-tools in the phpstan group ([#&#8203;9129](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9129)) - deps: bump shipmonk/dead-code-detector from 0.13.3 to 0.13.4 in /dev-tools ([#&#8203;9135](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9135)) - deps: bump shipmonk/dead-code-detector from 0.13.4 to 0.13.5 in /dev-tools ([#&#8203;9146](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9146)) - deps: bump the phpstan group across 1 directory with 2 updates ([#&#8203;9101](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9101)) - deps: use `shipmonk/composer-dependency-analyser` instead of `icanhazstring/composer-unused` and `maglnet/composer-require-checker` ([#&#8203;9106](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9106)) - docs: fix docs for `@autoPHPUnitMigration:risky`set ([#&#8203;9147](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9147)) - docs: improve descriptions for `NoTrailingWhitespace*` fixers ([#&#8203;9117](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9117)) - docs: more explicit docs on --rules ([#&#8203;9114](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9114)) - docs: update usage documentation for describe `--expand` and `@` ([#&#8203;9119](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9119)) - DX: Fix `composer qa` script ([#&#8203;9138](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9138)) - refactor: `--option value` => `--option=value` ([#&#8203;9131](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9131)) - test: Fix result randomness in `RunnerTest` for MacOS ([#&#8203;9139](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9139)) ### [`v3.88.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3882) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.88.1...v3.88.2) - docs: describe command - allow to describe config in use ([#&#8203;9103](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9103)) - docs: describe command - allow to expand sets ([#&#8203;9104](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9104)) ### [`v3.88.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3881) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.88.0...v3.88.1) - chore: use accidentally missing `@auto:risky` ([#&#8203;9102](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9102)) - deps: bump crate-ci/typos from 1.36.2 to 1.36.3 ([#&#8203;9099](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9099)) - deps: bump icanhazstring/composer-unused from 0.9.4 to 0.9.5 in /dev-tools ([#&#8203;9100](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9100)) - DX: Ability to run `yamllint` locally ([#&#8203;9093](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9093)) ### [`v3.88.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3880) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.87.2...v3.88.0) - feat: Support custom rulesets ([#&#8203;6083](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6083)) - feat: introduce `@auto`, `@auto:risky` sets ([#&#8203;9090](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9090)) - feat: introduce `@autoPHPMigration`, `@autoPHPMigration:risky`, `@autoPHPUnitMigration:risky` sets ([#&#8203;9068](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9068)) - feat: start using new defaults for rules under future mode ([#&#8203;9020](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9020)) - feat: rename rule sets from `MAJORMINOR` and `MAJOR.MINOR` into `MAJORxMINOR` ([#&#8203;9005](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9005)) - feat: rename visibility\_required into modifier\_keywords ([#&#8203;8995](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8995)) - feat: `symfony` ruleset: Add `@const` to `phpdoc_no_alias_tag` ([#&#8203;9016](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9016)) - fix: `BlankLinesBeforeNamespaceFixer` - handle namespace without newline before ([#&#8203;9059](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9059)) - docs: fix typo ([#&#8203;9060](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9060)) - docs: update CONTRIBUTING.md ([#&#8203;9074](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9074)) - docs: update README for updated PHP/PHPUnit set names ([#&#8203;9070](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9070)) - DX: Allow development on PHP 8.5 ([#&#8203;9092](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9092)) - chore: enforce list via `array_values()` ([#&#8203;9054](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9054)) - chore: ErrorOutput - line is optional ([#&#8203;9047](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9047)) - chore: fix cs in entry point file ([#&#8203;9064](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9064)) - chore: fix CS, somehow it missed the CI of `.php-cs-fixer.well-defined-arrays.php` ([#&#8203;8987](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8987)) - chore: fix some `argument.type` errors ([#&#8203;9056](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9056)) - chore: groom Automatic rulesets code ([#&#8203;9091](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9091)) - chore: phpstan - do not ignore all `internal` usage errors ([#&#8203;9063](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9063)) - chore: replace wrong `class-string` usages ([#&#8203;8968](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8968)) - chore: `getcwd()` - ignore `false` return value ([#&#8203;9057](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9057)) - chore: `ReporterFactory` - use `class-string` type ([#&#8203;9055](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9055)) - CI: check for typos ([#&#8203;9048](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9048)) - CI: don't prevent the build when remote coverage reporting service is down ([#&#8203;9095](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9095)) - CI: fix smoke tests after [#&#8203;9005](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9005) ([#&#8203;9061](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9061)) - CI: fix typos in `CHANGELOG.md` ([#&#8203;9052](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9052)) - CI: mutation tests - disable github annotations ([#&#8203;9062](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9062)) - CI: Test docs generation only once per CI pipeline ([#&#8203;9089](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9089)) - CI: `push` event only for master branch ([#&#8203;9046](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9046)) - CI: `push` event only for master branch ([#&#8203;9050](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9050)) - deps: bump box version ([#&#8203;9042](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9042)) - deps: bump ergebnis/composer-normalize from 2.48.1 to 2.48.2 in /dev-tools ([#&#8203;9045](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9045)) - deps: bump phpstan/phpstan from 2.1.25 to 2.1.28 in /dev-tools in the phpstan group ([#&#8203;9072](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9072)) - deps: unify alpine version for PHP 8.4 ([#&#8203;9077](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9077)) - deps: update phpstan and phpstan-baseline-per-identifier ([#&#8203;9051](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9051)) - deps: update squizlabs/php\_codesniffer to v4.0 and other related packages ([#&#8203;9075](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9075)) - deps: upgrade alpine wherever possible ([#&#8203;9078](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9078)) - deps: upgrade infection/infection to ^0.31.0 ([#&#8203;9079](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9079)) - refactor: introduce concept of AutomaticRuleSet ([#&#8203;9067](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9067)) - refactor: rename `RuleSetDescriptionInterface` into `RuleSetDefinitionInterface` ([#&#8203;9094](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9094)) - test: ensure alpine version same between Dockerfile and compose.yaml ([#&#8203;9076](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9076)) - test: ensure alpine version same in compose.yaml and release.yml ([#&#8203;9071](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9071)) - test: extend tests to cover new migration rule set names ([#&#8203;9069](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9069)) - test: improve testing that objects cannot be serialized/unserialized ([#&#8203;9049](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9049)) ### [`v3.87.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3872) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.87.1...v3.87.2) - fix: `phpdoc_to_param_type`, `phpdoc_to_return_type`, `phpdoc_to_property_type` - handle type aliasing before handling PHP version ([#&#8203;9031](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9031)) - docs: unify docs around deprecated sets ([#&#8203;9036](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9036)) - chore: fix typos ([#&#8203;9022](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9022)) - chore: provide few missing types for callbacks ([#&#8203;9026](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9026)) - deps: bump actions/stale from 9 to 10 ([#&#8203;9029](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9029)) - deps: pin checkbashisms and shellcheck to stable URL with pinned version ([#&#8203;9032](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9032)) - DX: suggest `--sequential` when facing fixing error ([#&#8203;9023](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9023)) - refactor: Future - centralize class for future-looking logic ([#&#8203;9021](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9021)) - test: Mark `DocumentationCommandTest::testGeneratingDocumentation()` as large test ([#&#8203;9028](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9028)) ### [`v3.87.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3871) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.87.0...v3.87.1) - chore: `AbstractProxyFixer` - require non-empty list of proxy fixers ([#&#8203;9010](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9010)) - deps: update justinrainbow/json-schema ([#&#8203;9019](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9019)) ### [`v3.87.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3870) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.86.0...v3.87.0) - feat: add `PhpdocTagNoNamedArgumentsFixer` ([#&#8203;8906](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8906)) - feat: deprecate using config from passed 'path' CLI argument ([#&#8203;8923](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8923)) - feat: introduce `@PHP85Migration` set ([#&#8203;8941](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8941)) - feat: upgrade `@PhpCsFixer` set towards new defaults of selected rules ([#&#8203;8981](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8981)) - fix: `PhpdocOrderFixer` - do not allow duplicated tags in configuration ([#&#8203;8945](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8945)) - fix: `PhpdocOrderFixer` when `phpstan-` / `psalm-` order is specified ([#&#8203;8853](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8853)) - docs: README.md updates ([#&#8203;9013](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9013)) - docs: update README.md ([#&#8203;9015](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9015)) - docs: update `README.md` and `CONTRIBUTING.md` ([#&#8203;8974](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8974)) - DX: remove methods for kind checks ([#&#8203;8954](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8954)) - DX: unify class/interface/trait naming ([#&#8203;8957](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8957)) - chore: Add CS commit to .git-blame-ignore-revs - chore: Add TODO for ENUM conversion in ProgressOutputType ([#&#8203;8991](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8991)) - chore: always use `JSON_THROW_ON_ERROR` ([#&#8203;8993](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8993)) - chore: apply (partially) `multiline_string_to_heredoc` ([#&#8203;9002](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9002)) - chore: apply phpdoc\_tag\_no\_named\_arguments ([#&#8203;8969](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8969)) - chore: configure phpdoc\_tag\_no\_named\_arguments ([#&#8203;8970](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8970)) - chore: convert private methods to constants ([#&#8203;8976](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8976)) - chore: deprecate `Annotation::getTagsWithTypes` in favour of `TAGS_WITH_TYPES` constant ([#&#8203;8977](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8977)) - chore: exclude files in .gitattributes ([#&#8203;8960](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8960)) - chore: extract token types for PHPStan ([#&#8203;8925](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8925)) - chore: handle fixer options without allowed types defined ([#&#8203;8973](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8973)) - chore: ignore deprecations in `token_get_all` ([#&#8203;8963](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8963)) - chore: minor CS fixes ([#&#8203;8979](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8979)) - chore: PhpdocTagNoNamedArgumentsFixer - better example ([#&#8203;8971](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8971)) - chore: PHPUnit - enforce no memory\_limit ([#&#8203;8940](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8940)) - chore: remove not-needed reset-call ([#&#8203;9014](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9014)) - chore: revert wrong `_PhpTokenArray` usages ([#&#8203;8947](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8947)) - chore: rework `ci-integration.sh` ([#&#8203;8989](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8989)) - chore: sort .gitattributes ([#&#8203;8966](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8966)) - chore: unify entries in `.gitignore` ([#&#8203;8982](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8982)) - chore: unify env var `FAST_LINT_TEST_CASES` into `PHP_CS_FIXER_FAST_LINT_TEST_CASES` ([#&#8203;8992](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8992)) - chore: use `get_debug_type` and `::class` in exception messages ([#&#8203;9006](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9006)) - chore: use `non-empty-list` where appropriate ([#&#8203;8972](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8972)) - chore: `AbstractPhpdocTypesFixer` - remove `$tags` property ([#&#8203;8980](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8980)) - chore: `CheckCommand` - use regex instead of `explode` & `substr` ([#&#8203;8936](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8936)) - chore: `ClassAttributesSeparationFixer` - improve code ([#&#8203;8950](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8950)) - chore: `EregToPregFixer` - use constant instead of static property ([#&#8203;8978](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8978)) - chore: `FullyQualifiedStrictTypesFixer` - ensure matching number of opening/closing braces ([#&#8203;9009](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9009)) - chore: `OrderedClassElementsFixer` - use private method instead of anonymous function ([#&#8203;8931](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8931)) - chore: `PhpdocParamOrderFixer` - improve/simplify code ([#&#8203;9012](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9012)) - chore: `PhpUnitDedicateAssertFixer` - improve code for phpstan ([#&#8203;9011](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9011)) - chore: `Tokens::offsetSet` - explicit validation of input ([#&#8203;9004](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9004)) - chore: `Tokens` - override nullability of `SplFixedArray` ([#&#8203;9001](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9001)) - refactor: add `DocBlockAnnotation` trait ([#&#8203;8953](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8953)) - refactor: `PhpdocOrderFixer` - calculate order only once ([#&#8203;8944](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8944)) - CI: add `vendor/bin/phpunit --check-php-configuration` ([#&#8203;8934](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8934)) - CI: more self-fixing checks on lowest/highest PHP ([#&#8203;8943](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8943)) - CI: Re-enable Paraunit in CI under PHP 8.5 ([#&#8203;8964](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8964)) - CI: update checkbashisms ([#&#8203;8951](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8951)) - test: extend ProjectCodeTest to check classy names in tests too ([#&#8203;8959](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8959)) - test: split test so more of them can run under Windows ([#&#8203;8986](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8986)) - test: TypeDeclarationSpacesFixer - demonstrate PHP 8.3 related config doesn't harm older envs ([#&#8203;8999](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8999)) - test: update pipe operator tests after pipe & arrow function combination was prohibited ([#&#8203;8990](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8990)) - test: `NoUnneededControlParenthesesFixer` - add tests for "clone with" ([#&#8203;8937](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8937)) - test: `PhpdocNoAliasTagFixerTest` - add test for `@const` to `@var` ([#&#8203;8998](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8998)) - CS: re-apply rules ([#&#8203;8988](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8988)) - deps: bump actions/checkout from 4 to 5 ([#&#8203;8938](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8938)) - deps: bump shipmonk/dead-code-detector from 0.13.1 to 0.13.2 in /dev-tools ([#&#8203;8939](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8939)) - deps: drop support for justinrainbow/json-schema:^5 ([#&#8203;8984](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8984)) - deps: minor upgrades ([#&#8203;8983](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8983)) - deps: remove `php-cs-fixer/accessible-object` ([#&#8203;8948](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8948)) - deps: update dev-tools ([#&#8203;9007](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9007)) ### [`v3.86.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3860) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.85.1...v3.86.0) - feat: console application - add completion support ([#&#8203;8887](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8887)) - feat: introduce `PER-CS3.0` rulsets ([#&#8203;8841](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8841)) - feat: update `@Symfony` and `@PhpCsFixer` sets ([#&#8203;8930](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8930)) - feat: `NoSuperfluousPhpdocTagsFixer` - support multiline array shapes ([#&#8203;8903](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8903)) - fix: PhpdocToParamTypeFixerTest - handle types\_map for union-types ([#&#8203;8926](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8926)) - chore: AbstractTransformerTestCase - better virtual type naming ([#&#8203;8927](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8927)) - chore: add TODO for v4 ([#&#8203;8912](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8912)) - chore: do not call `Reflection*::setAccessible()` in PHP >= 8.1 ([#&#8203;8907](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8907)) - chore: document .env.example ([#&#8203;8901](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8901)) - chore: fix `@todo` annotation casing ([#&#8203;8921](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8921)) - chore: switch to official checkstyle.xsd ([#&#8203;8910](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8910)) - chore: unify future default of after\_heredoc ([#&#8203;8924](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8924)) - chore: `@phpstan-ignore` for php version check ([#&#8203;8920](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8920)) - chore: `PhpUnitTestAnnotationFixer` - use `foreach` instead of `for` ([#&#8203;8911](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8911)) - CI: allow PHP 8.5 for failure, till it's officially released and we get the stable support ([#&#8203;8928](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8928)) - ci: run tests under 8.5 via PHPUnit, as ParaUnit failing ([#&#8203;8933](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8933)) - CI: temporarily skip problematic tests under Sf v8 ([#&#8203;8919](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8919)) - deps: bump icanhazstring/composer-unused from 0.9.3 to 0.9.4 in /dev-tools ([#&#8203;8905](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8905)) - deps: update and bump dev-tools/composer ([#&#8203;8915](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8915)) - docs: extend FullOpeningTagFixer samples ([#&#8203;8913](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8913)) - docs: extend OperatorLinebreakFixer samples ([#&#8203;8914](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8914)) - docs: more explicit msg for stop using deprecated code ([#&#8203;8922](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8922)) - DX: .gitignore - ignore php-cs-fixer.cache, as it's existence is possible when using env var ([#&#8203;8929](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8929)) ### [`v3.85.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3851) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.85.0...v3.85.1) - chore: update legacy deps ([#&#8203;8902](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8902)) ### [`v3.85.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3850) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.84.0...v3.85.0) - feat: `ArrayIndentationFixer` - handle closures inside attributes ([#&#8203;8888](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8888)) - feat: `NullableTypeDeclarationFixer` - support final promoted properties ([#&#8203;8885](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8885)) - feat: `OperatorLinebreakFixer` - support pipe operator ([#&#8203;8891](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8891)) - feat: `PhpdocTypesFixer` - support multiline array shapes ([#&#8203;8893](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8893)) - fix: always reach 100% of checked files ([#&#8203;8861](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8861)) - fix: `BracesPositionFixer` - handle property hooks correctly ([#&#8203;8886](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8886)) - fix: `NullableTypeDeclarationFixer` - handle abstract and final properties ([#&#8203;8876](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8876)) - fix: `PhpdocLineSpanFixer` - handle promoted properties ([#&#8203;8897](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8897)) - fix: `PhpUnitDataProviderNameFixer` - fix for multiple providers defined by attributes for one test method ([#&#8203;8849](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8849)) - fix: `TernaryOperatorSpacesFixer` - handle `instanceof static` ([#&#8203;8879](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8879)) - fix: `TypeDeclarationSpacesFixer` - handle asymmetric visibility and final properties ([#&#8203;8900](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8900)) - chore: add initial PHP 8.5 integration test ([#&#8203;8871](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8871)) - chore: add tests for public API methods ([#&#8203;8895](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8895)) - chore: apply changes from `PhpdocTypesFixer` for multiline array shapes ([#&#8203;8894](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8894)) - chore: baseline files without error count ([#&#8203;8870](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8870)) - chore: cleanup `PhpCsFixer\DocBlock\Annotation` ([#&#8203;8892](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8892)) - chore: Command name/descriptions - use attribute and static properties ([#&#8203;8862](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8862)) - chore: Commands - unify way to define help content ([#&#8203;8881](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8881)) - chore: ConfigurationResolver - add few missing v4 TODOs ([#&#8203;8882](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8882)) - chore: fix `booleanNot.exprNotBoolean` errors ([#&#8203;8869](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8869)) - chore: fix/optimize some phpdocs ([#&#8203;8889](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8889)) - chore: more unification of PHP CS Fixer naming ([#&#8203;8854](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8854)) - chore: PHPStan baseline - use `shipmonk/phpstan-baseline-per-identifier` ([#&#8203;8844](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8844)) - chore: remove dead code ([#&#8203;8896](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8896)) - chore: remove unused constants ([#&#8203;8864](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8864)) - chore: remove useless `@var` annotations ([#&#8203;8867](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8867)) - chore: simplify `ClassDefinitionFixer` ([#&#8203;8868](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8868)) - chore: unify usage of image versions to not mention minor ([#&#8203;8860](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8860)) - chore: update PHPStan ([#&#8203;8898](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8898)) - chore: update PHPStan extension for `Preg::match` ([#&#8203;8872](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8872)) - chore: wrong return values in `ErrorsManager` ([#&#8203;8863](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8863)) - chore: `OrderedInterfacesFixer` - make code more PHPStan friendly ([#&#8203;8866](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8866)) - chore: `Token` - add `@phpstan-assert-if-true` ([#&#8203;8865](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8865)) - deps: bump phpstan/phpstan from 2.1.17 to 2.1.18 in /dev-tools in the phpstan group ([#&#8203;8859](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8859)) - deps: bump the phpstan group in /dev-tools with 4 updates ([#&#8203;8890](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8890)) - docs: better document deprecated rule sets ([#&#8203;8878](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8878)) - docs: cleanup docs for PHP 7 ([#&#8203;8873](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8873)) - docs: cleanup docs for PHP < 7.4 ([#&#8203;8855](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8855)) - docs: ListSetsCommand,FixCommand - document possible formats in Command's definitions ([#&#8203;8880](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8880)) - DX: Explicitly prevent touching non-monolithic files ([#&#8203;6517](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6517)) ### [`v3.84.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3840) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.83.0...v3.84.0) - feat: Introduce `NoUselessPrintfFixer` ([#&#8203;8820](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8820)) - feat: `CastSpacesFixer` - support `(void)` cast ([#&#8203;8851](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8851)) - feat: `NewExpressionParenthesesFixer` - add to `PHP84MigrationSet` ([#&#8203;8788](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8788)) - feat: `VisibilityRequiredFixer` - support final promoted properties ([#&#8203;8835](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8835)) - fix: `PhpdocToParamTypeFixer` - do not convert types from `phpstan-type`, `phpstan-import-type`, `psalm-type` and `psalm-import-type` ([#&#8203;8842](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8842)) - fix: `PhpdocToPropertyTypeFixer` - do not convert types from `phpstan-type`, `phpstan-import-type`, `psalm-type` and `psalm-import-type` ([#&#8203;8847](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8847)) - fix: `PhpdocToReturnTypeFixer` - do not convert types from `phpstan-type`, `phpstan-import-type`, `psalm-type` and `psalm-import-type` ([#&#8203;8846](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8846)) - chore: introduce FCT for few missing tokens ([#&#8203;8845](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8845)) - chore: remove useless static variables for const content ([#&#8203;8836](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8836)) - chore: simplify `isGivenKind`/`equals`/`equalsAll` calls ([#&#8203;8843](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8843)) - docs: Support for new PHP version ([#&#8203;8780](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8780)) ### [`v3.83.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3830) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.82.2...v3.83.0) - feat: Suppress enable parallel runner message when only 1 core is available ([#&#8203;8833](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8833)) - fix: BracesPositionFixer - fix performance issue for massive files with CT::T\_CURLY\_CLOSE ([#&#8203;8830](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8830)) - fix: `NoUnreachableDefaultArgumentValueFixer` - do not crash on property hook ([#&#8203;8838](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8838)) - chore: Add CS commit to .git-blame-ignore-revs - chore: apply native\_constant\_invocation for build-in consts ([#&#8203;8837](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8837)) - chore: configure native\_constant\_invocation ([#&#8203;8840](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8840)) - chore: early compat check with Symfony 8 ([#&#8203;8827](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8827)) - chore: `FullyQualifiedStrictTypesFixer` - reduce function calls ([#&#8203;8834](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8834)) - CI: mark jobs allow-to-fail declarative, instead of imperative check ([#&#8203;8829](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8829)) ### [`v3.82.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3822) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.82.1...v3.82.2) - fix: `ClassAttributesSeparationFixer` - handle method `get` aliased in trait import ([#&#8203;8822](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8822)) - fix: `LowercaseStaticReferenceFixer` - do not touch enum's cases ([#&#8203;8824](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8824)) - fix: `StatementIndentationFixer` - multi constant statement containing array ([#&#8203;8825](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8825)) - fix: `VisibilityRequiredFixer` - handle promoted property with visibility and reference, but without type ([#&#8203;8823](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8823)) ### [`v3.82.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3821) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.82.0...v3.82.1) - fix: `OrderedClassElementsFixer` - handle property hooks ([#&#8203;8817](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8817)) - fix: `SingleClassElementPerStatementFixer` - fix for property hooks ([#&#8203;8816](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8816)) ### [`v3.82.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3820) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.81.0...v3.82.0) - chore: cleanup `FCTTest` ([#&#8203;8808](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8808)) - chore: PhpdocOrderFixer.php - CPU optimization ([#&#8203;8812](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8812)) - deps: update box ([#&#8203;8795](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8795)) - docs: fix whitespace around code examples and reference sections in rules' docs ([#&#8203;8810](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8810)) - feat: `MagicConstantCasingFixer` - support `__PROPERTY__` ([#&#8203;8809](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8809)) - feat: `PhpUnitDataProviderNameFixer` - support data providers defined by both annotation and attribute for the same test ([#&#8203;8811](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8811)) - fix: `PhpdocToParamTypeFixer` - always handle reference in PHPDoc ([#&#8203;8813](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8813)) ### [`v3.81.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3810) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.80.0...v3.81.0) - feat: `VisibilityRequiredFixer` - handle more than only the first promoted property ([#&#8203;8801](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8801)) - fix: `BracesPositionFixer` - do not crash when variable is terminated by PHP close tag ([#&#8203;8804](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8804)) - fix: `PhpUnitDataProviderMethodOrderFixer` - handle data provider defined by both annotation and attribute ([#&#8203;8805](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8805)) - fix: `PhpUnitInternalClassFixer` - skip adding `@internal` on instantiation of anonymous classes ([#&#8203;8807](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8807)) - fix: `VisibilityRequiredFixer` - handle promoted parameter passed by reference ([#&#8203;8799](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8799)) - chore: add automatically to milestone "PHP 8.5 initial compatibility" if label is "topic/PHP8.5" ([#&#8203;8806](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8806)) - chore: fail "Deployment checks" if any job from `tests` failed ([#&#8203;8792](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8792)) - docs: update docs about --allow-unsupported-php-version ([#&#8203;8796](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8796)) ### [`v3.80.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3800) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.79.0...v3.80.0) - feat: PHP 8.4 compatibility support ([#&#8203;8300](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8300)) ### [`v3.79.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3790) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.78.1...v3.79.0) - chore: `VisibilityRequiredFixerTest` - run tests in correct PHP version ([#&#8203;8790](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8790)) - feat: `BracesPositionFixer` - do not touch one-line properties with hooks ([#&#8203;8785](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8785)) - feat: `PhpUnitDataProvider(.+)Fixer` - support attributes ([#&#8203;8197](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8197)) ### [`v3.78.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3781) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.78.0...v3.78.1) - fix: `VisibilityRequiredFixer` - do not add `public` incorrectly ([#&#8203;8787](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8787)) ### [`v3.78.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3780) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.77.0...v3.78.0) - chore: `VisibilityRequiredFixer` - document behaviour for asymmetric visibility with only set-visibility ([#&#8203;8783](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8783)) - feat: `BracesPositionFixer` - support property hooks ([#&#8203;8782](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8782)) - feat: `VisibilityRequiredFixer` - support promoted property without visibility ([#&#8203;8773](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8773)) - fix: `NativeFunctionInvocationFixer` - fix global function `set` called in array key ([#&#8203;8568](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8568)) - fix: `NoBreakCommentFixer` - handle function having return type ([#&#8203;8767](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8767)) - fix: `StatementIndentationFixer` - handle functions `set` and `get` (like property hooks, but not) ([#&#8203;8576](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8576)) - fix: `StaticPrivateMethodFixer` - handle nested calls ([#&#8203;8768](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8768)) ### [`v3.77.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3770) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.76.0...v3.77.0) - chore: add automatically to milestone "PHP 8.4 initial compatibility" if label is "topic/PHP8.4" ([#&#8203;8770](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8770)) - chore: Add CS commit to .git-blame-ignore-revs - chore: fix adding automatically to milestone "PHP 8.4 initial compatibility" if label is "topic/PHP8.4" ([#&#8203;8775](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8775)) - chore: fix adding automatically to milestone "PHP 8.4 initial compatibility" if label is "topic/PHP8.4" ([#&#8203;8776](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8776)) - chore: move all indicators to analyzers ([#&#8203;8772](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8772)) - chore: move PHP-compat integration tests ([#&#8203;8781](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8781)) - chore: partially apply NoExtraBlankLinesFixer:tokens.comma ([#&#8203;8762](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8762)) - chore: reconfigure phpdoc\_order in local config ([#&#8203;8220](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8220)) - feat: PhpdocOrderFixer - extend support for phpstan and psalm annotations ([#&#8203;8777](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8777)) - feat: support anonymous classes extending `TestCase` in PHPUnit fixers ([#&#8203;8707](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8707)) - feat: `CommentToPhpdocFixer` and `PhpdocToCommentFixer` - support asymmetric visibility ([#&#8203;8774](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8774)) - feat: `NoEmptyStatementFixer` - support abstract property hooks ([#&#8203;8766](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8766)) - feat: `NullableTypeDeclarationForDefaultNullValueFixer` - support asymmetric visibility in the constructor ([#&#8203;8604](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8604)) - feat: `ProtectedToPrivateFixer` - add support for promoted properties ([#&#8203;8608](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8608)) - fix: `PhpUnitAttributesFixer` - correctly remove annotations when configured `['keep_annotations' => false]` ([#&#8203;8577](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8577)) - fix: `ProtectedToPrivateFixer` - fix asymmetric visibility with only set visibility ([#&#8203;8763](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8763)) ### [`v3.76.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3760) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.75.0...v3.76.0) - chore(release): bump php ci alpine version ([#&#8203;8581](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8581)) - chore: add missing priority test for `BracesPositionFixer` and `MultilinePromotedPropertiesFixer` ([#&#8203;8596](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8596)) - chore: add more assertions in tests ([#&#8203;8740](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8740)) - chore: bump dependencies version to maximum for non-newest MAJOR version ([#&#8203;8753](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8753)) - chore: cast types in tests ([#&#8203;8742](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8742)) - chore: cleanup booleans use in tests ([#&#8203;8738](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8738)) - chore: cleanup code in tests ([#&#8203;8745](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8745)) - chore: cleanup PsrAutoloadingFixerTest.php keywords handling, as always defined currently ([#&#8203;8730](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8730)) - chore: cleanup `AlignMultilineCommentFixerTest` ([#&#8203;8688](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8688)) - chore: cleanup `BinaryOperatorSpacesFixerTest` ([#&#8203;8687](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8687)) - chore: cleanup `BlankLineBeforeStatementFixerTest` ([#&#8203;8685](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8685)) - chore: cleanup `ClassDefinitionFixerTest` ([#&#8203;8684](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8684)) - chore: cleanup `ClassDefinitionFixer` ([#&#8203;8580](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8580)) - chore: cleanup `ConcatSpaceFixerTest` ([#&#8203;8683](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8683)) - chore: cleanup `DoctrineAnnotationArrayAssignmentFixerTest` ([#&#8203;8621](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8621)) - chore: cleanup `DoctrineAnnotationBracesFixerTest` ([#&#8203;8623](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8623)) - chore: cleanup `DoctrineAnnotationIndentationFixerTest` ([#&#8203;8620](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8620)) - chore: cleanup `DoctrineAnnotationSpacesFixerTest` ([#&#8203;8624](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8624)) - chore: cleanup `EchoTagSyntaxFixerTest` ([#&#8203;8681](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8681)) - chore: cleanup `file_get_contents` return types ([#&#8203;8735](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8735)) - chore: cleanup `FunctionDeclarationFixerTest` ([#&#8203;8680](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8680)) - chore: cleanup `FunctionToConstantFixerTest` ([#&#8203;8618](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8618)) - chore: cleanup `GeneralPhpdocTagRenameFixerTest` ([#&#8203;8627](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8627)) - chore: cleanup `GlobalNamespaceImportFixerTest` ([#&#8203;8679](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8679)) - chore: cleanup `HeaderCommentFixerTest` ([#&#8203;8677](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8677)) - chore: cleanup `HeaderCommentFixerTest` (restore `@requires` for PHP 8.1) ([#&#8203;8678](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8678)) - chore: cleanup `IncrementStyleFixerTest` ([#&#8203;8676](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8676)) - chore: cleanup `IndentationTypeFixerTest` ([#&#8203;8675](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8675)) - chore: cleanup `ListSyntaxFixerTest` ([#&#8203;8674](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8674)) - chore: cleanup `MethodArgumentSpaceFixerTest` ([#&#8203;8673](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8673)) - chore: cleanup `MultilineWhitespaceBeforeSemicolonsFixerTest` ([#&#8203;8614](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8614)) - chore: cleanup `NativeConstantInvocationFixerTest` ([#&#8203;8672](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8672)) - chore: cleanup `NewWithParenthesesFixerTest` ([#&#8203;8592](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8592)) - chore: cleanup `NoBlankLinesAfterPhpdocFixerTest` ([#&#8203;8671](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8671)) - chore: cleanup `NoBreakCommentFixerTest` ([#&#8203;8670](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8670)) - chore: cleanup `NoClosingTagFixerTest` ([#&#8203;8669](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8669)) - chore: cleanup `NoEmptyStatementFixerTest` ([#&#8203;8667](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8667)) - chore: cleanup `NoSpacesAroundOffsetFixerTest` ([#&#8203;8666](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8666)) - chore: cleanup `NoUnneededControlParenthesesFixerTest` ([#&#8203;8665](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8665)) - chore: cleanup `NoUselessElseFixerTest` ([#&#8203;8664](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8664)) - chore: cleanup `PhpdocAddMissingParamAnnotationFixerTest` ([#&#8203;8663](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8663)) - chore: cleanup `PhpdocNoEmptyReturnFixerTest` ([#&#8203;8662](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8662)) - chore: cleanup `PhpdocNoPackageFixerTest` ([#&#8203;8626](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8626)) - chore: cleanup `PhpdocOrderByValueFixerTest` ([#&#8203;8661](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8661)) - chore: cleanup `PhpdocOrderFixerTest` ([#&#8203;8660](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8660)) - chore: cleanup `PhpdocParamOrderFixerTest` ([#&#8203;8659](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8659)) - chore: cleanup `PhpdocReturnSelfReferenceFixerTest` ([#&#8203;8658](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8658)) - chore: cleanup `PhpdocSeparationFixerTest` ([#&#8203;8657](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8657)) - chore: cleanup `PhpdocSummaryFixerTest` ([#&#8203;8654](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8654)) - chore: cleanup `PhpdocTrimFixerTest` ([#&#8203;8653](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8653)) - chore: cleanup `PhpdocTypesOrderFixerTest` ([#&#8203;8652](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8652)) - chore: cleanup `PhpdocVarWithoutNameFixerTest` ([#&#8203;8617](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8617)) - chore: cleanup `PhpUnitConstructFixerTest` ([#&#8203;8651](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8651)) - chore: cleanup `PhpUnitDedicateAssertFixerTest` ([#&#8203;8650](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8650)) - chore: cleanup `PhpUnitTestCaseStaticMethodCallsFixerTest` ([#&#8203;8649](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8649)) - chore: cleanup `Preg` issues ([#&#8203;8720](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8720)) - chore: cleanup `ReturnAssignmentFixerTest` ([#&#8203;8648](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8648)) - chore: cleanup `ReturnTypeDeclarationFixerTest` ([#&#8203;8647](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8647)) - chore: cleanup `SingleImportPerStatementFixerTest` ([#&#8203;8645](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8645)) - chore: cleanup `SingleLineCommentStyleFixerTest` ([#&#8203;8644](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8644)) - chore: cleanup `SingleSpaceAroundConstructFixerTest` ([#&#8203;8642](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8642)) - chore: cleanup `SpaceAfterSemicolonFixerTest` ([#&#8203;8625](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8625)) - chore: cleanup `SpacesInsideParenthesesFixerTest` ([#&#8203;8641](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8641)) - chore: cleanup `StatementIndentationFixerTest` ([#&#8203;8640](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8640)) - chore: cleanup `YodaStyleFixerTest` ([#&#8203;8638](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8638)) - chore: do not check if `JSON_INVALID_UTF8_IGNORE` is defined because it always is (since PHP 7.2) ([#&#8203;8709](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8709)) - chore: handle saveXML failures explicitly ([#&#8203;8755](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8755)) - chore: ignore remaining PHPStan (false positive) issues ([#&#8203;8746](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8746)) - chore: improve PHPDoc's types in ([#&#8203;8741](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8741)) - chore: improve PHPDocs in tests ([#&#8203;8736](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8736)) - chore: improve PHPDocs in tests ([#&#8203;8744](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8744)) - chore: improve type of `Token::equalsAny` ([#&#8203;8743](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8743)) - chore: lint yaml files ([#&#8203;8622](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8622)) - chore: MultilinePromotedPropertiesFixer - mark new fixer introduced in [#&#8203;8595](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8595) as experimental ([#&#8203;8758](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8758)) - chore: PHPMD - cleanup `UnusedLocalVariable` for `foreach` ([#&#8203;8637](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8637)) - chore: refactor FCT ([#&#8203;8714](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8714)) - chore: remove unused local variables in src ([#&#8203;8600](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8600)) - chore: remove unused local variables in tests ([#&#8203;8599](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8599)) - chore: remove useless test from `AliasedFixerOptionTest` ([#&#8203;8739](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8739)) - chore: remove `defined` calls from tests ([#&#8203;8708](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8708)) - chore: restore original type of Token::equalsAny, partially reverts [#&#8203;8743](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8743) ([#&#8203;8759](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8759)) - chore: run mutation tests on PHP 8.4 ([#&#8203;8594](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8594)) - chore: solve one of phpstan warnings ([#&#8203;8754](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8754)) - chore: update dev tools ([#&#8203;8737](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8737)) - chore: update PHPUnit config ([#&#8203;8721](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8721)) - chore: update `checkbashisms` to 2.25.12 ([#&#8203;8694](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8694)) - chore: update `checkbashisms` to 2.25.14 ([#&#8203;8731](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8731)) - chore: use PHPStan type in data providers ([#&#8203;8605](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8605)) - chore: use `foreach` values ([#&#8203;8636](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8636)) - chore: use `Preg` class everywhere ([#&#8203;8689](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8689)) - CI: add self-approved label ([#&#8203;8757](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8757)) - CI: run on PHP 8.5 ([#&#8203;8713](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8713)) - deps: bump alpine from 3.21.3 to 3.22.0 ([#&#8203;8724](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8724)) - deps: bump alpine from 3.21.3 to 3.22.0 ([#&#8203;8726](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8726)) - deps: bump ergebnis/composer-normalize from 2.45.0 to 2.46.0 in /dev-tools ([#&#8203;8578](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8578)) - deps: bump ergebnis/composer-normalize from 2.46.0 to 2.47.0 in /dev-tools ([#&#8203;8584](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8584)) - deps: bump phpstan/phpstan from 2.1.11 to 2.1.12 in /dev-tools in the phpstan group ([#&#8203;8583](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8583)) - deps: bump phpstan/phpstan-symfony from 2.0.3 to 2.0.4 in /dev-tools in the phpstan group ([#&#8203;8557](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8557)) - deps: bump the phpstan group across 1 directory with 2 updates ([#&#8203;8682](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8682)) - deps: upgrade docker deps ([#&#8203;8566](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8566)) - docs: extend and fix links to code ([#&#8203;8639](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8639)) - docs: Update SECURITY.md ([#&#8203;8716](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8716)) - docs: VisibilityRequiredFixer - extend docs ([#&#8203;8561](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8561)) - docs: `VisibilityRequiredFixer` - update docs ([#&#8203;8563](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8563)) - DX: add `symfony/polyfill-php84` ([#&#8203;8555](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8555)) - DX: always use the latest stable `checkbashisms` package ([#&#8203;8732](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8732)) - DX: check for `preg_` functions in tests ([#&#8203;8571](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8571)) - DX: cleanup `BlankLinesBeforeNamespaceFixerTest` ([#&#8203;8573](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8573)) - DX: cleanup `NativeFunctionInvocationFixerTest` ([#&#8203;8567](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8567)) - DX: cleanup `NoUselessConcatOperatorFixerTest` ([#&#8203;8572](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8572)) - DX: cleanup `SemicolonAfterInstructionFixerTest` ([#&#8203;8570](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8570)) - DX: fix data providers ([#&#8203;8693](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8693)) - DX: introduce `FCT` class for tokens not present in the lowest supported PHP version ([#&#8203;8706](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8706)) - DX: move `symfony/polyfill-php84` to dev deps ([#&#8203;8559](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8559)) - DX: support PHP 8.4 in local Docker development environment ([#&#8203;8564](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8564)) - DX: trim array/yield keys ([#&#8203;8460](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8460)) - DX: use `WhitespacesAwareFixerInterface` only when needed ([#&#8203;8541](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8541)) - feat: add `NewExpressionParenthesesFixer` ([#&#8203;8246](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8246)) - feat: allowUnsupportedPhpVersion ([#&#8203;8733](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8733)) - feat: introduce `MultilinePromotedPropertiesFixer` ([#&#8203;8595](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8595)) - feat: Introduce `StaticPrivateMethodFixer` ([#&#8203;4557](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/4557)) - feat: `BracesPositionFixer` - support property hooks in promoted properties ([#&#8203;8613](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8613)) - feat: `ClassAttributesSeparationFixer` - add support for property hooks ([#&#8203;8610](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8610)) - feat: `GlobalNamespaceImportFixer` - analyse and fix more annotations with types ([#&#8203;8593](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8593)) - feat: `LowercaseKeywordsFixer` - support asymmetric visibility ([#&#8203;8607](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8607)) - feat: `NoExtraBlankLinesFixer` - add comma to supported tokens ([#&#8203;8655](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8655)) - feat: `NoSuperfluousPhpdocTagsFixer` - support asymmetric visibility ([#&#8203;8700](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8700)) - feat: `NullableTypeDeclarationFixer` - support asymmetric visibility ([#&#8203;8697](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8697)) - feat: `OrderedClassElementsFixer` - add support for property hooks for abstract properties ([#&#8203;8574](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8574)) - feat: `OrderedTypesFixer` - add support for asymmetric visibility ([#&#8203;8552](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8552)) - feat: `OrderedTypesFixer` - support asymmetric visibility in promoted property ([#&#8203;8602](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8602)) - feat: `PhpdocAddMissingParamAnnotationFixer` - support asymmetric visibility ([#&#8203;8701](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8701)) - feat: `PhpdocLineSpanFixer` - support asymmetric visibility ([#&#8203;8702](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8702)) - feat: `PhpdocVarWithoutNameFixer` - support asymmetric visibility ([#&#8203;8704](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8704)) - feat: `ProtectedToPrivateFixer` - add support for asymmetric visibility ([#&#8203;8569](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8569)) - feat: `SingleClassElementPerStatementFixer` - support asymmetric visibility ([#&#8203;8696](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8696)) - feat: `SingleSpaceAroundConstructFixer` - add support for asymmetric visibility ([#&#8203;8699](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8699)) - feat: `StaticLambdaFixer` - support functions having classy elements with `$this` ([#&#8203;8728](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8728)) - feat: `VisibilityRequiredFixer` - support ordering set-visibility modifier ([#&#8203;8606](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8606)) - fix(dependabot): convert time values to string types ([#&#8203;8634](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8634)) - fix: "array" type must have no prefix to be fixable to "list" ([#&#8203;8692](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8692)) - fix: "min"/"max" in int generics must never be prefixed by backslash ([#&#8203;8691](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8691)) - fix: Allow non-doc comment on opening inline brace line ([#&#8203;8690](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8690)) - fix: `ConstantCaseFixer` - do not touch namespaces starting with `Null\` ([#&#8203;8752](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8752)) - fix: `LowercaseStaticReferenceFixer` - do not change global constants ([#&#8203;8727](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8727)) - fix: `MultilineWhitespaceBeforeSemicolonsFixer` - do not touch multiline constants definitions ([#&#8203;8615](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8615)) - fix: `NewWithParenthesesFixer` - fix `new` without parentheses on PHP 8.4 syntax ([#&#8203;8588](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8588)) - fix: `NoMultipleStatementsPerLineFixer` - handle `set` and `get` in different casing in property hooks ([#&#8203;8558](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8558)) - fix: `NoUnusedImportsFixer` - handle imported class name with underscore before or after it in PHPDoc ([#&#8203;8598](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8598)) - fix: `PhpUnitDedicateAssertFixer` - fix for `assertFalse` with `instanceof` ([#&#8203;8597](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8597)) - fix: `PhpUnitNamespacedFixer` must rune before `NoUnneededImportAliasFixer` ([#&#8203;8579](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8579)) - fix: `PhpUnitTestClassRequiresCoversFixer` - do not add `@coversNothing` annotation when `CoversTrait` attribute is used ([#&#8203;8734](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8734)) - fix: `VisibilityRequiredFixer` - add support for asymmetric visibility ([#&#8203;8586](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8586)) - refactor: avoid unused local variables in tests ([#&#8203;8609](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8609)) - test: add more cases to `PhpUnitMethodCasingFixerTest` ([#&#8203;8551](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8551)) - test: fix "unused local variables `$token`" ([#&#8203;8603](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8603)) - test: More verbose error output for integration test ([#&#8203;8565](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8565)) - Update SECURITY.md ### [`v3.75.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3750) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.74.0...v3.75.0) - feat: `ClassAttributesSeparationFixer` - add support for asymmetric visibility ([#&#8203;8518](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8518)) - fix: `NativeFunctionInvocationFixer` - fix for property hooks ([#&#8203;8540](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8540)) - chore: add return types for data providers for fixers ([#&#8203;8542](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8542)) - chore: add return types for data providers for non-fixers ([#&#8203;8543](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8543)) - chore: add return types for remaining data providers ([#&#8203;8544](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8544)) - chore: make data providers key type `int` if all the keys are strings ([#&#8203;8550](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8550)) - chore: make data providers key type `string` if all the keys are strings ([#&#8203;8545](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8545)) - chore: SwitchContinueToBreakFixerTest - improve test case descriptions/typehint ([#&#8203;8546](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8546)) - chore: `FunctionsAnalyzerTest` cleanup ([#&#8203;8539](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8539)) - deps: bump the phpstan group in /dev-tools with 2 updates ([#&#8203;8537](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8537)) - test: ProjectCodeTest::testDataProvidersDeclaredReturnType - allow for int as iterable keys ([#&#8203;8548](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8548)) ### [`v3.74.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3740) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.73.1...v3.74.0) - feat: add `--format=@&#8203;auto` ([#&#8203;8513](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8513)) - fix: `BracesPositionFixer` - do not create two consecutive whitespace tokens ([#&#8203;8496](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8496)) - fix: `MbStrFunctionsFixer` - fix imports with leading backslash ([#&#8203;8507](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8507)) - fix: `NoUnreachableDefaultArgumentValueFixer` - do not crash on property hook ([#&#8203;8512](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8512)) - fix: `OrderedImportsFixer` - do not take the braces part in grouped imports into account ([#&#8203;8459](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8459)) - fix: `OrderedImportsFixer` - fix syntax error with grouped use statement and multiple use with comma ([#&#8203;8483](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8483)) - fix: `PhpUnitAttributesFixer` - handle parentheses after data provider method name ([#&#8203;8510](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8510)) - fix: `PhpUnitMethodCasingFixer` - do not touch anonymous class ([#&#8203;8463](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8463)) - chore: make options that have default and allowed sets the same size the same array ([#&#8203;8529](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8529)) - chore: update return type of `FixerOptionInterface::getAllowedValues` ([#&#8203;8530](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8530)) - chore: `Preg` - improve types ([#&#8203;8527](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8527)) - CI: fix code coverage job ([#&#8203;8520](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8520)) - CI: try MacOS job without ParaUnit ([#&#8203;8528](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8528)) - deps: update PHPStan ([#&#8203;8531](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8531)) - deps: upgrade `PHPStan/*` ([#&#8203;8524](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8524)) ### [`v3.73.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3731) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.73.0...v3.73.1) - fix: `OrderedClassElementsFixer` - do not crash on property hook ([#&#8203;8517](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8517)) ### [`v3.73.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3730) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.72.0...v3.73.0) - feat: add support for asymmetric visibility to Doctrine's fixers ([#&#8203;8415](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8415)) - fix: `GeneralPhpdocTagRenameFixer` - do not rename keys in array shape definition ([#&#8203;8477](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8477)) - fix: `MethodArgumentSpaceFixer` - handle when nested in HTML ([#&#8203;8503](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8503)) - chore: update `checkbashisms` to 2.25.5 ([#&#8203;8519](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8519)) - DX: cleanup `NoExtraBlankLinesFixerTest` ([#&#8203;8505](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8505)) - DX: for duplicated test methods check methods without parameters ([#&#8203;8508](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8508)) - DX: remove more duplicated test methods ([#&#8203;8506](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8506)) - refactor: `Tokenizer` hash metode using `xxHash` ([#&#8203;8491](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8491)) - refactor: `TokensAnalyzerTest` - better test `isArray` and `isArrayMultiLine` ([#&#8203;8504](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8504)) - test: run code coverage on PHP 8.4 ([#&#8203;8448](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8448)) ### [`v3.72.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3720) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.71.0...v3.72.0) - feat: `StatementIndentationFixer` - handle property hooks ([#&#8203;8492](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8492)) - fix: `MbStrFunctionsFixer` - fix imports ([#&#8203;8474](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8474)) - fix: `TrailingCommaInMultilineFixer` - handle empty match body ([#&#8203;8480](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8480)) - fix: `VisibilityRequiredFixer` - handle property hooks ([#&#8203;8495](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8495)) - deps: upgrade few dev-deps ([#&#8203;8490](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8490)) - deps: Upgrade PHPStan to 2.1.8 ([#&#8203;8489](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8489)) - DX: add trailing comma to multiline auto-generated types ([#&#8203;8499](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8499)) - refactor: generalize CodeHasher into Hasher ([#&#8203;8500](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8500)) - refactor: Runner - unify paths used when using parallel runner ([#&#8203;8488](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8488)) - refactor: use Hasher instead of md5 directly ([#&#8203;8501](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8501)) ### [`v3.71.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3710) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.70.2...v3.71.0) - feat: OrderedImportsFixer - deprecate length sorting algorithm ([#&#8203;8473](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8473)) - fix: `BinaryOperatorSpacesFixer` - do not break alignment of UTF-8 array keys ([#&#8203;8484](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8484)) - fix: `PhpdocAlignFixer` - align correctly type with UTF8 characters ([#&#8203;8486](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8486)) - fix: `SingleSpaceAroundConstructFixer` - handle alternative syntax ([#&#8203;8317](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8317)) - fix: `StatementIndentationFixer` - return in braceless if ([#&#8203;8479](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8479)) - chore: update type in `SingleSpaceAroundConstructFixerTest::provideFixWithElseIfCases` ([#&#8203;8481](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8481)) - chore: update type in `SingleSpaceAroundConstructFixerTest::provideFixWithIfCases` ([#&#8203;8482](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8482)) - deps: bump phpstan/phpstan from 2.1.6 to 2.1.7 in /dev-tools in the phpstan group ([#&#8203;8485](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8485)) - DX: cleanup `PhpdocNoAliasTagFixerTest` ([#&#8203;8476](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8476)) - refactor: add `FullyQualifiedNameAnalyzer` ([#&#8203;8048](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8048)) - refactor: codeHash - update when it's (re-)generated ([#&#8203;8470](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8470)) - refactor: `SwitchAnalyzer` - improve performance ([#&#8203;8407](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8407)) - test: NameQualifiedTransformerTest - correct test case ([#&#8203;8471](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8471)) ### [`v3.70.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3702) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.70.1...v3.70.2) - deps: upgrade deep dev-tools deps ([#&#8203;8472](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8472)) - fix: `MbStrFunctionsFixer` must run before `NativeFunctionInvocationFixer` ([#&#8203;8466](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8466)) - fix: `MethodArgumentSpaceFixer` - fix nested calls for `ensure_fully_multiline` option ([#&#8203;8469](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8469)) ### [`v3.70.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3701) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.70.0...v3.70.1) - fix: `PhpUnitSizeClassFixer` must run before `PhpUnitAttributesFixer` ([#&#8203;8457](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8457)) - DX: cleanup `OrderedImportsFixerTest` ([#&#8203;8458](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8458)) ### [`v3.70.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3700) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.69.1...v3.70.0) - feat: Add `PhpUnitDataProviderMethodOrderFixer` fixer ([#&#8203;8225](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8225)) - feat: `HeaderCommentFixer` - allow validators ([#&#8203;8452](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8452)) - feat: `PhpCsFixer` ruleset: use `operator_linebreak` rule for all operators ([#&#8203;8417](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8417)) - feat: `PhpUnitMethodCasingFixer` to support PHPUnit's `Test` attribute ([#&#8203;8451](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8451)) - feat: `TypeDeclarationSpacesFixer` - Fix whitespace between const type and const name ([#&#8203;8442](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8442)) - chore: extend bug report template ([#&#8203;8447](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8447)) - chore: extend bug report template - more installation options ([#&#8203;8450](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8450)) - CI: phpstan-symfony - add entry point for console ([#&#8203;8292](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8292)) - deps: bump alpine from 3.21.2 to 3.21.3 ([#&#8203;8454](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8454)) - deps: bump phpstan/phpstan from 2.1.5 to 2.1.6 in /dev-tools in the phpstan group ([#&#8203;8453](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8453)) - fix: `CommentsAnalyzer` - allow other forms of assignment as valid structural elements for PHPDocs ([#&#8203;8371](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8371)) - fix: `PhpUnitTestClassRequiresCoversFixer` must run before `PhpUnitAttributesFixer` ([#&#8203;8444](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8444)) - test: fix `CheckCommandTest::testDryRunModeIsUnavailable` to correctly check that option `--dry-run` is unavailable ([#&#8203;8438](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8438)) ### [`v3.69.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3691) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.69.0...v3.69.1) - fix: `PhpUnitAttributesFixer` - convert correctly version constraint ([#&#8203;8439](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8439)) - test: `PhpUnitAttributesFixer` must run before `NoEmptyPhpdocFixer` ([#&#8203;8443](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8443)) ### [`v3.69.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3690) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.68.5...v3.69.0) - feat: Add unsealed array shape phpdoc support ([#&#8203;8299](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8299)) - fix: `OrderedClassElementsFixer` - sort correctly typed constants ([#&#8203;8408](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8408)) - chore: do not use test class as test data ([#&#8203;8430](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8430)) - chore: update `checkbashisms` to 2.25.2 ([#&#8203;8427](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8427)) - chore: use constants instead of literal strings ([#&#8203;8422](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8422)) - CI: no need to unlock deps on master ([#&#8203;8426](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8426)) - CI: run tests using PHPUnit 12 ([#&#8203;8431](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8431)) - deps: bump kubawerlos/composer-smaller-lock from 1.0.1 to 1.1.0 in /dev-tools ([#&#8203;8414](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8414)) - deps: bump maglnet/composer-require-checker from 4.14.0 to 4.15.0 in /dev-tools ([#&#8203;8406](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8406)) - deps: bump phpstan/phpstan from 2.1.3 to 2.1.5 in /dev-tools in the phpstan group ([#&#8203;8437](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8437)) - deps: bump the phpstan ([#&#8203;8423](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8423)) - deps: upgrade dev requirements ([#&#8203;8424](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8424)) ### [`v3.68.5`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3685) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.68.4...v3.68.5) - fix: `NativeTypeDeclarationCasingFixer` - do not touch constants named as native types ([#&#8203;8404](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8404)) ### [`v3.68.4`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3684) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.68.3...v3.68.4) - chore: run SCA on PHP 8.4 ([#&#8203;8396](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8396)) - fix: NativeTypeDeclarationCasingFixer should not touch property names ([#&#8203;8400](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8400)) ### [`v3.68.3`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3683) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.68.2...v3.68.3) - fix: `NativeTypeDeclarationCasingFixer` - fix for enum with "Mixed" case ([#&#8203;8395](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8395)) ### [`v3.68.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3682) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.68.1...v3.68.2) - fix: `NativeTypeDeclarationCasingFixer` - fix for promoted properties, enums, `false` and `mixed` ([#&#8203;8386](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8386)) - chore: ensure that `dev-tools` dependencies are bumped ([#&#8203;8389](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8389)) - chore: experiment to see if we can auto-shrink the lock after dependabot ([#&#8203;8383](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8383)) - chore: experiment to see if we can auto-shrink the lock after dependabot /part ([#&#8203;8384](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8384)) - chore: Get rid of Docker warnings during build ([#&#8203;8379](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8379)) - chore: remove redundant check ([#&#8203;8391](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8391)) - chore: update types ([#&#8203;8390](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8390)) - CI: stale - update close msg to emphasize contribution over demand ([#&#8203;8385](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8385)) - deps: bump phpcompatibility/phpcompatibility-symfony from 1.2.1 to 1.2.2 in /dev-tools ([#&#8203;8378](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8378)) - deps: bump the phpstan group in /dev-tools with 4 updates ([#&#8203;8387](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8387)) - refactor: Use native `Yaml::parseFile()` instead of custom method ([#&#8203;8380](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8380)) ### [`v3.68.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3681) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.68.0...v3.68.1) - chore: `AutoReview/CiConfigurationTest` - handle failure of reading files ([#&#8203;8375](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8375)) - CI: `Docker` - check all `compose` services ([#&#8203;8370](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8370)) - deps: bump alpine from 3.18 to 3.21 ([#&#8203;8377](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8377)) - deps: bump alpine from 3.18.4 to 3.21.2 ([#&#8203;8362](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8362)) - refactor: Tokens::clearEmptyTokens - optimize cache handling ([#&#8203;8335](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8335)) ### [`v3.68.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3680) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.67.1...v3.68.0) - feat: `ModernizeStrposFixer` - support `stripos` ([#&#8203;8019](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8019)) - chore: `FullyQualifiedStrictTypesFixer` - reduce conditions count ([#&#8203;8368](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8368)) - test: `PhpUnitSetUpTearDownVisibilityFixer` - extend test for anonymous classes ([#&#8203;8369](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8369)) ### [`v3.67.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3671) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.67.0...v3.67.1) - fix: `FullyQualifiedStrictTypesFixer` - fix return types ([#&#8203;8367](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8367)) - fix: `PhpUnitSetUpTearDownVisibilityFixer` - do not touch anonymous classes ([#&#8203;8366](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8366)) - chore: allow for class-string in doc types of rule options ([#&#8203;8358](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8358)) - chore: CS: Move data provider methods after their test method ([#&#8203;8302](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8302)) - chore: dependabot integration ([#&#8203;8357](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8357)) - chore: `PHPStan` - upgrade to 2.1 ([#&#8203;8355](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8355)) - CI: Introduce PHP compatibility check ([#&#8203;7844](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7844)) - deps: bump docker/build-push-action from 5 to 6 ([#&#8203;8361](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8361)) - docs: update installation instructions ([#&#8203;8356](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8356)) ### [`v3.67.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3670) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.66.2...v3.67.0) - chore: simplify loops using `end`/`prev` functions ([#&#8203;8352](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8352)) - feat: Introduce `general_attribute_remove` fixer ([#&#8203;8339](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8339)) ### [`v3.66.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3662) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.66.1...v3.66.2) - chore: do not use bitwise "or" assignment operator ([#&#8203;8346](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8346)) - chore: remove extra check, never happening ([#&#8203;8348](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8348)) - chore: remove impossible `@throws` annotation ([#&#8203;8353](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8353)) - chore: Tokens - cleanup ([#&#8203;8350](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8350)) - chore: Tokens - minor performance and types optimizations ([#&#8203;8349](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8349)) ### [`v3.66.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3661) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.66.0...v3.66.1) - chore: fix CI for Windows ([#&#8203;8326](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8326)) - chore: `NoMultipleStatementsPerLineFixer` - be aware of PHP 8.4 property hooks ([#&#8203;8344](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8344)) - chore: `TernaryToElvisOperatorFixer` - improvements based on PHPStan detections ([#&#8203;8345](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8345)) - chore: `PhpUnitTestCaseStaticMethodCallsFixer` - fix type of `methods` option in documentation and add example with it ([#&#8203;8338](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8338)) - chore: update legacy deps ([#&#8203;8342](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8342)) - deps: update box ([#&#8203;8336](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8336)) ### [`v3.66.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3660) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.65.0...v3.66.0) - feat: `Tokenizer` - initial support for PHP 8.4 property hooks ([#&#8203;8312](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8312)) - feat: `PhpUnitTestCaseStaticMethodCallsFixer` - cover PHPUnit v11.5 methods ([#&#8203;8314](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8314)) - feat: `PhpUnitTestCaseStaticMethodCallsFixer` - make sure all static protected methods are handled ([#&#8203;8327](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8327)) - feat: `PhpUnitTestCaseStaticMethodCallsFixer` - support createStub ([#&#8203;8319](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8319)) - feat: `UseArrowFunctionsFixer` - support multiline statements ([#&#8203;8311](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8311)) - fix: `NullableTypeDeclarationFixer` - do not break multi-line declaration ([#&#8203;8331](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8331)) - test: `CiConfigurationTest` - drop not needed condition, logic is checked in upcoming assertion ([#&#8203;8303](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8303)) - chore: add more typehints ([#&#8203;8325](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8325)) - chore: `DotsOutput` - more const, better typing ([#&#8203;8318](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8318)) - chore: mark classes as readonly ([#&#8203;8275](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8275)) - chore: more const, better typing ([#&#8203;8320](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8320)) - chore: temporarily prevent symfony/process 7.2+ ([#&#8203;8322](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8322)) - chore: `Tokens` - simplify (un)registerFoundToken types ([#&#8203;8328](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8328)) - chore: upgrade PHPStan ([#&#8203;8321](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8321)) - chore: `BraceTransformer` - don't touch curly index braces since 8.4, as it's not a valid syntax anymore ([#&#8203;8313](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8313)) - CI: enable phpdoc\_to\_property\_type on php-lowest ([#&#8203;8324](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8324)) - Create SECURITY.md - docs: `Tokens` - fix docs ([#&#8203;8332](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8332)) ### [`v3.65.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3650) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.64.0...v3.65.0) - feat: Ability to set upper limit when using CPU auto-detection ([#&#8203;8280](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8280)) - feat: create `@PHP82Migration:risky` ruleset ([#&#8203;8277](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8277)) - feat: Impl. TypeExpression::mapTypes() ([#&#8203;8077](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8077)) - feat: Parse array/generic/nullable type into inner expression ([#&#8203;8106](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8106)) - feat: phpdoc\_to\_property\_type - handle virtual types and null initialization, enable in php-highest CI job ([#&#8203;8283](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8283)) - feat: Store PHPDoc offset in `DataProviderAnalysis` ([#&#8203;8226](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8226)) - feat: Support for complex PHPDoc types in `fully_qualified_strict_types` ([#&#8203;8085](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8085)) - fix: check for priority tests correctly ([#&#8203;8221](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8221)) - fix: Do not mark with `@coversNothing` if `CoversMethod`/`CoversFunction` attribute is used ([#&#8203;8268](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8268)) - fix: enum-case mistaken for const invocation ([#&#8203;8190](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8190)) - fix: fix typing of few properties wrongly typed as non-nullable ([#&#8203;8285](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8285)) - fix: fix typing property wrongly typed as non-nullable ([#&#8203;8290](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8290)) - fix: MethodChainingIndentationFixer does not fix indentation of last chained property ([#&#8203;8080](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8080)) - fix: NoSuperfluousPhpdocTagsFixer - Remove superfluous phpdoc of parameter with attribute ([#&#8203;8237](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8237)) - fix: parsing mixed `&` and `|` in `TypeExpression` ([#&#8203;8210](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8210)) - fix: proper base class used for AbstractDoctrineAnnotationFixer templates generation ([#&#8203;8291](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8291)) - fix: Properly recognise constants in foreach loops ([#&#8203;8203](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8203)) - fix: Tokens::overrideRange() block cache pruning ([#&#8203;8240](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8240)) - fix: `BlankLineAfterOpeningTagFixer` - add blank line in file starting with multi-line comment ([#&#8203;8256](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8256)) - fix: `MultilineWhitespaceBeforeSemicolonsFixer` - do not produce syntax error when there is a meaningful token after semicolon ([#&#8203;8230](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8230)) - fix: `NullableTypeDeclarationFixer` - do not break syntax when there is no space before `?` ([#&#8203;8224](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8224)) - fix: `PhpUnitDataProvider(.+)Fixer` - do not omit when there is an attribute between PHPDoc and test method ([#&#8203;8185](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8185)) - fix: `PhpUnitDataProviderNameFixer` - for an attribute between PHPDoc and test method ([#&#8203;8217](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8217)) - chore: add todo for PHP v8 ([#&#8203;8274](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8274)) - chore: auto-fallback to sequential runner if single CPU would handle it ([#&#8203;8154](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8154)) - chore: block changing tokens collection size using `PhpCsFixer\Tokenizer\Tokens::setSize` ([#&#8203;8257](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8257)) - chore: bump dev-tools ([#&#8203;8286](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8286)) - chore: bump PHPStan ([#&#8203;8245](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8245)) - chore: Cheaper file check first ([#&#8203;8252](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8252)) - chore: ConfigInterface - better types ([#&#8203;8244](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8244)) - chore: do not call `Tokens::setSize` in `GroupImportFixer` ([#&#8203;8253](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8253)) - chore: do not use `Reflection*::setAccessible` ([#&#8203;8264](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8264)) - chore: fix priority tests ([#&#8203;8223](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8223)) - chore: Fix typos in AbstractFixerTestCase ([#&#8203;8247](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8247)) - chore: GithubClient - make URL injectable ([#&#8203;8272](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8272)) - chore: Implement PHPStan `Preg::match()` extensions ([#&#8203;8103](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8103)) - chore: mark remaining Analysis as `@internal` ([#&#8203;8284](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8284)) - chore: PHPStan - upgrade to v2 ([#&#8203;8288](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8288)) - chore: reduce amount of class mutable properties ([#&#8203;8281](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8281)) - chore: remove from priority tests exceptions tests that are not actually exceptions ([#&#8203;8222](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8222)) - chore: remove incorrect priority tests ([#&#8203;8231](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8231)) - chore: remove not needed PHP version requirements in descriptions ([#&#8203;8265](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8265)) - chore: remove unnecessary methods ([#&#8203;8200](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8200)) - chore: tests/Tokenizer/Transformer - better typehinting ([#&#8203;8243](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8243)) - chore: Token - remove 'changed' property ([#&#8203;8273](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8273)) - chore: Token::getContent() phpdoc return type ([#&#8203;8236](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8236)) - chore: update dev dependencies in root ([#&#8203;8289](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8289)) - chore: update PHPStan to 1.12.9 ([#&#8203;8271](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8271)) - chore: update `checkbashisms` to 2.24.1 ([#&#8203;8258](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8258)) - chore: use null coalescing assignment operator where possible ([#&#8203;8219](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8219)) - CI: allow macos to fail ([#&#8203;8194](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8194)) - CI: build phar on PHP 8.3 ([#&#8203;8195](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8195)) - CI: drop matrix for single-matrix-entry jobs of SCA and Deployment checks ([#&#8203;8193](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8193)) - CI: Ensure php-cs-fixer PHP compatibility /part ([#&#8203;8241](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8241)) - CI: Ensure `php-cs-fixer` PHP compatibility ([#&#8203;8235](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8235)) - CI: generate and execute code in `assert` ([#&#8203;8207](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8207)) - CI: update PHPStan to 1.12.2 ([#&#8203;8198](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8198)) - CI: update PHPStan to 1.12.3 ([#&#8203;8204](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8204)) - CI: use phpstan-symfony ([#&#8203;8287](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8287)) - depr: ConfigInterface::getPhpExecutable() and ConfigInterface::setPhpExecutable() ([#&#8203;8192](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8192)) - deps: add `composer-smaller-lock` ([#&#8203;8263](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8263)) - deps: Update PHPStan to 1.12.4 ([#&#8203;8215](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8215)) - deps: Update PHPStan to 1.12.5 ([#&#8203;8218](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8218)) - deps: update PHPStan to 1.12.7 ([#&#8203;8255](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8255)) - docs: fix inconsistency in config doc ([#&#8203;8269](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8269)) - docs: mention github action example instead of travis-ci ([#&#8203;8250](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8250)) - DX: Cover `php-cs-fixer` file with static analysis ([#&#8203;8229](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8229)) - DX: Make `TypeExpression` API more explicit about composite types ([#&#8203;8214](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8214)) - refactor: change `_AttributeItems` to `non-empty-list<_AttributeItem>` to allow using single attribute item ([#&#8203;8199](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8199)) - refactor: Rename newly introduced option ([#&#8203;8293](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8293)) - refactor: Runner - Enhance eventing system ([#&#8203;8276](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8276)) - refactor: Runner - make 4.0 TODOs easier to understand ([#&#8203;8196](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8196)) - refactor: use arrow functions in more places ([#&#8203;8294](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8294)) - test: `@PHP82Migration:risky` - add integration tests ([#&#8203;8278](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8278)) ### [`v3.64.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3640) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.63.2...v3.64.0) - feat: Symfony - adjust configuration for sets ([#&#8203;8188](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8188)) - feat: Symfony.trailing\_comma\_in\_multiline - adjust configuration ([#&#8203;8161](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8161)) - feat: Update PSR2, PSR12 and PER-CS2 with `single_space_around_construct` config ([#&#8203;8171](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8171)) - CI: Update PHPStan to 1.12.0 and fix the error that appeared ([#&#8203;8184](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8184)) ### [`v3.63.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3632) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.63.1...v3.63.2) - fix: `FullyQualifiedStrictTypesFixer` - reset cache even if there is no `use` ([#&#8203;8183](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8183)) ### [`v3.63.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3631) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.63.0...v3.63.1) - dummy release ### [`v3.63.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3630) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.62.0...v3.63.0) - feat: Add `array_destructuring` as option for `trailing_comma_in_multiline` ([#&#8203;8172](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8172)) - feat: remove braces even for single import ([#&#8203;8156](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8156)) - feat: TrailingCommaInMultilineFixer - dynamically evaluate config against PHP version ([#&#8203;8167](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8167)) - fix: Do not shorten FQN for class resolution if imported symbol is not a class ([#&#8203;7705](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7705)) - fix: Ensure PHP binary path is used as a single CLI argument in parallel worker process ([#&#8203;8180](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8180)) - fix: `PhpUnitAttributesFixer` - fix priorities with `PhpUnitDataProvider(.+)Fixer` ([#&#8203;8169](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8169)) - chore: add tags for data providers that will change PHPStan's baseline ([#&#8203;8178](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8178)) - chore: add `@return` tags for data providers already having PHPDoc ([#&#8203;8176](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8176)) - chore: add `@return` tags for data providers that do not have array in data ([#&#8203;8179](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8179)) - chore: remove duplicates from data providers ([#&#8203;8164](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8164)) - chore: remove duplicates from data providers that are copies in code ([#&#8203;8145](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8145)) - chore: remove `beStrictAboutTodoAnnotatedTests` from PHPUnit's config ([#&#8203;8160](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8160)) - CI: Update PHPStan to 1.11.10 ([#&#8203;8163](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8163)) - CI: Update PHPStan to 1.11.11 and fix error that changed ([#&#8203;8174](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8174)) - docs: fix indent on rule `date_time_create_from_format_call` ([#&#8203;8173](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8173)) ### [`v3.62.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3620) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.61.1...v3.62.0) - feat: set new\_with\_parentheses for anonymous\_class to false in PER-CS2.0 ([#&#8203;8140](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8140)) - chore: NewWithParenthesesFixer - create TODO to change the default configuration to match PER-CS2 ([#&#8203;8148](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8148)) ### [`v3.61.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3611) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.61.0...v3.61.1) - fix: `NoSuperfluousPhpdocTagsFixer` - fix "Undefined array key 0" error ([#&#8203;8150](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8150)) ### [`v3.61.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3610) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.60.0...v3.61.0) - feat: no\_superfluous\_phpdoc\_tags - also cover ?type ([#&#8203;8125](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8125)) - feat: support PHPUnit v9.1 naming for some asserts ([#&#8203;7997](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7997)) - fix: Do not mangle non-whitespace token in `PhpdocIndentFixer` ([#&#8203;8147](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8147)) - DX: add more typehints for `class-string` ([#&#8203;8139](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8139)) - DX: refactor `ProjectCodeTest::provideDataProviderMethodCases` ([#&#8203;8138](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8138)) ### [`v3.60.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3600) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.59.3...v3.60.0) - feat: Add sprintf in the list of compiler optimized functions ([#&#8203;8092](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8092)) - feat: `PhpUnitAttributesFixer` - add option to keep annotations ([#&#8203;8090](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8090)) - chore: cleanup tests that had `@requires PHP 7.4` ages ago ([#&#8203;8122](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8122)) - chore: cleanup `TokensAnalyzerTest` ([#&#8203;8123](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8123)) - chore: fix example issue reported by reportPossiblyNonexistentGeneralArrayOffset from PHPStan ([#&#8203;8089](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8089)) - chore: NoSuperfluousPhpdocTagsFixer - no need to call heavy toComparableNames method to add null type ([#&#8203;8132](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8132)) - chore: PHPStan 11 array rules ([#&#8203;8011](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8011)) - chore: PhpUnitSizeClassFixerTest - solve PHP 8.4 issues ([#&#8203;8105](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8105)) - chore: reduce PHPStan errors in PhpUnitAttributesFixer ([#&#8203;8091](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8091)) - chore: reuse test methods ([#&#8203;8119](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8119)) - CI: check autoload ([#&#8203;8121](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8121)) - CI: Update PHPStan to 1.11.8 ([#&#8203;8133](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8133)) - deps: upgrade dev-tools ([#&#8203;8102](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8102)) - DX: check for duplicated test data ([#&#8203;8131](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8131)) - DX: check for duplicated test methods ([#&#8203;8124](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8124)) - DX: check for duplicated test methods (as AutoReview test) ([#&#8203;8134](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8134)) - DX: do not exclude duplicates that are clearly mistakes ([#&#8203;8135](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8135)) - DX: Dump `offsetAccess.notFound` errors to baseline ([#&#8203;8107](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8107)) - fix: Better way of walking types in `TypeExpression` ([#&#8203;8076](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8076)) - fix: CI for PHP 8.4 ([#&#8203;8114](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8114)) - fix: update `TokensTest` to shrink PHPStan's baseline ([#&#8203;8112](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8112)) - fix: `no_useless_concat_operator` - do not break variable (2) ([#&#8203;7927](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7927)) - fix: `NullableTypeDeclarationFixer` - don't convert standalone `null` into nullable union type ([#&#8203;8098](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8098)) - fix: `NullableTypeDeclarationFixer` - don't convert standalone `NULL` into nullable union type ([#&#8203;8111](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8111)) - fix: `NullableTypeDeclarationFixer` - insert correct token ([#&#8203;8118](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8118)) - fix: `PhpUnitAttributesFixer` - handle multiple annotations of the same name ([#&#8203;8075](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8075)) ### [`v3.59.3`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3593) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.59.2...v3.59.3) - refactor: refactor to templated trait+interface ([#&#8203;7988](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7988)) ### [`v3.59.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3592) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.59.1...v3.59.2) - fix: "list" is reserved type ([#&#8203;8087](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8087)) - chore: add missing type in method prototype ([#&#8203;8088](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8088)) - CI: bump Ubuntu version ([#&#8203;8086](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8086)) - deps: bump infection to unblock PHPUnit 11, and few more as chore ([#&#8203;8083](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8083)) ### [`v3.59.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3591) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.59.0...v3.59.1) - fix: Bump React's JSON decoder buffer size ([#&#8203;8068](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8068)) - docs: options - handle enums in dicts ([#&#8203;8082](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8082)) ### [`v3.59.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3590) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.58.1...v3.59.0) - feat(Docker): Multi-arch build (support for `arm64`) ([#&#8203;8079](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8079)) - feat: `@PhpCsFixer` ruleset - normalise implicit backslashes in single quoted strings ([#&#8203;7965](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7965)) - feat: `SimpleToComplexStringVariableFixer` - support variable being an array ([#&#8203;8064](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8064)) - fix: Look up for PHPDoc's variable name by only chars allowed in the variables ([#&#8203;8062](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8062)) - fix: Update `PhpUnitTestCaseStaticMethodCallsFixer::STATIC_METHODS` ([#&#8203;8073](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8073)) - fix: `native_constant_invocation` - array constants with native constant names ([#&#8203;8008](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8008)) - chore: update PHPStan ([#&#8203;8060](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8060)) - CI: Update PHPStan to 1.11.4 ([#&#8203;8074](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8074)) - docs: don't expose list as config type for dicts ([#&#8203;8081](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8081)) - docs: Make wording in `final_class` docs less dismissive ([#&#8203;8065](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8065)) - docs: Update 1-bug\_report.yml ([#&#8203;8067](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8067)) - DX: Remove version from Docker Compose files ([#&#8203;8061](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8061)) ### [`v3.58.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3581) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.58.0...v3.58.1) - fix: `ConstantCaseFixer` - do not change class constant usages ([#&#8203;8055](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8055)) - fix: `PhpUnitTestClassRequiresCoversFixer` - do not add annotation when attribute with leading slash present ([#&#8203;8054](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8054)) ### [`v3.58.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3580) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.57.2...v3.58.0) - chore(doc): Use FQCN for parallel config in documentation ([#&#8203;8029](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8029)) - chore: fix typo in `PhpUnitTestClassRequiresCoversFixerTest` ([#&#8203;8047](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8047)) - chore: RandomApiMigrationFixer - do not modify configuration property ([#&#8203;8033](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8033)) - chore: Tokens::setCode - further improvements to cache ([#&#8203;8053](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8053)) - chore: update PHPStan ([#&#8203;8045](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8045)) - docs: Add missing imports in a cookbook about creating custom rules ([#&#8203;8031](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8031)) - docs: fix deprecated string interpolation style ([#&#8203;8036](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8036)) - docs: global\_namespace\_import - simplify allowed config types ([#&#8203;8023](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8023)) - feat(GroupImportFixer): Ability to configure which type of imports should be grouped ([#&#8203;8046](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8046)) - fix: clear `Tokens::$blockStartCache` and `Tokens::$blockEndCache` when calling `Tokens::setCode` ([#&#8203;8051](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8051)) - fix: correctly handle PHP closing tag with `simplified_null_return` ([#&#8203;8049](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8049)) - fix: `ConstantCaseFixer` - do not change namespace ([#&#8203;8004](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8004)) - fix: `PhpUnitAttributesFixer` - do not add attribute if already present ([#&#8203;8043](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8043)) - fix: `PhpUnitSizeClassFixer` - do not add annotation when there are attributes ([#&#8203;8044](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8044)) - fix: `PhpUnitTestClassRequiresCoversFixer` - attribute detection when class is `readonly` ([#&#8203;8042](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8042)) ### [`v3.57.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3572) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.57.1...v3.57.2) - docs: better ConfigurableFixer allowed types ([#&#8203;8024](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8024)) - docs: Improve Docker usage example ([#&#8203;8021](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8021)) - feat: Report used memory to 2 decimal digits only ([#&#8203;8017](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8017)) - fix: Support named args in `ParallelConfigFactory::detect()` ([#&#8203;8026](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8026)) - fix: `php_unit_test_class_requires_covers` Attribute detection when class is final ([#&#8203;8016](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8016)) ### [`v3.57.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3571) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.57.0...v3.57.1) - chore: update PHPDoc in `Preg::matchAll` ([#&#8203;8012](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8012)) - fix: Runner - handle no files while in parallel runner ([#&#8203;8015](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8015)) ### [`v3.57.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3570) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.56.2...v3.57.0) - feat: Ability to run Fixer with parallel runner 🎉 ([#&#8203;7777](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7777)) ### [`v3.56.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3562) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.56.1...v3.56.2) - chore: update PHPStan ([#&#8203;8010](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8010)) - DX: Fix Mess Detector violations ([#&#8203;8007](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8007)) - DX: Install PCov extension for local Docker ([#&#8203;8006](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8006)) ### [`v3.56.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3561) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.56.0...v3.56.1) - chore: improve PHPDoc typehints ([#&#8203;7994](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7994)) - CI: Allow any integer in PHPStan error for Token's constructor ([#&#8203;8000](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8000)) - fix: Better array shape in `PhpUnitDedicateAssertFixer` ([#&#8203;7999](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7999)) - fix: `ConstantCaseFixer` - do not touch typed constants ([#&#8203;7998](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7998)) ### [`v3.56.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3560) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.55.0...v3.56.0) - feat: `TrailingCommaInMultilineFixer` - handle trailing comma in language constructs ([#&#8203;7989](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7989)) - fix: `TrailingCommaInMultilineFixer` - language constructs should be covered by arguments, not parameters ([#&#8203;7990](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7990)) - chore: remove invalid comment ([#&#8203;7987](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7987)) - DX: Cache optimisation ([#&#8203;7985](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7985)) ### [`v3.55.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3550) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.54.0...v3.55.0) - feat: Introduce `OrderedAttributesFixer` ([#&#8203;7395](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7395)) - chore: few SCA fixes and dev-tools update ([#&#8203;7969](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7969)) - chore: fix phpdoc types ([#&#8203;7977](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7977)) - chore: narrow PHPDoc types ([#&#8203;7979](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7979)) - chore: Normalize implicit backslashes in single quoted strings internally ([#&#8203;7786](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7786)) - chore: phpdoc - rely on strict list/tuple/assoc instead of array ([#&#8203;7978](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7978)) - chore: PhpUnitDataProviderNameFixer - follow config creation pattern ([#&#8203;7980](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7980)) - chore: Preg - drop half-support for array-pattern ([#&#8203;7976](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7976)) - chore: re-use CodeHasher ([#&#8203;7984](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7984)) - chore: RuleSetsTest - assert that Fixer is configurable ([#&#8203;7961](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7961)) - chore: sugar syntax ([#&#8203;7986](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7986)) - chore: Tokens should be always a list ([#&#8203;7698](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7698)) - CI: Ad-hoc fix for MacOS jobs ([#&#8203;7970](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7970)) - CI: Fix calculating diff between branches in PRs ([#&#8203;7973](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7973)) - DX: allow to enforce cache mechanism by env var ([#&#8203;7983](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7983)) - DX: do not typehint fixed-length arrays as lists ([#&#8203;7974](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7974)) - DX: Prevent having deprecated fixers listed as successors of other deprecated fixers ([#&#8203;7967](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7967)) - DX: Resolve/Ignore PHPStan issues on level 6 + bump to level 7 with new baseline ([#&#8203;7971](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7971)) - DX: use `list` type in PHPDoc ([#&#8203;7975](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7975)) - fix: `PhpUnitAttributesFixer` - fix for `#[RequiresPhp]` exceeding its constructor parameters ([#&#8203;7966](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7966)) - test: don't count comment after class as another classy element ([#&#8203;7982](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7982)) ### [`v3.54.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3540) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.53.0...v3.54.0) - feat: introduce `PhpUnitAttributesFixer` ([#&#8203;7831](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7831)) - chore: Properly determine self-approval trigger commit ([#&#8203;7936](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7936)) - chore: Revert ref for self-approval Git checkout ([#&#8203;7944](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7944)) - CI: check if proper array key is declared ([#&#8203;7912](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7912)) - DX: cleanup `FullyQualifiedStrictTypesFixerTest` ([#&#8203;7954](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7954)) - DX: cleanup `PhpdocNoAccessFixerTest` ([#&#8203;7933](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7933)) - DX: cleanup `PhpUnitMethodCasingFixerTest` ([#&#8203;7948](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7948)) - DX: cleanup `PhpUnitStrictFixerTest` ([#&#8203;7938](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7938)) - DX: Improve internal dist config for Fixer ([#&#8203;7952](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7952)) - DX: Improve issue templates ([#&#8203;7942](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7942)) - DX: there is no namespace if there is no PHP code ([#&#8203;7953](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7953)) - DX: update .gitattributes ([#&#8203;7931](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7931)) - fix: Remove Infection during Docker release ([#&#8203;7937](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7937)) - fix: `FullyQualifiedStrictTypesFixer` - do not add imports before PHP opening tag ([#&#8203;7955](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7955)) - fix: `PhpUnitMethodCasingFixer` - do not double underscore ([#&#8203;7949](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7949)) - fix: `PhpUnitTestClassRequiresCoversFixer` - do not add annotation when there are attributes ([#&#8203;7880](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7880)) - test: Ignore PHP version related mutations ([#&#8203;7935](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7935)) ### [`v3.53.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3530) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.52.1...v3.53.0) - chore: Use `list` over `array` in more places ([#&#8203;7905](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7905)) - CI: allow for self-approvals for maintainers ([#&#8203;7921](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7921)) - CI: Improve Infection setup ([#&#8203;7913](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7913)) - CI: no need to trigger enable auto-merge when self-approve ([#&#8203;7929](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7929)) - DX: reduce `array_filter` function usages ([#&#8203;7923](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7923)) - DX: remove duplicated character from `trim` call ([#&#8203;7930](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7930)) - DX: update actions producing warnings ([#&#8203;7925](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7925)) - DX: update actions producing warnings ([#&#8203;7928](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7928)) - DX: update `phpstan/phpstan-strict-rules` ([#&#8203;7924](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7924)) - feat: Add trailing comma in multiline to PER-CS 2.0 ([#&#8203;7916](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7916)) - feat: Introduce `AttributeAnalysis` ([#&#8203;7909](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7909)) - feat: `@PHP84Migration` introduction ([#&#8203;7774](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7774)) - fix: Constant invocation detected in typed constants ([#&#8203;7892](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7892)) - fix: `PhpdocArrayTypeFixer` - JIT stack limit exhausted ([#&#8203;7895](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7895)) - test: Introduce Infection for mutation tests ([#&#8203;7874](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7874)) ### [`v3.52.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3521) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.52.0...v3.52.1) - fix: StatementIndentationFixer - do not crash on ternary operator in class property ([#&#8203;7899](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7899)) - fix: `PhpCsFixer\Tokenizer\Tokens::setSize` return type ([#&#8203;7900](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7900)) ### [`v3.52.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3520) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.51.0...v3.52.0) - chore: fix PHP 8.4 deprecations ([#&#8203;7894](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7894)) - chore: fix PHPStan 1.10.60 issues ([#&#8203;7873](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7873)) - chore: list over array in more places ([#&#8203;7876](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7876)) - chore: replace template with variable in Preg class ([#&#8203;7882](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7882)) - chore: update PHPStan ([#&#8203;7871](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7871)) - depr: `nullable_type_declaration_for_default_null_value` - deprecate option that is against `@PHP84Migration` ([#&#8203;7872](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7872)) - docs: Fix typo ([#&#8203;7889](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7889)) - feat: Add support for callable template in PHPDoc parser ([#&#8203;7084](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7084)) - feat: Add `array_indentation` to `PER-CS2.0` ruleset ([#&#8203;7881](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7881)) - feat: `@Symfony:risky` - add `no_unreachable_default_argument_value` ([#&#8203;7863](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7863)) - feat: `PhpCsFixer` ruleset - enable `nullable_type_declaration_for_default_null_value` ([#&#8203;7870](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7870)) - fix: Constant invocation detected in DNF types ([#&#8203;7869](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7869)) - fix: Correctly indent multiline constants and properties ([#&#8203;7875](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7875)) - fix: `no_useless_concat_operator` - do not break variable ([#&#8203;7827](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7827)) - fix: `TokensAnalyzer` - handle unary operator in arrow functions ([#&#8203;7862](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7862)) - fix: `TypeExpression` - fix "JIT stack limit exhausted" error ([#&#8203;7843](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7843)) ### [`v3.51.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3510) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.50.0...v3.51.0) - chore: add missing tests for non-documentation classes ([#&#8203;7848](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7848)) - chore: do not perform type analysis in tests ([#&#8203;7852](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7852)) - chore: list over array in more places ([#&#8203;7857](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7857)) - chore: tests documentation classes ([#&#8203;7855](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7855)) - feat: `@Symfony` - add nullable\_type\_declaration ([#&#8203;7856](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7856)) - test: fix wrong type in param annotation ([#&#8203;7858](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7858)) ### [`v3.50.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3500) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.49.0...v3.50.0) - chore: add missing types ([#&#8203;7842](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7842)) - chore: BlocksAnalyzer - raise exception on invalid index ([#&#8203;7819](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7819)) - chore: DataProviderAnalysis - expect list over array ([#&#8203;7800](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7800)) - chore: do not use `@large` on method level ([#&#8203;7832](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7832)) - chore: do not use `@medium` on method level ([#&#8203;7833](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7833)) - chore: Fix typos ([#&#8203;7835](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7835)) - chore: rename variables ([#&#8203;7847](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7847)) - chore: some improvements around array typehints ([#&#8203;7799](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7799)) - CI: fix PHP 8.4 job ([#&#8203;7829](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7829)) - DX: Include `symfony/var-dumper` in dev tools ([#&#8203;7795](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7795)) - feat: Ability to remove unused imports from multi-use statements ([#&#8203;7815](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7815)) - feat: allow PHPUnit 11 ([#&#8203;7824](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7824)) - feat: Allow shortening symbols from multi-use statements (only classes for now) ([#&#8203;7816](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7816)) - feat: introduce `PhpdocArrayTypeFixer` ([#&#8203;7812](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7812)) - feat: PhpUnitTestCaseStaticMethodCallsFixer - cover PHPUnit v11 methods ([#&#8203;7822](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7822)) - feat: Support for multi-use statements in `NamespaceUsesAnalyzer` ([#&#8203;7814](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7814)) - feat: `MbStrFunctionsFixer` - add support for `mb_trim`, `mb_ltrim` and `mb_rtrim` functions ([#&#8203;7840](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7840)) - feat: `NoEmptyPhpdocFixer` - do not leave empty line after removing PHPDoc ([#&#8203;7820](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7820)) - feat: `no_superfluous_phpdoc_tags` - introduce `allow_future_params` option ([#&#8203;7743](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7743)) - fix: do not use wrongly named arguments in data providers ([#&#8203;7823](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7823)) - fix: Ensure PCNTL extension is always installed in Docker ([#&#8203;7782](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7782)) - fix: PhpdocListTypeFixer - support key types containing `<…>` ([#&#8203;7817](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7817)) - fix: Proper build target for local Docker Compose ([#&#8203;7834](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7834)) - fix: union PHPDoc support in `fully_qualified_strict_types` fixer ([#&#8203;7719](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7719)) - fix: `ExecutorWithoutErrorHandler` - remove invalid PHP 7.4 type ([#&#8203;7845](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7845)) - fix: `fully_qualified_strict_types` must honour template/local type identifiers ([#&#8203;7724](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7724)) - fix: `MethodArgumentSpaceFixer` - do not break heredoc/nowdoc ([#&#8203;7828](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7828)) - fix: `NumericLiteralSeparatorFixer` - do not change `float` to `int` when there is nothing after the dot ([#&#8203;7805](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7805)) - fix: `PhpUnitStrictFixer` - do not crash on property having the name of method to fix ([#&#8203;7804](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7804)) - fix: `SingleSpaceAroundConstructFixer` - correctly recognise multiple constants ([#&#8203;7700](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7700)) - fix: `TypeExpression` - handle array shape key with dash ([#&#8203;7841](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7841)) ### [`v3.49.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3490) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.48.0...v3.49.0) - chore(checkbashisms): update to 2.23.7 ([#&#8203;7780](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7780)) - chore: add missing key types in PHPDoc types ([#&#8203;7779](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7779)) - chore: Exclude `topic/core` issues/PRs from Stale Bot ([#&#8203;7788](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7788)) - chore: `DescribeCommand` - better handling of deprecations ([#&#8203;7778](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7778)) - docs: docker - use gitlab reporter in GitLab integration example ([#&#8203;7764](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7764)) - docs: docker in CI - don't suggest command that overrides path from config file ([#&#8203;7763](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7763)) - DX: check deprecations exactly ([#&#8203;7742](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7742)) - feat: Add `ordered_types` to `@Symfony` ([#&#8203;7356](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7356)) - feat: introduce `PhpdocListTypeFixer` ([#&#8203;7796](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7796)) - feat: introduce `string_implicit_backslashes` as `escape_implicit_backslashes` replacement ([#&#8203;7669](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7669)) - feat: update `Symfony.nullable_type_declaration_for_default_null_value` config ([#&#8203;7773](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7773)) - feat: `@PhpCsFixer` ruleset - enable `php_unit_data_provider_static` ([#&#8203;7685](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7685)) - fix: Allow using cache when running in Docker distribution ([#&#8203;7769](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7769)) - fix: ClassDefinitionFixer for anonymous class with phpdoc/attribute on separate line ([#&#8203;7546](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7546)) - fix: `ClassKeywordFixer` must run before `FullyQualifiedStrictTypesFixer` ([#&#8203;7767](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7767)) - fix: `function_to_constant` `get_class()` replacement ([#&#8203;7770](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7770)) - fix: `LowercaseStaticReferenceFixer` - do not change typed constants ([#&#8203;7775](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7775)) - fix: `PhpdocTypesFixer` - handle more complex types ([#&#8203;7791](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7791)) - fix: `TypeExpression` - do not break type using `walkTypes` method ([#&#8203;7785](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7785)) ### [`v3.48.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3480) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.47.1...v3.48.0) - chore: `FullyQualifiedStrictTypesFixer` must run before `OrderedInterfacesFixer` ([#&#8203;7762](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7762)) - docs: Add PHP-CS-Fixer integration in a GitHub Action step ([#&#8203;7757](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7757)) - feat: `PhpdocTypesOrderFixer` Support DNF types ([#&#8203;7732](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7732)) - fix: Support shebang in fixers operating on PHP opening tag ([#&#8203;7687](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7687)) - fix: work correctly for a switch/case with ternary operator ([#&#8203;7756](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7756)) - fix: `NoUselessConcatOperatorFixer` - do not remove new line ([#&#8203;7759](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7759)) ### [`v3.47.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3471) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.47.0...v3.47.1) - fix: Do not override short name with relative reference ([#&#8203;7752](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7752)) - fix: make `BinaryOperatorSpacesFixer` work as pre-v3.47 ([#&#8203;7751](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7751)) - fix: Proper Docker image name suffix ([#&#8203;7739](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7739)) - fix: `FullyQualifiedStrictTypesFixer` - do not change case of the symbol when there's name collision between imported class and imported function ([#&#8203;7750](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7750)) - fix: `FullyQualifiedStrictTypesFixer` - do not modify statements with property fetch and `::` ([#&#8203;7749](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7749)) ### [`v3.47.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3470) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.46.0...v3.47.0) - chore: better identify EXPERIMENTAL rules ([#&#8203;7729](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7729)) - chore: fix issue detected by unlocked PHPStan + upgrade dev-tools ([#&#8203;7678](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7678)) - chore: handle extract() ([#&#8203;7684](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7684)) - chore: Mention contributors in app info ([#&#8203;7668](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7668)) - chore: no need to mark private methods as internal ([#&#8203;7715](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7715)) - chore: ProjectCodeTests - dry for function usage extractions ([#&#8203;7690](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7690)) - chore: reduce PHPStan baseline ([#&#8203;7644](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7644)) - chore: use numeric literal separator for PHP version IDs ([#&#8203;7712](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7712)) - chore: use numeric\_literal\_separator for project ([#&#8203;7713](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7713)) - chore: Utils::sortElements - better typing ([#&#8203;7646](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7646)) - CI: Allow running Stale Bot on demand ([#&#8203;7711](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7711)) - CI: Fix PHP 8.4 ([#&#8203;7702](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7702)) - CI: Give write permissions to Stale Bot ([#&#8203;7716](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7716)) - CI: Use `actions/stale` v9 ([#&#8203;7710](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7710)) - docs: Add information about allowing maintainers to update PRs ([#&#8203;7683](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7683)) - docs: CONTRIBUTING.md - update Opening a PR ([#&#8203;7691](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7691)) - docs: Display/include tool info/version by default in commands and reports ([#&#8203;7733](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7733)) - DX: fix deprecation tests warnings for PHP 7.4 ([#&#8203;7725](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7725)) - DX: update `host.docker.internal` in Compose override template ([#&#8203;7661](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7661)) - DX: `NumericLiteralSeparatorFixer` - change default strategy to `use_separator` ([#&#8203;7730](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7730)) - feat: Add support for official Docker images of Fixer ([#&#8203;7555](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7555)) - feat: Add `spacing` option to `PhpdocAlignFixer` ([#&#8203;6505](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6505)) - feat: Add `union_types` option to `phpdoc_to_param_type`, `phpdoc_to_property_type`, and `phpdoc_to_return_type` fixers ([#&#8203;7672](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7672)) - feat: Introduce `heredoc_closing_marker` fixer ([#&#8203;7660](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7660)) - feat: Introduce `multiline_string_to_heredoc` fixer ([#&#8203;7665](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7665)) - feat: Introduce `NumericLiteralSeparatorFixer` ([#&#8203;6761](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6761)) - feat: no\_superfluous\_phpdoc\_tags - support for arrow function ([#&#8203;7666](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7666)) - feat: Simplify closing marker when possible in `heredoc_closing_marker` fixer ([#&#8203;7676](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7676)) - feat: Support typed properties and attributes in `fully_qualified_strict_types` ([#&#8203;7659](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7659)) - feat: `@PhpCsFixer` ruleset - enable no\_whitespace\_before\_comma\_in\_array.after\_heredoc ([#&#8203;7670](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7670)) - fix: Improve progress bar visual layer ([#&#8203;7708](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7708)) - fix: indentation of control structure body without braces ([#&#8203;7663](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7663)) - fix: make sure all PHP extensions required by PHPUnit are installed ([#&#8203;7727](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7727)) - fix: PhpdocToReturnTypeFixerTest - support for arrow functions ([#&#8203;7645](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7645)) - fix: Several improvements for `fully_qualified_strict_types` (respect declared symbols, relative imports, leading backslash in global namespace) ([#&#8203;7679](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7679)) - fix: SimplifiedNullReturnFixer - support array return typehint ([#&#8203;7728](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7728)) - fix: Support numeric values without leading zero in `numeric_literal_separator` ([#&#8203;7735](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7735)) - fix: `BinaryOperatorSpacesFixer` - align correctly when multiple shifts occurs in single line ([#&#8203;7593](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7593)) - fix: `ClassReferenceNameCasingFixer` capitalizes the property name after the nullsafe operator ([#&#8203;7696](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7696)) - fix: `fully_qualified_strict_types` with `leading_backslash_in_global_namespace` enabled - handle reserved types in phpDoc ([#&#8203;7648](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7648)) - fix: `NoSpaceAroundDoubleColonFixer` must run before `MethodChainingIndentationFixer` ([#&#8203;7723](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7723)) - fix: `no_superfluous_phpdoc_tags` must honour multiline docs ([#&#8203;7697](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7697)) - fix: `numeric_literal_separator` - Handle zero-leading floats properly ([#&#8203;7737](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7737)) - refactor: increase performance by \~7% thanks to `Tokens::block*Cache` hit increased by \~12% ([#&#8203;6176](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6176)) - refactor: Tokens - fast check for non-block in 'detectBlockType', evaluate definitions only once in 'getBlockEdgeDefinitions' ([#&#8203;7655](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7655)) - refactor: `Tokens::clearEmptyTokens` - play defensive with cache clearing ([#&#8203;7658](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7658)) - test: ensure we do not forget to test any short\_open\_tag test ([#&#8203;7638](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7638)) ### [`v3.46.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3460) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.45.0...v3.46.0) - chore: fix internal typehints in Tokens ([#&#8203;7656](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7656)) - chore: reduce PHPStan baseline ([#&#8203;7643](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7643)) - docs: Show class with unit tests and BC promise info ([#&#8203;7667](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7667)) - feat: change default ruleset to `@PER-CS` (only behind PHP\_CS\_FIXER\_FUTURE\_MODE=1) ([#&#8203;7650](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7650)) - feat: Support new/instanceof/use trait in `fully_qualified_strict_types` ([#&#8203;7653](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7653)) - fix: FQCN parse phpdoc using full grammar regex ([#&#8203;7649](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7649)) - fix: Handle FQCN properly with `leading_backslash_in_global_namespace` option enabled ([#&#8203;7654](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7654)) - fix: PhpdocToParamTypeFixerTest - support for arrow functions ([#&#8203;7647](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7647)) - fix: PHP\_CS\_FIXER\_FUTURE\_MODE - proper boolean validation ([#&#8203;7651](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7651)) ### [`v3.45.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3450) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.44.0...v3.45.0) - feat: Enable symbol importing in `@PhpCsFixer` ruleset ([#&#8203;7629](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7629)) - fix: NoUnneededBracesFixer - improve handling of global namespace ([#&#8203;7639](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7639)) - test: run tests with "short\_open\_tag" enabled ([#&#8203;7637](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7637)) ### [`v3.44.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3440) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.43.1...v3.44.0) - feat: Introduce percentage bar as new default progress output ([#&#8203;7603](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7603)) ### [`v3.43.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3431) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.43.0...v3.43.1) - fix: Import only unique symbols' short names ([#&#8203;7635](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7635)) ### [`v3.43.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3430) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.42.0...v3.43.0) - chore: change base of `@Symfony` set to `@PER-CS2.0` ([#&#8203;7627](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7627)) - chore: PHPUnit - allow for v10 ([#&#8203;7606](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7606)) - chore: Preg - rework catching the error ([#&#8203;7616](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7616)) - chore: Revert unneeded peer-dep-pin and re-gen lock file ([#&#8203;7618](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7618)) - docs: drop extra note about 8.0.0 bug in README.md ([#&#8203;7614](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7614)) - feat: add cast\_spaces into `@PER-CS2.0` ([#&#8203;7625](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7625)) - feat: Configurable phpDoc tags for FQCN processing ([#&#8203;7628](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7628)) - feat: StatementIndentationFixer - introduce stick\_comment\_to\_next\_continuous\_control\_statement config ([#&#8203;7624](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7624)) - feat: UnaryOperatorSpacesFixer - introduce only\_dec\_inc config ([#&#8203;7626](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7626)) - fix: FullyQualifiedStrictTypesFixer - better support annotations in inline {} ([#&#8203;7633](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7633)) - fix: Improve how FQCN is handled in phpDoc ([#&#8203;7622](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7622)) - fix: phpdoc\_align - fix multiline tag alignment issue ([#&#8203;7630](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7630)) ### [`v3.42.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3420) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.41.1...v3.42.0) - chore: aim to not rely on internal array pointer but use array\_key\_first ([#&#8203;7613](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7613)) - chore: deprecate Token::isKeyCaseSensitive ([#&#8203;7599](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7599)) - chore: deprecate Token::isKeyCaseSensitive, 2nd part ([#&#8203;7601](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7601)) - chore: do not check PHP\_VERSION\_ID ([#&#8203;7602](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7602)) - chore: FileFilterIteratorTest - more accurate type in docs ([#&#8203;7542](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7542)) - chore: minor code cleanup ([#&#8203;7607](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7607)) - chore: more types ([#&#8203;7598](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7598)) - chore: PHPDoc key-value spacing ([#&#8203;7592](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7592)) - chore: PHPUnit - run defects first ([#&#8203;7570](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7570)) - chore: ProjectCodeTest - DRY on Tokens creation ([#&#8203;7574](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7574)) - chore: ProjectCodeTest - prepare for symfony/console v7 ([#&#8203;7605](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7605)) - chore: ProjectCodeTest::provide\*ClassCases to return iterable with key for better tests execution log ([#&#8203;7572](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7572)) - chore: ProjectCodeTest::testDataProvidersDeclaredReturnType - use better DataProvider to simplify test logic ([#&#8203;7573](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7573)) - chore: TokensAnalyzer - string-enum for better typehinting ([#&#8203;7571](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7571)) - chore: unify tests not agnostic of PHP version ([#&#8203;7581](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7581)) - chore: use ::class more ([#&#8203;7545](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7545)) - CI: Introduce `composer-unused` ([#&#8203;7536](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7536)) - DX: add types to anonymous functions ([#&#8203;7561](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7561)) - DX: Allow running smoke tests within Docker runtime ([#&#8203;7608](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7608)) - DX: check fixer's options for wording ([#&#8203;7543](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7543)) - DX: cleanup deprecation message ([#&#8203;7576](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7576)) - DX: do not allow overriding constructor of `PHPUnit\Framework\TestCase` ([#&#8203;7563](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7563)) - DX: do not import ExpectDeprecationTrait in UtilsTest ([#&#8203;7562](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7562)) - DX: Enforce consistent naming in tests ([#&#8203;7556](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7556)) - DX: fix checking test class extends `PhpCsFixer\Tests\TestCase` ([#&#8203;7567](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7567)) - DX: make sure that exceptions in `AbstractFixerTestCase::testProperMethodNaming` are not already fixed ([#&#8203;7588](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7588)) - DX: remove recursion from AbstractIntegrationTestCase::testIntegration ([#&#8203;7577](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7577)) - DX: remove `PhpUnitNamespacedFixerTest::testClassIsFixed` ([#&#8203;7564](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7564)) - DX: remove `symfony/phpunit-bridge` ([#&#8203;7578](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7578)) - DX: replace fixture classes with anonymous ones ([#&#8203;7533](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7533)) - DX: Unify Docker mount points and paths ([#&#8203;7549](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7549)) - DX: unify fixer's test method names - quick wins ([#&#8203;7584](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7584)) - DX: unify tests for casing fixers ([#&#8203;7558](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7558)) - DX: use anonymous function over concrete classes ([#&#8203;7553](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7553)) - feat(EXPERIMENTAL): ClassKeywordFixer ([#&#8203;2918](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/2918)) - feat(EXPERIMENTAL): ClassKeywordFixer, part 2 ([#&#8203;7550](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7550)) - feat(PhpdocToCommentFixer): Add option to handle return as valid docblock usage ([#&#8203;7401](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7401)) ([#&#8203;7402](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7402)) - feat: Ability to import FQCNs found during analysis ([#&#8203;7597](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7597)) - feat: add phpDoc support for `fully_qualified_strict_types` fixer ([#&#8203;5620](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/5620)) - feat: Handle deprecated rule sets similarly to deprecated fixers ([#&#8203;7288](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7288)) - feat: PhpUnitTestCaseStaticMethodCallsFixer - cover PHPUnit v10 methods ([#&#8203;7604](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7604)) - feat: Support more FQCNs cases in `fully_qualified_strict_types` ([#&#8203;7459](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7459)) - fix: AbstractFixerTestCase - fix checking for correct casing ([#&#8203;7540](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7540)) - fix: Better OS detection in integration tests ([#&#8203;7547](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7547)) - fix: NativeTypeDeclarationCasingFixer - handle static property without type ([#&#8203;7589](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7589)) - test: AutoReview - unify data provider returns ([#&#8203;7544](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7544)) - test: check to have DataProviders code agnostic of PHP version ([#&#8203;7575](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7575)) ### [`v3.41.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3411) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.41.0...v3.41.1) - DX: Change `@testWith` to `@dataProvider` ([#&#8203;7535](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7535)) - DX: Introduce Markdownlint ([#&#8203;7534](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7534)) - fix: NativeTypeDeclarationCasingFixer - do not crash on `var` keyword ([#&#8203;7538](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7538)) ### [`v3.41.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3410) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.40.2...v3.41.0) - chore: Move `mb_str_functions` PHP 8.3 cases to separate test ([#&#8203;7505](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7505)) - chore: Symfony v7 is now stable ([#&#8203;7469](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7469)) - CI: drop PHP 8.3 hacks ([#&#8203;7519](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7519)) - docs: Improve docs for `no_spaces_after_function_name` ([#&#8203;7520](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7520)) - DX: Ability to run Sphinx linter locally ([#&#8203;7481](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7481)) - DX: AbstractFixerTest - use anonymous classes ([#&#8203;7527](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7527)) - DX: Add progress output for `cs:check` script ([#&#8203;7514](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7514)) - DX: align doubles naming ([#&#8203;7525](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7525)) - DX: remove AbstractFixerTestCase::getTestFile() ([#&#8203;7495](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7495)) - DX: remove jangregor/phpstan-prophecy ([#&#8203;7524](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7524)) - DX: remove Prophecy ([#&#8203;7509](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7509)) - DX: replace Prophecy with anonymous classes in CacheTest ([#&#8203;7503](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7503)) - DX: replace Prophecy with anonymous classes in ProcessLintingResultTest ([#&#8203;7501](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7501)) - DX: Utilise auto-discovery for PHPStan formatter ([#&#8203;7490](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7490)) - feat: Support `mb_str_pad` function in `mb_str_functions` rule ([#&#8203;7499](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7499)) - fix: BinaryOperatorSpacesFixer - do not add whitespace inside short function ([#&#8203;7523](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7523)) - fix: Downgrade PDepend to version not supporting Symfony 7 ([#&#8203;7513](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7513)) - fix: GlobalNamespaceImportFixer - key in PHPDoc's array shape matching class name ([#&#8203;7522](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7522)) - fix: SpacesInsideParenthesesFixer - handle class instantiation parentheses ([#&#8203;7531](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7531)) - Update PHPstan to 1.10.48 ([#&#8203;7532](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7532)) ### [`v3.40.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3402) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.40.1...v3.40.2) - docs: fix link to source classes ([#&#8203;7493](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7493)) ### [`v3.40.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3401) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.40.0...v3.40.1) - chore: Delete stray file x ([#&#8203;7473](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7473)) - chore: Fix editorconfig ([#&#8203;7478](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7478)) - chore: Fix typos ([#&#8203;7474](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7474)) - chore: Fix YAML line length ([#&#8203;7476](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7476)) - chore: Indent JSON files with 4 spaces ([#&#8203;7480](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7480)) - chore: Make YAML workflow git-based ([#&#8203;7477](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7477)) - chore: Use stable XDebug ([#&#8203;7489](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7489)) - CI: Lint docs ([#&#8203;7479](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7479)) - CI: Use PHPStan's native Github error formatter ([#&#8203;7487](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7487)) - DX: fix PHPStan error ([#&#8203;7488](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7488)) - DX: PsrAutoloadingFixerTest - do not build mock in data provider ([#&#8203;7491](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7491)) - DX: PsrAutoloadingFixerTest - merge all data providers into one ([#&#8203;7492](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7492)) - DX: Update PHPStan to 1.10.46 ([#&#8203;7486](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7486)) - fix: `NoSpacesAfterFunctionNameFixer` - do not remove space if the opening parenthesis part of an expression ([#&#8203;7430](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7430)) ### [`v3.40.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3400) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.39.1...v3.40.0) - chore: officially support PHP 8.3 ([#&#8203;7466](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7466)) - chore: update deps ([#&#8203;7471](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7471)) - CI: add --no-update while dropping non-compat `facile-it/paraunit` ([#&#8203;7470](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7470)) - CI: automate --ignore-platform-req=PHP ([#&#8203;7467](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7467)) - CI: bump actions/github-script to v7 ([#&#8203;7468](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7468)) - CI: move humbug/box out of dev-tools/composer.json ([#&#8203;7472](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7472)) ### [`v3.39.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3391) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.39.0...v3.39.1) - DX: introduce SwitchAnalyzer ([#&#8203;7456](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7456)) - fix: NoExtraBlankLinesFixer - do not remove blank line after `? : throw` ([#&#8203;7457](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7457)) - fix: OrderedInterfacesFixer - do not comment out interface ([#&#8203;7464](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7464)) - test: Improve `ExplicitIndirectVariableFixerTest` ([#&#8203;7451](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7451)) ### [`v3.39.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3390) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.38.2...v3.39.0) - chore: Add support for Symfony 7 ([#&#8203;7453](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7453)) - chore: IntegrationTest - move support of php< requirement to main Integration classes ([#&#8203;7448](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7448)) - CI: drop Symfony ^7 incompat exceptions of php-coveralls and cli-executor ([#&#8203;7455](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7455)) - CI: early compatibility checks with Symfony 7 ([#&#8203;7431](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7431)) - docs: drop list.rst and code behind it ([#&#8203;7436](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7436)) - docs: remove Gitter mentions ([#&#8203;7441](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7441)) - DX: Ability to run Fixer on PHP8.3 for development ([#&#8203;7449](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7449)) - DX: describe command - for rules, list also sets that are including them ([#&#8203;7419](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7419)) - DX: Docker clean up ([#&#8203;7450](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7450)) - DX: more usage of spaceship operator ([#&#8203;7438](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7438)) - DX: Put `Preg`'s last error message in exception message ([#&#8203;7443](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7443)) - feat: Introduce `@PHP83Migration` ruleset and PHP 8.3 integration test ([#&#8203;7439](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7439)) - test: Improve `AbstractIntegrationTestCase` description ([#&#8203;7452](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7452)) ### [`v3.38.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3382) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.38.1...v3.38.2) - docs: fix 'Could not lex literal\_block as "php". Highlighting skipped.' ([#&#8203;7433](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7433)) - docs: small unification between FixerDocumentGenerator and ListDocumentGenerator ([#&#8203;7435](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7435)) - docs: unify ../ <> ./../ ([#&#8203;7434](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7434)) ### [`v3.38.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3381) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.38.0...v3.38.1) - chore: ListSetsCommand::execute - add missing return type ([#&#8203;7432](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7432)) - chore: PHPStan - add counter to dataProvider exception, so we do not increase the tech debt on it ([#&#8203;7425](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7425)) - CI: Use `actions/checkout` v4 ([#&#8203;7423](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7423)) - fix: ClassAttributesSeparationFixer - handle Disjunctive Normal Form types parentheses ([#&#8203;7428](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7428)) - fix: Remove all variable names in `@var` callable signature ([#&#8203;7429](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7429)) - fix: Satisfy `composer normalize` ([#&#8203;7424](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7424)) ### [`v3.38.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3380) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.37.1...v3.38.0) - chore: upgrade phpstan ([#&#8203;7421](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7421)) - CI: add curl and mbstring to build php ([#&#8203;7409](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7409)) - CI: cache dev-tools/bin ([#&#8203;7416](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7416)) - CI: Composer - move prefer-stable to file config ([#&#8203;7406](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7406)) - CI: conditionally install flex ([#&#8203;7412](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7412)) - CI: dev-tools/build.sh - no need to repeat 'prefer-stable', but let's use '--no-scripts' ([#&#8203;7408](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7408)) - CI: Do not run post-autoload-dump on Composer install ([#&#8203;7403](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7403)) - CI: general restructure ([#&#8203;7407](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7407)) - CI: GitHub Actions - use actions/cache for Composer in composite action ([#&#8203;7415](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7415)) - CI: Improve QA process - supplement ([#&#8203;7411](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7411)) - CI: prevent Infection plugins during build time, as we do not use it ([#&#8203;7422](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7422)) - CI: simplify setup-php config ([#&#8203;7404](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7404)) - DX: Do not mark as stale issues/PRs with milestone assigned ([#&#8203;7398](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7398)) - DX: Improve QA process ([#&#8203;7366](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7366)) - feat: phpDoc to property/return/param Fixer - allow fixing mixed on PHP >= 8 ([#&#8203;6356](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6356)) - feat: phpDoc to property/return/param Fixer - allow fixing union types on PHP >= 8 ([#&#8203;6359](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6359)) - feat: Support for array destructuring in `array_indentation` ([#&#8203;7405](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7405)) - feat: `@Symfony` - keep Annotation,NamedArgumentConstructor,Target annotations as single group ([#&#8203;7399](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7399)) - fix(SelfAccessorFixer): do not touch references inside lambda and/or arrow function ([#&#8203;7349](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7349)) - fix: long\_to\_shorthand\_operator - mark as risky fixer ([#&#8203;7418](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7418)) - fix: OrderedImportsFixer - handle non-grouped list of const/function imports ([#&#8203;7397](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7397)) ### [`v3.37.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3371) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.37.0...v3.37.1) - docs: config file - provide better examples ([#&#8203;7396](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7396)) - docs: config file - provide better link to Finder docs ([#&#8203;6992](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6992)) ### [`v3.37.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3370) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.36.0...v3.37.0) - feat: add parallel cache support ([#&#8203;7131](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7131)) ### [`v3.36.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3360) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.35.1...v3.36.0) - chore: disable `infection-installer` plugin, as we do not use `infection/*` yet ([#&#8203;7391](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7391)) - chore: Run dev-tools on PHP 8.2 ([#&#8203;7389](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7389)) - CI: Run Symfony 6 compat check on PHP 8.1 ([#&#8203;7383](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7383)) - CI: use fast-linter when calculating code coverage ([#&#8203;7390](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7390)) - docs: extend example for nullable\_type\_declaration ([#&#8203;7381](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7381)) - DX: FixerFactoryTest - make assertion failing msg more descriptive ([#&#8203;7387](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7387)) - feat: PhpdocSummaryFixer - support lists in description ([#&#8203;7385](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7385)) - feat: PSR12 - configure unary\_operator\_spaces ([#&#8203;7388](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7388)) - feat: StatementIndentationFixer - support comment for continuous control statement ([#&#8203;7384](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7384)) ### [`v3.35.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3351) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.35.0...v3.35.1) - fix: Mark `PhpdocReadonlyClassCommentToKeywordFixer` as risky ([#&#8203;7372](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7372)) ### [`v3.35.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3350) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.34.1...v3.35.0) - chore: Autoreview: test all formats are listed in `usage.rst` ([#&#8203;7357](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7357)) - chore: no need for `phpunitgoodpractices/traits` anymore ([#&#8203;7362](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7362)) - chore: Rename `indexes` to `indices` ([#&#8203;7368](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7368)) - chore: stop using `phpunitgoodpractices/traits` ([#&#8203;7363](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7363)) - chore: typo ([#&#8203;7367](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7367)) - docs: Sort options in documentation ([#&#8203;7345](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7345)) - feat(PhpdocReadonlyClassCommentToKeywordFixer): Introduction ([#&#8203;7353](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7353)) - feat: Ability to keep/enforce leading `\` when in global namespace ([#&#8203;7186](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7186)) - feat: Update `@PER-CS2.0` to match short closure space ([#&#8203;6970](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6970)) - feat: use `ordered_types` in `@PhpCsFixer` ([#&#8203;7361](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7361)) - fix(SingleLineThrowFixer): fixer goes out of range on close tag ([#&#8203;7369](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7369)) ### [`v3.34.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3341) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.34.0...v3.34.1) - deps: revert "prevent using PHPCSFixer along with unfinalize package ([#&#8203;7343](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7343))" ([#&#8203;7348](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7348)) ### [`v3.34.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3340) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.33.1...v3.34.0) - feat: Introduce `check` command (alias for `fix --dry-run`) ([#&#8203;7322](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7322)) ### [`v3.33.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/releases/tag/v3.33.1): The Old Guard [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.33.0...v3.33.1) #### What's Changed - deps: revert "prevent using PHPCSFixer along with unfinalize package ([#&#8203;7343](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7343))" by [@&#8203;innocenzi](https://github.com/innocenzi) in [#&#8203;7348](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/pull/7348) #### New Contributors - [@&#8203;innocenzi](https://github.com/innocenzi) made their first contribution in [#&#8203;7348](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/pull/7348) **Full Changelog**: <https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.33.0...v3.33.1> ### [`v3.33.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3330) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.32.1...v3.33.0) - feat: Introduce `native_type_declaration_casing` fixer ([#&#8203;7330](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7330)) ### [`v3.32.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/releases/tag/v3.32.1): Deprecation train [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.32.0...v3.32.1) #### What's Changed - deps: revert "prevent using PHPCSFixer along with unfinalize package ([#&#8203;7343](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7343))" by [@&#8203;innocenzi](https://github.com/innocenzi) in [#&#8203;7348](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/pull/7348) #### New Contributors - [@&#8203;innocenzi](https://github.com/innocenzi) made their first contribution in [#&#8203;7348](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/pull/7348) **Full Changelog**: <https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.32.0...v3.32.1> ### [`v3.32.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3320) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.31.0...v3.32.0) - deps: Prevent using PHPCSFixer along with `unfinalize` package ([#&#8203;7343](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7343)) - feat: Deprecate `CompactNullableTypehintFixer` and proxy to `CompactNullableTypeDeclarationFixer` ([#&#8203;7339](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7339)) - feat: Deprecate `CurlyBracesPositionFixer` and proxy to `BracesPositionFixer` ([#&#8203;7334](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7334)) - feat: Deprecate `NewWithBracesFixer` and proxy to `NewWithParenthesesFixer` ([#&#8203;7331](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7331)) - feat: Deprecate `NoUnneededCurlyBracesFixer` and proxy to `NoUnneededBracesFixer` ([#&#8203;7335](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7335)) - feat: Rename `CurlyBraceTransformer` to `BraceTransformer` ([#&#8203;7333](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7333)) ### [`v3.31.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3310) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.30.0...v3.31.0) - chore: Use type declaration instead of type hint ([#&#8203;7338](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7338)) - feat: Introduce `attribute_placement` option for `MethodArgumentSpaceFixer` ([#&#8203;7320](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7320)) - fix: Adjust wording related to deprecations ([#&#8203;7332](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7332)) - fix: Correct deprecation header in rules' docs ([#&#8203;7337](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7337)) - fix: Replace mention of bracket with parenthesis ([#&#8203;7336](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7336)) - fix: `FunctionToConstantFixer` should run before `NativeConstantInvocationFixer` ([#&#8203;7344](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7344)) ### [`v3.30.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3300) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.29.0...v3.30.0) - feat: Introduce `AttributeEmptyParenthesesFixer` ([#&#8203;7284](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7284)) - fix(method\_argument\_space): inject new line after trailing space on current line ([#&#8203;7327](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7327)) - fix(`YodaStyleFixer`): do not touch `require(_once)`, `include(_once)` and `yield from` statements ([#&#8203;7325](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7325)) - fix: illegal offset type on file-wide return in `ReturnToYieldFromFixer` ([#&#8203;7318](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7318)) ### [`v3.29.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3290) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.28.0...v3.29.0) - chore: fix TODO tasks about T\_AMPERSAND\_FOLLOWED\_BY\_VAR\_OR\_VARARG support ([#&#8203;7316](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7316)) - feat(`@PhpCsFixer:risky`): use newest `@PER-CS:risky` instead of locked `@PER-CS2.0:risky` ([#&#8203;7323](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7323)) - feat: Introduce `@PER-CS` ruleset ([#&#8203;7321](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7321)) - fix: priority issue between array\_syntax and space after rules ([#&#8203;7324](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7324)) ### [`v3.28.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3280) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.27.0...v3.28.0) - chore(prlint): allow for 'deps' type ([#&#8203;7304](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7304)) - CI(prlint): allow for special chars in parentheses ([#&#8203;7308](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7308)) - deps(dev-tools): update dev-tools ([#&#8203;7309](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7309)) - DX: Bump XDebug version in Docker services ([#&#8203;7300](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7300)) - feat(`@PER-CS2.0`): Add `concat_space` to the ruleset ([#&#8203;7302](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7302)) ### [`v3.27.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3270) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.26.1...v3.27.0) - docs: cleanup old mention of `--show-progress=estimating` in docs ([#&#8203;7287](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7287)) - DX: add Composer script for applying CS fixes in parallel ([#&#8203;7274](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7274)) - feat: Clone PER-CS1.0 to PER-CS2.0 to prepare for adding new rules ([#&#8203;7249](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7249)) - feat: Introduce `LongToShorthandOperatorFixer` ([#&#8203;7295](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7295)) - feat: Mark PER-CS v1 as deprecated ([#&#8203;7283](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7283)) - feat: Move `single_line_empty_body` to `@PER-CS2.0` ([#&#8203;7282](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7282)) - fix: Priorities for fixers related to curly braces, empty lines and trailing whitespace ([#&#8203;7296](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7296)) - fix: `OrderedTraitsFixer` - better support for multiple traits in one `use` statement ([#&#8203;7289](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7289)) ### [`v3.26.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3261) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.26.0...v3.26.1) - fix: Handle superfluous asterisk in `no_superfluous_phpdoc_tags` ([#&#8203;7279](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7279)) ### [`v3.26.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3260) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.25.1...v3.26.0) - chore(checkbashisms): update to 2.23.6 ([#&#8203;7276](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7276)) - chore(phpstan): reduce baseline ([#&#8203;7275](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7275)) - feat: Add `single_line_empty_body` to `@PhpCsFixer` ([#&#8203;7266](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7266)) - fix(YieldFromArrayToYieldsFixer): mark as Risky ([#&#8203;7272](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7272)) - fix(YieldFromArrayToYieldsFixer): skip touching empty array ([#&#8203;7273](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7273)) - test: Introduce common way of creating fake Composer project in `InstallViaComposerTest` ([#&#8203;7265](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7265)) ### [`v3.25.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3251) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.25.0...v3.25.1) - fix: PhpdocTypesFixer - do not crash for type followed by braces/brackets/chevrons/parentheses ([#&#8203;7268](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7268)) ### [`v3.25.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3250) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.24.0...v3.25.0) - feat: Remove Doctrine dependencies ([#&#8203;7263](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7263)) ### [`v3.24.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3240) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.23.0...v3.24.0) - chore: apply CS ([#&#8203;7240](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7240)) - chore: apply static\_lambda rule ([#&#8203;7239](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7239)) - chore: Improve template for creating new issue ([#&#8203;7255](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7255)) - CI: Conventional Commits support in PRLint config ([#&#8203;7037](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7037)) - CI: Remove Travis leftovers ([#&#8203;7259](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7259)) - docs: Add information about installing Fixer as dev dependency ([#&#8203;7129](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7129)) - docs: document composer script aliases ([#&#8203;7230](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7230)) - DX: Add script for running Composer Require Checker ([#&#8203;7252](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7252)) - DX: composer script aliases - ensure templated description ([#&#8203;7235](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7235)) - DX: composer-script - count PHPMD as static-analysis ([#&#8203;7231](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7231)) - DX: do not allow version specific code sample with minimum PHP version lower than the lowest supported one ([#&#8203;7207](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7207)) - DX: ensure version specific code samples are suitable for at least 1 supported PHP version ([#&#8203;7212](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7212)) - DX: Improve contributing guide ([#&#8203;7241](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7241)) - DX: More descriptive stale messages ([#&#8203;7236](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7236)) - feat([@&#8203;PhpCsFixer](https://github.com/PhpCsFixer):risky): add static\_lambda rule ([#&#8203;7237](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7237)) - feat: Add literal separator support for `integer_literal_case` ([#&#8203;7081](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7081)) - feat: Configurable case sensitivity for more ordering fixers ([#&#8203;7021](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7021)) - feat: Support for attributes in `method_argument_space` ([#&#8203;7242](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7242)) - fix: import detection for attributes at `NoUnusedImportsFixer` ([#&#8203;7246](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7246)) - fix: `no_superfluous_phpdoc_tags` with `null` phpdoc ([#&#8203;7234](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7234)) - fix: `phpdoc_types` must not lowercase literal types ([#&#8203;7108](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7108)) - test: Add static methods from PHPUnit 9.6.11 ([#&#8203;7243](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7243)) ### [`v3.23.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3230) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.22.0...v3.23.0) - bug: BlankLineBeforeStatementFixer - do not enforce/add a blank line when there is a blank line between the comment and the statement already ([#&#8203;7190](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7190)) - bug: Fix detecting classy invocation in catch ([#&#8203;7191](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7191)) - bug: Fix names resolving in `no_superfluous_phpdoc_tags` fixer ([#&#8203;7189](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7189)) - bug: Fix various bugs in `FullyQualifiedStrictTypesFixer` fixer ([#&#8203;7188](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7188)) - bug: Fixed line between general script documentation and require ([#&#8203;7177](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7177)) - bug: Support annotations with arguments in `FinalInternalClassFixer` ([#&#8203;7160](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7160)) - bug: YieldFromArrayToYieldsFixer - fix for `yield from` after `}` ([#&#8203;7169](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7169)) - bug: YieldFromArrayToYieldsFixer - fix handling the comment before the first array element ([#&#8203;7193](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7193)) - bug: `HeaderCommentFixer` must run before `BlankLinesBeforeNamespaceFixer` ([#&#8203;7205](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7205)) - bug: `NoUselessReturnFixer` must run before `SingleLineEmptyBodyFixer` ([#&#8203;7226](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7226)) - bug: `PhpdocInlineTagNormalizerFixer` - do not break tags ([#&#8203;7227](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7227)) - docs: Add allowed values of tags in the `phpdoc_align` ([#&#8203;7120](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7120)) - docs: Add extra information for GitLab reporter's integration with GitLab Code Quality ([#&#8203;7172](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7172)) - docs: Change the single backticks to double in description of the rules option ([#&#8203;7173](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7173)) - docs: Condensed output for rule sets' list that fixer is included in ([#&#8203;7182](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7182)) - docs: Improve contributing guide ([#&#8203;7204](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7204)) - docs: `MethodArgumentSpaceFixer` - mention PSR in Fixer definition ([#&#8203;7157](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7157)) - DX: add first auto-review tests for composer.json file ([#&#8203;7210](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7210)) - DX: add `YieldFromArrayToYieldsFixer` to `PhpCsFixer` set ([#&#8203;7115](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7115)) - DX: Allow OS conditions for integration tests ([#&#8203;7161](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7161)) - DX: Apply current CS rules ([#&#8203;7178](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7178)) - DX: Apply suggestions from PR 7210 ([#&#8203;7213](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7213)) - DX: apply `ReturnToYieldFromFixer` ([#&#8203;7181](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7181)) - DX: Do not mark "long term ideas" as stale ([#&#8203;7206](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7206)) - DX: enable `HeredocIndentationFixer` for the codebase ([#&#8203;7195](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7195)) - DX: enable `UseArrowFunctionsFixer` for the codebase ([#&#8203;7194](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7194)) - DX: few phpstan fixes ([#&#8203;7208](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7208)) - DX: fix contravariant types in PHPDocs ([#&#8203;7167](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7167)) - DX: Fix detecting trailing spaces ([#&#8203;7216](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7216)) - DX: Fix some PHPStan issues ([#&#8203;7180](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7180)) - DX: Get rid of deprecation warnings in Mess Detector ([#&#8203;7215](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7215)) - DX: Improve Composer scripts ([#&#8203;7214](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7214)) - DX: Improve Mess Detector Integration ([#&#8203;7224](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7224)) - DX: Introduce Composer scripts as common DX ([#&#8203;6839](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6839)) - DX: refactor `ErrorOutputTest` ([#&#8203;7183](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7183)) - DX: remove unnecessary arrays from data providers ([#&#8203;7170](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7170)) - DX: update `CurlyBracesPositionFixer` code samples ([#&#8203;7198](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7198)) - DX: update `HeredocIndentationFixer` code samples ([#&#8203;7197](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7197)) - DX: update `PhpdocToReturnTypeFixer` code samples ([#&#8203;7199](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7199)) - feature: add at least one space around binary operators ([#&#8203;7175](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7175)) - feature: BlankLineBeforeStatementFixer - take into account comment before statement ([#&#8203;7166](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7166)) - feature: Introduce `ReturnToYieldFromFixer` ([#&#8203;7168](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7168)) - feature: Introduce `SpacesInsideParenthesesFixer` ([#&#8203;5709](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/5709)) - feature: Support array destructuring in `trim_array_spaces` ([#&#8203;7218](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7218)) - feature: `BlankLineBeforeStatementFixer` - skip enum cases ([#&#8203;7203](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7203)) - minor: more arrow function usage ([#&#8203;7223](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7223)) - minor: PhpdocAlignFixerTest - convert CUSTOM tags test to not rely on non-custom tag from TAGS\_WITH\_NAME ([#&#8203;7209](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7209)) - minor: use JSON\_THROW\_ON\_ERROR for trivial cases ([#&#8203;7221](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7221)) - minor: use more spread operator ([#&#8203;7222](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7222)) ### [`v3.22.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3220) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.21.3...v3.22.0) - DX: add proper test for `SelfAccessorFixer` must run before `SelfAccessorFixer` ([#&#8203;7153](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7153)) - DX: FixerFactoryTest - apply CS ([#&#8203;7154](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7154)) - feature: Introduce `PhpUnitDataProviderReturnTypeFixer` ([#&#8203;7156](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7156)) - feature: Introduce `YieldFromArrayToYieldsFixer` ([#&#8203;7114](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7114)) ### [`v3.21.3`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3213) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.21.2...v3.21.3) - Revert "DX: encourage to provide wider description" ([#&#8203;7155](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7155)) ### [`v3.21.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3212) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.21.1...v3.21.2) - docs: check format of FixerDefinition::getDescription() ([#&#8203;7127](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7127)) - DX: add phpstan/phpstan-strict-rules ([#&#8203;7143](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7143)) - DX: allow for progressive cache ([#&#8203;7132](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7132)) - DX: Copy-pasteable `class::getPriority` for phpDoc diffs ([#&#8203;7148](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7148)) - DX: do not allow linebreak at the beginning of code sample ([#&#8203;7126](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7126)) - DX: encourage to provide wider description ([#&#8203;7128](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7128)) - DX: fix function calls ([#&#8203;7136](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7136)) - DX: fix PHPDoc types issues ([#&#8203;7135](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7135)) - DX: improve `Tokens` checking for found tokens ([#&#8203;7139](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7139)) - DX: Make `AbstractFixerTestCase::getTestFile()` final ([#&#8203;7116](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7116)) - DX: make `array_search` call strict ([#&#8203;7145](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7145)) - DX: remove `empty` calls ([#&#8203;7138](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7138)) - DX: store cache to file only if content will get modified ([#&#8203;7151](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7151)) - DX: unify Preg:match in logical conditions ([#&#8203;7146](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7146)) - DX: use booleans in conditions ([#&#8203;7149](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7149)) - DX: Use ParaUnit to speed up tests ([#&#8203;6883](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6883)) - DX: Use relative fixture path as integration test case's name ([#&#8203;7147](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7147)) - DX: use strict assertions ([#&#8203;7144](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7144)) - DX: `AbstractIntegrationTestCase::provideIntegrationCases` - yield over array, better typehinting ([#&#8203;7150](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7150)) ### [`v3.21.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3211) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.21.0...v3.21.1) experimental release - Require PHP ^8.0.1 ### [`v3.21.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3210) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.20.0...v3.21.0) - bug: Fix and enhance Gitlab reporter ([#&#8203;7089](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7089)) - bug: Import with different case must not be removed by non-risky fixer ([#&#8203;7095](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7095)) - bug: ordered imports fixer top group only ([#&#8203;7023](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7023)) - bug: `FinalPublicMethodForAbstractClassFixer` - fix for readonly classes ([#&#8203;7123](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7123)) - DX: do not nest ".editorconfig" files ([#&#8203;7112](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7112)) - DX: exclude Dockerfile from dist ([#&#8203;7113](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7113)) - DX: fix checkbashisms installation ([#&#8203;7102](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7102)) - DX: fix Smoke tests for various git default branch name ([#&#8203;7119](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7119)) - DX: Fix `FileRemovalTest` (do not fail when running it standalone) ([#&#8203;7104](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7104)) - DX: Progress output refactor ([#&#8203;6848](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6848)) - DX: Rename abstract test classes to `*TestCase` convention ([#&#8203;7100](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7100)) - DX: test all PHPUnit migration sets ([#&#8203;7107](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7107)) - DX: \[Docker] Distinguish Alpine version between PHP versions ([#&#8203;7105](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7105)) - feature: Create cache path if it does not exist ([#&#8203;7109](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7109)) - feature: Introduce `NullableTypeDeclarationFixer` ([#&#8203;7002](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7002)) - feature: Introduce `TypeDeclarationSpacesFixer` ([#&#8203;7001](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7001)) - feature: `BlankLineBetweenImportGroupsFixer` - keep indent ([#&#8203;7122](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7122)) - minor: Parse callable using full phpdoc grammar ([#&#8203;7094](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7094)) - minor: PHP8.3 const type tokenizing ([#&#8203;7055](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7055)) ### [`v3.20.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3200) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.19.2...v3.20.0) - DX: fix priority of `FinalClassFixer` ([#&#8203;7091](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7091)) - DX: use FAST\_LINT\_TEST\_CASES=1 for CI run on macOS ([#&#8203;7092](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7092)) - feature: SingleLineEmptyBodyFixer - support interfaces, traits and enums ([#&#8203;7096](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7096)) - feature: `NullableTypeDeclarationForDefaultNullValue` - support for nullability in union types ([#&#8203;5819](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/5819)) ### [`v3.19.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3192) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.19.1...v3.19.2) - bug: NoMultipleStatementsPerLineFixer must run before CurlyBracesPositionFixer ([#&#8203;7087](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7087)) - bug: PhpdocAddMissingParamAnnotationFixer - fix for promoted properties ([#&#8203;7090](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7090)) - DX: fix priority of SingleBlankLineBeforeNamespaceFixer ([#&#8203;7088](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7088)) - minor: Parse all phpdoc types using full grammar ([#&#8203;7010](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7010)) ### [`v3.19.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3191) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.19.0...v3.19.1) - bug: CurlyBracesPositionFixer must run before StatementIndentationFixer ([#&#8203;7085](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7085)) ### [`v3.19.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3190) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.18.0...v3.19.0) - bug: SelfAccessorFixer - fix for union types ([#&#8203;7080](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7080)) - DX: add `php_unit_data_provider_name` to `@PhpCsFixer:risky` set ([#&#8203;7069](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7069)) - DX: make data providers return type "iterable" ([#&#8203;7072](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7072)) - DX: rename tests and data providers ([#&#8203;7070](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7070)) - feature: Introduce `PhpUnitDataProviderNameFixer` ([#&#8203;7057](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7057)) ### [`v3.18.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3180) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.17.0...v3.18.0) - bug: Fix tokenizing of type hints ([#&#8203;7054](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7054)) - bug: CompactNullableTypehintFixer - fix for whitespace between `?` and `static` ([#&#8203;6993](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6993)) - bug: consider function modifiers for `statement_indentation` ([#&#8203;6978](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6978)) - bug: Exclude `$this` from `TernaryToNullCoalescingFixer` ([#&#8203;7052](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7052)) - bug: False positive on used imports when docblock includes it with mismatching case ([#&#8203;6909](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6909)) - bug: Fix chained calls semicolon indent in switch case ([#&#8203;7045](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7045)) - bug: Fix multiline\_whitespace\_before\_semicolons for echo tags ([#&#8203;7019](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7019)) - bug: Fix phpDoc align when there is inconsistent spacing after comment star ([#&#8203;7012](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7012)) - bug: Fix phpDoc parsing without PCRE JIT ([#&#8203;7031](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7031)) - bug: Fix PhpdocVarWithoutNameFixer with Closure with $this ([#&#8203;6979](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6979)) - bug: Fix `return_assignment` not formatting when variables are used in `catch` and `finally` ([#&#8203;6960](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6960)) - bug: Fix `TypeExpression::allowsNull()` with nullable ([#&#8203;7000](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7000)) - bug: Improve definition of conflicting fixers ([#&#8203;7066](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7066)) - bug: LambdaNotUsedImportFixer - fix for anonymous class with a string argument ([#&#8203;6972](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6972)) - bug: ListFilesCommand - fix computing of relative path ([#&#8203;7028](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7028)) - bug: make `php_unit_namespaced` less greedy ([#&#8203;6952](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6952)) - bug: PhpdocToCommentFixer - fix for PHPDoc before fn ([#&#8203;6973](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6973)) - bug: Restructure PER-CS rule sets ([#&#8203;6707](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6707)) - bug: SelfStaticAccessor - fix static access inside enums ([#&#8203;7024](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7024)) - bug: SingleSpaceAroundConstructFixer - fix more cases involving `static` ([#&#8203;6995](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6995)) - bug: `FullyQualifiedStrictTypesFixer` - fix shortening when namespace is not empty and import exists ([#&#8203;7027](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7027)) - bug: `NoUnneededControlParenthesesFixer` PHP8.0 null-safe operator ([#&#8203;7056](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7056)) - bug: `PhpdocToCommentFixer` support for enum cases ([#&#8203;7040](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7040)) - DX: add more tests to CommentsAnalyzer ([#&#8203;7041](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7041)) - DX: Cleanup duplicate files in finder ([#&#8203;7042](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7042)) - DX: ControlCaseStructuresAnalyzerTest - cleanup ([#&#8203;6874](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6874)) - DX: Fix warning when running test on PHP<8 ([#&#8203;7008](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7008)) - DX: handle `@` in PR title ([#&#8203;6982](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6982)) - DX: officially deprecate internal Utils anti-pattern class ([#&#8203;7039](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7039)) - DX: Remove Fabbot.io conditional configuration ([#&#8203;7038](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7038)) - DX: rename data providers ([#&#8203;7058](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7058)) - DX: Use `actions/stale` to handle stale issues and pull requests ([#&#8203;5085](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/5085)) - DX: Use `Utils::naturalLanguageJoin()` in implode calls ([#&#8203;7032](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7032)) - feature: Add support for custom method placement in `ordered_class_elements` ([#&#8203;6360](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6360)) - feature: Allow case sensitive order for OrderedClassElementsFixer ([#&#8203;7020](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7020)) - feature: PHP8.3 - Add CT and block type for `Dynamic class constant fetch` ([#&#8203;7004](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7004)) - feature: Support attributes in `FinalClassFixer` ([#&#8203;6893](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6893)) - minor: "Callback" must not be fixed to "callback" by default ([#&#8203;7011](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7011)) - minor: Add `Util::naturalLanguageJoin()` ([#&#8203;7022](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7022)) - minor: ClassDefinitionFixer - handle attributes and `readonly` in anonymous class definitions ([#&#8203;7014](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7014)) - minor: FixerFactory::getFixersConflicts - better type hinting ([#&#8203;7044](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7044)) - minor: PHP8.3 - Fix TokensAnalyzer::isAnonymousClass support for `readonly` ([#&#8203;7013](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7013)) - minor: PHP8.3 - Typed class constants - handle nullable by transformer ([#&#8203;7009](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7009)) - minor: Reduce phpDoc type parser complexity from O(n^2) to O(nlog(n)) ([#&#8203;6988](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6988)) - minor: ReturnAssignmentFixer - Better handling of anonymous classes ([#&#8203;7015](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7015)) - minor: Transfer `HelpCommand::toString()` to `Utils` ([#&#8203;7034](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7034)) - minor: Unify "blank lines before namespace" fixers ([#&#8203;7053](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7053)) - minor: `SelfStaticAccessorFixer` improvements for enums ([#&#8203;7026](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7026)) - minor: `SingleSpaceAroundConstructFixer` - support space before `as` ([#&#8203;7029](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7029)) - minor: `UseArrowFunctionsFixer` - run before `FunctionDeclarationFixer` ([#&#8203;7065](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7065)) ### [`v3.17.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3170) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.16.0...v3.17.0) - bug: Allow string quote to be escaped within phpdoc constant ([#&#8203;6798](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6798)) - bug: ConfigurationResolver - fix running without cache ([#&#8203;6915](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6915)) - bug: Fix array/object shape phpdoc type parse ([#&#8203;6962](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6962)) - bug: Fix FullyQualifiedStrictTypesFixer common prefix bug ([#&#8203;6898](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6898)) - bug: Fix non-parenthesized callable return type parse ([#&#8203;6961](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6961)) - bug: Fix parsing of edge cases phpdoc types ([#&#8203;6977](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6977)) - bug: FullyQualifiedStrictTypesFixer - fix for FQCN type with class with the same name being imported ([#&#8203;6923](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6923)) - bug: GroupImportFixer - support for aliased imports ([#&#8203;6951](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6951)) - bug: MultilineWhitespaceBeforeSemicolonsFixer - fix chained calls ([#&#8203;6926](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6926)) - bug: MultilineWhitespaceBeforeSemicolonsFixer - fix for discovering multi line calls ([#&#8203;6938](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6938)) - bug: NoBreakCommentFixer - fix for nested match ([#&#8203;6899](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6899)) - bug: NoExtraBlankLinesFixer - fix for attribute in abstract function ([#&#8203;6920](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6920)) - bug: PhpdocTypesFixer - handle types with no space between type and variable ([#&#8203;6922](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6922)) - bug: PhpUnitMockShortWillReturnFixer - fix for trailing commas ([#&#8203;6900](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6900)) - bug: StatementIndentationFixer - fix comments at the end of if/elseif/else blocks ([#&#8203;6918](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6918)) - bug: StatementIndentationFixer - fix for multiline arguments starting with "new" keyword ([#&#8203;6913](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6913)) - bug: StatementIndentationFixer - fix for multiline arguments starting with "new" keyword preceded by class instantiation ([#&#8203;6914](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6914)) - bug: VoidReturnFixer - fix for intervening attributes ([#&#8203;6863](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6863)) - docs: improve code samples for MultilineWhitespaceBeforeSemicolonsFixer ([#&#8203;6919](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6919)) - docs: improve cookbook ([#&#8203;6880](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6880)) - DX: add cache related tests ([#&#8203;6916](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6916)) - DX: Apply `self_static_accessor` fixer to the project (again) ([#&#8203;6927](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6927)) - DX: cancel running builds on subsequent pushes in CI ([#&#8203;6940](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6940)) - DX: convert more `static` to `self` assert calls ([#&#8203;6931](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6931)) - DX: fix GitHub Actions errors and warnings ([#&#8203;6917](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6917)) - DX: fix Unsafe call to private method errors reported by PHPStan ([#&#8203;6879](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6879)) - DX: Improve performance of FunctionsAnalyzer ([#&#8203;6939](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6939)) - DX: improve test method names to avoid confusion ([#&#8203;6974](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6974)) - DX: Include self\_static\_accessor fixer in PhpCsFixer set ([#&#8203;6882](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6882)) - DX: make data providers static with straight-forward changes ([#&#8203;6907](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6907)) - DX: Mark Tokens::getNamespaceDeclarations as [@&#8203;internal](https://github.com/internal) ([#&#8203;6949](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6949)) - DX: PHPStan improvements ([#&#8203;6868](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6868)) - DX: refactor PhpdocAlignFixerTest ([#&#8203;6925](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6925)) - DX: Remove [@&#8203;inheritdoc](https://github.com/inheritdoc) PHPDoc ([#&#8203;6955](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6955)) - DX: Run AutoReview tests only once ([#&#8203;6889](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6889)) - DX: simplify EncodingFixer ([#&#8203;6956](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6956)) - DX: update Symfony rule set ([#&#8203;6958](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6958)) - DX: Use $tokens->getNamespaceDeclarations() to improve performance ([#&#8203;6942](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6942)) - DX: use force option for php\_unit\_data\_provider\_static in PHPUnit 10.0 migration set ([#&#8203;6908](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6908)) - DX: use only PHP modules that are required ([#&#8203;6954](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6954)) - DX: use PHPUnit's "requires" instead of "if" condition ([#&#8203;6975](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6975)) - feature: Add align\_multiline\_comment rule to [@&#8203;Symfony](https://github.com/Symfony) ([#&#8203;6875](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6875)) - feature: Add no\_null\_property\_initialization rule to [@&#8203;Symfony](https://github.com/Symfony) ([#&#8203;6876](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6876)) - feature: Add operator\_linebreak rule to [@&#8203;Symfony](https://github.com/Symfony) ([#&#8203;6877](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6877)) - feature: add SingleLineEmptyBodyFixer ([#&#8203;6933](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6933)) - feature: DescribeCommand - allow describing custom fixers ([#&#8203;6957](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6957)) - feature: Introduce `OrderedTypesFixer` ([#&#8203;6571](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6571)) - feature: Order of PHPDoc [@&#8203;param](https://github.com/param) annotations ([#&#8203;3909](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/3909)) - feature: Parse parenthesized & conditional phpdoc type ([#&#8203;6796](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6796)) - feature: PhpUnitInternalClassFixer - add empty line before PHPDoc ([#&#8203;6924](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6924)) - feature: \[PhpdocAlignFixer] Add support for every tag ([#&#8203;6564](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6564)) - minor: align NoSuperfluousPhpdocTagsFixer with actual Symfony configuration ([#&#8203;6953](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6953)) - minor: do not add empty line in PHPDoc when adding annotation in PHPUnit class ([#&#8203;6928](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6928)) - minor: PhpdocAlignFixer - support cases with type and variable separated with no space ([#&#8203;6921](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6921)) - minor: PhpdocSeparationFixer - add integration tests ([#&#8203;6929](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6929)) - minor: update PHPStan (to fix CI on master branch) ([#&#8203;6901](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6901)) - minor: Use single Dockerfile with multiple build targets ([#&#8203;6840](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6840)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 3am every weekday,every weekend" in timezone Europe/Amsterdam, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi45OS4wIiwidXBkYXRlZEluVmVyIjoiNDIuOTkuMCIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->
chore(deps): update dependency friendsofphp/php-cs-fixer to v3.95.1
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
97d7b19cde
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/friendsofphp-php-cs-fixer-3.x-lockfile:renovate/friendsofphp-php-cs-fixer-3.x-lockfile
git switch renovate/friendsofphp-php-cs-fixer-3.x-lockfile

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch master
git merge --no-ff renovate/friendsofphp-php-cs-fixer-3.x-lockfile
git switch renovate/friendsofphp-php-cs-fixer-3.x-lockfile
git rebase master
git switch master
git merge --ff-only renovate/friendsofphp-php-cs-fixer-3.x-lockfile
git switch renovate/friendsofphp-php-cs-fixer-3.x-lockfile
git rebase master
git switch master
git merge --no-ff renovate/friendsofphp-php-cs-fixer-3.x-lockfile
git switch master
git merge --squash renovate/friendsofphp-php-cs-fixer-3.x-lockfile
git switch master
git merge --ff-only renovate/friendsofphp-php-cs-fixer-3.x-lockfile
git switch master
git merge renovate/friendsofphp-php-cs-fixer-3.x-lockfile
git push origin master
Sign in to join this conversation.
No description provided.