Releases: PHP-CS-Fixer/PHP-CS-Fixer
v3.82.2 Alexander
What's Changed
- fix:
ClassAttributesSeparationFixer
- handle methodget
aliased in trait import by @kubawerlos in #8822 - fix:
VisibilityRequiredFixer
- handle promoted property with visibility and reference, but without type by @kubawerlos in #8823 - fix:
LowercaseStaticReferenceFixer
- do not touch enum's cases by @kubawerlos in #8824 - fix:
StatementIndentationFixer
- multi constant statement containing array by @gharlan in #8825
Full Changelog: v3.82.1...v3.82.2
v3.82.1 Alexander
What's Changed
- fix:
SingleClassElementPerStatementFixer
- fix for property hooks by @kubawerlos in #8816 - fix:
OrderedClassElementsFixer
- handle property hooks by @kubawerlos in #8817
Full Changelog: v3.82.0...v3.82.1
v3.82.0 Alexander
What's Changed
- feat:
MagicConstantCasingFixer
- support__PROPERTY__
by @kubawerlos in #8809 - feat:
PhpUnitDataProviderNameFixer
- support data providers defined by both annotation and attribute for the same test by @kubawerlos in #8811 - fix:
PhpdocToParamTypeFixer
- always handle reference in PHPDoc by @kubawerlos in #8813 - deps: update box by @keradus in #8795
- chore: cleanup
FCTTest
by @kubawerlos in #8808 - chore: PhpdocOrderFixer.php - CPU optimization by @keradus in #8812
- docs: fix whitespace around code examples and reference sections in rules' docs by @paulbalandan in #8810
Full Changelog: v3.81.0...v3.82.0
v3.81.0 Alexander
What's Changed
- feat:
VisibilityRequiredFixer
- handle more than only the first promoted property by @kubawerlos in #8801 - fix:
VisibilityRequiredFixer
- handle promoted parameter passed by reference by @kubawerlos in #8799 - fix:
BracesPositionFixer
- do not throw error when variable is terminated by PHP close tag by @paulbalandan in #8804 - fix:
PhpUnitInternalClassFixer
- skip adding@internal
on instantiation of anonymous classes by @paulbalandan in #8807 - fix:
PhpUnitDataProviderMethodOrderFixer
- handle data provider defined by both annotation and attribute by @kubawerlos in #8805 - chore: add automatically to milestone "PHP 8.5 initial compatibility" if label is "topic/PHP8.5" by @kubawerlos in #8806
- chore: fail "Deployment checks" if any job from
tests
failed by @kubawerlos in #8792 - docs: update docs about --allow-unsupported-php-version by @keradus in #8796
Full Changelog: v3.80.0...v3.81.0
v3.80.0 Alexander
Long-awaiting official support for PHP 8.4 in PHP-CS-Fixer is finally here 🥳! We know, it's long overdue, but for a reason... Let us explain a bit, for transparency and clean atmosphere around the project.
First of all, we are fully aware that tool like Fixer should support new PHP releases from day 0, but in reality it's not that simple. The project has 3 (let's emphasise this: three) active maintainers, whose activity depends on many factors. Even though we take this responsibility very seriously, at the same time we need to prioritise our time and efforts. Sometimes it's just not meant to have focus on OSS, and there's nothing wrong about it. People often take OSS maintenance for granted, expecting that we (Fixer team) will provide solutions for their problems and needs, but we believe that the true nature of OSS is overlooked by many of them. It's not about you, it's not about maintainers - it's about the good of the project and its users. And most importantly: it's open for everyone to contribute. You want Fixer to support PHP 8.4? Great, then help with verifying if it works correctly on a 8.4-based sources, provide tests, fix bugs if any were found... That's how it should work in a healthy community. Fixer has many great contributors, but somehow support for new PHP releases is not the topic that engage them 😅. Yes, you could say "but if I work on Fixer in my free time, and I provide PR(s) related to new PHP version support, it still needs to be reviewed and merged, but since maintainers' activity is not reliable, it may end up forgotten and my time would have got wasted", and we really understand that concern. We can't guarantee either implementing stuff on our own, and reviewing contributed code, because we simply have our lifes, families, jobs, hobbies, and Fixer is "just" a side project that we like. We don't get paid for this, we do it because we want to bring value to the PHP community. But this can't be done at the expense of our private matters.
We will do our best to bring PHP 8.5 support faster, maybe even on day 0. But it also may be done half a year after its release. It depends - on us, on all of you. We encourage you to contribute to the project, let's grow Fixer together!
We thank all the people who participated in PHP 8.4 milestone no matter how - finding and reporting bugs, implementing features and fixes, providing feedback in the PRs or discussions. We all did it in the end, time to celebrate 🥳!
What's Changed
- feat: PHP 8.4 compatibility support by @Wirone, @kubawerlos, @keradus and others in #8300
Full Changelog: v3.79.0...v3.80.0
v3.79.0 Kids Playground
What's Changed
- feat:
BracesPositionFixer
- do not touch one-line properties with hooks by @kubawerlos in #8785 - chore:
VisibilityRequiredFixerTest
- run tests in correct PHP version by @kubawerlos in #8790 - feat:
PhpUnitDataProvider(.+)Fixer
- support attributes by @kubawerlos in #8197
Full Changelog: v3.78.1...v3.79.0
v3.78.1 Kids Playground
What's Changed
- fix:
VisibilityRequiredFixer
- do not addpublic
incorrectly by @kubawerlos in #8787
Full Changelog: v3.78.0...v3.78.1
v3.78.0 Kids Playground
What's Changed
- feat:
VisibilityRequiredFixer
- support promoted properties by @kubawerlos in #8773 - feat:
BracesPositionFixer
- support property hooks by @kubawerlos in #8782 - fix:
StatementIndentationFixer
- handle functionsset
andget
(like property hooks, but not) by @kubawerlos in #8576 - fix:
NativeFunctionInvocationFixer
- fix global functionset
called in array key by @kubawerlos in #8568 - fix:
StaticPrivateMethodFixer
- handle nested calls by @kubawerlos in #8768 - fix:
NoBreakCommentFixer
- handle function having return type by @kubawerlos in #8767 - chore:
VisibilityRequiredFixer
- document behaviour for asymmetric visibility with only set-visibility by @kubawerlos in #8783
Full Changelog: v3.77.0...v3.78.0
v3.77.0 Kids Playground
What's Changed
- chore: add automatically to milestone "PHP 8.4 initial compatibility" if label is "topic/PHP8.4" by @kubawerlos in #8770
- chore: fix adding automatically to milestone "PHP 8.4 initial compatibility" if label is "topic/PHP8.4" by @kubawerlos in #8775
- chore: fix adding automatically to milestone "PHP 8.4 initial compatibility" if label is "topic/PHP8.4" by @kubawerlos in #8776
- chore: move all indicators to analyzers by @kubawerlos in #8772
- chore: move PHP-compat integration tests by @keradus in #8781
- chore: partially apply NoExtraBlankLinesFixer:tokens.comma by @keradus in #8762
- chore: reconfigure phpdoc_order in local config by @mvorisek in #8220
- feat:
CommentToPhpdocFixer
andPhpdocToCommentFixer
- support asymmetric visibility by @kubawerlos in #8774 - feat:
NoEmptyStatementFixer
- support abstract property hooks by @kubawerlos in #8766 - feat:
NullableTypeDeclarationForDefaultNullValueFixer
- support asymmetric visibility in the constructor by @kubawerlos in #8604 - feat:
ProtectedToPrivateFixer
- add support for promoted properties by @kubawerlos in #8608 - feat: PhpdocOrderFixer - extend support for phpstan and psalm annotations by @keradus in #8777
- feat: support anonymous classes extending
TestCase
in PHPUnit fixers by @kubawerlos in #8707 - fix:
PhpUnitAttributesFixer
- correctly remove annotations when configured['keep_annotations' => false]
by @kubawerlos in #8577 - fix:
ProtectedToPrivateFixer
- fix asymmetric visibility with only set visibility by @kubawerlos in #8763
Full Changelog: v3.76.0...v3.77.0
v3.76.0 Kids Playground
What's Changed
- chore: add missing priority test for
BracesPositionFixer
andMultilinePromotedPropertiesFixer
by @kubawerlos in #8596 - chore: add more assertions in tests by @kubawerlos in #8740
- chore: bump dependencies version to maximum for non-newest MAJOR version by @keradus in #8753
- chore: cast types in tests by @kubawerlos in #8742
- chore: cleanup
AlignMultilineCommentFixerTest
by @kubawerlos in #8688 - chore: cleanup
BinaryOperatorSpacesFixerTest
by @kubawerlos in #8687 - chore: cleanup
BlankLineBeforeStatementFixerTest
by @kubawerlos in #8685 - chore: cleanup
ClassDefinitionFixer
by @kubawerlos in #8580 - chore: cleanup
ClassDefinitionFixerTest
by @kubawerlos in #8684 - chore: cleanup
ConcatSpaceFixerTest
by @kubawerlos in #8683 - chore: cleanup
DoctrineAnnotationArrayAssignmentFixerTest
by @kubawerlos in #8621 - chore: cleanup
DoctrineAnnotationBracesFixerTest
by @kubawerlos in #8623 - chore: cleanup
DoctrineAnnotationIndentationFixerTest
by @kubawerlos in #8620 - chore: cleanup
DoctrineAnnotationSpacesFixerTest
by @kubawerlos in #8624 - chore: cleanup
EchoTagSyntaxFixerTest
by @kubawerlos in #8681 - chore: cleanup
file_get_contents
return types by @kubawerlos in #8735 - chore: cleanup
FunctionDeclarationFixerTest
by @kubawerlos in #8680 - chore: cleanup
FunctionToConstantFixerTest
by @kubawerlos in #8618 - chore: cleanup
GeneralPhpdocTagRenameFixerTest
by @kubawerlos in #8627 - chore: cleanup
GlobalNamespaceImportFixerTest
by @kubawerlos in #8679 - chore: cleanup
HeaderCommentFixerTest
(restore@requires
for PHP 8.1) by @kubawerlos in #8678 - chore: cleanup
HeaderCommentFixerTest
by @kubawerlos in #8677 - chore: cleanup
IncrementStyleFixerTest
by @kubawerlos in #8676 - chore: cleanup
IndentationTypeFixerTest
by @kubawerlos in #8675 - chore: cleanup
ListSyntaxFixerTest
by @kubawerlos in #8674 - chore: cleanup
MethodArgumentSpaceFixerTest
by @kubawerlos in #8673 - chore: cleanup
MultilineWhitespaceBeforeSemicolonsFixerTest
by @kubawerlos in #8614 - chore: cleanup
NativeConstantInvocationFixerTest
by @kubawerlos in #8672 - chore: cleanup
NewWithParenthesesFixerTest
by @kubawerlos in #8592 - chore: cleanup
NoBlankLinesAfterPhpdocFixerTest
by @kubawerlos in #8671 - chore: cleanup
NoBreakCommentFixerTest
by @kubawerlos in #8670 - chore: cleanup
NoClosingTagFixerTest
by @kubawerlos in #8669 - chore: cleanup
NoEmptyStatementFixerTest
by @kubawerlos in #8667 - chore: cleanup
NoSpacesAroundOffsetFixerTest
by @kubawerlos in #8666 - chore: cleanup
NoUnneededControlParenthesesFixerTest
by @kubawerlos in #8665 - chore: cleanup
NoUselessElseFixerTest
by @kubawerlos in #8664 - chore: cleanup
PhpdocAddMissingParamAnnotationFixerTest
by @kubawerlos in #8663 - chore: cleanup
PhpdocNoEmptyReturnFixerTest
by @kubawerlos in #8662 - chore: cleanup
PhpdocNoPackageFixerTest
by @kubawerlos in #8626 - chore: cleanup
PhpdocOrderByValueFixerTest
by @kubawerlos in #8661 - chore: cleanup
PhpdocOrderFixerTest
by @kubawerlos in #8660 - chore: cleanup
PhpdocParamOrderFixerTest
by @kubawerlos in #8659 - chore: cleanup
PhpdocReturnSelfReferenceFixerTest
by @kubawerlos in #8658 - chore: cleanup
PhpdocSeparationFixerTest
by @kubawerlos in #8657 - chore: cleanup
PhpdocSummaryFixerTest
by @kubawerlos in #8654 - chore: cleanup
PhpdocTrimFixerTest
by @kubawerlos in #8653 - chore: cleanup
PhpdocTypesOrderFixerTest
by @kubawerlos in #8652 - chore: cleanup
PhpdocVarWithoutNameFixerTest
by @kubawerlos in #8617 - chore: cleanup
PhpUnitConstructFixerTest
by @kubawerlos in #8651 - chore: cleanup
PhpUnitDedicateAssertFixerTest
by @kubawerlos in #8650 - chore: cleanup
PhpUnitTestCaseStaticMethodCallsFixerTest
by @kubawerlos in #8649 - chore: cleanup
Preg
issues by @kubawerlos in #8720 - chore: cleanup
ReturnAssignmentFixerTest
by @kubawerlos in #8648 - chore: cleanup
ReturnTypeDeclarationFixerTest
by @kubawerlos in #8647 - chore: cleanup
SingleImportPerStatementFixerTest
by @kubawerlos in #8645 - chore: cleanup
SingleLineCommentStyleFixerTest
by @kubawerlos in #8644 - chore: cleanup
SingleSpaceAroundConstructFixerTest
by @kubawerlos in #8642 - chore: cleanup
SpaceAfterSemicolonFixerTest
by @kubawerlos in #8625 - chore: cleanup
SpacesInsideParenthesesFixerTest
by @kubawerlos in #8641 - chore: cleanup
StatementIndentationFixerTest
by @kubawerlos in #8640 - chore: cleanup
YodaStyleFixerTest
by @kubawerlos in #8638 - chore: cleanup booleans use in tests by @kubawerlos in #8738
- chore: cleanup code in tests by @kubawerlos in #8745
- chore: cleanup PsrAutoloadingFixerTest.php keywords handling, as always defined currently by @keradus in #8730
- chore: do not check if
JSON_INVALID_UTF8_IGNORE
is defined because it always is (since PHP 7.2) by @kubawerlos in #8709 - chore: handle saveXML failures explicitly by @keradus in #8755
- chore: ignore remaining PHPStan (false positive) issues by @kubawerlos in #8746
- chore: improve PHPDoc's types in
NoUnsetOnPropertyFixer
by @kubawerlos in #8741 - chore: improve PHPDocs in tests by @kubawerlos in #8736
- chore: improve PHPDocs in tests by @kubawerlos in #8744
- chore: improve type of
Token::equalsAny
by @kubawerlos in #8743 - chore: lint yaml files by @gnought in #8622
- chore: MultilinePromotedPropertiesFixer - mark new fixer introduced in #8595 as experimental by @keradus in #8758
- chore: PHPMD - cleanup
UnusedLocalVariable
forforeach
by @kubawerlos in #8637 - chore: refactor FCT by @keradus in #8714
- chore: remove
defined
calls from tests by @kubawerlos in #8708 - chore: remove unused local variables in src by @kubawerlos in #8600
- chore: remove unused local variables in tests by @kubawerlos in #8599
- chore: remove useless test from
AliasedFixerOptionTest
by @kubawerlos in #8739 - chore: restore original type of Token::equalsAny, partially reverts #8743 by @keradus in #8759
- chore: run mutation tests on PHP 8.4 by @kubawerlos in https://...