From 3b14c5be8e32647f2ecf01c202cd02844a2bff48 Mon Sep 17 00:00:00 2001 From: Oussama Sid Date: Fri, 19 Jun 2026 14:48:54 +0400 Subject: [PATCH 1/3] Add Laravel 13.x and PHP 8.4 support - illuminate/contracts: add ^13.0 - orchestra/testbench: add ^11.0 - nunomaduro/collision: add ^9.0 - CI: add PHP 8.4 and Laravel 13.* (testbench 11.*), carbon ">=3.8.4" on all rows - CI: drop prefer-lowest, upgrade actions/checkout to v6, add --no-coverage - phpunit.xml.dist: remove deprecated PHPUnit 10+ attributes --- .github/workflows/run-tests.yml | 25 +++++++++++++++++++------ composer.json | 6 +++--- phpunit.xml.dist | 9 ++------- 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 86714dc..23c0321 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -16,27 +16,37 @@ jobs: fail-fast: true matrix: os: [ubuntu-latest, windows-latest] - php: [8.1, 8.2, 8.3] - laravel: ['10.*', '11.*', '12.*'] - stability: [prefer-lowest, prefer-stable] + php: [8.1, 8.2, 8.3, 8.4] + laravel: ['10.*', '11.*', '12.*', '13.*'] + stability: [prefer-stable] include: - laravel: 10.* testbench: 8.* + carbon: ">=3.8.4" - laravel: 11.* testbench: ^9.0 + carbon: ">=3.8.4" - laravel: 12.* testbench: ^10.0 + carbon: ">=3.8.4" + - laravel: 13.* + testbench: ^11.0 + carbon: ">=3.8.4" exclude: - laravel: 11.* php: 8.1 - laravel: 12.* php: 8.1 + - laravel: 13.* + php: 8.1 + - laravel: 13.* + php: 8.2 name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }} - ${{ matrix.os }} steps: - name: Checkout code - uses: actions/checkout@v5.0.0 + uses: actions/checkout@v6 - name: Setup PHP uses: shivammathur/setup-php@v2 @@ -52,8 +62,11 @@ jobs: - name: Install dependencies run: | - composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update + composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" "nesbot/carbon:${{ matrix.carbon }}" --no-interaction --no-update composer update --${{ matrix.stability }} --prefer-dist --no-interaction + - name: List Installed Dependencies + run: composer show -D + - name: Execute tests - run: vendor/bin/pest + run: vendor/bin/pest --ci --no-coverage diff --git a/composer.json b/composer.json index 0013e20..c00a5d9 100644 --- a/composer.json +++ b/composer.json @@ -18,15 +18,15 @@ "require": { "php": "^8.1", "coderflexx/laravel-presenter": "^2.0", - "illuminate/contracts": "^9.0|^10.0|^11.0|^12.0", + "illuminate/contracts": "^9.0|^10.0|^11.0|^12.0|^13.0", "jaybizzle/crawler-detect": "^1.2", "spatie/laravel-package-tools": "^1.9.2" }, "require-dev": { "laravel/pint": "^1.0", - "nunomaduro/collision": "^7.0|^8.0", + "nunomaduro/collision": "^7.0|^8.0|^9.0", "nunomaduro/larastan": "^2.0.1|^3.0", - "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0", + "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0|^11.0", "phpstan/extension-installer": "^1.1", "phpstan/phpstan-deprecation-rules": "^1.0|^2.0", "phpstan/phpstan-phpunit": "^1.0|^2.0", diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 3e9b2cc..7d4b75f 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -3,20 +3,15 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd" backupGlobals="false" - backupStaticAttributes="false" bootstrap="vendor/autoload.php" colors="true" - convertErrorsToExceptions="true" - convertNoticesToExceptions="true" - convertWarningsToExceptions="true" processIsolation="false" - stopOnFailure="false" executionOrder="random" failOnWarning="true" failOnRisky="true" failOnEmptyTestSuite="true" - beStrictAboutOutputDuringTests="true" - verbose="true" + cacheDirectory=".phpunit.cache" + backupStaticProperties="false" > From 5f7c760ddb579a2fd024aa517f21f9c6fa39735f Mon Sep 17 00:00:00 2001 From: Oussama Sid Date: Fri, 19 Jun 2026 15:37:06 +0400 Subject: [PATCH 2/3] Fix L10 carbon constraint and Windows testbench ^ stripping Laravel 10 requires Carbon 2 so L10 carbon must be '*'. Use 9.*/10.*/11.* format for testbench; PowerShell strips ^ from YAML matrix values causing exact version pinning failures. --- .github/workflows/run-tests.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 23c0321..cecaf83 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -13,7 +13,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: - fail-fast: true + fail-fast: false matrix: os: [ubuntu-latest, windows-latest] php: [8.1, 8.2, 8.3, 8.4] @@ -22,15 +22,15 @@ jobs: include: - laravel: 10.* testbench: 8.* - carbon: ">=3.8.4" + carbon: "*" - laravel: 11.* - testbench: ^9.0 + testbench: 9.* carbon: ">=3.8.4" - laravel: 12.* - testbench: ^10.0 + testbench: 10.* carbon: ">=3.8.4" - laravel: 13.* - testbench: ^11.0 + testbench: 11.* carbon: ">=3.8.4" exclude: - laravel: 11.* From a9e4d69879710ac4f59e3dc56f703ab092048bda Mon Sep 17 00:00:00 2001 From: Oussama Sid Date: Fri, 19 Jun 2026 15:46:41 +0400 Subject: [PATCH 3/3] Add collision ^6.0 to allow pest 1.x resolution on L10 + PHP 8.1 --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index c00a5d9..7d54697 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ }, "require-dev": { "laravel/pint": "^1.0", - "nunomaduro/collision": "^7.0|^8.0|^9.0", + "nunomaduro/collision": "^6.0|^7.0|^8.0|^9.0", "nunomaduro/larastan": "^2.0.1|^3.0", "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0|^11.0", "phpstan/extension-installer": "^1.1",