From c1b1c99ee4749bbc3853887ab434ea1905b94edb Mon Sep 17 00:00:00 2001 From: Paul Norman Date: Sun, 16 Mar 2025 18:56:29 +0000 Subject: [PATCH 01/13] Support PHP 8.4 --- .github/workflows/test.yaml | 5 ++++- CHANGELOG.md | 4 ++++ composer.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index b850e33..51024c8 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -17,15 +17,18 @@ jobs: - '8.1' - '8.2' - '8.3' + - '8.4' dependencies: - 'default' include: - php_version: '8.1' dependencies: 'lowest' - php_version: '8.2' - dependencies: 'lowest' + dependencies: 'lowest'd - php_version: '8.3' dependencies: 'lowest' + - php_version: '8.4' + dependencies: 'lowest' steps: - name: Setup PHP uses: shivammathur/setup-php@v2 diff --git a/CHANGELOG.md b/CHANGELOG.md index 920f23b..82c91f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ### Unreleased +### v2.4.0 (2025-03-16) + +* Support PHP 8.4 + ### v2.3.0 (2024-11-28) * Add support for venue search endpoint diff --git a/composer.json b/composer.json index c6c10cc..f26e6a0 100644 --- a/composer.json +++ b/composer.json @@ -12,7 +12,7 @@ ], "require": { "guzzlehttp/guzzle": "^7.0", - "php": "~8.1.0 || ~8.2.0 || ~8.3.0" + "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "require-dev": { "phpunit/phpunit": "^10.5", From 899338c570f862976643565c061b498c7e36ce69 Mon Sep 17 00:00:00 2001 From: Paul Norman Date: Sun, 16 Mar 2025 19:23:08 +0000 Subject: [PATCH 02/13] Update test.yaml --- .github/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 51024c8..07ce3cc 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -24,7 +24,7 @@ jobs: - php_version: '8.1' dependencies: 'lowest' - php_version: '8.2' - dependencies: 'lowest'd + dependencies: 'lowest' - php_version: '8.3' dependencies: 'lowest' - php_version: '8.4' From c3d8b22223a754c4013279551710630521462fe8 Mon Sep 17 00:00:00 2001 From: Paul Norman Date: Sun, 16 Mar 2025 19:38:31 +0000 Subject: [PATCH 03/13] Bump actions/cache See deprecation notice: https://github.com/actions/cache --- .github/workflows/test.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 07ce3cc..ebb31f3 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -29,6 +29,7 @@ jobs: dependencies: 'lowest' - php_version: '8.4' dependencies: 'lowest' + steps: - name: Setup PHP uses: shivammathur/setup-php@v2 @@ -43,12 +44,13 @@ jobs: id: composer-cache run: | echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v2 + - uses: actions/cache@v4 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }} restore-keys: | ${{ runner.os }}-composer-${{ matrix.dependencies }} + - name: Install composer dependencies env: DEPENDENCIES: ${{ matrix.dependencies }} @@ -59,6 +61,7 @@ jobs: else composer install --no-interaction --no-progress fi + - name: Run unit tests run: | vendor/bin/phpunit \ No newline at end of file From b953b4dd53b7aeca4ae8ae96ddb2c23f9e1221c0 Mon Sep 17 00:00:00 2001 From: Paul Norman Date: Mon, 17 Mar 2025 08:33:45 +0000 Subject: [PATCH 04/13] Allow different versions of PHPUnit --- composer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index f26e6a0..7793582 100644 --- a/composer.json +++ b/composer.json @@ -15,8 +15,8 @@ "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "require-dev": { - "phpunit/phpunit": "^10.5", - "ergebnis/phpunit-slow-test-detector": "^2.15" + "phpunit/phpunit": "^10.5 | ^11.5 | ^12.5", + "ergebnis/phpunit-slow-test-detector": "^2.19" }, "support": { "source": "https://github.com/festivalslab/api-client-php", From 336854b5979a6db187f879bd1b3ddc4187abe6f2 Mon Sep 17 00:00:00 2001 From: Paul Norman Date: Mon, 17 Mar 2025 08:36:12 +0000 Subject: [PATCH 05/13] Use the correct version of PHPUnit *sigh* --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 7793582..b55051a 100644 --- a/composer.json +++ b/composer.json @@ -15,7 +15,7 @@ "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "require-dev": { - "phpunit/phpunit": "^10.5 | ^11.5 | ^12.5", + "phpunit/phpunit": "^10.5 | ^11.5 | ^12.0", "ergebnis/phpunit-slow-test-detector": "^2.19" }, "support": { From 300c75734a0f2697ee0b82e24daa356cf2f94e04 Mon Sep 17 00:00:00 2001 From: Paul Norman Date: Tue, 18 Mar 2025 14:08:01 +0000 Subject: [PATCH 06/13] Force PHPUnit 10 to use the latest available --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index b55051a..2587a2e 100644 --- a/composer.json +++ b/composer.json @@ -15,7 +15,7 @@ "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "require-dev": { - "phpunit/phpunit": "^10.5 | ^11.5 | ^12.0", + "phpunit/phpunit": "^10.5.45 | ^11.5 | ^12.0", "ergebnis/phpunit-slow-test-detector": "^2.19" }, "support": { From 1e0b61c0bf2f6d583e1caf435e1462c20c5b3884 Mon Sep 17 00:00:00 2001 From: Paul Norman Date: Tue, 18 Mar 2025 14:14:30 +0000 Subject: [PATCH 07/13] Increase Guzzle min version --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 2587a2e..bc5f5c0 100644 --- a/composer.json +++ b/composer.json @@ -11,7 +11,7 @@ } ], "require": { - "guzzlehttp/guzzle": "^7.0", + "guzzlehttp/guzzle": "^7.9", "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "require-dev": { From a7e7bdf8e73459eb2d243cacccedf7a2924ac2f6 Mon Sep 17 00:00:00 2001 From: Paul Norman Date: Tue, 18 Mar 2025 14:46:45 +0000 Subject: [PATCH 08/13] Fix deprecation warning --- src/FestivalsApiClient.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/FestivalsApiClient.php b/src/FestivalsApiClient.php index c288620..8bacbdc 100644 --- a/src/FestivalsApiClient.php +++ b/src/FestivalsApiClient.php @@ -15,6 +15,7 @@ use GuzzleHttp\Exception\BadResponseException; use GuzzleHttp\Exception\GuzzleException; use GuzzleHttp\Psr7\Request; +use GuzzleHttp\Utils; use InvalidArgumentException; use Psr\Http\Message\ResponseInterface; use function http_build_query; @@ -123,7 +124,7 @@ protected function createRequest(string $url): Request protected function decodeJsonResponse(ResponseInterface $response): array { try { - return \GuzzleHttp\json_decode((string) $response->getBody(), TRUE); + return Utils::jsonDecode((string) $response->getBody(), TRUE); } catch (InvalidArgumentException $e) { throw FestivalsApiClientException::invalidJsonResponse($response->getStatusCode(), $e); } @@ -160,7 +161,7 @@ protected function handleApiError(BadResponseException $e): void $url = (string) $e->getRequest()->getUri(); try { - $decoded = \GuzzleHttp\json_decode($e->getResponse()->getBody(), TRUE); + $decoded = Utils::jsonDecode($e->getResponse()->getBody(), TRUE); if (isset($decoded['error'])) { $msg = $decoded['error']; } From 6fa1d503027e27ce4c2fbedbd01a14eecb1e1c1c Mon Sep 17 00:00:00 2001 From: Paul Norman Date: Tue, 18 Mar 2025 14:47:13 +0000 Subject: [PATCH 09/13] One last attempt to get "lowest" tests to pass --- composer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index bc5f5c0..6d6cc60 100644 --- a/composer.json +++ b/composer.json @@ -11,11 +11,11 @@ } ], "require": { - "guzzlehttp/guzzle": "^7.9", + "guzzlehttp/guzzle": "^7.9.2", "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "require-dev": { - "phpunit/phpunit": "^10.5.45 | ^11.5 | ^12.0", + "phpunit/phpunit": "^10.5.45 || ^11.5 || ^12.0", "ergebnis/phpunit-slow-test-detector": "^2.19" }, "support": { From f6213fd437b1cd06b9a575b3d5e906d8a9f65ff1 Mon Sep 17 00:00:00 2001 From: Paul Norman Date: Tue, 18 Mar 2025 16:03:11 +0000 Subject: [PATCH 10/13] New test --- .github/workflows/test.yaml | 77 +++++++++++++------------------------ 1 file changed, 27 insertions(+), 50 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index ebb31f3..f9e740d 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -1,67 +1,44 @@ name: Run tests + on: push: branches: - # Only mainline branches, features etc are covered on the pull_request trigger - - '*.x' + # Only mainline branches, features etc are covered on the pull_request trigger + - '*.x' pull_request: jobs: + run-tests: - runs-on: ubuntu-latest name: Run tests + runs-on: ubuntu-latest + strategy: fail-fast: false matrix: - php_version: - - '8.1' - - '8.2' - - '8.3' - - '8.4' - dependencies: - - 'default' - include: - - php_version: '8.1' - dependencies: 'lowest' - - php_version: '8.2' - dependencies: 'lowest' - - php_version: '8.3' - dependencies: 'lowest' - - php_version: '8.4' - dependencies: 'lowest' + php-version: + - '8.1' + - '8.2' + - '8.3' + - '8.4' + dependency-versions: + - 'lowest' + - 'default' steps: - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php_version }} - tools: composer:v2 - - - name: Checkout - uses: actions/checkout@v2 + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-version }} + tools: composer:v2 - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v4 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer-${{ matrix.dependencies }} + - name: Checkout + uses: actions/checkout@v4 - - name: Install composer dependencies - env: - DEPENDENCIES: ${{ matrix.dependencies }} - run: | - if [ $DEPENDENCIES == 'lowest' ] - then - composer update --prefer-lowest --no-interaction --no-progress - else - composer install --no-interaction --no-progress - fi + - name: Install composer dependencies + uses: ramsey/composer-install@v3 + with: + dependency-versions: ${{ matrix.dependency-versions }} - - name: Run unit tests - run: | - vendor/bin/phpunit \ No newline at end of file + - name: Run PHPUnit + run: vendor/bin/phpunit \ No newline at end of file From bf04ce600d7e3022ee3346db9232de90292ac06a Mon Sep 17 00:00:00 2001 From: Paul Norman Date: Tue, 18 Mar 2025 16:19:42 +0000 Subject: [PATCH 11/13] Attempt to force a higher Guzzle Promises lib --- composer.json | 1 + 1 file changed, 1 insertion(+) diff --git a/composer.json b/composer.json index 6d6cc60..9d0cac2 100644 --- a/composer.json +++ b/composer.json @@ -12,6 +12,7 @@ ], "require": { "guzzlehttp/guzzle": "^7.9.2", + "guzzlehttp/promises": "^2.0.4", "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "require-dev": { From 7f90a8593dc8caf7b2681259d75f1e5da30640c0 Mon Sep 17 00:00:00 2001 From: Paul Norman <1172942+paul-norman@users.noreply.github.com> Date: Sun, 25 May 2025 08:56:57 +0100 Subject: [PATCH 12/13] Attempt to simplify composer rules --- composer.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index 9d0cac2..6af8c6a 100644 --- a/composer.json +++ b/composer.json @@ -12,12 +12,12 @@ ], "require": { "guzzlehttp/guzzle": "^7.9.2", - "guzzlehttp/promises": "^2.0.4", "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "require-dev": { - "phpunit/phpunit": "^10.5.45 || ^11.5 || ^12.0", - "ergebnis/phpunit-slow-test-detector": "^2.19" + "guzzlehttp/promises": ">=2.0.4", + "phpunit/phpunit": "^10.5.45", + "ergebnis/phpunit-slow-test-detector": "^2.19.1" }, "support": { "source": "https://github.com/festivalslab/api-client-php", From e31821cd3d43db4ab5b1d1f92b6033b770b6b677 Mon Sep 17 00:00:00 2001 From: Andrew Coulton Date: Tue, 27 May 2025 09:21:10 +0100 Subject: [PATCH 13/13] nits: Minor adjustments from code review --- CHANGELOG.md | 2 +- composer.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 82c91f2..f36a8e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ### Unreleased -### v2.4.0 (2025-03-16) +### v2.4.0 (2025-05-27) * Support PHP 8.4 diff --git a/composer.json b/composer.json index 6af8c6a..31b1b07 100644 --- a/composer.json +++ b/composer.json @@ -15,7 +15,7 @@ "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "require-dev": { - "guzzlehttp/promises": ">=2.0.4", + "guzzlehttp/promises": ">=2.0.4", "phpunit/phpunit": "^10.5.45", "ergebnis/phpunit-slow-test-detector": "^2.19.1" },