diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 1ef3b2d..2c5664c 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -8,7 +8,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest, macOS-latest]
- php-version: ['8.1']
+ php-version: ['8.2', '8.3']
name: 'PHPUnit'
steps:
- name: Checkout
@@ -30,7 +30,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- php-version: ['8.1']
+ php-version: ['8.2', '8.3']
name: 'Psalm'
steps:
- name: Checkout
@@ -48,7 +48,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- php-version: ['8.1']
+ php-version: ['8.2']
name: 'CS'
steps:
- name: Checkout
diff --git a/.gitignore b/.gitignore
index e96516b..7330583 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
composer.lock
vendor
.phpunit.result.cache
+.phpunit.cache
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..f14dced
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,11 @@
+# Changelog
+
+## 3.1.0 - 2023-09-16
+
+### Added
+
+- Support for `innmind/immutable` `5`
+
+### Removed
+
+- Support for PHP `8.1`
diff --git a/composer.json b/composer.json
index 1ec2510..30dc0b2 100644
--- a/composer.json
+++ b/composer.json
@@ -15,9 +15,9 @@
"issues": "http://github.com/Innmind/UrlTemplate/issues"
},
"require": {
- "php": "~8.1",
+ "php": "~8.2",
"innmind/url": "~4.1",
- "innmind/immutable": "~4.3"
+ "innmind/immutable": "~4.3|~5.0"
},
"autoload": {
"psr-4": {
@@ -30,9 +30,9 @@
}
},
"require-dev": {
- "phpunit/phpunit": "~9.0",
- "vimeo/psalm": "~4.4",
- "innmind/black-box": "^4.16",
+ "phpunit/phpunit": "~10.2",
+ "vimeo/psalm": "~5.12",
+ "innmind/black-box": "~5.5",
"innmind/coding-standard": "~2.0"
}
}
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
index 51d31c5..034d8fd 100644
--- a/phpunit.xml.dist
+++ b/phpunit.xml.dist
@@ -1,6 +1,16 @@
-
-
+
+
+
+
+
+
+
+
+ ./tests
+
+
+
.
@@ -8,10 +18,5 @@
./tests
./vendor
-
-
-
- ./tests
-
-
+
diff --git a/psalm.xml b/psalm.xml
index 3240886..510148d 100644
--- a/psalm.xml
+++ b/psalm.xml
@@ -2,6 +2,8 @@
+ */
return Maybe::just($value)
->filter($expansion->matchesLimit(...))
->map($expansion->clean(...))
diff --git a/tests/Expression/Level4/CompositeTest.php b/tests/Expression/Level4/CompositeTest.php
index a57b5d9..b370291 100644
--- a/tests/Expression/Level4/CompositeTest.php
+++ b/tests/Expression/Level4/CompositeTest.php
@@ -167,7 +167,7 @@ public function testRegex()
);
}
- public function cases(): array
+ public static function cases(): array
{
return [
['{var,hello}', 'value,Hello%20World%21'],
diff --git a/tests/ExpressionsTest.php b/tests/ExpressionsTest.php
index 0ffb298..8da5dd7 100644
--- a/tests/ExpressionsTest.php
+++ b/tests/ExpressionsTest.php
@@ -42,7 +42,7 @@ public function testReturnNothingWhenInvalidPattern()
));
}
- public function cases(): array
+ public static function cases(): array
{
return [
['{foo}', Level4::class],
diff --git a/tests/TemplateTest.php b/tests/TemplateTest.php
index c70004b..0840cde 100644
--- a/tests/TemplateTest.php
+++ b/tests/TemplateTest.php
@@ -422,7 +422,7 @@ public function testNoNeedToEscapeSpecialRegexCharactersInTheUrl()
$this->assertFalse($template->matches(Url::of('/f')));
}
- public function cases(): array
+ public static function cases(): array
{
return [
['http://example.com{/list*}{?keys*}', 'http://example.com/red/green/blue?semi=%3B&dot=.&comma=%2C'],