diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 28758f0..48f2e45 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -6,14 +6,14 @@ body: id: package-version attributes: label: Package version - placeholder: '8.4.0' + placeholder: '8.5.0' validations: required: true - type: input id: php-version attributes: label: PHP version - placeholder: '8.4' + placeholder: '8.5' validations: required: true - type: textarea diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c54802c..ac1e365 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,7 +33,7 @@ jobs: versions: ${{ steps.php.outputs.versions }} steps: - # Each "8.N.x" branch targets exactly PHP 8.N; any other branch uses the 8.4 baseline. + # Each "8.N.x" branch targets exactly PHP 8.N; any other branch uses the 8.5 baseline. - name: Resolve PHP versions from branch id: php shell: bash @@ -43,7 +43,7 @@ jobs: if [[ "${BRANCH}" =~ ^8\.[0-9]+\.x$ ]]; then VERSIONS="[\"${BRANCH%.x}\"]" else - VERSIONS='["8.4"]' + VERSIONS='["8.5"]' fi echo "branch=${BRANCH} php=${VERSIONS}" diff --git a/CHANGELOG.md b/CHANGELOG.md index c8d3106..7cea0c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,18 @@ All notable changes to this project will be documented in this file. +## 8.5.1 - 2026-10-08 + +The `8.5.x` line now runs the rebuilt 8.x path engine, with results identical to `8.4.1`. **`8.5.0` still had the 2.x engine, so this patch changes results for `8.5.0` users**: every change listed under [8.0.0](#800---2026-10-08) applies. Read [UPGRADE.md](UPGRADE.md#from-850-to-851) before updating. + +### Changed + +- **Requires PHP `>=8.5 <8.6`** (`8.5.0` allowed `^8.5`). Use the `8.4.x` line on PHP 8.4. +- `dot()` accepts `null` and another `DotArray` again (`8.5.0` accepted arrays only). +- Requires `pharaonic/php-readable` `~8.5.0`, its PHP 8.5 line. +- PHPStan analyses against PHP 8.5, and CI falls back to PHP 8.5 on branches that are not an `8.N.x` line. +- PHPStan `^2.1.22` is required for development, the first release that analyses against PHP 8.5. + ## 8.4.1 - 2026-10-08 The `8.4.x` line now runs the rebuilt 8.x path engine, with results identical to `8.3.0`. **`8.4.0` still had the 2.x engine, so this patch changes results for `8.4.0` users**: every change listed under [8.0.0](#800---2026-10-08) applies. Read [UPGRADE.md](UPGRADE.md#from-840-to-841) before updating. diff --git a/README.md b/README.md index 10a0f3d..581cfd6 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@
-
+
diff --git a/SECURITY.md b/SECURITY.md
index 0cac4c4..cfdcd66 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -6,6 +6,7 @@ Security fixes are released for the latest version of each maintained release li
| Version | PHP | Supported |
|----------|-----|--------------------|
+| `8.5.x` | 8.5 | :white_check_mark: |
| `8.4.x` | 8.4 | :white_check_mark: |
| `8.3.x` | 8.3 | :white_check_mark: |
| `8.2.x` | 8.2 | :white_check_mark: |
diff --git a/UPGRADE.md b/UPGRADE.md
index b102fc4..0f7a1b0 100644
--- a/UPGRADE.md
+++ b/UPGRADE.md
@@ -8,25 +8,26 @@ To upgrade, install the line that matches your PHP version. Composer picks it fo
| Line | PHP | `pharaonic/php-readable` |
|---------|-----|--------------------------|
+| `8.5.x` | 8.5 | `~8.5.0` |
| `8.4.x` | 8.4 | `~8.4.0` |
| `8.3.x` | 8.3 | `~8.3.0` |
| `8.2.x` | 8.2 | `~8.2.0` |
| `8.1.x` | 8.1 | `~8.1.0` |
| `8.0.x` | 8.0 | `~8.0.1` |
-## From 8.4.0 to 8.4.1
+## From 8.5.0 to 8.5.1
-⚠️ `8.4.0` was released before the 8.x rebuild and still ran the 2.x engine. `8.4.1` is a patch release, so `composer update` installs it automatically, but it brings every result change listed in [From 2.x to 8.0](#from-2x-to-80). The API is the same. Review that section before updating, or pin `8.4.0` until you have:
+⚠️ `8.5.0` was released before the 8.x rebuild and still ran the 2.x engine. `8.5.1` is a patch release, so `composer update` installs it automatically, but it brings every result change listed in [From 2.x to 8.0](#from-2x-to-80). The API is the same. Review that section before updating, or pin `8.5.0` until you have:
```bash
-composer require pharaonic/php-dot-array:8.4.0
+composer require pharaonic/php-dot-array:8.5.0
```
-Differences from `8.4.0` that are not in the 2.x list:
+Differences from `8.5.0` that are not in the 2.x list:
-- `8.4.0` already deleted integer keys correctly, so section 10's `delete($int)` fix doesn't apply.
-- `dot()` accepts `null` and another `DotArray` again; `8.4.0` accepted arrays only.
-- PHP `>=8.4 <8.5` instead of `^8.4`. On PHP 8.5, Composer installs the `8.5.x` line.
+- `8.5.0` already deleted integer keys correctly, so section 10's `delete($int)` fix doesn't apply.
+- `dot()` accepts `null` and another `DotArray` again; `8.5.0` accepted arrays only.
+- PHP `>=8.5 <8.6` instead of `^8.5`.
## From 2.x to 8.0
diff --git a/composer.json b/composer.json
index c2e66c8..ae785a5 100644
--- a/composer.json
+++ b/composer.json
@@ -26,11 +26,11 @@
"security": "https://github.com/Pharaonic/php-dot-array/security/policy"
},
"require": {
- "php": ">=8.4 <8.5",
- "pharaonic/php-readable": "~8.4.0"
+ "php": ">=8.5 <8.6",
+ "pharaonic/php-readable": "~8.5.0"
},
"require-dev": {
- "phpstan/phpstan": "^2.1.18",
+ "phpstan/phpstan": "^2.1.22",
"phpunit/phpunit": "^12.0",
"squizlabs/php_codesniffer": "^3.13 || ^4.0"
},
diff --git a/docs/sections/02-installation.md b/docs/sections/02-installation.md
index cd2bca3..0ad9b61 100644
--- a/docs/sections/02-installation.md
+++ b/docs/sections/02-installation.md
@@ -4,9 +4,9 @@ Install the package with Composer. There is nothing to register or configure.
### Requirements
-- PHP 8.4.x (each `8.x` release line targets the matching PHP version)
+- PHP 8.5.x (each `8.x` release line targets the matching PHP version)
- `ext-mbstring`
-- `pharaonic/php-readable` ~8.4.0 (installed automatically)
+- `pharaonic/php-readable` ~8.5.0 (installed automatically)
### Composer Installation
diff --git a/docs/sections/09-upgrading.md b/docs/sections/09-upgrading.md
index 4738cba..dff5e2b 100644
--- a/docs/sections/09-upgrading.md
+++ b/docs/sections/09-upgrading.md
@@ -2,17 +2,17 @@
Each `8.N.x` line targets exactly one PHP version: `8.0.x` runs on PHP 8.0, `8.1.x` on PHP 8.1, and so on. Moving from one 8.x line to another never changes the public API or results, so no code changes are needed. Composer picks the line that matches your PHP version.
-## Upgrading from 8.4.0
+## Upgrading from 8.5.0
:::warning Patch with result changes
-`8.4.0` still ran the 2.x engine. `8.4.1` is a patch release, so `composer update` installs it automatically, but every change below applies. Review them first, or pin `8.4.0` with `composer require pharaonic/php-dot-array:8.4.0` until you have.
+`8.5.0` still ran the 2.x engine. `8.5.1` is a patch release, so `composer update` installs it automatically, but every change below applies. Review them first, or pin `8.5.0` with `composer require pharaonic/php-dot-array:8.5.0` until you have.
:::
## Upgrading from 2.x
{release.label} rebuilt the path engine. Every method and helper from 2.x still exists with the same parameters, and `delete()` still returns `bool`, but some results changed. Most of them were bugs.
-The full list, with before and after values for every change, is in [UPGRADE.md]({package.githubUrl}/blob/8.4.x/UPGRADE.md).
+The full list, with before and after values for every change, is in [UPGRADE.md]({package.githubUrl}/blob/8.5.x/UPGRADE.md).
### What Changed
diff --git a/phpstan.neon.dist b/phpstan.neon.dist
index eaca9e0..5a14d30 100644
--- a/phpstan.neon.dist
+++ b/phpstan.neon.dist
@@ -1,6 +1,6 @@
parameters:
level: max
- phpVersion: 80400
+ phpVersion: 80500
paths:
- src
- tests