From ddf1e97b68bc8f5e6546ec4546157efc284d1477 Mon Sep 17 00:00:00 2001 From: DerManoMann Date: Fri, 10 Jan 2025 09:23:26 +1300 Subject: [PATCH 1/5] Bump composer deps (tooling, swagger-php v5) --- composer.json | 8 +++-- phpstan-baseline.neon | 71 ++++++++++++++++++++++++++++++++----------- phpstan.neon | 1 - 3 files changed, 58 insertions(+), 22 deletions(-) diff --git a/composer.json b/composer.json index c708488..245a312 100644 --- a/composer.json +++ b/composer.json @@ -49,18 +49,20 @@ "php": ">=8.1", "ext-json": "*", "justinrainbow/json-schema": "^5.2.13", + "laravel/laravel": "^11.5", "nyholm/psr7": "^1.1", "nyholm/psr7-server": "^1.0", "psr/http-message": "^2.0", + "slim/slim": "^4.14", "symfony/psr-http-message-bridge": "^6.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.47.1", + "friendsofphp/php-cs-fixer": "^3.62.0", "league/container": "^4.2", - "phpstan/phpstan": "^1.10", + "phpstan/phpstan": "^1.10 || ^2.0", "phpunit/phpunit": "^10.0", "symfony/yaml": "^6.0|^7.0", - "zircote/swagger-php": "^4.8" + "zircote/swagger-php": "^4.8 || ^5.0" }, "suggest": { "laravel/laravel": "A PHP framework", diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 772379b..ecacce7 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -1,86 +1,121 @@ parameters: ignoreErrors: - - message: "#^Call to method failSchemaMismatch\\(\\) on an unknown class Radebatz\\\\OpenApi\\\\Verifier\\\\VerifiesOpenApi\\.$#" + message: '#^Call to method failSchemaMismatch\(\) on an unknown class Radebatz\\OpenApi\\Verifier\\VerifiesOpenApi\.$#' + identifier: class.notFound count: 1 path: src/Adapters/Laravel/OpenApiVerifierMiddleware.php - - message: "#^Call to method verifyOpenApi\\(\\) on an unknown class Radebatz\\\\OpenApi\\\\Verifier\\\\VerifiesOpenApi\\.$#" + message: '#^Call to method verifyOpenApi\(\) on an unknown class Radebatz\\OpenApi\\Verifier\\VerifiesOpenApi\.$#' + identifier: class.notFound count: 1 path: src/Adapters/Laravel/OpenApiVerifierMiddleware.php - - message: "#^PHPDoc tag @var for variable \\$verifier has invalid type Radebatz\\\\OpenApi\\\\Verifier\\\\VerifiesOpenApi\\.$#" + message: '#^PHPDoc tag @var for variable \$verifier has invalid type Radebatz\\OpenApi\\Verifier\\VerifiesOpenApi\.$#' + identifier: varTag.trait count: 1 path: src/Adapters/Laravel/OpenApiVerifierMiddleware.php - - message: "#^Call to method failSchemaMismatch\\(\\) on an unknown class Radebatz\\\\OpenApi\\\\Verifier\\\\VerifiesOpenApi\\.$#" + message: '#^Call to method failSchemaMismatch\(\) on an unknown class Radebatz\\OpenApi\\Verifier\\VerifiesOpenApi\.$#' + identifier: class.notFound count: 1 path: src/Adapters/Slim/OpenApiVerifierMiddleware.php - - message: "#^Call to method verifyOpenApi\\(\\) on an unknown class Radebatz\\\\OpenApi\\\\Verifier\\\\VerifiesOpenApi\\.$#" + message: '#^Call to method verifyOpenApi\(\) on an unknown class Radebatz\\OpenApi\\Verifier\\VerifiesOpenApi\.$#' + identifier: class.notFound count: 1 path: src/Adapters/Slim/OpenApiVerifierMiddleware.php - - message: "#^PHPDoc tag @var for variable \\$verifier has invalid type Radebatz\\\\OpenApi\\\\Verifier\\\\VerifiesOpenApi\\.$#" + message: '#^PHPDoc tag @var for variable \$verifier has invalid type Radebatz\\OpenApi\\Verifier\\VerifiesOpenApi\.$#' + identifier: varTag.trait count: 1 path: src/Adapters/Slim/OpenApiVerifierMiddleware.php - - message: "#^Call to sprintf contains 2 placeholders, 1 value given\\.$#" + message: '#^Call to sprintf contains 2 placeholders, 1 value given\.$#' + identifier: argument.sprintf count: 1 path: src/OpenApiSchemaMismatchException.php - - message: "#^Access to an undefined property object\\:\\:\\$anyOf\\.$#" + message: '#^Call to function property_exists\(\) with \$this\(Radebatz\\OpenApi\\Verifier\\Tests\\Adapters\\LaravelAdapterTest\) and ''openapiSpecification'' will always evaluate to true\.$#' + identifier: function.alreadyNarrowedType count: 1 - path: src/OpenApiSpecificationLoader.php + path: tests/Adapters/LaravelAdapterTest.php - - message: "#^If condition is always true\\.$#" + message: '#^If condition is always true\.$#' + identifier: if.alwaysTrue count: 1 path: tests/Adapters/LaravelAdapterTest.php - - message: "#^Negated boolean expression is always false\\.$#" + message: '#^Negated boolean expression is always false\.$#' + identifier: booleanNot.alwaysFalse count: 2 path: tests/Adapters/LaravelAdapterTest.php - - message: "#^Ternary operator condition is always false\\.$#" + message: '#^Ternary operator condition is always false\.$#' + identifier: ternary.alwaysFalse count: 1 path: tests/Adapters/LaravelAdapterTest.php - - message: "#^Access to an undefined property Radebatz\\\\OpenApi\\\\Verifier\\\\Tests\\\\Adapters\\\\SlimAdapterTest\\:\\:\\$app\\.$#" + message: '#^Access to an undefined property Radebatz\\OpenApi\\Verifier\\Tests\\Adapters\\SlimAdapterTest\:\:\$app\.$#' + identifier: property.notFound + count: 1 + path: tests/Adapters/SlimAdapterTest.php + + - + message: '#^Call to function property_exists\(\) with \$this\(Radebatz\\OpenApi\\Verifier\\Tests\\Adapters\\SlimAdapterTest\) and ''openapiSpecification'' will always evaluate to true\.$#' + identifier: function.alreadyNarrowedType count: 1 path: tests/Adapters/SlimAdapterTest.php - - message: "#^If condition is always true\\.$#" + message: '#^If condition is always true\.$#' + identifier: if.alwaysTrue count: 1 path: tests/Adapters/SlimAdapterTest.php - - message: "#^Negated boolean expression is always false\\.$#" + message: '#^Negated boolean expression is always false\.$#' + identifier: booleanNot.alwaysFalse count: 1 path: tests/Adapters/SlimAdapterTest.php - - message: "#^Right side of \\|\\| is always false\\.$#" + message: '#^Right side of \|\| is always false\.$#' + identifier: booleanOr.rightAlwaysFalse count: 1 path: tests/Adapters/SlimAdapterTest.php - - message: "#^Ternary operator condition is always false\\.$#" + message: '#^Ternary operator condition is always false\.$#' + identifier: ternary.alwaysFalse count: 1 path: tests/Adapters/SlimAdapterTest.php - - message: "#^If condition is always true\\.$#" + message: '#^Call to function is_object\(\) with Radebatz\\OpenApi\\Verifier\\OpenApiSpecificationLoader will always evaluate to true\.$#' + identifier: function.alreadyNarrowedType + count: 1 + path: tests/OpenApiSpecificationLoaderTest.php + + - + message: '#^Call to method PHPUnit\\Framework\\Assert\:\:assertTrue\(\) with true will always evaluate to true\.$#' + identifier: method.alreadyNarrowedType + count: 1 + path: tests/OpenApiSpecificationLoaderTest.php + + - + message: '#^If condition is always true\.$#' + identifier: if.alwaysTrue count: 1 path: tests/VerifiesOpenApiTest.php diff --git a/phpstan.neon b/phpstan.neon index ce86b23..f12cef8 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -11,4 +11,3 @@ parameters: processTimeout: 300.0 excludePaths: - 'tests/Fixtures/*' - ignoreErrors: From 63c36f22a80cf8cd8f90a998f4840253bd37722d Mon Sep 17 00:00:00 2001 From: DerManoMann Date: Fri, 10 Jan 2025 09:24:53 +1300 Subject: [PATCH 2/5] . --- composer.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/composer.json b/composer.json index 245a312..1f4bbfc 100644 --- a/composer.json +++ b/composer.json @@ -49,11 +49,9 @@ "php": ">=8.1", "ext-json": "*", "justinrainbow/json-schema": "^5.2.13", - "laravel/laravel": "^11.5", "nyholm/psr7": "^1.1", "nyholm/psr7-server": "^1.0", "psr/http-message": "^2.0", - "slim/slim": "^4.14", "symfony/psr-http-message-bridge": "^6.0" }, "require-dev": { From 04b613f8f9086af82a216258907803950f9b87d4 Mon Sep 17 00:00:00 2001 From: DerManoMann Date: Wed, 5 Mar 2025 13:03:18 +1300 Subject: [PATCH 3/5] Add Laravel 12 and PHP 8.5 to workflow matrix --- .github/workflows/build.yml | 4 ++-- .github/workflows/laravel.yml | 4 +++- .github/workflows/security-checks.yml | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1f1c363..2da1842 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,8 +12,8 @@ jobs: laravel-adapter: uses: ./.github/workflows/laravel.yml with: - php-versions: '8.1,8.2,8.3,8.4' + php-versions: '8.1,8.2,8.3,8.4,8.5' slim-adapter: uses: ./.github/workflows/slim.yml with: - php-versions: '8.1,8.2,8.3,8.4' + php-versions: '8.1,8.2,8.3,8.4,8.5' diff --git a/.github/workflows/laravel.yml b/.github/workflows/laravel.yml index 2cf923a..8dff5ca 100644 --- a/.github/workflows/laravel.yml +++ b/.github/workflows/laravel.yml @@ -15,11 +15,13 @@ jobs: matrix: operating-system: [ ubuntu-latest ] php: ${{ fromJson(format('[{0}]', inputs.php-versions)) }} - laravel: [ '10.0', '11.0' ] + laravel: [ '10.0', '11.0', '12.0' ] dependencies: [ 'lowest', 'highest' ] exclude: - php: '8.1' laravel: '11.0' + - php: '8.1' + laravel: '12.0' name: PHP ${{ matrix.php }} / Laravel ${{ matrix.laravel }} on ${{ matrix.operating-system }} with ${{ matrix.dependencies }} dependencies diff --git a/.github/workflows/security-checks.yml b/.github/workflows/security-checks.yml index 9db4aa6..42f2e9e 100644 --- a/.github/workflows/security-checks.yml +++ b/.github/workflows/security-checks.yml @@ -15,7 +15,7 @@ jobs: fail-fast: true matrix: operating-system: [ ubuntu-latest ] - php: [ '8.1', '8.2', '8.3', '8.4' ] + php: [ '8.1', '8.2', '8.3', '8.4', '8.5' ] dependencies: [ 'highest' ] name: PHP ${{ matrix.php }} on ${{ matrix.operating-system }} with ${{ matrix.dependencies }} dependencies From 6b0b9bfc6d6b978fc289b4e8010bee837e2d9c93 Mon Sep 17 00:00:00 2001 From: DerManoMann Date: Mon, 18 Aug 2025 12:06:42 +1200 Subject: [PATCH 4/5] Add weekly schedule of `build` workflow --- .github/workflows/build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2da1842..9f0fbac 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,6 +1,8 @@ name: build on: + schedule: + - cron: "0 13 * * 1" push: branches: - main From 1327b8906915df5743926f779f3a8105e44bda32 Mon Sep 17 00:00:00 2001 From: DerManoMann Date: Mon, 18 Aug 2025 12:10:40 +1200 Subject: [PATCH 5/5] Exclude 8.5 from laravel for now --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9f0fbac..2d4c3ac 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,7 +14,7 @@ jobs: laravel-adapter: uses: ./.github/workflows/laravel.yml with: - php-versions: '8.1,8.2,8.3,8.4,8.5' + php-versions: '8.1,8.2,8.3,8.4' slim-adapter: uses: ./.github/workflows/slim.yml with: