Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: replace ecs with cs fixer #129

Merged
merged 1 commit into from
Oct 4, 2024

Conversation

stefanpoensgen
Copy link
Contributor

No description provided.

Copy link

github-actions bot commented Oct 4, 2024

Thanks for the PR 😍

How to test these changes in your application

  1. Add the Shopware flex endpoint in your composer.json to https://raw.githubusercontent.com/shopware/recipes/flex/pull-129/index.json.

    # When jq is installed
    jq '.extra.symfony.endpoint |= [ "https://raw.githubusercontent.com/shopware/recipes/flex/pull-129/index.json" ] + .' composer.json > composer.tmp && mv composer.tmp composer.json

    or manually

    "endpoint": [
        "https://raw.githubusercontent.com/shopware/recipes/flex/pull-129/index.json",
        "https://raw.githubusercontent.com/shopware/recipes/flex/main/index.json",
        "flex://defaults"
    ]
  2. Install the package(s) related to this recipe:

    composer req 'frosh/code-quality-meta:^0.4'

Diff between recipe versions

In order to help with the review stage, I'm in charge of computing the diff between the various versions of patched recipes.
I'm going keep this comment up to date with any updates of the attached patch.

frosh/code-quality-meta

0.1 vs 0.2
diff --git a/frosh/code-quality-meta/0.1/root/rector.php b/frosh/code-quality-meta/0.2/root/rector.php
index 30bc217..28bd0a0 100644
--- a/frosh/code-quality-meta/0.1/root/rector.php
+++ b/frosh/code-quality-meta/0.2/root/rector.php
@@ -4,13 +4,12 @@ declare(strict_types=1);
 
 use Frosh\Rector\Set\ShopwareSetList;
 use Rector\CodeQuality\Rector\Class_\InlineConstructorDefaultToPropertyRector;
-use Rector\CodeQuality\Rector\Foreach_\SimplifyForeachToArrayFilterRector;
 use Rector\Config\RectorConfig;
 use Rector\Php74\Rector\LNumber\AddLiteralSeparatorToNumberRector;
 use Rector\PostRector\Rector\NameImportingPostRector;
 use Rector\Set\ValueObject\LevelSetList;
 use Rector\Set\ValueObject\SetList;
