From 157a90fe9e57b31019128896e3473a48390c37fa Mon Sep 17 00:00:00 2001 From: MGatner Date: Fri, 29 Apr 2022 18:52:44 +0000 Subject: [PATCH] Update DevKit --- .github/workflows/deptrac.yml | 11 ++-- .github/workflows/infection.yml | 9 ++-- .github/workflows/phpcpd.yml | 2 +- .github/workflows/phpcsfixer.yml | 5 +- .github/workflows/phpstan.yml | 11 ++-- .github/workflows/phpunit.yml | 9 ++-- .github/workflows/rector.yml | 11 ++-- .github/workflows/unused.yml | 21 ++------ composer-unused.php | 16 ++++++ composer.json | 4 +- depfile.yaml | 2 +- rector.php | 89 +++++++++++++++++--------------- 12 files changed, 96 insertions(+), 94 deletions(-) create mode 100644 composer-unused.php diff --git a/.github/workflows/deptrac.yml b/.github/workflows/deptrac.yml index 528cdc4..441c74d 100644 --- a/.github/workflows/deptrac.yml +++ b/.github/workflows/deptrac.yml @@ -6,7 +6,7 @@ on: - develop paths: - '**.php' - - 'composer.**' + - 'composer.*' - 'depfile.yaml' - '.github/workflows/deptrac.yml' push: @@ -14,7 +14,7 @@ on: - develop paths: - '**.php' - - 'composer.**' + - 'composer.*' - 'depfile.yaml' - '.github/workflows/deptrac.yml' @@ -26,7 +26,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up PHP uses: shivammathur/setup-php@v2 @@ -43,7 +43,7 @@ jobs: run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}-${{ hashFiles('**/composer.lock') }} @@ -53,7 +53,7 @@ jobs: run: mkdir -p build/ - name: Cache Deptrac results - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: build key: ${{ runner.os }}-deptrac-${{ github.sha }} @@ -61,7 +61,6 @@ jobs: - name: Install dependencies run: | - composer -q config -g github-oauth.github.com "${{ secrets.GITHUB_TOKEN }}" if [ -f composer.lock ]; then composer install --no-progress --no-interaction --prefer-dist --optimize-autoloader else diff --git a/.github/workflows/infection.yml b/.github/workflows/infection.yml index 2e5d05d..0d39d58 100644 --- a/.github/workflows/infection.yml +++ b/.github/workflows/infection.yml @@ -6,7 +6,7 @@ on: - develop paths: - '**.php' - - 'composer.**' + - 'composer.*' - 'phpunit*' - '.github/workflows/infection.yml' push: @@ -14,7 +14,7 @@ on: - develop paths: - '**.php' - - 'composer.**' + - 'composer.*' - 'phpunit*' - '.github/workflows/infection.yml' @@ -26,7 +26,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up PHP uses: shivammathur/setup-php@v2 @@ -49,7 +49,7 @@ jobs: run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}-${{ hashFiles('**/composer.lock') }} @@ -57,7 +57,6 @@ jobs: - name: Install dependencies run: | - composer -q config -g github-oauth.github.com "${{ secrets.GITHUB_TOKEN }}" if [ -f composer.lock ]; then composer install --no-progress --no-interaction --prefer-dist --optimize-autoloader else diff --git a/.github/workflows/phpcpd.yml b/.github/workflows/phpcpd.yml index 2c9d209..d6a877d 100644 --- a/.github/workflows/phpcpd.yml +++ b/.github/workflows/phpcpd.yml @@ -22,7 +22,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Setup PHP uses: shivammathur/setup-php@v2 diff --git a/.github/workflows/phpcsfixer.yml b/.github/workflows/phpcsfixer.yml index 6dd670f..06d6453 100644 --- a/.github/workflows/phpcsfixer.yml +++ b/.github/workflows/phpcsfixer.yml @@ -26,7 +26,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up PHP uses: shivammathur/setup-php@v2 @@ -42,7 +42,7 @@ jobs: run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}-${{ hashFiles('**/composer.lock') }} @@ -50,7 +50,6 @@ jobs: - name: Install dependencies run: | - composer -q config -g github-oauth.github.com "${{ secrets.GITHUB_TOKEN }}" if [ -f composer.lock ]; then composer install --no-progress --no-interaction --prefer-dist --optimize-autoloader else diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml index 38300b9..6bdd00f 100644 --- a/.github/workflows/phpstan.yml +++ b/.github/workflows/phpstan.yml @@ -6,7 +6,7 @@ on: - develop paths: - '**.php' - - 'composer.**' + - 'composer.*' - 'phpstan*' - '.github/workflows/phpstan.yml' push: @@ -14,7 +14,7 @@ on: - develop paths: - '**.php' - - 'composer.**' + - 'composer.*' - 'phpstan*' - '.github/workflows/phpstan.yml' @@ -30,7 +30,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Setup PHP uses: shivammathur/setup-php@v2 @@ -47,7 +47,7 @@ jobs: run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}-${{ hashFiles('**/composer.lock') }} @@ -57,7 +57,7 @@ jobs: run: mkdir -p build/phpstan - name: Cache PHPStan results - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: build/phpstan key: ${{ runner.os }}-phpstan-${{ github.sha }} @@ -65,7 +65,6 @@ jobs: - name: Install dependencies run: | - composer -q config -g github-oauth.github.com "${{ secrets.GITHUB_TOKEN }}" if [ -f composer.lock ]; then composer install --no-progress --no-interaction --prefer-dist --optimize-autoloader else diff --git a/.github/workflows/phpunit.yml b/.github/workflows/phpunit.yml index e1ba40e..c875e33 100644 --- a/.github/workflows/phpunit.yml +++ b/.github/workflows/phpunit.yml @@ -6,7 +6,7 @@ on: - develop paths: - '**.php' - - 'composer.**' + - 'composer.*' - 'phpunit*' - '.github/workflows/phpunit.yml' push: @@ -14,7 +14,7 @@ on: - develop paths: - '**.php' - - 'composer.**' + - 'composer.*' - 'phpunit*' - '.github/workflows/phpunit.yml' @@ -29,7 +29,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up PHP uses: shivammathur/setup-php@v2 @@ -46,7 +46,7 @@ jobs: run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}-${{ hashFiles('**/composer.lock') }} @@ -54,7 +54,6 @@ jobs: - name: Install dependencies run: | - composer -q config -g github-oauth.github.com "${{ secrets.GITHUB_TOKEN }}" if [ -f composer.lock ]; then composer install --no-progress --no-interaction --prefer-dist --optimize-autoloader else diff --git a/.github/workflows/rector.yml b/.github/workflows/rector.yml index fff0208..a945743 100644 --- a/.github/workflows/rector.yml +++ b/.github/workflows/rector.yml @@ -6,7 +6,7 @@ on: - develop paths: - '**.php' - - 'composer.**' + - 'composer.*' - 'rector.php' - '.github/workflows/rector.yml' push: @@ -14,7 +14,7 @@ on: - develop paths: - '**.php' - - 'composer.**' + - 'composer.*' - 'rector.php' - '.github/workflows/rector.yml' @@ -30,7 +30,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up PHP uses: shivammathur/setup-php@v2 @@ -47,7 +47,7 @@ jobs: run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}-${{ hashFiles('**/composer.lock') }} @@ -55,7 +55,6 @@ jobs: - name: Install dependencies run: | - composer -q config -g github-oauth.github.com "${{ secrets.GITHUB_TOKEN }}" if [ -f composer.lock ]; then composer install --no-progress --no-interaction --prefer-dist --optimize-autoloader else @@ -64,5 +63,5 @@ jobs: - name: Analyze for refactoring run: | - composer global require --dev rector/rector:^0.12.10 + composer global require --dev rector/rector:^0.12.16 rector process --dry-run --no-progress-bar diff --git a/.github/workflows/unused.yml b/.github/workflows/unused.yml index 30976ba..b02fab6 100644 --- a/.github/workflows/unused.yml +++ b/.github/workflows/unused.yml @@ -6,14 +6,14 @@ on: - develop paths: - '**.php' - - 'composer.**' + - 'composer.*' - '.github/workflows/unused.yml' push: branches: - develop paths: - '**.php' - - 'composer.**' + - 'composer.*' - '.github/workflows/unused.yml' jobs: @@ -24,7 +24,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Setup PHP uses: shivammathur/setup-php@v2 @@ -41,25 +41,14 @@ jobs: run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer dependencies - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - - name: Create PHPStan cache directory - run: mkdir -p build/phpstan - - - name: Cache PHPStan results - uses: actions/cache@v2 - with: - path: build/phpstan - key: ${{ runner.os }}-phpstan-${{ github.sha }} - restore-keys: ${{ runner.os }}-phpstan- - - name: Install dependencies run: | - composer -q config -g github-oauth.github.com "${{ secrets.GITHUB_TOKEN }}" if [ -f composer.lock ]; then composer install --no-progress --no-interaction --prefer-dist --optimize-autoloader else @@ -67,4 +56,4 @@ jobs: fi - name: Detect unused packages - run: composer-unused -vvv --profile --ansi --no-interaction --no-progress --excludePackage=php + run: composer-unused -vvv --output-format=github --ansi --no-interaction --no-progress diff --git a/composer-unused.php b/composer-unused.php new file mode 100644 index 0000000..9b44cae --- /dev/null +++ b/composer-unused.php @@ -0,0 +1,16 @@ +addNamedFilter(NamedFilter::fromString('tatter/users')) + ->setAdditionalFilesFor('codeigniter4/framework', [ + ...Glob::glob(__DIR__ . '/vendor/codeigniter4/framework/system/Helpers/*.php'), + ]); +}; diff --git a/composer.json b/composer.json index 8983e81..ba0ac49 100644 --- a/composer.json +++ b/composer.json @@ -26,8 +26,8 @@ "codeigniter4/authentication-implementation": "1.0" }, "require-dev": { - "codeigniter4/devkit": "^1.0", - "codeigniter4/framework": "^4.1" + "codeigniter4/framework": "^4.1", + "tatter/tools": "^2.0" }, "config": { "allow-plugins": { diff --git a/depfile.yaml b/depfile.yaml index 2c4860d..08efb4b 100644 --- a/depfile.yaml +++ b/depfile.yaml @@ -1,6 +1,6 @@ paths: - ./src/ - - ./vendor/codeigniter4/framework/system + - ./vendor/codeigniter4/framework/system/ exclude_files: - '#.*test.*#i' layers: diff --git a/rector.php b/rector.php index 34ad228..44b9e38 100644 --- a/rector.php +++ b/rector.php @@ -1,5 +1,6 @@ import(SetList::DEAD_CODE); - $containerConfigurator->import(LevelSetList::UP_TO_PHP_74); - $containerConfigurator->import(PHPUnitSetList::PHPUNIT_SPECIFIC_METHOD); - $containerConfigurator->import(PHPUnitSetList::PHPUNIT_80); - - $parameters = $containerConfigurator->parameters(); - - $parameters->set(Option::PARALLEL, true); +return static function (RectorConfig $rectorConfig): void { + $rectorConfig->sets([SetList::DEAD_CODE, LevelSetList::UP_TO_PHP_74, PHPUnitSetList::PHPUNIT_SPECIFIC_METHOD, PHPUnitSetList::PHPUNIT_80]); + $rectorConfig->parallel(); // The paths to refactor (can also be supplied with CLI arguments) - $parameters->set(Option::PATHS, [ + $rectorConfig->paths([ __DIR__ . '/src/', __DIR__ . '/tests/', ]); + // Include Composer's autoload - required for global execution, remove if running locally + $rectorConfig->autoloadPaths([ + __DIR__ . '/vendor/autoload.php', + ]); + // Do you need to include constants, class aliases, or a custom autoloader? - $parameters->set(Option::BOOTSTRAP_FILES, [ + $rectorConfig->bootstrapFiles([ realpath(getcwd()) . '/vendor/codeigniter4/framework/system/Test/bootstrap.php', ]); + if (is_file(__DIR__ . '/phpstan.neon.dist')) { + $rectorConfig->phpstanConfig(__DIR__ . '/phpstan.neon.dist'); + } + // Set the target version for refactoring - $parameters->set(Option::PHP_VERSION_FEATURES, PhpVersion::PHP_74); + $rectorConfig->phpVersion(PhpVersion::PHP_74); // Auto-import fully qualified class names - $parameters->set(Option::AUTO_IMPORT_NAMES, true); + $rectorConfig->importNames(); // Are there files or rules you need to skip? - $parameters->set(Option::SKIP, [ + $rectorConfig->skip([ __DIR__ . '/src/Views', JsonThrowOnErrorRector::class, @@ -88,29 +90,30 @@ // May be uninitialized on purpose AddDefaultValueForUndefinedVariableRector::class, ]); - - // Additional rules to apply - $services = $containerConfigurator->services(); - $services->set(SimplifyUselessVariableRector::class); - $services->set(RemoveAlwaysElseRector::class); - $services->set(CountArrayToEmptyArrayComparisonRector::class); - $services->set(ForToForeachRector::class); - $services->set(ChangeNestedForeachIfsToEarlyContinueRector::class); - $services->set(ChangeIfElseValueAssignToEarlyReturnRector::class); - $services->set(SimplifyStrposLowerRector::class); - $services->set(CombineIfRector::class); - $services->set(SimplifyIfReturnBoolRector::class); - $services->set(InlineIfToExplicitIfRector::class); - $services->set(PreparedValueToEarlyReturnRector::class); - $services->set(ShortenElseIfRector::class); - $services->set(SimplifyIfElseToTernaryRector::class); - $services->set(UnusedForeachValueToArrayKeysRector::class); - $services->set(ChangeArrayPushToArrayAssignRector::class); - $services->set(UnnecessaryTernaryExpressionRector::class); - $services->set(AddPregQuoteDelimiterRector::class); - $services->set(SimplifyRegexPatternRector::class); - $services->set(FuncGetArgsToVariadicParamRector::class); - $services->set(MakeInheritedMethodVisibilitySameAsParentRector::class); - $services->set(SimplifyEmptyArrayCheckRector::class); - $services->set(NormalizeNamespaceByPSR4ComposerAutoloadRector::class); + $rectorConfig->rule(SimplifyUselessVariableRector::class); + $rectorConfig->rule(RemoveAlwaysElseRector::class); + $rectorConfig->rule(CountArrayToEmptyArrayComparisonRector::class); + $rectorConfig->rule(ForToForeachRector::class); + $rectorConfig->rule(ChangeNestedForeachIfsToEarlyContinueRector::class); + $rectorConfig->rule(ChangeIfElseValueAssignToEarlyReturnRector::class); + $rectorConfig->rule(SimplifyStrposLowerRector::class); + $rectorConfig->rule(CombineIfRector::class); + $rectorConfig->rule(SimplifyIfReturnBoolRector::class); + $rectorConfig->rule(InlineIfToExplicitIfRector::class); + $rectorConfig->rule(PreparedValueToEarlyReturnRector::class); + $rectorConfig->rule(ShortenElseIfRector::class); + $rectorConfig->rule(SimplifyIfElseToTernaryRector::class); + $rectorConfig->rule(UnusedForeachValueToArrayKeysRector::class); + $rectorConfig->rule(ChangeArrayPushToArrayAssignRector::class); + $rectorConfig->rule(UnnecessaryTernaryExpressionRector::class); + $rectorConfig->rule(AddPregQuoteDelimiterRector::class); + $rectorConfig->rule(SimplifyRegexPatternRector::class); + $rectorConfig->rule(FuncGetArgsToVariadicParamRector::class); + $rectorConfig->rule(MakeInheritedMethodVisibilitySameAsParentRector::class); + $rectorConfig->rule(SimplifyEmptyArrayCheckRector::class); + $rectorConfig->rule(NormalizeNamespaceByPSR4ComposerAutoloadRector::class); + // $rectorConfig + // ->ruleWithConfiguration(TypedPropertyRector::class, [ + // TypedPropertyRector::INLINE_PUBLIC => true, + // ]); };