From 6e22ac6960000f8d5f336f1baa6316a7f15b557b Mon Sep 17 00:00:00 2001 From: Baptiste Langlade Date: Mon, 17 Nov 2025 14:56:03 +0100 Subject: [PATCH 1/4] require php 8.4 --- .github/workflows/ci.yml | 10 ++++------ CHANGELOG.md | 6 ++++++ composer.json | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 189105d..779f162 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,13 +4,11 @@ on: [push, pull_request] jobs: blackbox: - uses: innmind/github-workflows/.github/workflows/black-box-matrix.yml@main + uses: innmind/github-workflows/.github/workflows/black-box-matrix.yml@next coverage: - uses: innmind/github-workflows/.github/workflows/coverage-matrix.yml@main + uses: innmind/github-workflows/.github/workflows/coverage-matrix.yml@next secrets: inherit psalm: - uses: innmind/github-workflows/.github/workflows/psalm-matrix.yml@main + uses: innmind/github-workflows/.github/workflows/psalm-matrix.yml@next cs: - uses: innmind/github-workflows/.github/workflows/cs.yml@main - with: - php-version: '8.2' + uses: innmind/github-workflows/.github/workflows/cs.yml@next diff --git a/CHANGELOG.md b/CHANGELOG.md index 26ca00c..9090cb2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## [Unreleased] + +### Changed + +- Requires PHP `8.4` + ## 5.2.0 - 2025-09-06 ### Added diff --git a/composer.json b/composer.json index 67fc7be..d123b7d 100644 --- a/composer.json +++ b/composer.json @@ -15,7 +15,7 @@ "issues": "http://github.com/Innmind/Router/issues" }, "require": { - "php": "~8.2", + "php": "~8.4", "innmind/url": "~4.1", "innmind/immutable": "~5.20", "innmind/http": "~8.0", From b579650f2f7d7b1e036030e8fd79bfb0e3ca51f0 Mon Sep 17 00:00:00 2001 From: Baptiste Langlade Date: Mon, 17 Nov 2025 15:01:25 +0100 Subject: [PATCH 2/4] update dependencies --- composer.json | 14 ++++++++++---- proofs/router.php | 4 ++-- src/Endpoint.php | 4 ++-- src/Host.php | 4 ++-- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/composer.json b/composer.json index d123b7d..45d922e 100644 --- a/composer.json +++ b/composer.json @@ -16,10 +16,16 @@ }, "require": { "php": "~8.4", - "innmind/url": "~4.1", - "innmind/immutable": "~5.20", - "innmind/http": "~8.0", - "innmind/url-template": "~3.0" + "innmind/url": "dev-next", + "innmind/immutable": "dev-next", + "innmind/http": "dev-next", + "innmind/url-template": "dev-next", + "innmind/filesystem": "dev-next", + "innmind/io": "dev-next", + "innmind/media-type": "dev-next", + "innmind/validation": "dev-next", + "innmind/ip": "dev-next", + "innmind/time-continuum": "dev-next" }, "autoload": { "psr-4": { diff --git a/proofs/router.php b/proofs/router.php index 6ccde92..49b60f3 100644 --- a/proofs/router.php +++ b/proofs/router.php @@ -127,7 +127,7 @@ static function($assert, $method, $protocolVersion) { $router = Router::of(Endpoint::of('/hello{/name}')); $result = $router($request)->unwrap(); - $assert->count(1, $result); + $assert->same(1, $result->size()); $assert->same( 'world', $result->get('name')->match( @@ -182,7 +182,7 @@ static function($assert, $method, $protocolVersion) { $router = Router::of(Host::of('example{.tld}/')); $result = $router($request)->unwrap(); - $assert->count(1, $result); + $assert->same(1, $result->size()); $assert->same( 'com', $result->get('tld')->match( diff --git a/src/Endpoint.php b/src/Endpoint.php index 90d9c9d..90f8bcc 100644 --- a/src/Endpoint.php +++ b/src/Endpoint.php @@ -39,8 +39,8 @@ static function() use ($request, $template) { ->withoutScheme() ->withoutAuthority(); - return match ($template->matches($url)) { - true => $template->extract($url), + return match ($template->matches($url)->unwrap()) { + true => $template->extract($url)->unwrap(), false => throw new Exception\NotFound, }; }, diff --git a/src/Host.php b/src/Host.php index 6d3e5de..f8147f8 100644 --- a/src/Host.php +++ b/src/Host.php @@ -46,8 +46,8 @@ static function() use ($request, $template) { ->withoutQuery() ->withoutFragment(); - return match ($template->matches($url)) { - true => $template->extract($url), + return match ($template->matches($url)->unwrap()) { + true => $template->extract($url)->unwrap(), false => throw new Exception\NotFound, }; }, From 958d78c1b2738e25b268df7a82d1a0b8134fb400 Mon Sep 17 00:00:00 2001 From: Baptiste Langlade Date: Sun, 8 Feb 2026 15:13:19 +0100 Subject: [PATCH 3/4] tag dependencies --- .github/workflows/ci.yml | 8 ++++---- CHANGELOG.md | 1 + composer.json | 16 +++++----------- 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 779f162..2f3eecb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,11 +4,11 @@ on: [push, pull_request] jobs: blackbox: - uses: innmind/github-workflows/.github/workflows/black-box-matrix.yml@next + uses: innmind/github-workflows/.github/workflows/black-box-matrix.yml@main coverage: - uses: innmind/github-workflows/.github/workflows/coverage-matrix.yml@next + uses: innmind/github-workflows/.github/workflows/coverage-matrix.yml@main secrets: inherit psalm: - uses: innmind/github-workflows/.github/workflows/psalm-matrix.yml@next + uses: innmind/github-workflows/.github/workflows/psalm-matrix.yml@main cs: - uses: innmind/github-workflows/.github/workflows/cs.yml@next + uses: innmind/github-workflows/.github/workflows/cs.yml@main diff --git a/CHANGELOG.md b/CHANGELOG.md index 9090cb2..cf58e85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Changed - Requires PHP `8.4` +- Requires `innmind/http:~9.0` ## 5.2.0 - 2025-09-06 diff --git a/composer.json b/composer.json index 45d922e..313d377 100644 --- a/composer.json +++ b/composer.json @@ -16,16 +16,10 @@ }, "require": { "php": "~8.4", - "innmind/url": "dev-next", - "innmind/immutable": "dev-next", - "innmind/http": "dev-next", - "innmind/url-template": "dev-next", - "innmind/filesystem": "dev-next", - "innmind/io": "dev-next", - "innmind/media-type": "dev-next", - "innmind/validation": "dev-next", - "innmind/ip": "dev-next", - "innmind/time-continuum": "dev-next" + "innmind/url": "~5.0", + "innmind/immutable": "~6.0", + "innmind/http": "~9.0", + "innmind/url-template": "~4.0" }, "autoload": { "psr-4": { @@ -39,7 +33,7 @@ } }, "require-dev": { - "innmind/static-analysis": "^1.2.1", + "innmind/static-analysis": "~1.3", "innmind/black-box": "~6.5", "innmind/coding-standard": "~2.0" } From 774a21598342c430391fdba0ae8a36681bb33c9a Mon Sep 17 00:00:00 2001 From: Baptiste Langlade Date: Sun, 8 Feb 2026 15:13:54 +0100 Subject: [PATCH 4/4] add extensive CI --- .github/workflows/extensive.yml | 12 ++++++++++++ blackbox.php | 4 ++++ 2 files changed, 16 insertions(+) create mode 100644 .github/workflows/extensive.yml diff --git a/.github/workflows/extensive.yml b/.github/workflows/extensive.yml new file mode 100644 index 0000000..257f139 --- /dev/null +++ b/.github/workflows/extensive.yml @@ -0,0 +1,12 @@ +name: Extensive CI + +on: + push: + tags: + - '*' + paths: + - '.github/workflows/extensive.yml' + +jobs: + blackbox: + uses: innmind/github-workflows/.github/workflows/extensive.yml@main diff --git a/blackbox.php b/blackbox.php index 3785ad1..78fd2a0 100644 --- a/blackbox.php +++ b/blackbox.php @@ -10,6 +10,10 @@ }; Application::new($argv) + ->when( + \getenv('BLACKBOX_SET_SIZE') !== false, + static fn(Application $app) => $app->scenariiPerProof((int) \getenv('BLACKBOX_SET_SIZE')), + ) ->when( \getenv('ENABLE_COVERAGE') !== false, static fn(Application $app) => $app