-use Rector\Symfony\Rector\Return_\SimpleFunctionAndFilterRector;
+use Rector\Symfony\Twig134\Rector\Return_\SimpleFunctionAndFilterRector;
 use Rector\Symfony\Set\SymfonySetList;
 
 return static function (RectorConfig $rectorConfig): void {
@@ -27,7 +26,6 @@ return static function (RectorConfig $rectorConfig): void {
 
     $rectorConfig->rule(InlineConstructorDefaultToPropertyRector::class);
     $rectorConfig->rule(NameImportingPostRector::class);
-    $rectorConfig->rule(SimplifyForeachToArrayFilterRector::class);
     $rectorConfig->rule(SimpleFunctionAndFilterRector::class);
 
     $rectorConfig->sets([
@@ -37,10 +35,13 @@ return static function (RectorConfig $rectorConfig): void {
         SymfonySetList::SYMFONY_60,
         SymfonySetList::SYMFONY_61,
         SymfonySetList::SYMFONY_62,
+        SymfonySetList::SYMFONY_63,
         SymfonySetList::SYMFONY_CODE_QUALITY,
         SymfonySetList::ANNOTATIONS_TO_ATTRIBUTES,
         LevelSetList::UP_TO_PHP_81,
+        LevelSetList::UP_TO_PHP_82,
         ShopwareSetList::SHOPWARE_6_5_0,
+        ShopwareSetList::SHOPWARE_6_6_0,
     ]);
 
     $rectorConfig->skip([
diff --git a/frosh/code-quality-meta/0.1/vendor-bin/rector/composer.json b/frosh/code-quality-meta/0.2/vendor-bin/rector/composer.json
index 801401b..7f86567 100644
--- a/frosh/code-quality-meta/0.1/vendor-bin/rector/composer.json
+++ b/frosh/code-quality-meta/0.2/vendor-bin/rector/composer.json
@@ -1,6 +1,6 @@
 {
     "require-dev": {
-        "rector/rector": "^0.15.24",
-        "frosh/shopware-rector": "^0.1.0"
+        "rector/rector": "^0.17.3",
+        "frosh/shopware-rector": "^0.2.2"
     }
 }
0.2 vs 0.3
diff --git a/frosh/code-quality-meta/0.2/post-install.txt b/frosh/code-quality-meta/0.3/post-install.txt
index d52763e..1eb5b98 100644
--- a/frosh/code-quality-meta/0.2/post-install.txt
+++ b/frosh/code-quality-meta/0.3/post-install.txt
@@ -9,7 +9,7 @@
             "ecs": "@php vendor-bin/cs-fixer/vendor/bin/ecs check custom/static-plugins custom/plugins",
             "ecs-fix": "@php vendor-bin/cs-fixer/vendor/bin/ecs check --fix custom/static-plugins custom/plugins",
             "phpstan": [
-              "@php vendor/frosh/code-quality-meta/phpstan-bootstrap.php",
+              "@php vendor/shopware/core/DevOps/StaticAnalyze/phpstan-bootstrap.php",
               "@php vendor-bin/phpstan/vendor/bin/phpstan analyze custom/static-plugins custom/plugins"
             ],
             "rector-dry": "@php vendor-bin/rector/vendor/bin/rector process --config=rector.php --dry-run",
diff --git a/frosh/code-quality-meta/0.2/root/ecs.php b/frosh/code-quality-meta/0.3/root/ecs.php
index 54debb1..ba940da 100644
--- a/frosh/code-quality-meta/0.2/root/ecs.php
+++ b/frosh/code-quality-meta/0.3/root/ecs.php
@@ -61,7 +61,7 @@ return static function (ECSConfig $ecsConfig): void {
     $ecsConfig->dynamicSets([
         '@Symfony',
         '@Symfony:risky',
-        '@PHP81Migration'
+        '@PHP82Migration'
     ]);
 
     $ecsConfig->sets([
diff --git a/frosh/code-quality-meta/0.2/root/phpstan.neon.dist b/frosh/code-quality-meta/0.3/root/phpstan.neon.dist
index 834e5ab..b9fef38 100644
--- a/frosh/code-quality-meta/0.2/root/phpstan.neon.dist
+++ b/frosh/code-quality-meta/0.3/root/phpstan.neon.dist
@@ -2,14 +2,16 @@ parameters:
     level: 8
     tmpDir: var/cache/phpstan_dev
     inferPrivatePropertyTypeFromConstructor: true
-    checkMissingIterableValueType: false
+    ignoreErrors:
+        -
+            identifier: missingType.iterableValue
 
     symfony:
         constantHassers: false
         containerXmlPath: 'var/cache/phpstan_dev/Shopware_Core_DevOps_StaticAnalyze_StaticAnalyzeKernelPhpstan_devDebugContainer.xml'
 
     bootstrapFiles:
-        - vendor/frosh/code-quality-meta/phpstan-bootstrap.php
+        - vendor/shopware/core/DevOps/StaticAnalyze/phpstan-bootstrap.php
 
     excludePaths:
         - **/vendor/*
diff --git a/frosh/code-quality-meta/0.2/root/rector.php b/frosh/code-quality-meta/0.3/root/rector.php
index 28bd0a0..4212cf4 100644
--- a/frosh/code-quality-meta/0.2/root/rector.php
+++ b/frosh/code-quality-meta/0.3/root/rector.php
@@ -6,29 +6,31 @@ use Frosh\Rector\Set\ShopwareSetList;
 use Rector\CodeQuality\Rector\Class_\InlineConstructorDefaultToPropertyRector;
 use Rector\Config\RectorConfig;
 use Rector\Php74\Rector\LNumber\AddLiteralSeparatorToNumberRector;
-use Rector\PostRector\Rector\NameImportingPostRector;
 use Rector\Set\ValueObject\LevelSetList;
 use Rector\Set\ValueObject\SetList;
-use Rector\Symfony\Twig134\Rector\Return_\SimpleFunctionAndFilterRector;
 use Rector\Symfony\Set\SymfonySetList;
+use Rector\Symfony\Twig134\Rector\Return_\SimpleFunctionAndFilterRector;
 
-return static function (RectorConfig $rectorConfig): void {
-    $rectorConfig->symfonyContainerXml(__DIR__ . '/var/cache/phpstan_dev/Shopware_Core_DevOps_StaticAnalyze_StaticAnalyzeKernelPhpstan_devDebugContainer.xml');
-
-    $rectorConfig->paths([
+return RectorConfig::configure()
+    ->withSymfonyContainerXml(__DIR__ . '/var/cache/phpstan_dev/Shopware_Core_DevOps_StaticAnalyze_StaticAnalyzeKernelPhpstan_devDebugContainer.xml')
+    ->withBootstrapFiles([
+        __DIR__ . '/vendor/autoload.php',
+    ])
+    ->withPaths([
         __DIR__ . '/custom/static-plugins/*/src',
         __DIR__ . '/custom/plugins/*/src',
-    ]);
-
-    $rectorConfig->bootstrapFiles([
-        __DIR__ . '/vendor/autoload.php',
-    ]);
-
-    $rectorConfig->rule(InlineConstructorDefaultToPropertyRector::class);
-    $rectorConfig->rule(NameImportingPostRector::class);
-    $rectorConfig->rule(SimpleFunctionAndFilterRector::class);
-
-    $rectorConfig->sets([
+    ])
+    ->withSkip([
+        AddLiteralSeparatorToNumberRector::class => [
+            __DIR__ . '/custom/plugins/*/src/Migration',
+            __DIR__ . '/custom/static-plugins/*/src/Migration'
+        ]
+    ])
+    ->withRules([
+        InlineConstructorDefaultToPropertyRector::class,
+        SimpleFunctionAndFilterRector::class,
+    ])
+    ->withSets([
         SetList::CODE_QUALITY,
         SetList::DEAD_CODE,
         SymfonySetList::SYMFONY_54,
@@ -36,18 +38,12 @@ return static function (RectorConfig $rectorConfig): void {
         SymfonySetList::SYMFONY_61,
         SymfonySetList::SYMFONY_62,
         SymfonySetList::SYMFONY_63,
+        SymfonySetList::SYMFONY_64,
         SymfonySetList::SYMFONY_CODE_QUALITY,
         SymfonySetList::ANNOTATIONS_TO_ATTRIBUTES,
         LevelSetList::UP_TO_PHP_81,
         LevelSetList::UP_TO_PHP_82,
+        LevelSetList::UP_TO_PHP_83,
         ShopwareSetList::SHOPWARE_6_5_0,
         ShopwareSetList::SHOPWARE_6_6_0,
     ]);
-
-    $rectorConfig->skip([
-        AddLiteralSeparatorToNumberRector::class => [
-            __DIR__ . '/custom/plugins/*/src/Migration',
-            __DIR__ . '/custom/static-plugins/*/src/Migration'
-        ]
-    ]);
-};
diff --git a/frosh/code-quality-meta/0.2/vendor-bin/cs-fixer/composer.json b/frosh/code-quality-meta/0.3/vendor-bin/cs-fixer/composer.json
index 40ba47f..05adf36 100644
--- a/frosh/code-quality-meta/0.2/vendor-bin/cs-fixer/composer.json
+++ b/frosh/code-quality-meta/0.3/vendor-bin/cs-fixer/composer.json
@@ -1,6 +1,6 @@
 {
     "require-dev": {
-        "symplify/easy-coding-standard": "^11.3",
-        "kubawerlos/php-cs-fixer-custom-fixers": "^3.14"
+        "symplify/easy-coding-standard": "^12.0",
+        "kubawerlos/php-cs-fixer-custom-fixers": "^3.16"
     }
 }
diff --git a/frosh/code-quality-meta/0.2/vendor-bin/rector/composer.json b/frosh/code-quality-meta/0.3/vendor-bin/rector/composer.json
index 7f86567..9b51615 100644
--- a/frosh/code-quality-meta/0.2/vendor-bin/rector/composer.json
+++ b/frosh/code-quality-meta/0.3/vendor-bin/rector/composer.json
@@ -1,6 +1,6 @@
 {
     "require-dev": {
-        "rector/rector": "^0.17.3",
-        "frosh/shopware-rector": "^0.2.2"
+        "rector/rector": "^1.0",
+        "frosh/shopware-rector": "^0.4.0"
     }
 }
0.3 vs 0.4
diff --git a/frosh/code-quality-meta/0.3/post-install.txt b/frosh/code-quality-meta/0.4/post-install.txt
index 1eb5b98..c8a5f83 100644
--- a/frosh/code-quality-meta/0.3/post-install.txt
+++ b/frosh/code-quality-meta/0.4/post-install.txt
@@ -6,8 +6,8 @@
     You can customize the plugin paths based on your project's needs.
     {
         "scripts": {
-            "ecs": "@php vendor-bin/cs-fixer/vendor/bin/ecs check custom/static-plugins custom/plugins",
-            "ecs-fix": "@php vendor-bin/cs-fixer/vendor/bin/ecs check --fix custom/static-plugins custom/plugins",
+            "csfixer": "@php vendor-bin/cs-fixer/vendor/bin/php-cs-fixer --allow-risky=yes fix --dry-run --diff",
+            "csfixer-fix": "@php vendor-bin/cs-fixer/vendor/bin/php-cs-fixer --allow-risky=yes fix --diff",
             "phpstan": [
               "@php vendor/shopware/core/DevOps/StaticAnalyze/phpstan-bootstrap.php",
               "@php vendor-bin/phpstan/vendor/bin/phpstan analyze custom/static-plugins custom/plugins"
@@ -15,9 +15,9 @@
             "rector-dry": "@php vendor-bin/rector/vendor/bin/rector process --config=rector.php --dry-run",
             "rector": "@php vendor-bin/rector/vendor/bin/rector process --config=rector.php",
             "commit": [
+                "@csfixer-fix",
                 "@phpstan",
                 "@rector",
-                "@ecs-fix",
                 "@php bin/console dal:validate"
             ]
         }
diff --git a/frosh/code-quality-meta/0.4/root/.php-cs-fixer.dist.php b/frosh/code-quality-meta/0.4/root/.php-cs-fixer.dist.php
new file mode 100644
index 0000000..1c8a79a
--- /dev/null
+++ b/frosh/code-quality-meta/0.4/root/.php-cs-fixer.dist.php
@@ -0,0 +1,61 @@
+<?php
+
+declare(strict_types=1);
+
+use PhpCsFixer\Runner\Parallel\ParallelConfigFactory;
+
+return (new Config())
+    ->setParallelConfig(ParallelConfigFactory::detect())
+    ->setRiskyAllowed(true)
+    ->setRules([
+        '@Symfony' => true,
+        '@Symfony:risky' => true,
+
+        'blank_line_after_opening_tag' => false,
+        'class_attributes_separation' => ['elements' => ['property' => 'one', 'method' => 'one']],
+        'concat_space' => ['spacing' => 'one'],
+        'declare_strict_types' => true,
+        'fopen_flags' => false,
+        'general_phpdoc_annotation_remove' => ['annotations' => ['copyright', 'category']],
+        'linebreak_after_opening_tag' => false,
+        'method_argument_space' => ['on_multiline' => 'ensure_fully_multiline'],
+        'native_function_invocation' => [
+            'scope' => 'namespaced',
+            'strict' => false,
+            'exclude' => ['ini_get'],
+        ],
+        'no_superfluous_phpdoc_tags' => ['allow_unused_params' => true, 'allow_mixed' => true],
+        'no_useless_else' => true,
+        'no_useless_return' => true,
+        'ordered_class_elements' => true,
+        'phpdoc_align' => ['align' => 'left'],
+        'phpdoc_annotation_without_dot' => false,
+        'phpdoc_line_span' => true,
+        'phpdoc_order' => ['order' => ['param', 'throws', 'return']],
+        'phpdoc_summary' => false,
+        'phpdoc_to_comment' => false,
+        'php_unit_dedicate_assert' => ['target' => 'newest'],
+        'php_unit_dedicate_assert_internal_type' => true,
+        'php_unit_mock' => true,
+        'php_unit_test_case_static_method_calls' => ['call_type' => 'static'],
+        'self_accessor' => false,
+        'single_line_throw' => false,
+        'single_quote' => ['strings_containing_single_quote_chars' => true],
+        'strict_comparison' => true,
+        'strict_param' => true,
+        'trailing_comma_in_multiline' => ['after_heredoc' => true, 'elements' => ['array_destructuring', 'arrays', 'match']],
+        'void_return' => true,
+        'yoda_style' => [
+            'equal' => false,
+            'identical' => false,
+            'less_and_greater' => false,
+        ],
+    ])
+    ->setUsingCache(true)
+    ->setCacheFile('var/cache/cs_fixer')
+    ->setFinder(
+        (new Finder())
+            ->in([__DIR__.'/custom/static-plugins/*/src',])
+            ->in([__DIR__.'/custom/plugins/*/src',])
+            ->exclude(['node_modules', '*/vendor/*'])
+    );
diff --git a/frosh/code-quality-meta/0.3/root/ecs.php b/frosh/code-quality-meta/0.3/root/ecs.php
deleted file mode 100644
index ba940da..0000000
--- a/frosh/code-quality-meta/0.3/root/ecs.php
+++ /dev/null
@@ -1,154 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-use PhpCsFixer\Fixer\CastNotation\ModernizeTypesCastingFixer;
-use PhpCsFixer\Fixer\ClassNotation\ClassAttributesSeparationFixer;
-use PhpCsFixer\Fixer\ClassNotation\SelfAccessorFixer;
-use PhpCsFixer\Fixer\ConstantNotation\NativeConstantInvocationFixer;
-use PhpCsFixer\Fixer\FunctionNotation\FopenFlagsFixer;
-use PhpCsFixer\Fixer\FunctionNotation\MethodArgumentSpaceFixer;
-use PhpCsFixer\Fixer\FunctionNotation\NativeFunctionInvocationFixer;
-use PhpCsFixer\Fixer\FunctionNotation\NullableTypeDeclarationForDefaultNullValueFixer;
-use PhpCsFixer\Fixer\FunctionNotation\SingleLineThrowFixer;
-use PhpCsFixer\Fixer\FunctionNotation\VoidReturnFixer;
-use PhpCsFixer\Fixer\LanguageConstruct\ExplicitIndirectVariableFixer;
-use PhpCsFixer\Fixer\Operator\BinaryOperatorSpacesFixer;
-use PhpCsFixer\Fixer\Operator\ConcatSpaceFixer;
-use PhpCsFixer\Fixer\Operator\OperatorLinebreakFixer;
-use PhpCsFixer\Fixer\Phpdoc\GeneralPhpdocAnnotationRemoveFixer;
-use PhpCsFixer\Fixer\Phpdoc\NoSuperfluousPhpdocTagsFixer;
-use PhpCsFixer\Fixer\Phpdoc\PhpdocAlignFixer;
-use PhpCsFixer\Fixer\Phpdoc\PhpdocAnnotationWithoutDotFixer;
-use PhpCsFixer\Fixer\Phpdoc\PhpdocIndentFixer;
-use PhpCsFixer\Fixer\Phpdoc\PhpdocLineSpanFixer;
-use PhpCsFixer\Fixer\Phpdoc\PhpdocNoPackageFixer;
-use PhpCsFixer\Fixer\Phpdoc\PhpdocOrderFixer;
-use PhpCsFixer\Fixer\Phpdoc\PhpdocSummaryFixer;
-use PhpCsFixer\Fixer\Phpdoc\PhpdocTrimConsecutiveBlankLineSeparationFixer;
-use PhpCsFixer\Fixer\PhpTag\BlankLineAfterOpeningTagFixer;
-use PhpCsFixer\Fixer\PhpUnit\PhpUnitConstructFixer;
-use PhpCsFixer\Fixer\PhpUnit\PhpUnitDedicateAssertFixer;
-use PhpCsFixer\Fixer\PhpUnit\PhpUnitDedicateAssertInternalTypeFixer;
-use PhpCsFixer\Fixer\PhpUnit\PhpUnitMockFixer;
-use PhpCsFixer\Fixer\PhpUnit\PhpUnitMockShortWillReturnFixer;
-use PhpCsFixer\Fixer\PhpUnit\PhpUnitTestCaseStaticMethodCallsFixer;
-use PhpCsFixer\Fixer\ReturnNotation\NoUselessReturnFixer;
-use PhpCsFixer\Fixer\Strict\DeclareStrictTypesFixer;
-use PhpCsFixer\Fixer\StringNotation\ExplicitStringVariableFixer;
-use PhpCsFixer\Fixer\StringNotation\SingleQuoteFixer;
-use PhpCsFixer\Fixer\Whitespace\BlankLineBeforeStatementFixer;
-use PhpCsFixer\Fixer\Whitespace\CompactNullableTypehintFixer;
-use PhpCsFixer\Fixer\Phpdoc\PhpdocToCommentFixer;
-use PhpCsFixerCustomFixers\Fixer\MultilinePromotedPropertiesFixer;
-use PhpCsFixerCustomFixers\Fixer\NoImportFromGlobalNamespaceFixer;
-use PhpCsFixerCustomFixers\Fixer\NoSuperfluousConcatenationFixer;
-use PhpCsFixerCustomFixers\Fixer\NoUselessCommentFixer;
-use PhpCsFixerCustomFixers\Fixer\NoUselessParenthesisFixer;
-use PhpCsFixerCustomFixers\Fixer\NoUselessStrlenFixer;
-use PhpCsFixerCustomFixers\Fixer\PhpdocTypesCommaSpacesFixer;
-use PhpCsFixerCustomFixers\Fixer\SingleSpaceAfterStatementFixer;
-use Symplify\CodingStandard\Fixer\ArrayNotation\ArrayListItemNewlineFixer;
-use Symplify\CodingStandard\Fixer\ArrayNotation\ArrayOpenerAndCloserNewlineFixer;
-use Symplify\CodingStandard\Fixer\ArrayNotation\StandaloneLineInMultilineArrayFixer;
-use Symplify\CodingStandard\Fixer\Spacing\StandaloneLineConstructorParamFixer;
-use Symplify\EasyCodingStandard\Config\ECSConfig;
-use Symplify\EasyCodingStandard\ValueObject\Option;
-use Symplify\EasyCodingStandard\ValueObject\Set\SetList;
-use PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis\AssignmentInConditionSniff;
-
-return static function (ECSConfig $ecsConfig): void {
-    $ecsConfig->dynamicSets([
-        '@Symfony',
-        '@Symfony:risky',
-        '@PHP82Migration'
-    ]);
-
-    $ecsConfig->sets([
-        SetList::ARRAY,
-        SetList::CONTROL_STRUCTURES,
-        SetList::STRICT,
-        SetList::PSR_12,
-    ]);
-
-    $ecsConfig->rules([
-        ModernizeTypesCastingFixer::class,
-        FopenFlagsFixer::class,
-        NativeConstantInvocationFixer::class,
-        NullableTypeDeclarationForDefaultNullValueFixer::class,
-        VoidReturnFixer::class,
-        OperatorLinebreakFixer::class,
-        PhpdocLineSpanFixer::class,
-        PhpdocOrderFixer::class,
-        PhpUnitConstructFixer::class,
-        PhpUnitDedicateAssertInternalTypeFixer::class,
-        PhpUnitMockFixer::class,
-        PhpUnitMockShortWillReturnFixer::class,
-        PhpUnitTestCaseStaticMethodCallsFixer::class,
-        NoUselessReturnFixer::class,
-        DeclareStrictTypesFixer::class,
-        BlankLineBeforeStatementFixer::class,
-        CompactNullableTypehintFixer::class,
-        NoImportFromGlobalNamespaceFixer::class,
-        NoSuperfluousConcatenationFixer::class,
-        NoUselessCommentFixer::class,
-        SingleSpaceAfterStatementFixer::class,
-        NoUselessParenthesisFixer::class,
-        NoUselessStrlenFixer::class,
-        PhpdocTypesCommaSpacesFixer::class,
-    ]);
-
-    $ecsConfig->ruleWithConfiguration(ClassAttributesSeparationFixer::class, ['elements' => ['property' => 'one', 'method' => 'one']]);
-    $ecsConfig->ruleWithConfiguration(MethodArgumentSpaceFixer::class, ['on_multiline' => 'ensure_fully_multiline']);
-    $ecsConfig->ruleWithConfiguration(NativeFunctionInvocationFixer::class, [
-        'include' => [NativeFunctionInvocationFixer::SET_COMPILER_OPTIMIZED],
-        'scope' => 'namespaced',
-        'strict' => false,
-    ]);
-    $ecsConfig->ruleWithConfiguration(ConcatSpaceFixer::class, ['spacing' => 'one']);
-    $ecsConfig->ruleWithConfiguration(GeneralPhpdocAnnotationRemoveFixer::class, ['annotations' => ['copyright', 'category']]);
-    $ecsConfig->ruleWithConfiguration(NoSuperfluousPhpdocTagsFixer::class, ['allow_unused_params' => true, 'allow_mixed' => true]);
-    $ecsConfig->ruleWithConfiguration(PhpUnitDedicateAssertFixer::class, ['target' => 'newest']);
-    $ecsConfig->ruleWithConfiguration(SingleQuoteFixer::class, ['strings_containing_single_quote_chars' => true]);
-    $ecsConfig->ruleWithConfiguration(MultilinePromotedPropertiesFixer::class, ['minimum_number_of_parameters' => 2]);
-    // workaround for https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/5495
-    $ecsConfig->ruleWithConfiguration(BinaryOperatorSpacesFixer::class, [
-        'operators' => [
-            '|' => null,
-            '&' => null,
-        ],
-    ]);
-
-    $ecsConfig->cacheDirectory($_SERVER['SHOPWARE_TOOL_CACHE_ECS'] ?? 'var/cache/cs_fixer');
-    $ecsConfig->cacheNamespace('platform');
-
-    $ecsConfig->parallel();
-
-    $ecsConfig->skip([
-        ArrayOpenerAndCloserNewlineFixer::class => null,
-        ArrayListItemNewlineFixer::class => null,
-        SingleLineThrowFixer::class => null,
-        SelfAccessorFixer::class => null,
-        ExplicitIndirectVariableFixer::class => null,
-        BlankLineAfterOpeningTagFixer::class => null,
-        PhpdocSummaryFixer::class => null,
-        ExplicitStringVariableFixer::class => null,
-        StandaloneLineInMultilineArrayFixer::class => null,
-        AssignmentInConditionSniff::class => null,
-        PhpdocToCommentFixer::class => null,
-        PhpdocAlignFixer::class => null,
-        PhpdocAnnotationWithoutDotFixer::class => null,
-        '**/node_modules',
-        // would otherwise destroy markdown in the description of a route annotation, since markdown interpreted spaces/indents
-        PhpdocIndentFixer::class => [
-            'src/**/*Controller.php',
-            'src/**/*Route.php',
-        ],
-        // would otherwise remove lines in the description of route annotations
-        PhpdocTrimConsecutiveBlankLineSeparationFixer::class => [
-            'src/**/*Controller.php',
-            'src/**/*Route.php',
-        ],
-        PhpdocNoPackageFixer::class => null,
-    ]);
-};
diff --git a/frosh/code-quality-meta/0.3/root/rector.php b/frosh/code-quality-meta/0.4/root/rector.php
index 4212cf4..3c20c78 100644
--- a/frosh/code-quality-meta/0.3/root/rector.php
+++ b/frosh/code-quality-meta/0.4/root/rector.php
@@ -39,11 +39,11 @@ return RectorConfig::configure()
         SymfonySetList::SYMFONY_62,
         SymfonySetList::SYMFONY_63,
         SymfonySetList::SYMFONY_64,
+        SymfonySetList::SYMFONY_71,
         SymfonySetList::SYMFONY_CODE_QUALITY,
         SymfonySetList::ANNOTATIONS_TO_ATTRIBUTES,
         LevelSetList::UP_TO_PHP_81,
         LevelSetList::UP_TO_PHP_82,
-        LevelSetList::UP_TO_PHP_83,
         ShopwareSetList::SHOPWARE_6_5_0,
         ShopwareSetList::SHOPWARE_6_6_0,
     ]);
diff --git a/frosh/code-quality-meta/0.3/vendor-bin/cs-fixer/composer.json b/frosh/code-quality-meta/0.4/vendor-bin/cs-fixer/composer.json
index 05adf36..79e902d 100644
--- a/frosh/code-quality-meta/0.3/vendor-bin/cs-fixer/composer.json
+++ b/frosh/code-quality-meta/0.4/vendor-bin/cs-fixer/composer.json
@@ -1,6 +1,5 @@
 {
     "require-dev": {
-        "symplify/easy-coding-standard": "^12.0",
-        "kubawerlos/php-cs-fixer-custom-fixers": "^3.16"
+        "friendsofphp/php-cs-fixer": "3.64.0"
     }
 }
diff --git a/frosh/code-quality-meta/0.3/vendor-bin/phpstan/composer.json b/frosh/code-quality-meta/0.4/vendor-bin/phpstan/composer.json
index d604d67..1a84f9d 100644
--- a/frosh/code-quality-meta/0.3/vendor-bin/phpstan/composer.json
+++ b/frosh/code-quality-meta/0.4/vendor-bin/phpstan/composer.json
@@ -1,10 +1,10 @@
 {
     "require-dev": {
-        "phpstan/phpstan": "^1.10",
-        "phpstan/extension-installer": "^1.3",
-        "phpstan/phpstan-phpunit": "^1.3",
-        "phpstan/phpstan-symfony": "^1.3",
-        "symplify/phpstan-rules": "11.2.5.72"
+        "phpstan/phpstan": "^1.12",
+        "phpstan/extension-installer": "^1.4",
+        "phpstan/phpstan-phpunit": "^1.4",
+        "phpstan/phpstan-symfony": "^1.4",
+        "symplify/phpstan-rules": "^13.0"
     },
     "config": {
         "allow-plugins": {
diff --git a/frosh/code-quality-meta/0.3/vendor-bin/rector/composer.json b/frosh/code-quality-meta/0.4/vendor-bin/rector/composer.json
index 9b51615..1605b62 100644
--- a/frosh/code-quality-meta/0.3/vendor-bin/rector/composer.json
+++ b/frosh/code-quality-meta/0.4/vendor-bin/rector/composer.json
@@ -1,6 +1,6 @@
 {
     "require-dev": {
-        "rector/rector": "^1.0",
-        "frosh/shopware-rector": "^0.4.0"
+        "rector/rector": "^1.2",
+        "frosh/shopware-rector": "^0.4."
     }
 }

@shyim shyim merged commit c5fcc27 into shopware:main Oct 4, 2024
2 checks passed
@ioanok
Copy link
Contributor

ioanok commented Oct 18, 2024

@stefanpoensgen what were the reasons for the replacement?

@stefanpoensgen
Copy link
Contributor Author

@ioanok The only reason ECS was used was for performance. However, since PHP-CS-Fixer supports parallelization and can run on multiple CPUs, we can eliminate the additional dependency.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants