From f30fbd3758d8b142314922c14ce80e7913865989 Mon Sep 17 00:00:00 2001 From: lubiana Date: Thu, 25 Jan 2024 18:31:04 +0100 Subject: [PATCH] bump dependencies and update config --- composer.json | 4 +- composer.lock | 107 ++++++++++++++++++++++--------------- config/ecs.php | 133 ++++++++++++++++++++-------------------------- config/rector.php | 2 - ecs.php | 18 +++---- src/SetList.php | 17 ------ 6 files changed, 134 insertions(+), 147 deletions(-) delete mode 100644 src/SetList.php diff --git a/composer.json b/composer.json index 4be773a..a2399fd 100644 --- a/composer.json +++ b/composer.json @@ -9,8 +9,8 @@ }, "require": { "slevomat/coding-standard": "^8.14.1", - "symplify/easy-coding-standard": "^12.0.9", - "rector/rector": "^0.18.11" + "symplify/easy-coding-standard": "^12.1.8", + "rector/rector": "^0.19.2" }, "config": { "allow-plugins": { diff --git a/composer.lock b/composer.lock index f5b66ef..03cb2b0 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "caab951f25d21bb036acd27159bfa81b", + "content-hash": "a2ee536230b7262151afd736f0600119", "packages": [ { "name": "dealerdirect/phpcodesniffer-composer-installer", @@ -86,16 +86,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.24.4", + "version": "1.25.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "6bd0c26f3786cd9b7c359675cb789e35a8e07496" + "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/6bd0c26f3786cd9b7c359675cb789e35a8e07496", - "reference": "6bd0c26f3786cd9b7c359675cb789e35a8e07496", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bd84b629c8de41aa2ae82c067c955e06f1b00240", + "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240", "shasum": "" }, "require": { @@ -127,22 +127,22 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.4" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.25.0" }, - "time": "2023-11-26T18:29:22+00:00" + "time": "2024-01-04T17:06:16+00:00" }, { "name": "phpstan/phpstan", - "version": "1.10.46", + "version": "1.10.57", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "90d3d25c5b98b8068916bbf08ce42d5cb6c54e70" + "reference": "1627b1d03446904aaa77593f370c5201d2ecc34e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/90d3d25c5b98b8068916bbf08ce42d5cb6c54e70", - "reference": "90d3d25c5b98b8068916bbf08ce42d5cb6c54e70", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/1627b1d03446904aaa77593f370c5201d2ecc34e", + "reference": "1627b1d03446904aaa77593f370c5201d2ecc34e", "shasum": "" }, "require": { @@ -191,25 +191,25 @@ "type": "tidelift" } ], - "time": "2023-11-28T14:57:26+00:00" + "time": "2024-01-24T11:51:34+00:00" }, { "name": "rector/rector", - "version": "0.18.11", + "version": "0.19.2", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "9621124c860066f56a4ab841349cb7c284edfaee" + "reference": "bc96a99895bf47c6bfe70ea1b799f0081ed5a903" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/9621124c860066f56a4ab841349cb7c284edfaee", - "reference": "9621124c860066f56a4ab841349cb7c284edfaee", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/bc96a99895bf47c6bfe70ea1b799f0081ed5a903", + "reference": "bc96a99895bf47c6bfe70ea1b799f0081ed5a903", "shasum": "" }, "require": { "php": "^7.2|^8.0", - "phpstan/phpstan": "^1.10.35" + "phpstan/phpstan": "^1.10.56" }, "conflict": { "rector/rector-doctrine": "*", @@ -239,7 +239,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/0.18.11" + "source": "https://github.com/rectorphp/rector/tree/0.19.2" }, "funding": [ { @@ -247,7 +247,7 @@ "type": "github" } ], - "time": "2023-11-27T13:27:43+00:00" + "time": "2024-01-19T10:58:30+00:00" }, { "name": "slevomat/coding-standard", @@ -316,16 +316,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.7.2", + "version": "3.8.1", "source": { "type": "git", - "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879" + "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", + "reference": "14f5fff1e64118595db5408e946f3a22c75807f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ed8e00df0a83aa96acf703f8c2979ff33341f879", - "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/14f5fff1e64118595db5408e946f3a22c75807f7", + "reference": "14f5fff1e64118595db5408e946f3a22c75807f7", "shasum": "" }, "require": { @@ -335,11 +335,11 @@ "php": ">=5.4.0" }, "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" }, "bin": [ - "bin/phpcs", - "bin/phpcbf" + "bin/phpcbf", + "bin/phpcs" ], "type": "library", "extra": { @@ -354,44 +354,67 @@ "authors": [ { "name": "Greg Sherwood", - "role": "lead" + "role": "Former lead" + }, + { + "name": "Juliette Reinders Folmer", + "role": "Current lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" } ], "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", "keywords": [ "phpcs", "standards", "static analysis" ], "support": { - "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", - "source": "https://github.com/squizlabs/PHP_CodeSniffer", - "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues", + "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy", + "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki" }, - "time": "2023-02-22T23:07:41+00:00" + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + } + ], + "time": "2024-01-11T20:47:48+00:00" }, { "name": "symplify/easy-coding-standard", - "version": "12.0.9", + "version": "12.1.8", "source": { "type": "git", "url": "https://github.com/easy-coding-standard/easy-coding-standard.git", - "reference": "24b7b28c25d698e64496c4d19c798ccd01617c7d" + "reference": "7962c810a8eebc4174a38d7dff673f1999e61595" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/easy-coding-standard/easy-coding-standard/zipball/24b7b28c25d698e64496c4d19c798ccd01617c7d", - "reference": "24b7b28c25d698e64496c4d19c798ccd01617c7d", + "url": "https://api.github.com/repos/easy-coding-standard/easy-coding-standard/zipball/7962c810a8eebc4174a38d7dff673f1999e61595", + "reference": "7962c810a8eebc4174a38d7dff673f1999e61595", "shasum": "" }, "require": { "php": ">=7.2" }, "conflict": { - "friendsofphp/php-cs-fixer": "<3.0", - "squizlabs/php_codesniffer": "<3.6", - "symplify/coding-standard": "<11.3" + "friendsofphp/php-cs-fixer": "<3.46", + "phpcsstandards/php_codesniffer": "<3.8", + "symplify/coding-standard": "<12.1" }, "bin": [ "bin/ecs" @@ -415,7 +438,7 @@ ], "support": { "issues": "https://github.com/easy-coding-standard/easy-coding-standard/issues", - "source": "https://github.com/easy-coding-standard/easy-coding-standard/tree/12.0.9" + "source": "https://github.com/easy-coding-standard/easy-coding-standard/tree/12.1.8" }, "funding": [ { @@ -427,7 +450,7 @@ "type": "github" } ], - "time": "2023-11-29T09:35:09+00:00" + "time": "2024-01-16T22:56:06+00:00" } ], "packages-dev": [], diff --git a/config/ecs.php b/config/ecs.php index 32cbde9..f05925b 100644 --- a/config/ecs.php +++ b/config/ecs.php @@ -19,52 +19,38 @@ use SlevomatCodingStandard\Sniffs\TypeHints\DeclareStrictTypesSniff; use SlevomatCodingStandard\Sniffs\TypeHints\UnionTypeHintFormatSniff; use Symplify\CodingStandard\Fixer\LineLength\LineLengthFixer; use Symplify\EasyCodingStandard\Config\ECSConfig; -use Symplify\EasyCodingStandard\ValueObject\Set\SetList; -return static function (ECSConfig $c): void { - $c->skip([ - BlankLineAfterOpeningTagFixer::class, - OrderedImportsFixer::class, - FunctionToConstantFixer::class, - ]); - - $c->sets([ - SetList::ARRAY, - SetList::CLEAN_CODE, - SetList::COMMENTS, - SetList::COMMON, - SetList::CONTROL_STRUCTURES, - SetList::DOCBLOCK, - SetList::NAMESPACES, - SetList::PSR_12, - SetList::SPACES, - SetList::STRICT, - SetList::SYMPLIFY, - ]); - - $c->dynamicSets([ - '@PER-CS', - '@PER-CS:risky', - '@PHP83Migration', - '@PHP80Migration:risky', - ]); - - // force visibility declaration on class constants - $c->ruleWithConfiguration(ClassConstantVisibilitySniff::class, [ - 'fixable' => true, - ]); - - // sort all use statements - $c->rules([ +return ECSConfig::configure() + ->withPreparedSets( + arrays: true, + cleanCode: true, + comments: true, + controlStructures: true, + docblocks: true, + namespaces: true, + spaces: true, + strict: true, + symplify: true + ) + ->withPhpCsFixerSets( + perCS: true, + perCSRisky: true, + php83Migration: true, + php80MigrationRisky: true, + ) + ->withRules([ AlphabeticallySortedUsesSniff::class, DisallowGroupUseSniff::class, MultipleUsesPerLineSniff::class, NamespaceSpacingSniff::class, OperatorLinebreakFixer::class, - ]); - - // import all namespaces, and even php core functions and classes - $c->ruleWithConfiguration( + NoWhitespaceInBlankLineFixer::class, + NewWithoutParenthesesSniff::class, + ]) + ->withConfiguredRule(ClassConstantVisibilitySniff::class, [ + 'fixable' => true, + ]) + ->withConfiguredRule( ReferenceUsedNamesOnlySniff::class, [ 'allowFallbackGlobalConstants' => false, @@ -77,50 +63,49 @@ return static function (ECSConfig $c): void { 'allowFullyQualifiedNameForCollidingFunctions' => true, 'searchAnnotations' => true, ] - ); + ) // define newlines between use statements - $c->ruleWithConfiguration(UseSpacingSniff::class, [ - 'linesCountAfterLastUse' => 1, - 'linesCountBeforeFirstUse' => 1, - 'linesCountBetweenUseTypes' => 1, - ]); - - // strict types declaration should be on same line as opening tag - $c->ruleWithConfiguration( + ->withConfiguredRule( + UseSpacingSniff::class, + [ + 'linesCountAfterLastUse' => 1, + 'linesCountBeforeFirstUse' => 1, + 'linesCountBetweenUseTypes' => 1, + ] + ) + ->withConfiguredRule( DeclareStrictTypesSniff::class, [ 'declareOnFirstLine' => true, 'spacesCountAroundEqualsSign' => 0, ] - ); - - // disallow ?Foo typehint in favor of Foo|null - $c->ruleWithConfiguration(UnionTypeHintFormatSniff::class, [ - 'nullPosition' => 'last', - 'shortNullable' => 'no', - 'withSpaces' => 'no', - ]); - - // Remove useless parentheses in new statements - $c->rule(NewWithoutParenthesesSniff::class); - - // do not inline short multilinestatements - $c->ruleWithConfiguration(LineLengthFixer::class, [ - LineLengthFixer::INLINE_SHORT_LINES => false, - ]); - - $c->ruleWithConfiguration( + ) + ->withConfiguredRule( + UnionTypeHintFormatSniff::class, + [ + 'nullPosition' => 'last', + 'shortNullable' => 'no', + 'withSpaces' => 'no', + ] + ) + ->withConfiguredRule( + LineLengthFixer::class, + [ + LineLengthFixer::INLINE_SHORT_LINES => false, + ] + ) + ->withConfiguredRule( NoExtraBlankLinesFixer::class, [ 'tokens' => ['square_brace_block', 'return', 'extra'], ] - ); - - $c->rule(NoWhitespaceInBlankLineFixer::class); - - // make sure that the attribute target is on the line after the attribute - $c->ruleWithConfiguration(AttributeAndTargetSpacingSniff::class, [ + ) + ->withConfiguredRule(AttributeAndTargetSpacingSniff::class, [ 'linesCount' => 0, + ]) + ->withSkip([ + BlankLineAfterOpeningTagFixer::class, + OrderedImportsFixer::class, + FunctionToConstantFixer::class, ]); -}; diff --git a/config/rector.php b/config/rector.php index ba9c214..4687fc7 100644 --- a/config/rector.php +++ b/config/rector.php @@ -41,7 +41,6 @@ use Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictTypedCallRecto use Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictTypedPropertyRector; use Rector\TypeDeclaration\Rector\FunctionLike\AddParamTypeSplFixedArrayRector; use Rector\TypeDeclaration\Rector\FunctionLike\AddReturnTypeDeclarationFromYieldsRector; -use Rector\TypeDeclaration\Rector\Param\ParamTypeFromStrictTypedPropertyRector; use Rector\TypeDeclaration\Rector\Property\TypedPropertyFromStrictConstructorRector; return static function (RectorConfig $c): void { @@ -67,7 +66,6 @@ return static function (RectorConfig $c): void { NullableCompareToNullRector::class, ParamTypeByMethodCallTypeRector::class, ParamTypeByParentCallTypeRector::class, - ParamTypeFromStrictTypedPropertyRector::class, PreparedValueToEarlyReturnRector::class, ReplaceMultipleBooleanNotRector::class, ReturnBinaryOrToEarlyReturnRector::class, diff --git a/ecs.php b/ecs.php index 7a1aa39..5ee3c42 100644 --- a/ecs.php +++ b/ecs.php @@ -3,13 +3,11 @@ use Lubiana\CodeQuality\LubiSetList; use Symplify\EasyCodingStandard\Config\ECSConfig; -return static function (ECSConfig $c): void { - $c->paths([ - __DIR__ . '/src', - __DIR__ . '/config', - __DIR__ . '/rector.php', - __DIR__ . '/ecs.php', - ]); - - $c->sets([LubiSetList::ECS]); -}; +return ECSConfig::configure() + ->withSets([LubiSetList::ECS]) + ->withPaths( + [ + __DIR__ . '/src', + __DIR__ . '/config', + ] + )->withRootFiles(); diff --git a/src/SetList.php b/src/SetList.php deleted file mode 100644 index 00fe282..0000000 --- a/src/SetList.php +++ /dev/null @@ -1,17 +0,0 @@ -