From 02b127ea021c2ee4ce2d6b38d735c9cccf37d986 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 18 Jan 2026 16:36:24 +0100 Subject: [PATCH 1/5] bump to PHP 8.3 + update deps --- composer.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/composer.json b/composer.json index b116eafddb8..ff5088f2b6e 100644 --- a/composer.json +++ b/composer.json @@ -12,7 +12,7 @@ "migration" ], "require": { - "php": "^8.2", + "php": "^8.3", "clue/ndjson-react": "^1.3", "composer/pcre": "^3.3.2", "composer/semver": "^3.4", @@ -34,9 +34,9 @@ "rector/rector-symfony": "dev-main", "sebastian/diff": "^6.0", "symfony/console": "^6.4.24", - "symfony/filesystem": "^6.4", + "symfony/filesystem": "^6.4|7.0.*", "symfony/finder": "^6.4", - "symfony/process": "^6.4", + "symfony/process": "^6.4|7.0.*", "symplify/easy-parallel": "^11.2.2", "symplify/rule-doc-generator-contracts": "^11.2", "webmozart/assert": "^2.1" @@ -44,12 +44,12 @@ "require-dev": { "nette/robot-loader": "^4.1", "php-parallel-lint/php-parallel-lint": "^1.4", - "phpecs/phpecs": "^2.2", + "symplify/easy-coding-standard": "^13.0", "phpstan/extension-installer": "^1.4", "phpstan/phpstan-deprecation-rules": "^2.0", "phpstan/phpstan-phpunit": "^2.0", "phpstan/phpstan-webmozart-assert": "^2.0", - "phpunit/phpunit": "^11.5", + "phpunit/phpunit": "^11.5|^12.0", "rector/jack": "^0.4", "rector/release-notes-generator": "^0.5.1", "rector/swiss-knife": "^2.3", @@ -59,7 +59,7 @@ "symplify/phpstan-rules": "^14.9.11", "symplify/vendor-patches": "^11.5", "tomasvotruba/class-leak": "^2.1", - "tomasvotruba/unused-public": "^2.1", + "tomasvotruba/unused-public": "^2.2", "tracy/tracy": "^2.11" }, "replace": { From bf5a5fd3d5fd4f746092e5af7d43a421324263f9 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 18 Jan 2026 16:37:54 +0100 Subject: [PATCH 2/5] raise in CI --- .github/workflows/build_scoped_rector.yaml | 2 +- .github/workflows/code_analysis.yaml | 2 +- .github/workflows/code_analysis_no_dev.yaml | 2 +- .github/workflows/compat_test.yaml | 2 +- .github/workflows/e2e_command_with_option.yaml | 2 +- .github/workflows/packages_tests.yaml | 2 +- .github/workflows/rector.yaml | 2 +- .github/workflows/weekly_pull_requests.yaml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build_scoped_rector.yaml b/.github/workflows/build_scoped_rector.yaml index 3b8cf64c641..80d1624af84 100644 --- a/.github/workflows/build_scoped_rector.yaml +++ b/.github/workflows/build_scoped_rector.yaml @@ -38,7 +38,7 @@ jobs: - uses: shivammathur/setup-php@v2 with: - php-version: 8.2 + php-version: 8.3 coverage: none # fixes https://github.com/rectorphp/rector/pull/4559/checks?check_run_id=1359814403, see https://github.com/shivammathur/setup-php#composer-github-oauth diff --git a/.github/workflows/code_analysis.yaml b/.github/workflows/code_analysis.yaml index 9ad51d433fc..f28b22c379c 100644 --- a/.github/workflows/code_analysis.yaml +++ b/.github/workflows/code_analysis.yaml @@ -89,7 +89,7 @@ jobs: - uses: shivammathur/setup-php@v2 with: - php-version: 8.2 + php-version: 8.3 coverage: none - uses: "ramsey/composer-install@v3" diff --git a/.github/workflows/code_analysis_no_dev.yaml b/.github/workflows/code_analysis_no_dev.yaml index b895b04c256..19bb5787803 100644 --- a/.github/workflows/code_analysis_no_dev.yaml +++ b/.github/workflows/code_analysis_no_dev.yaml @@ -17,7 +17,7 @@ jobs: # see https://github.com/shivammathur/setup-php - uses: shivammathur/setup-php@v2 with: - php-version: 8.2 + php-version: 8.3 coverage: none - run: | diff --git a/.github/workflows/compat_test.yaml b/.github/workflows/compat_test.yaml index c4e0aa2c08f..d44f4f85736 100644 --- a/.github/workflows/compat_test.yaml +++ b/.github/workflows/compat_test.yaml @@ -15,7 +15,7 @@ jobs: - uses: shivammathur/setup-php@v2 with: - php-version: 8.2 + php-version: 8.3 coverage: none - run: composer create-project "rector/rector-compat-tests:dev-main" . diff --git a/.github/workflows/e2e_command_with_option.yaml b/.github/workflows/e2e_command_with_option.yaml index 7b38a6d75de..07495e42b7f 100644 --- a/.github/workflows/e2e_command_with_option.yaml +++ b/.github/workflows/e2e_command_with_option.yaml @@ -27,7 +27,7 @@ jobs: - uses: shivammathur/setup-php@v2 with: - php-version: 8.2 + php-version: 8.3 coverage: none - uses: "ramsey/composer-install@v3" diff --git a/.github/workflows/packages_tests.yaml b/.github/workflows/packages_tests.yaml index 10b45db2e83..ea071e6befe 100644 --- a/.github/workflows/packages_tests.yaml +++ b/.github/workflows/packages_tests.yaml @@ -45,7 +45,7 @@ jobs: - uses: shivammathur/setup-php@v2 with: - php-version: 8.2 + php-version: 8.3 coverage: none - run: composer config minimum-stability dev diff --git a/.github/workflows/rector.yaml b/.github/workflows/rector.yaml index 14db4184701..89c15c25e15 100644 --- a/.github/workflows/rector.yaml +++ b/.github/workflows/rector.yaml @@ -25,7 +25,7 @@ jobs: uses: shivammathur/setup-php@v2 with: # PHP 8.2 is required, so Rector's code is PHP 8.2 compatible even after refactoring - php-version: 8.2 + php-version: 8.3 coverage: none - run: composer install --no-progress --ansi diff --git a/.github/workflows/weekly_pull_requests.yaml b/.github/workflows/weekly_pull_requests.yaml index ba315315fa8..2e2f5a2351f 100644 --- a/.github/workflows/weekly_pull_requests.yaml +++ b/.github/workflows/weekly_pull_requests.yaml @@ -41,7 +41,7 @@ jobs: - uses: shivammathur/setup-php@v2 with: - php-version: 8.2 + php-version: 8.3 coverage: none - uses: "ramsey/composer-install@v3" From 8f66b18d0639019e8328736dc25c6e5220b4248b Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 18 Jan 2026 16:38:28 +0100 Subject: [PATCH 3/5] bump PHPUnit to 12 --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index ff5088f2b6e..ca62ce933b1 100644 --- a/composer.json +++ b/composer.json @@ -32,7 +32,7 @@ "rector/rector-downgrade-php": "dev-main", "rector/rector-phpunit": "dev-main", "rector/rector-symfony": "dev-main", - "sebastian/diff": "^6.0", + "sebastian/diff": "^6.0|^7.0", "symfony/console": "^6.4.24", "symfony/filesystem": "^6.4|7.0.*", "symfony/finder": "^6.4", From 91dd86e04bfa10199b6a87564ee6ebf547271247 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 18 Jan 2026 16:40:46 +0100 Subject: [PATCH 4/5] remove PHPUnit 12 depre --- tests/Config/RectorConfigTest.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/Config/RectorConfigTest.php b/tests/Config/RectorConfigTest.php index 70474e667e0..d12559a2d5f 100644 --- a/tests/Config/RectorConfigTest.php +++ b/tests/Config/RectorConfigTest.php @@ -4,14 +4,12 @@ namespace Rector\Tests\Config; -use PHPUnit\Framework\Attributes\RunClassInSeparateProcess; use Rector\Configuration\Option; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\Symfony\Set\TwigSetList; use Rector\Testing\PHPUnit\AbstractLazyTestCase; use Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromReturnNewRector; -#[RunClassInSeparateProcess] final class RectorConfigTest extends AbstractLazyTestCase { public function test(): void From 10216cb46e238655754f758419be7b524698d035 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 18 Jan 2026 16:42:06 +0100 Subject: [PATCH 5/5] update .github version --- .github/workflows/e2e.yaml | 2 +- .github/workflows/e2e_with_cache.yaml | 2 +- .github/workflows/e2e_with_no_diffs.yaml | 2 +- .github/workflows/phpstan_printer_test.yaml | 2 +- .github/workflows/rector.yaml | 2 +- .github/workflows/tests.yaml | 2 +- rector.php | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml index f45dc8cf8f5..d69ffcaa76a 100644 --- a/.github/workflows/e2e.yaml +++ b/.github/workflows/e2e.yaml @@ -22,7 +22,7 @@ jobs: strategy: fail-fast: false matrix: - php_version: ['8.2'] + php_version: ['8.3'] directory: - 'e2e/applied-auto-import' - 'e2e/applied-polyfill-php80' diff --git a/.github/workflows/e2e_with_cache.yaml b/.github/workflows/e2e_with_cache.yaml index 66a38d05ef4..19a045fb8a2 100644 --- a/.github/workflows/e2e_with_cache.yaml +++ b/.github/workflows/e2e_with_cache.yaml @@ -22,7 +22,7 @@ jobs: strategy: fail-fast: false matrix: - php_version: ['8.2'] + php_version: ['8.3'] directory: - 'e2e/applied-rule-removed-node-with-cache' - 'e2e/timeout-file-not-cached' diff --git a/.github/workflows/e2e_with_no_diffs.yaml b/.github/workflows/e2e_with_no_diffs.yaml index 3006f84a593..5abc4fad179 100644 --- a/.github/workflows/e2e_with_no_diffs.yaml +++ b/.github/workflows/e2e_with_no_diffs.yaml @@ -22,7 +22,7 @@ jobs: strategy: fail-fast: false matrix: - php_version: ['8.2'] + php_version: ['8.3'] directory: - 'e2e/applied-rule-removed-node-no-diffs' diff --git a/.github/workflows/phpstan_printer_test.yaml b/.github/workflows/phpstan_printer_test.yaml index ff080c000c9..fcc011be97d 100644 --- a/.github/workflows/phpstan_printer_test.yaml +++ b/.github/workflows/phpstan_printer_test.yaml @@ -18,7 +18,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest] - php-versions: ['8.2'] + php-versions: ['8.3'] runs-on: ${{ matrix.os }} timeout-minutes: 3 diff --git a/.github/workflows/rector.yaml b/.github/workflows/rector.yaml index 89c15c25e15..743cb3ebc33 100644 --- a/.github/workflows/rector.yaml +++ b/.github/workflows/rector.yaml @@ -24,7 +24,7 @@ jobs: - uses: shivammathur/setup-php@v2 with: - # PHP 8.2 is required, so Rector's code is PHP 8.2 compatible even after refactoring + # PHP 8.3 is required, so Rector's code is PHP 8.3 compatible even after refactoring php-version: 8.3 coverage: none diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index cd1a0c804b0..cb696a36aeb 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -18,7 +18,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest] - php-versions: ['8.2', '8.3', '8.4', '8.5'] + php-versions: ['8.3', '8.4', '8.5'] runs-on: ${{ matrix.os }} timeout-minutes: 3 diff --git a/rector.php b/rector.php index 20e9a368c50..cad113c3ad6 100644 --- a/rector.php +++ b/rector.php @@ -25,7 +25,7 @@ ) ->withAttributesSets() ->withComposerBased(phpunit: true) - ->withPhpSets() + ->withPhpSets(php82: true) ->withPaths([ __DIR__ . '/bin', __DIR__ . '/config',