From e1db052797286d2f3a7d6dc4f097390a1c9b5937 Mon Sep 17 00:00:00 2001 From: "K. Adam White" Date: Tue, 7 Apr 2026 11:17:46 -0400 Subject: [PATCH 01/20] Update PHP matrix to PHP 8.2+/WP6.9 Removes deprecated PHP versions Updates to latest stable WordPress --- .github/workflows/php-standards.yml | 2 +- .github/workflows/test-nightly.yml | 5 ++--- .github/workflows/test.yml | 9 ++++----- composer.json | 6 +++--- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/.github/workflows/php-standards.yml b/.github/workflows/php-standards.yml index ab40138a..0e813fbc 100644 --- a/.github/workflows/php-standards.yml +++ b/.github/workflows/php-standards.yml @@ -19,7 +19,7 @@ jobs: - name: Install PHP uses: shivammathur/setup-php@v2 with: - php-version: '7.4' + php-version: '8.2' coverage: none - name: Debugging diff --git a/.github/workflows/test-nightly.yml b/.github/workflows/test-nightly.yml index 506fec2a..1279e6d6 100644 --- a/.github/workflows/test-nightly.yml +++ b/.github/workflows/test-nightly.yml @@ -10,11 +10,10 @@ jobs: strategy: matrix: php: - - '7.4' - - '8.0' - - '8.1' - '8.2' - '8.3' + - '8.4' + - '8.5' fail-fast: false name: WP nightly / PHP ${{ matrix.php }} runs-on: ubuntu-24.04 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 241bff2d..8fc4ccef 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -13,13 +13,12 @@ jobs: strategy: matrix: php: - - '7.4' - - '8.0' - - '8.1' - '8.2' - '8.3' + - '8.4' + - '8.5' fail-fast: false - name: WP 6.6 / PHP ${{ matrix.php }} + name: WP 6.9 / PHP ${{ matrix.php }} runs-on: ubuntu-24.04 steps: - name: Checkout repository @@ -50,7 +49,7 @@ jobs: uses: actions/cache@v4 with: path: ${{ steps.composer-cache-dir.outputs.dir }} - key: ${{ runner.os }}-composer-${{ matrix.php }}-${{ hashFiles('composer.lock') }}-wp6.6 + key: ${{ runner.os }}-composer-${{ matrix.php }}-${{ hashFiles('composer.lock') }}-wp6.9 - name: Install PHP Dependencies run: | diff --git a/composer.json b/composer.json index 2fc27feb..f8c57c55 100644 --- a/composer.json +++ b/composer.json @@ -4,7 +4,7 @@ "license": "GPL-3.0-or-later", "type": "wordpress-plugin", "require": { - "php": ">=7.2", + "php": ">=8.2", "composer/installers": "^1.0 || ^2.0", "humanmade/asset-loader": "^0.5.0 || ^0.6.1" }, @@ -16,7 +16,7 @@ "phpcompatibility/phpcompatibility-wp": "2.1.0", "phpstan/phpstan": "0.12.57", "phpunit/phpunit": "^9.5.20", - "roots/wordpress": "~6.6.0", + "roots/wordpress": "~6.9.0", "szepeviktor/phpstan-wordpress": "0.7.1", "vlucas/phpdotenv": "^3", "wp-cli/db-command": "^2", @@ -37,7 +37,7 @@ "roots/wordpress-core-installer": true }, "platform": { - "php": "7.4" + "php": "8.2" }, "preferred-install": "dist", "sort-packages": true From fa5edd8d4ca91d747c55e02a61137925d52d48a4 Mon Sep 17 00:00:00 2001 From: "K. Adam White" Date: Tue, 7 Apr 2026 11:18:14 -0400 Subject: [PATCH 02/20] composer update --- composer.lock | 1031 ++++++++++++++++++++++++++----------------------- 1 file changed, 543 insertions(+), 488 deletions(-) diff --git a/composer.lock b/composer.lock index cb73baf1..ff7dfb2e 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ac27ef853c1982af09cae5ac6f0d19e0", + "content-hash": "bf384b8ee9291ff65990c370bf2bc9de", "packages": [ { "name": "composer/installers", @@ -314,30 +314,30 @@ }, { "name": "doctrine/instantiator", - "version": "1.5.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", - "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^9 || ^11", + "doctrine/coding-standard": "^11", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^0.16 || ^1", - "phpstan/phpstan": "^1.4", - "phpstan/phpstan-phpunit": "^1", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.30 || ^5.4" + "phpbench/phpbench": "^1.2", + "phpstan/phpstan": "^1.9.4", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5.27", + "vimeo/psalm": "^5.4" }, "type": "library", "autoload": { @@ -364,7 +364,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.5.0" + "source": "https://github.com/doctrine/instantiator/tree/2.0.0" }, "funding": [ { @@ -380,53 +380,60 @@ "type": "tidelift" } ], - "time": "2022-12-30T00:15:36+00:00" + "time": "2022-12-30T00:23:10+00:00" }, { "name": "ergebnis/composer-normalize", - "version": "2.43.0", + "version": "2.50.0", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "4b46330c84bb8f43fac79f5c5a05162fc7c80d75" + "reference": "80971fe24ff10709789942bcbe9368b2c704097c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/4b46330c84bb8f43fac79f5c5a05162fc7c80d75", - "reference": "4b46330c84bb8f43fac79f5c5a05162fc7c80d75", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/80971fe24ff10709789942bcbe9368b2c704097c", + "reference": "80971fe24ff10709789942bcbe9368b2c704097c", "shasum": "" }, "require": { "composer-plugin-api": "^2.0.0", - "ergebnis/json": "^1.2.0", - "ergebnis/json-normalizer": "^4.5.0", - "ergebnis/json-printer": "^3.5.0", + "ergebnis/json": "^1.4.0", + "ergebnis/json-normalizer": "^4.9.0", + "ergebnis/json-printer": "^3.7.0", "ext-json": "*", - "justinrainbow/json-schema": "^5.2.12", - "localheinz/diff": "^1.1.1", - "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" + "justinrainbow/json-schema": "^5.2.12 || ^6.0.0", + "localheinz/diff": "^1.3.0", + "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" }, "require-dev": { - "composer/composer": "^2.7.7", - "ergebnis/license": "^2.4.0", - "ergebnis/php-cs-fixer-config": "^6.30.1", - "ergebnis/phpunit-slow-test-detector": "^2.14.0", - "fakerphp/faker": "^1.23.1", - "infection/infection": "~0.26.6", - "phpunit/phpunit": "^9.6.19", - "psalm/plugin-phpunit": "~0.19.0", - "rector/rector": "^1.1.0", - "symfony/filesystem": "^5.4.40", - "vimeo/psalm": "^5.24.0" + "composer/composer": "^2.9.4", + "ergebnis/license": "^2.7.0", + "ergebnis/php-cs-fixer-config": "^6.59.0", + "ergebnis/phpstan-rules": "^2.13.1", + "ergebnis/phpunit-slow-test-detector": "^2.20.0", + "ergebnis/rector-rules": "^1.9.0", + "fakerphp/faker": "^1.24.1", + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^2.1.38", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpstan/phpstan-phpunit": "^2.0.12", + "phpstan/phpstan-strict-rules": "^2.0.8", + "phpunit/phpunit": "^9.6.33", + "rector/rector": "^2.3.5", + "symfony/filesystem": "^5.4.41" }, "type": "composer-plugin", "extra": { "class": "Ergebnis\\Composer\\Normalize\\NormalizePlugin", + "branch-alias": { + "dev-main": "2.49-dev" + }, + "plugin-optional": true, "composer-normalize": { "indent-size": 2, "indent-style": "space" - }, - "plugin-optional": true + } }, "autoload": { "psr-4": { @@ -457,40 +464,48 @@ "security": "https://github.com/ergebnis/composer-normalize/blob/main/.github/SECURITY.md", "source": "https://github.com/ergebnis/composer-normalize" }, - "time": "2024-06-16T13:22:18+00:00" + "time": "2026-02-09T20:57:47+00:00" }, { "name": "ergebnis/json", - "version": "1.2.0", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/ergebnis/json.git", - "reference": "a457f25a5ba7ea11fc94f84d53678c5211abfce0" + "reference": "7b56d2b5d9e897e75b43e2e753075a0904c921b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json/zipball/a457f25a5ba7ea11fc94f84d53678c5211abfce0", - "reference": "a457f25a5ba7ea11fc94f84d53678c5211abfce0", + "url": "https://api.github.com/repos/ergebnis/json/zipball/7b56d2b5d9e897e75b43e2e753075a0904c921b1", + "reference": "7b56d2b5d9e897e75b43e2e753075a0904c921b1", "shasum": "" }, "require": { "ext-json": "*", - "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" + "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" }, "require-dev": { - "ergebnis/data-provider": "^3.2.0", - "ergebnis/license": "^2.4.0", - "ergebnis/php-cs-fixer-config": "^6.20.0", - "ergebnis/phpunit-slow-test-detector": "^2.9.0", - "fakerphp/faker": "^1.23.1", + "ergebnis/composer-normalize": "^2.44.0", + "ergebnis/data-provider": "^3.3.0", + "ergebnis/license": "^2.5.0", + "ergebnis/php-cs-fixer-config": "^6.37.0", + "ergebnis/phpstan-rules": "^2.11.0", + "ergebnis/phpunit-slow-test-detector": "^2.16.1", + "fakerphp/faker": "^1.24.0", "infection/infection": "~0.26.6", - "phpunit/phpunit": "^9.6.16", - "psalm/plugin-phpunit": "~0.18.4", - "rector/rector": "~0.19.2", - "vimeo/psalm": "^5.20.0" + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^2.1.22", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpstan/phpstan-phpunit": "^2.0.7", + "phpstan/phpstan-strict-rules": "^2.0.6", + "phpunit/phpunit": "^9.6.24", + "rector/rector": "^2.1.4" }, "type": "library", "extra": { + "branch-alias": { + "dev-main": "1.7-dev" + }, "composer-normalize": { "indent-size": 2, "indent-style": "space" @@ -522,20 +537,20 @@ "security": "https://github.com/ergebnis/json/blob/main/.github/SECURITY.md", "source": "https://github.com/ergebnis/json" }, - "time": "2024-01-29T15:09:24+00:00" + "time": "2025-09-06T09:08:45+00:00" }, { "name": "ergebnis/json-normalizer", - "version": "4.5.0", + "version": "4.10.1", "source": { "type": "git", "url": "https://github.com/ergebnis/json-normalizer.git", - "reference": "f0ee9e70739f121b27fac8b743e4a52b23de2152" + "reference": "77961faf2c651c3f05977b53c6c68e8434febf62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/f0ee9e70739f121b27fac8b743e4a52b23de2152", - "reference": "f0ee9e70739f121b27fac8b743e4a52b23de2152", + "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/77961faf2c651c3f05977b53c6c68e8434febf62", + "reference": "77961faf2c651c3f05977b53c6c68e8434febf62", "shasum": "" }, "require": { @@ -544,26 +559,39 @@ "ergebnis/json-printer": "^3.5.0", "ergebnis/json-schema-validator": "^4.2.0", "ext-json": "*", - "justinrainbow/json-schema": "^5.2.12", - "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" + "justinrainbow/json-schema": "^5.2.12 || ^6.0.0", + "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" }, "require-dev": { - "composer/semver": "^3.4.0", - "ergebnis/data-provider": "^3.2.0", - "ergebnis/license": "^2.4.0", - "ergebnis/php-cs-fixer-config": "^6.20.0", - "ergebnis/phpunit-slow-test-detector": "^2.9.0", - "fakerphp/faker": "^1.23.1", + "composer/semver": "^3.4.3", + "ergebnis/composer-normalize": "^2.44.0", + "ergebnis/data-provider": "^3.3.0", + "ergebnis/license": "^2.5.0", + "ergebnis/php-cs-fixer-config": "^6.37.0", + "ergebnis/phpunit-slow-test-detector": "^2.16.1", + "fakerphp/faker": "^1.24.0", "infection/infection": "~0.26.6", - "phpunit/phpunit": "^9.6.16", - "psalm/plugin-phpunit": "~0.18.4", - "rector/rector": "~0.19.4", - "vimeo/psalm": "^5.20.0" + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^1.12.10", + "phpstan/phpstan-deprecation-rules": "^1.2.1", + "phpstan/phpstan-phpunit": "^1.4.0", + "phpstan/phpstan-strict-rules": "^1.6.1", + "phpunit/phpunit": "^9.6.19", + "rector/rector": "^1.2.10" }, "suggest": { "composer/semver": "If you want to use ComposerJsonNormalizer or VersionConstraintNormalizer" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.11-dev" + }, + "composer-normalize": { + "indent-size": 2, + "indent-style": "space" + } + }, "autoload": { "psr-4": { "Ergebnis\\Json\\Normalizer\\": "src/" @@ -591,39 +619,48 @@ "security": "https://github.com/ergebnis/json-normalizer/blob/main/.github/SECURITY.md", "source": "https://github.com/ergebnis/json-normalizer" }, - "time": "2024-01-30T09:10:15+00:00" + "time": "2025-09-06T09:18:13+00:00" }, { "name": "ergebnis/json-pointer", - "version": "3.4.0", + "version": "3.8.0", "source": { "type": "git", "url": "https://github.com/ergebnis/json-pointer.git", - "reference": "b654757d873050622c2166f55ab25d04685261c5" + "reference": "b58c3c468a7ff109fdf9a255f17de29ecbe5276c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-pointer/zipball/b654757d873050622c2166f55ab25d04685261c5", - "reference": "b654757d873050622c2166f55ab25d04685261c5", + "url": "https://api.github.com/repos/ergebnis/json-pointer/zipball/b58c3c468a7ff109fdf9a255f17de29ecbe5276c", + "reference": "b58c3c468a7ff109fdf9a255f17de29ecbe5276c", "shasum": "" }, "require": { - "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" + "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" }, "require-dev": { - "ergebnis/data-provider": "^3.2.0", - "ergebnis/license": "^2.4.0", - "ergebnis/php-cs-fixer-config": "^6.20.0", - "ergebnis/phpunit-slow-test-detector": "^2.9.0", - "fakerphp/faker": "^1.23.1", + "ergebnis/composer-normalize": "^2.50.0", + "ergebnis/data-provider": "^3.6.0", + "ergebnis/license": "^2.7.0", + "ergebnis/php-cs-fixer-config": "^6.60.2", + "ergebnis/phpstan-rules": "^2.13.1", + "ergebnis/phpunit-slow-test-detector": "^2.24.0", + "ergebnis/rector-rules": "^1.16.0", + "fakerphp/faker": "^1.24.1", "infection/infection": "~0.26.6", - "phpunit/phpunit": "^9.6.16", - "psalm/plugin-phpunit": "~0.18.4", - "rector/rector": "~0.19.2", - "vimeo/psalm": "^5.20.0" + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^2.1.46", + "phpstan/phpstan-deprecation-rules": "^2.0.4", + "phpstan/phpstan-phpunit": "^2.0.16", + "phpstan/phpstan-strict-rules": "^2.0.10", + "phpunit/phpunit": "^9.6.34", + "rector/rector": "^2.4.0" }, "type": "library", "extra": { + "branch-alias": { + "dev-main": "3.8-dev" + }, "composer-normalize": { "indent-size": 2, "indent-style": "space" @@ -657,40 +694,53 @@ "security": "https://github.com/ergebnis/json-pointer/blob/main/.github/SECURITY.md", "source": "https://github.com/ergebnis/json-pointer" }, - "time": "2024-01-29T16:37:15+00:00" + "time": "2026-04-07T14:52:13+00:00" }, { "name": "ergebnis/json-printer", - "version": "3.5.0", + "version": "3.8.1", "source": { "type": "git", "url": "https://github.com/ergebnis/json-printer.git", - "reference": "549e16fe6de34b8c3aee7b421be12caa552f3ced" + "reference": "211d73fc7ec6daf98568ee6ed6e6d133dee8503e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-printer/zipball/549e16fe6de34b8c3aee7b421be12caa552f3ced", - "reference": "549e16fe6de34b8c3aee7b421be12caa552f3ced", + "url": "https://api.github.com/repos/ergebnis/json-printer/zipball/211d73fc7ec6daf98568ee6ed6e6d133dee8503e", + "reference": "211d73fc7ec6daf98568ee6ed6e6d133dee8503e", "shasum": "" }, "require": { "ext-json": "*", "ext-mbstring": "*", - "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" + "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" }, "require-dev": { - "ergebnis/data-provider": "^3.2.0", - "ergebnis/license": "^2.4.0", - "ergebnis/php-cs-fixer-config": "^6.20.0", - "ergebnis/phpunit-slow-test-detector": "^2.9.0", - "fakerphp/faker": "^1.23.1", + "ergebnis/composer-normalize": "^2.44.0", + "ergebnis/data-provider": "^3.3.0", + "ergebnis/license": "^2.5.0", + "ergebnis/php-cs-fixer-config": "^6.37.0", + "ergebnis/phpunit-slow-test-detector": "^2.16.1", + "fakerphp/faker": "^1.24.0", "infection/infection": "~0.26.6", - "phpunit/phpunit": "^9.6.16", - "psalm/plugin-phpunit": "~0.18.4", - "rector/rector": "~0.19.2", - "vimeo/psalm": "^5.20.0" + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^1.12.10", + "phpstan/phpstan-deprecation-rules": "^1.2.1", + "phpstan/phpstan-phpunit": "^1.4.1", + "phpstan/phpstan-strict-rules": "^1.6.1", + "phpunit/phpunit": "^9.6.21", + "rector/rector": "^1.2.10" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.9-dev" + }, + "composer-normalize": { + "indent-size": 2, + "indent-style": "space" + } + }, "autoload": { "psr-4": { "Ergebnis\\Json\\Printer\\": "src/" @@ -719,43 +769,50 @@ "security": "https://github.com/ergebnis/json-printer/blob/main/.github/SECURITY.md", "source": "https://github.com/ergebnis/json-printer" }, - "time": "2024-01-29T15:33:37+00:00" + "time": "2025-09-06T09:59:26+00:00" }, { "name": "ergebnis/json-schema-validator", - "version": "4.2.0", + "version": "4.5.1", "source": { "type": "git", "url": "https://github.com/ergebnis/json-schema-validator.git", - "reference": "10ed514fdc3f9b71f8a92c567afea21a2f6fa1ef" + "reference": "b739527a480a9e3651360ad351ea77e7e9019df2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-schema-validator/zipball/10ed514fdc3f9b71f8a92c567afea21a2f6fa1ef", - "reference": "10ed514fdc3f9b71f8a92c567afea21a2f6fa1ef", + "url": "https://api.github.com/repos/ergebnis/json-schema-validator/zipball/b739527a480a9e3651360ad351ea77e7e9019df2", + "reference": "b739527a480a9e3651360ad351ea77e7e9019df2", "shasum": "" }, "require": { "ergebnis/json": "^1.2.0", "ergebnis/json-pointer": "^3.4.0", "ext-json": "*", - "justinrainbow/json-schema": "^5.2.12", - "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" + "justinrainbow/json-schema": "^5.2.12 || ^6.0.0", + "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" }, "require-dev": { - "ergebnis/data-provider": "^3.2.0", - "ergebnis/license": "^2.4.0", - "ergebnis/php-cs-fixer-config": "^6.20.0", - "ergebnis/phpunit-slow-test-detector": "^2.9.0", - "fakerphp/faker": "^1.23.1", + "ergebnis/composer-normalize": "^2.44.0", + "ergebnis/data-provider": "^3.3.0", + "ergebnis/license": "^2.5.0", + "ergebnis/php-cs-fixer-config": "^6.37.0", + "ergebnis/phpunit-slow-test-detector": "^2.16.1", + "fakerphp/faker": "^1.24.0", "infection/infection": "~0.26.6", - "phpunit/phpunit": "^9.6.16", - "psalm/plugin-phpunit": "~0.18.4", - "rector/rector": "~0.19.2", - "vimeo/psalm": "^5.20.0" + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^1.12.10", + "phpstan/phpstan-deprecation-rules": "^1.2.1", + "phpstan/phpstan-phpunit": "^1.4.0", + "phpstan/phpstan-strict-rules": "^1.6.1", + "phpunit/phpunit": "^9.6.20", + "rector/rector": "^1.2.10" }, "type": "library", "extra": { + "branch-alias": { + "dev-main": "4.6-dev" + }, "composer-normalize": { "indent-size": 2, "indent-style": "space" @@ -789,7 +846,7 @@ "security": "https://github.com/ergebnis/json-schema-validator/blob/main/.github/SECURITY.md", "source": "https://github.com/ergebnis/json-schema-validator" }, - "time": "2024-01-29T16:50:15+00:00" + "time": "2025-09-06T11:37:35+00:00" }, { "name": "fig-r/psr2r-sniffer", @@ -847,7 +904,7 @@ "source": { "type": "git", "url": "https://github.com/humanmade/coding-standards", - "reference": "a13a172c6d3b73c7388322d57eecc8d7a50a56b1" + "reference": "4f4efa86e9e4b9b3174decb47ecd0bdfddb51b2b" }, "require": { "automattic/vipwpcs": "~3.0.0", @@ -871,34 +928,44 @@ "GPL-2.0-or-later" ], "description": "Human Made Coding Standards", - "time": "2025-09-19T19:48:05+00:00" + "time": "2026-04-06T19:35:35+00:00" }, { "name": "justinrainbow/json-schema", - "version": "5.3.0", + "version": "6.8.0", "source": { "type": "git", "url": "https://github.com/jsonrainbow/json-schema.git", - "reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8" + "reference": "89ac92bcfe5d0a8a4433c7b89d394553ae7250cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8", - "reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8", + "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/89ac92bcfe5d0a8a4433c7b89d394553ae7250cc", + "reference": "89ac92bcfe5d0a8a4433c7b89d394553ae7250cc", "shasum": "" }, "require": { - "php": ">=7.1" + "ext-json": "*", + "marc-mabe/php-enum": "^4.4", + "php": "^7.2 || ^8.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", - "json-schema/json-schema-test-suite": "1.2.0", - "phpunit/phpunit": "^4.8.35" + "friendsofphp/php-cs-fixer": "3.3.0", + "json-schema/json-schema-test-suite": "^23.2", + "marc-mabe/php-enum-phpstan": "^2.0", + "phpspec/prophecy": "^1.19", + "phpstan/phpstan": "^1.12", + "phpunit/phpunit": "^8.5" }, "bin": [ "bin/validate-json" ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.x-dev" + } + }, "autoload": { "psr-4": { "JsonSchema\\": "src/JsonSchema/" @@ -927,36 +994,36 @@ } ], "description": "A library to validate a json schema.", - "homepage": "https://github.com/justinrainbow/json-schema", + "homepage": "https://github.com/jsonrainbow/json-schema", "keywords": [ "json", "schema" ], "support": { "issues": "https://github.com/jsonrainbow/json-schema/issues", - "source": "https://github.com/jsonrainbow/json-schema/tree/5.3.0" + "source": "https://github.com/jsonrainbow/json-schema/tree/6.8.0" }, - "time": "2024-07-06T21:00:26+00:00" + "time": "2026-04-02T12:43:11+00:00" }, { "name": "localheinz/diff", - "version": "1.1.1", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/localheinz/diff.git", - "reference": "851bb20ea8358c86f677f5f111c4ab031b1c764c" + "reference": "33bd840935970cda6691c23fc7d94ae764c0734c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/localheinz/diff/zipball/851bb20ea8358c86f677f5f111c4ab031b1c764c", - "reference": "851bb20ea8358c86f677f5f111c4ab031b1c764c", + "url": "https://api.github.com/repos/localheinz/diff/zipball/33bd840935970cda6691c23fc7d94ae764c0734c", + "reference": "33bd840935970cda6691c23fc7d94ae764c0734c", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" }, "require-dev": { - "phpunit/phpunit": "^7.5 || ^8.0", + "phpunit/phpunit": "^7.5.0 || ^8.5.23", "symfony/process": "^4.2 || ^5" }, "type": "library", @@ -988,78 +1055,96 @@ "unified diff" ], "support": { - "source": "https://github.com/localheinz/diff/tree/main" + "issues": "https://github.com/localheinz/diff/issues", + "source": "https://github.com/localheinz/diff/tree/1.3.0" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-07-06T04:49:32+00:00" + "time": "2025-08-30T09:44:18+00:00" }, { - "name": "mustache/mustache", - "version": "v2.14.2", + "name": "marc-mabe/php-enum", + "version": "v4.7.2", "source": { "type": "git", - "url": "https://github.com/bobthecow/mustache.php.git", - "reference": "e62b7c3849d22ec55f3ec425507bf7968193a6cb" + "url": "https://github.com/marc-mabe/php-enum.git", + "reference": "bb426fcdd65c60fb3638ef741e8782508fda7eef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/mustache.php/zipball/e62b7c3849d22ec55f3ec425507bf7968193a6cb", - "reference": "e62b7c3849d22ec55f3ec425507bf7968193a6cb", + "url": "https://api.github.com/repos/marc-mabe/php-enum/zipball/bb426fcdd65c60fb3638ef741e8782508fda7eef", + "reference": "bb426fcdd65c60fb3638ef741e8782508fda7eef", "shasum": "" }, "require": { - "php": ">=5.2.4" + "ext-reflection": "*", + "php": "^7.1 | ^8.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "~1.11", - "phpunit/phpunit": "~3.7|~4.0|~5.0" + "phpbench/phpbench": "^0.16.10 || ^1.0.4", + "phpstan/phpstan": "^1.3.1", + "phpunit/phpunit": "^7.5.20 | ^8.5.22 | ^9.5.11", + "vimeo/psalm": "^4.17.0 | ^5.26.1" }, "type": "library", - "autoload": { - "psr-0": { - "Mustache": "src/" + "extra": { + "branch-alias": { + "dev-3.x": "3.2-dev", + "dev-master": "4.7-dev" } }, + "autoload": { + "psr-4": { + "MabeEnum\\": "src/" + }, + "classmap": [ + "stubs/Stringable.php" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Justin Hileman", - "email": "justin@justinhileman.info", - "homepage": "http://justinhileman.com" + "name": "Marc Bennewitz", + "email": "dev@mabe.berlin", + "homepage": "https://mabe.berlin/", + "role": "Lead" } ], - "description": "A Mustache implementation in PHP.", - "homepage": "https://github.com/bobthecow/mustache.php", + "description": "Simple and fast implementation of enumerations with native PHP", + "homepage": "https://github.com/marc-mabe/php-enum", "keywords": [ - "mustache", - "templating" + "enum", + "enum-map", + "enum-set", + "enumeration", + "enumerator", + "enummap", + "enumset", + "map", + "set", + "type", + "type-hint", + "typehint" ], "support": { - "issues": "https://github.com/bobthecow/mustache.php/issues", - "source": "https://github.com/bobthecow/mustache.php/tree/v2.14.2" + "issues": "https://github.com/marc-mabe/php-enum/issues", + "source": "https://github.com/marc-mabe/php-enum/tree/v4.7.2" }, - "time": "2022-08-23T13:07:01+00:00" + "time": "2025-09-14T11:18:39+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.12.0", + "version": "1.13.4", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", "shasum": "" }, "require": { @@ -1098,7 +1183,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" }, "funding": [ { @@ -1106,20 +1191,20 @@ "type": "tidelift" } ], - "time": "2024-06-12T14:39:25+00:00" + "time": "2025-08-01T08:46:24+00:00" }, { "name": "nikic/php-parser", - "version": "v5.1.0", + "version": "v5.7.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1" + "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/683130c2ff8c2739f4822ff7ac5c873ec529abd1", - "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82", + "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82", "shasum": "" }, "require": { @@ -1138,7 +1223,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-master": "5.x-dev" } }, "autoload": { @@ -1162,9 +1247,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.1.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0" }, - "time": "2024-07-01T20:03:41+00:00" + "time": "2025-12-06T11:56:16+00:00" }, { "name": "phar-io/manifest", @@ -1700,16 +1785,16 @@ }, { "name": "phpoption/phpoption", - "version": "1.9.3", + "version": "1.9.5", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54" + "reference": "75365b91986c2405cf5e1e012c5595cd487a98be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54", - "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/75365b91986c2405cf5e1e012c5595cd487a98be", + "reference": "75365b91986c2405cf5e1e012c5595cd487a98be", "shasum": "" }, "require": { @@ -1717,7 +1802,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" + "phpunit/phpunit": "^8.5.44 || ^9.6.25 || ^10.5.53 || ^11.5.34" }, "type": "library", "extra": { @@ -1759,7 +1844,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.9.3" + "source": "https://github.com/schmittjoh/php-option/tree/1.9.5" }, "funding": [ { @@ -1771,7 +1856,7 @@ "type": "tidelift" } ], - "time": "2024-07-20T21:41:07+00:00" + "time": "2025-12-27T19:41:33+00:00" }, { "name": "phpstan/phpstan", @@ -1835,35 +1920,35 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.31", + "version": "9.2.32", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965" + "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/48c34b5d8d983006bd2adc2d0de92963b9155965", - "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5", + "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.18 || ^5.0", + "nikic/php-parser": "^4.19.1 || ^5.1.0", "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.3", - "phpunit/php-text-template": "^2.0.2", - "sebastian/code-unit-reverse-lookup": "^2.0.2", - "sebastian/complexity": "^2.0", - "sebastian/environment": "^5.1.2", - "sebastian/lines-of-code": "^1.0.3", - "sebastian/version": "^3.0.1", - "theseer/tokenizer": "^1.2.0" + "phpunit/php-file-iterator": "^3.0.6", + "phpunit/php-text-template": "^2.0.4", + "sebastian/code-unit-reverse-lookup": "^2.0.3", + "sebastian/complexity": "^2.0.3", + "sebastian/environment": "^5.1.5", + "sebastian/lines-of-code": "^1.0.4", + "sebastian/version": "^3.0.2", + "theseer/tokenizer": "^1.2.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^9.6" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -1872,7 +1957,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.2-dev" + "dev-main": "9.2.x-dev" } }, "autoload": { @@ -1901,7 +1986,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.31" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.32" }, "funding": [ { @@ -1909,7 +1994,7 @@ "type": "github" } ], - "time": "2024-03-02T06:37:42+00:00" + "time": "2024-08-22T04:23:01+00:00" }, { "name": "phpunit/php-file-iterator", @@ -2154,16 +2239,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.20", + "version": "9.6.34", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "49d7820565836236411f5dc002d16dd689cde42f" + "reference": "b36f02317466907a230d3aa1d34467041271ef4a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/49d7820565836236411f5dc002d16dd689cde42f", - "reference": "49d7820565836236411f5dc002d16dd689cde42f", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b36f02317466907a230d3aa1d34467041271ef4a", + "reference": "b36f02317466907a230d3aa1d34467041271ef4a", "shasum": "" }, "require": { @@ -2174,22 +2259,22 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.12.0", + "myclabs/deep-copy": "^1.13.4", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.31", + "phpunit/php-code-coverage": "^9.2.32", "phpunit/php-file-iterator": "^3.0.6", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.4", "phpunit/php-timer": "^5.0.3", "sebastian/cli-parser": "^1.0.2", "sebastian/code-unit": "^1.0.8", - "sebastian/comparator": "^4.0.8", + "sebastian/comparator": "^4.0.10", "sebastian/diff": "^4.0.6", "sebastian/environment": "^5.1.5", - "sebastian/exporter": "^4.0.6", - "sebastian/global-state": "^5.0.7", + "sebastian/exporter": "^4.0.8", + "sebastian/global-state": "^5.0.8", "sebastian/object-enumerator": "^4.0.4", "sebastian/resource-operations": "^3.0.4", "sebastian/type": "^3.2.1", @@ -2237,7 +2322,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.20" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.34" }, "funding": [ { @@ -2248,29 +2333,37 @@ "url": "https://github.com/sebastianbergmann", "type": "github" }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, { "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", "type": "tidelift" } ], - "time": "2024-07-10T11:45:39+00:00" + "time": "2026-01-27T05:45:00+00:00" }, { "name": "roots/wordpress", - "version": "6.6.1", + "version": "6.9.4", "source": { "type": "git", "url": "https://github.com/roots/wordpress.git", - "reference": "1bdabdb9171ac5323edbf4792ce353d475467d27" + "reference": "2fa44383ade9e8ccbb986e95ca70a365c8221eb1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/roots/wordpress/zipball/1bdabdb9171ac5323edbf4792ce353d475467d27", - "reference": "1bdabdb9171ac5323edbf4792ce353d475467d27", + "url": "https://api.github.com/repos/roots/wordpress/zipball/2fa44383ade9e8ccbb986e95ca70a365c8221eb1", + "reference": "2fa44383ade9e8ccbb986e95ca70a365c8221eb1", "shasum": "" }, "require": { - "roots/wordpress-core-installer": "^1.0.0", + "roots/wordpress-core-installer": "^3.0", "roots/wordpress-no-content": "self.version" }, "type": "metapackage", @@ -2288,7 +2381,7 @@ ], "support": { "issues": "https://github.com/roots/wordpress/issues", - "source": "https://github.com/roots/wordpress/tree/6.6.1" + "source": "https://github.com/roots/wordpress/tree/6.9.4" }, "funding": [ { @@ -2296,25 +2389,25 @@ "type": "github" } ], - "time": "2024-07-16T12:03:00+00:00" + "time": "2026-03-09T19:47:29+00:00" }, { "name": "roots/wordpress-core-installer", - "version": "1.100.0", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/roots/wordpress-core-installer.git", - "reference": "73f8488e5178c5d54234b919f823a9095e2b1847" + "reference": "714d2e2a9e523f6e7bde4810d5a04aedf0ec217f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/roots/wordpress-core-installer/zipball/73f8488e5178c5d54234b919f823a9095e2b1847", - "reference": "73f8488e5178c5d54234b919f823a9095e2b1847", + "url": "https://api.github.com/repos/roots/wordpress-core-installer/zipball/714d2e2a9e523f6e7bde4810d5a04aedf0ec217f", + "reference": "714d2e2a9e523f6e7bde4810d5a04aedf0ec217f", "shasum": "" }, "require": { "composer-plugin-api": "^1.0 || ^2.0", - "php": ">=5.6.0" + "php": ">=7.2.24" }, "conflict": { "composer/installers": "<1.0.6" @@ -2324,7 +2417,7 @@ }, "require-dev": { "composer/composer": "^1.0 || ^2.0", - "phpunit/phpunit": ">=5.7.27" + "phpunit/phpunit": "^8.5" }, "type": "composer-plugin", "extra": { @@ -2349,44 +2442,41 @@ "email": "team@roots.io" } ], - "description": "A custom installer to handle deploying WordPress with composer", + "description": "A Composer custom installer to handle installing WordPress as a dependency", "keywords": [ "wordpress" ], "support": { "issues": "https://github.com/roots/wordpress-core-installer/issues", - "source": "https://github.com/roots/wordpress-core-installer/tree/master" + "source": "https://github.com/roots/wordpress-core-installer/tree/3.0.0" }, "funding": [ { "url": "https://github.com/roots", "type": "github" - }, - { - "url": "https://www.patreon.com/rootsdev", - "type": "patreon" } ], - "time": "2020-08-20T00:27:30+00:00" + "time": "2025-05-23T18:47:25+00:00" }, { "name": "roots/wordpress-no-content", - "version": "6.6.1", + "version": "6.9.4", "source": { "type": "git", "url": "https://github.com/WordPress/WordPress.git", - "reference": "6.6.1" + "reference": "6.9.4" }, "dist": { "type": "zip", - "url": "https://downloads.wordpress.org/release/wordpress-6.6.1-no-content.zip", - "shasum": "954aa560a66112cd999aa9d9519da5f964e6692a" + "url": "https://downloads.w.org/release/wordpress-6.9.4-no-content.zip", + "reference": "6.9.4", + "shasum": "8ae812bb54223ef859cd3de37f1c6b1db20e0e6f" }, "require": { - "php": ">= 7.0.0" + "php": ">= 7.2.24" }, "provide": { - "wordpress/core-implementation": "6.6.1" + "wordpress/core-implementation": "6.9.4" }, "suggest": { "ext-curl": "Performs remote request operations.", @@ -2437,7 +2527,7 @@ "type": "other" } ], - "time": "2024-07-23T15:25:13+00:00" + "time": "2026-03-11T15:49:55+00:00" }, { "name": "sebastian/cli-parser", @@ -2608,16 +2698,16 @@ }, { "name": "sebastian/comparator", - "version": "4.0.8", + "version": "4.0.10", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + "reference": "e4df00b9b3571187db2831ae9aada2c6efbd715d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/e4df00b9b3571187db2831ae9aada2c6efbd715d", + "reference": "e4df00b9b3571187db2831ae9aada2c6efbd715d", "shasum": "" }, "require": { @@ -2670,15 +2760,27 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.10" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", + "type": "tidelift" } ], - "time": "2022-09-14T12:41:17+00:00" + "time": "2026-01-24T09:22:56+00:00" }, { "name": "sebastian/complexity", @@ -2868,16 +2970,16 @@ }, { "name": "sebastian/exporter", - "version": "4.0.6", + "version": "4.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72" + "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72", - "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/14c6ba52f95a36c3d27c835d65efc7123c446e8c", + "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c", "shasum": "" }, "require": { @@ -2933,28 +3035,40 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.8" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", + "type": "tidelift" } ], - "time": "2024-03-02T06:33:00+00:00" + "time": "2025-09-24T06:03:27+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.7", + "version": "5.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9" + "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", - "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b6781316bdcd28260904e7cc18ec983d0d2ef4f6", + "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6", "shasum": "" }, "require": { @@ -2997,15 +3111,27 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.8" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/global-state", + "type": "tidelift" } ], - "time": "2024-03-02T06:35:11+00:00" + "time": "2025-08-10T07:10:35+00:00" }, { "name": "sebastian/lines-of-code", @@ -3178,16 +3304,16 @@ }, { "name": "sebastian/recursion-context", - "version": "4.0.5", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" + "reference": "539c6691e0623af6dc6f9c20384c120f963465a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/539c6691e0623af6dc6f9c20384c120f963465a0", + "reference": "539c6691e0623af6dc6f9c20384c120f963465a0", "shasum": "" }, "require": { @@ -3229,15 +3355,27 @@ "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.6" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", + "type": "tidelift" } ], - "time": "2023-02-03T06:07:39+00:00" + "time": "2025-08-10T06:57:39+00:00" }, { "name": "sebastian/resource-operations", @@ -3537,91 +3675,25 @@ ], "time": "2025-11-04T16:30:35+00:00" }, - { - "name": "symfony/deprecation-contracts", - "version": "v2.5.3", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "80d075412b557d41002320b96a096ca65aa2c98d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/80d075412b557d41002320b96a096ca65aa2c98d", - "reference": "80d075412b557d41002320b96a096ca65aa2c98d", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "files": [ - "function.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.3" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-24T14:02:46+00:00" - }, { "name": "symfony/finder", - "version": "v5.4.40", + "version": "v7.4.8", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "f51cff4687547641c7d8180d74932ab40b2205ce" + "reference": "e0be088d22278583a82da281886e8c3592fbf149" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/f51cff4687547641c7d8180d74932ab40b2205ce", - "reference": "f51cff4687547641c7d8180d74932ab40b2205ce", + "url": "https://api.github.com/repos/symfony/finder/zipball/e0be088d22278583a82da281886e8c3592fbf149", + "reference": "e0be088d22278583a82da281886e8c3592fbf149", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.2" + }, + "require-dev": { + "symfony/filesystem": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -3649,7 +3721,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.40" + "source": "https://github.com/symfony/finder/tree/v7.4.8" }, "funding": [ { @@ -3660,29 +3732,33 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-05-31T14:33:22+00:00" + "time": "2026-03-24T13:12:05+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.30.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "0424dff1c58f028c451efff2045f5d92410bd540" + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540", - "reference": "0424dff1c58f028c451efff2045f5d92410bd540", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-ctype": "*" @@ -3693,8 +3769,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -3728,7 +3804,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" }, "funding": [ { @@ -3739,35 +3815,39 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.30.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1" + "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/ec444d3f3f6505bb28d11afa41e75faadebc10a1", - "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f68c03565dcaaf25a890667542e8bd75fe7e5bb", + "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -3804,7 +3884,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.33.0" }, "funding": [ { @@ -3816,83 +3896,7 @@ "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-05-31T15:07:36+00:00" - }, - { - "name": "symfony/polyfill-php80", - "version": "v1.30.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "77fa7995ac1b21ab60769b7323d600a991a90433" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433", - "reference": "77fa7995ac1b21ab60769b7323d600a991a90433", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/nicolas-grekas", "type": "github" }, { @@ -3900,7 +3904,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "szepeviktor/phpstan-wordpress", @@ -3968,16 +3972,16 @@ }, { "name": "theseer/tokenizer", - "version": "1.2.3", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", "shasum": "" }, "require": { @@ -4006,7 +4010,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.3" + "source": "https://github.com/theseer/tokenizer/tree/1.3.1" }, "funding": [ { @@ -4014,7 +4018,7 @@ "type": "github" } ], - "time": "2024-03-03T12:36:25+00:00" + "time": "2025-11-17T20:03:58+00:00" }, { "name": "vlucas/phpdotenv", @@ -4095,20 +4099,20 @@ }, { "name": "wp-cli/db-command", - "version": "v2.1.1", + "version": "v2.1.3", "source": { "type": "git", "url": "https://github.com/wp-cli/db-command.git", - "reference": "60ee5535e4b39e2d930894b7f435a2e488171c27" + "reference": "f857c91454d7092fa672bc388512a51752d9264a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/db-command/zipball/60ee5535e4b39e2d930894b7f435a2e488171c27", - "reference": "60ee5535e4b39e2d930894b7f435a2e488171c27", + "url": "https://api.github.com/repos/wp-cli/db-command/zipball/f857c91454d7092fa672bc388512a51752d9264a", + "reference": "f857c91454d7092fa672bc388512a51752d9264a", "shasum": "" }, "require": { - "wp-cli/wp-cli": "^2.5" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/entity-command": "^1.3 || ^2", @@ -4116,9 +4120,6 @@ }, "type": "wp-cli-package", "extra": { - "branch-alias": { - "dev-main": "2.x-dev" - }, "bundled": true, "commands": [ "db", @@ -4138,7 +4139,10 @@ "db tables", "db size", "db columns" - ] + ], + "branch-alias": { + "dev-main": "2.x-dev" + } }, "autoload": { "files": [ @@ -4163,22 +4167,74 @@ "homepage": "https://github.com/wp-cli/db-command", "support": { "issues": "https://github.com/wp-cli/db-command/issues", - "source": "https://github.com/wp-cli/db-command/tree/v2.1.1" + "source": "https://github.com/wp-cli/db-command/tree/v2.1.3" }, - "time": "2024-07-10T17:31:56+00:00" + "time": "2025-04-10T11:02:04+00:00" + }, + { + "name": "wp-cli/mustache", + "version": "v2.14.99", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/mustache.php.git", + "reference": "ca23b97ac35fbe01c160549eb634396183d04a59" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/mustache.php/zipball/ca23b97ac35fbe01c160549eb634396183d04a59", + "reference": "ca23b97ac35fbe01c160549eb634396183d04a59", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "replace": { + "mustache/mustache": "^2.14.2" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~2.19.3", + "yoast/phpunit-polyfills": "^2.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "Mustache": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Justin Hileman", + "email": "justin@justinhileman.info", + "homepage": "http://justinhileman.com" + } + ], + "description": "A Mustache implementation in PHP.", + "homepage": "https://github.com/bobthecow/mustache.php", + "keywords": [ + "mustache", + "templating" + ], + "support": { + "source": "https://github.com/wp-cli/mustache.php/tree/v2.14.99" + }, + "time": "2025-05-06T16:15:37+00:00" }, { "name": "wp-cli/mustangostang-spyc", - "version": "0.6.3", + "version": "0.6.6", "source": { "type": "git", "url": "https://github.com/wp-cli/spyc.git", - "reference": "6aa0b4da69ce9e9a2c8402dab8d43cf32c581cc7" + "reference": "30f25baaaba939caaff1f4b8c7ed998632f59fe2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/spyc/zipball/6aa0b4da69ce9e9a2c8402dab8d43cf32c581cc7", - "reference": "6aa0b4da69ce9e9a2c8402dab8d43cf32c581cc7", + "url": "https://api.github.com/repos/wp-cli/spyc/zipball/30f25baaaba939caaff1f4b8c7ed998632f59fe2", + "reference": "30f25baaaba939caaff1f4b8c7ed998632f59fe2", "shasum": "" }, "require": { @@ -4214,35 +4270,35 @@ "description": "A simple YAML loader/dumper class for PHP (WP-CLI fork)", "homepage": "https://github.com/mustangostang/spyc/", "support": { - "source": "https://github.com/wp-cli/spyc/tree/autoload" + "source": "https://github.com/wp-cli/spyc/tree/0.6.6" }, - "time": "2017-04-25T11:26:20+00:00" + "time": "2026-03-12T12:30:41+00:00" }, { "name": "wp-cli/php-cli-tools", - "version": "v0.11.22", + "version": "v0.12.9", "source": { "type": "git", "url": "https://github.com/wp-cli/php-cli-tools.git", - "reference": "a6bb94664ca36d0962f9c2ff25591c315a550c51" + "reference": "c3d25138ce46a66647ec0dc9b17bf300338494aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/php-cli-tools/zipball/a6bb94664ca36d0962f9c2ff25591c315a550c51", - "reference": "a6bb94664ca36d0962f9c2ff25591c315a550c51", + "url": "https://api.github.com/repos/wp-cli/php-cli-tools/zipball/c3d25138ce46a66647ec0dc9b17bf300338494aa", + "reference": "c3d25138ce46a66647ec0dc9b17bf300338494aa", "shasum": "" }, "require": { - "php": ">= 5.3.0" + "php": ">= 7.2.24" }, "require-dev": { "roave/security-advisories": "dev-latest", - "wp-cli/wp-cli-tests": "^4" + "wp-cli/wp-cli-tests": "^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "0.11.x-dev" + "dev-main": "0.12.x-dev" } }, "autoload": { @@ -4277,39 +4333,38 @@ ], "support": { "issues": "https://github.com/wp-cli/php-cli-tools/issues", - "source": "https://github.com/wp-cli/php-cli-tools/tree/v0.11.22" + "source": "https://github.com/wp-cli/php-cli-tools/tree/v0.12.9" }, - "time": "2023-12-03T19:25:05+00:00" + "time": "2026-03-29T11:12:54+00:00" }, { "name": "wp-cli/wp-cli", - "version": "v2.10.0", + "version": "v2.12.0", "source": { "type": "git", "url": "https://github.com/wp-cli/wp-cli.git", - "reference": "a339dca576df73c31af4b4d8054efc2dab9a0685" + "reference": "03d30d4138d12b4bffd8b507b82e56e129e0523f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/wp-cli/zipball/a339dca576df73c31af4b4d8054efc2dab9a0685", - "reference": "a339dca576df73c31af4b4d8054efc2dab9a0685", + "url": "https://api.github.com/repos/wp-cli/wp-cli/zipball/03d30d4138d12b4bffd8b507b82e56e129e0523f", + "reference": "03d30d4138d12b4bffd8b507b82e56e129e0523f", "shasum": "" }, "require": { "ext-curl": "*", - "mustache/mustache": "^2.14.1", "php": "^5.6 || ^7.0 || ^8.0", "symfony/finder": ">2.7", + "wp-cli/mustache": "^2.14.99", "wp-cli/mustangostang-spyc": "^0.6.3", - "wp-cli/php-cli-tools": "~0.11.2" + "wp-cli/php-cli-tools": "~0.12.4" }, "require-dev": { - "roave/security-advisories": "dev-latest", "wp-cli/db-command": "^1.3 || ^2", "wp-cli/entity-command": "^1.2 || ^2", "wp-cli/extension-command": "^1.1 || ^2", "wp-cli/package-command": "^1 || ^2", - "wp-cli/wp-cli-tests": "^4.0.1" + "wp-cli/wp-cli-tests": "^4.3.10" }, "suggest": { "ext-readline": "Include for a better --prompt implementation", @@ -4322,7 +4377,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.10.x-dev" + "dev-main": "2.12.x-dev" } }, "autoload": { @@ -4349,7 +4404,7 @@ "issues": "https://github.com/wp-cli/wp-cli/issues", "source": "https://github.com/wp-cli/wp-cli" }, - "time": "2024-02-08T16:52:43+00:00" + "time": "2025-05-07T01:16:12+00:00" }, { "name": "wp-coding-standards/wpcs", @@ -4419,7 +4474,7 @@ }, { "name": "wp-phpunit/wp-phpunit", - "version": "6.6.1", + "version": "6.6.5", "source": { "type": "git", "url": "https://github.com/wp-phpunit/wp-phpunit.git", @@ -4467,16 +4522,16 @@ }, { "name": "yoast/phpunit-polyfills", - "version": "1.1.1", + "version": "1.1.5", "source": { "type": "git", "url": "https://github.com/Yoast/PHPUnit-Polyfills.git", - "reference": "a0f7d708794a738f328d7b6c94380fd1d6c40446" + "reference": "41aaac462fbd80feb8dd129e489f4bbc53fe26b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/a0f7d708794a738f328d7b6c94380fd1d6c40446", - "reference": "a0f7d708794a738f328d7b6c94380fd1d6c40446", + "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/41aaac462fbd80feb8dd129e489f4bbc53fe26b0", + "reference": "41aaac462fbd80feb8dd129e489f4bbc53fe26b0", "shasum": "" }, "require": { @@ -4486,12 +4541,12 @@ "require-dev": { "php-parallel-lint/php-console-highlighter": "^1.0.0", "php-parallel-lint/php-parallel-lint": "^1.4.0", - "yoast/yoastcs": "^3.1.0" + "yoast/yoastcs": "^3.2.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.x-dev" + "dev-main": "4.x-dev" } }, "autoload": { @@ -4526,7 +4581,7 @@ "security": "https://github.com/Yoast/PHPUnit-Polyfills/security/policy", "source": "https://github.com/Yoast/PHPUnit-Polyfills" }, - "time": "2024-04-05T16:01:51+00:00" + "time": "2025-08-10T04:54:36+00:00" } ], "aliases": [], @@ -4537,11 +4592,11 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": ">=7.2" + "php": ">=8.2" }, "platform-dev": {}, "platform-overrides": { - "php": "7.4" + "php": "8.2" }, "plugin-api-version": "2.6.0" } From 4271d21db3e4e41421936705df854b554139735c Mon Sep 17 00:00:00 2001 From: "K. Adam White" Date: Tue, 7 Apr 2026 11:37:53 -0400 Subject: [PATCH 03/20] Update PHPStan for PHP 8.2/WP 6.9 compatibility --- composer.json | 6 +- composer.lock | 187 +++++++++++++--------------------------------- phpstan.neon.dist | 12 +-- 3 files changed, 59 insertions(+), 146 deletions(-) diff --git a/composer.json b/composer.json index f8c57c55..160b0c3f 100644 --- a/composer.json +++ b/composer.json @@ -12,12 +12,12 @@ "dealerdirect/phpcodesniffer-composer-installer": "0.7.0", "ergebnis/composer-normalize": "^2", "humanmade/coding-standards": "dev-upgrade-wpcs", - "php-stubs/wordpress-stubs": "^5.5", + "php-stubs/wordpress-stubs": "^6.9", "phpcompatibility/phpcompatibility-wp": "2.1.0", - "phpstan/phpstan": "0.12.57", + "phpstan/phpstan": "^2", "phpunit/phpunit": "^9.5.20", "roots/wordpress": "~6.9.0", - "szepeviktor/phpstan-wordpress": "0.7.1", + "szepeviktor/phpstan-wordpress": "^2", "vlucas/phpdotenv": "^3", "wp-cli/db-command": "^2", "wp-phpunit/wp-phpunit": "~6.6.0", diff --git a/composer.lock b/composer.lock index ff7dfb2e..9afbfa22 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "bf384b8ee9291ff65990c370bf2bc9de", + "content-hash": "4f3d465fee855e0feec72d6973797d55", "packages": [ { "name": "composer/installers", @@ -1371,27 +1371,32 @@ }, { "name": "php-stubs/wordpress-stubs", - "version": "v5.9.9", + "version": "v6.9.1", "source": { "type": "git", "url": "https://github.com/php-stubs/wordpress-stubs.git", - "reference": "06c51c4863659ea9e9f4c2a23293728a677cb059" + "reference": "f12220f303e0d7c0844c0e5e957b0c3cee48d2f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-stubs/wordpress-stubs/zipball/06c51c4863659ea9e9f4c2a23293728a677cb059", - "reference": "06c51c4863659ea9e9f4c2a23293728a677cb059", + "url": "https://api.github.com/repos/php-stubs/wordpress-stubs/zipball/f12220f303e0d7c0844c0e5e957b0c3cee48d2f7", + "reference": "f12220f303e0d7c0844c0e5e957b0c3cee48d2f7", "shasum": "" }, + "conflict": { + "phpdocumentor/reflection-docblock": "5.6.1" + }, "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "^1.0", - "nikic/php-parser": "^4.13", - "php": "^7.4 || ~8.0.0", + "nikic/php-parser": "^5.5", + "php": "^7.4 || ^8.0", "php-stubs/generator": "^0.8.3", - "phpdocumentor/reflection-docblock": "5.3", - "phpstan/phpstan": "^1.10.49", + "phpdocumentor/reflection-docblock": "^6.0", + "phpstan/phpstan": "^2.1", "phpunit/phpunit": "^9.5", - "szepeviktor/phpcs-psr-12-neutron-hybrid-ruleset": "^0.11" + "symfony/polyfill-php80": "*", + "szepeviktor/phpcs-psr-12-neutron-hybrid-ruleset": "^1.1.1", + "wp-coding-standards/wpcs": "3.1.0 as 2.3.0" }, "suggest": { "paragonie/sodium_compat": "Pure PHP implementation of libsodium", @@ -1412,9 +1417,9 @@ ], "support": { "issues": "https://github.com/php-stubs/wordpress-stubs/issues", - "source": "https://github.com/php-stubs/wordpress-stubs/tree/v5.9.9" + "source": "https://github.com/php-stubs/wordpress-stubs/tree/v6.9.1" }, - "time": "2024-04-14T17:16:00+00:00" + "time": "2026-02-03T19:29:21+00:00" }, { "name": "phpcompatibility/php-compatibility", @@ -1860,20 +1865,15 @@ }, { "name": "phpstan/phpstan", - "version": "0.12.57", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpstan.git", - "reference": "f9909d1d0c44b4cbaf72babcf80e8f14d6fdd55b" - }, + "version": "2.1.46", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/f9909d1d0c44b4cbaf72babcf80e8f14d6fdd55b", - "reference": "f9909d1d0c44b4cbaf72babcf80e8f14d6fdd55b", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/a193923fc2d6325ef4e741cf3af8c3e8f54dbf25", + "reference": "a193923fc2d6325ef4e741cf3af8c3e8f54dbf25", "shasum": "" }, "require": { - "php": "^7.1|^8.0" + "php": "^7.4|^8.0" }, "conflict": { "phpstan/phpstan-shim": "*" @@ -1883,11 +1883,6 @@ "phpstan.phar" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.12-dev" - } - }, "autoload": { "files": [ "bootstrap.php" @@ -1898,9 +1893,16 @@ "MIT" ], "description": "PHPStan - PHP Static Analysis Tool", + "keywords": [ + "dev", + "static analysis" + ], "support": { + "docs": "https://phpstan.org/user-guide/getting-started", + "forum": "https://github.com/phpstan/phpstan/discussions", "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/0.12.57" + "security": "https://github.com/phpstan/phpstan/security/policy", + "source": "https://github.com/phpstan/phpstan-src" }, "funding": [ { @@ -1908,15 +1910,11 @@ "type": "github" }, { - "url": "https://www.patreon.com/phpstan", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", - "type": "tidelift" + "url": "https://github.com/phpstan", + "type": "github" } ], - "time": "2020-11-21T12:53:28+00:00" + "time": "2026-04-01T09:25:14+00:00" }, { "name": "phpunit/php-code-coverage", @@ -3826,112 +3824,37 @@ ], "time": "2024-09-09T11:45:10+00:00" }, - { - "name": "symfony/polyfill-php73", - "version": "v1.33.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f68c03565dcaaf25a890667542e8bd75fe7e5bb", - "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.33.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-09T11:45:10+00:00" - }, { "name": "szepeviktor/phpstan-wordpress", - "version": "v0.7.1", + "version": "v2.0.3", "source": { "type": "git", "url": "https://github.com/szepeviktor/phpstan-wordpress.git", - "reference": "6195a6a19830d5ad187df0a3fb350e77cd571a5f" + "reference": "aa722f037b2d034828cd6c55ebe9e5c74961927e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/szepeviktor/phpstan-wordpress/zipball/6195a6a19830d5ad187df0a3fb350e77cd571a5f", - "reference": "6195a6a19830d5ad187df0a3fb350e77cd571a5f", + "url": "https://api.github.com/repos/szepeviktor/phpstan-wordpress/zipball/aa722f037b2d034828cd6c55ebe9e5c74961927e", + "reference": "aa722f037b2d034828cd6c55ebe9e5c74961927e", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0", - "php-stubs/wordpress-stubs": "^4.7 || ^5.0", - "phpstan/phpstan": "^0.12.26", - "symfony/polyfill-php73": "^1.12.0" + "php": "^7.4 || ^8.0", + "php-stubs/wordpress-stubs": "^6.6.2", + "phpstan/phpstan": "^2.0" }, "require-dev": { - "composer/composer": "^1.8.6", - "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "composer/composer": "^2.1.14", + "composer/semver": "^3.4", + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", "php-parallel-lint/php-parallel-lint": "^1.1", - "phpstan/phpstan-strict-rules": "^0.12", - "szepeviktor/phpcs-psr-12-neutron-hybrid-ruleset": "^0.4.3" + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^9.0", + "szepeviktor/phpcs-psr-12-neutron-hybrid-ruleset": "^1.0", + "wp-coding-standards/wpcs": "3.1.0 as 2.3.0" + }, + "suggest": { + "swissspidy/phpstan-no-private": "Detect usage of internal core functions, classes and methods" }, "type": "phpstan-extension", "extra": { @@ -3943,7 +3866,7 @@ }, "autoload": { "psr-4": { - "PHPStan\\WordPress\\": "src/" + "SzepeViktor\\PHPStan\\WordPress\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -3960,15 +3883,9 @@ ], "support": { "issues": "https://github.com/szepeviktor/phpstan-wordpress/issues", - "source": "https://github.com/szepeviktor/phpstan-wordpress/tree/v0.7.1" + "source": "https://github.com/szepeviktor/phpstan-wordpress/tree/v2.0.3" }, - "funding": [ - { - "url": "https://www.paypal.me/szepeviktor", - "type": "custom" - } - ], - "time": "2020-11-05T00:12:19+00:00" + "time": "2025-09-14T02:58:22+00:00" }, { "name": "theseer/tokenizer", diff --git a/phpstan.neon.dist b/phpstan.neon.dist index 816da47a..646d9267 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -1,7 +1,7 @@ includes: - vendor/szepeviktor/phpstan-wordpress/extension.neon parameters: - level: max + level: 6 paths: - plugin.php - inc @@ -18,14 +18,10 @@ parameters: - tests/phpunit/includes/email-testcase.php - tests/phpunit/includes/feed-testcase.php - tests/phpunit/includes/restapi-testcase.php + - vendor/wp-cli/wp-cli/php/class-wp-cli.php + - vendor/wp-cli/wp-cli/php/class-wp-cli-command.php scanDirectories: - inc - lib - vendor/wp-phpunit/wp-phpunit/includes - - vendor/wp-cli/wp-cli - ignoreErrors: - # Uses func_get_args() - - '#^Function apply_filters invoked with [34567] parameters, 2 required\.$#' - # Cant declare types always because extended - # core parent class methods don't - checkGenericClassInNonGenericObjectType: false + From ff46cd78cf64bc83799cdaed3433d738ec21ea0e Mon Sep 17 00:00:00 2001 From: "K. Adam White" Date: Tue, 7 Apr 2026 11:41:13 -0400 Subject: [PATCH 04/20] PHPStan: Adjust var annotation to fix phpstan mis-analysis If phpstan trusts our annotation, it assumes the variable will always exist and that the null check is therefore unneeded. Since we do not control this global, we do need the check; therefore, we should tell phpstan that it is nullable. --- inc/cli/class-migrate-command.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/cli/class-migrate-command.php b/inc/cli/class-migrate-command.php index 821990e8..48b774ac 100644 --- a/inc/cli/class-migrate-command.php +++ b/inc/cli/class-migrate-command.php @@ -381,7 +381,7 @@ private function get_ppa_user_id( WP_Term $ppa_author, bool $create_users = fals */ private function reset_local_object_cache(): void { /** - * @var WP_Object_Cache + * @var ?WP_Object_Cache */ global $wp_object_cache; From 9c29b0439658e09accba6492106f3029a52ef355 Mon Sep 17 00:00:00 2001 From: "K. Adam White" Date: Tue, 7 Apr 2026 11:43:36 -0400 Subject: [PATCH 05/20] PHPStan: Explicitly document array type Solves error, function has parameter $additional with no value type specified in iterable type array. --- inc/namespace.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inc/namespace.php b/inc/namespace.php index aaa37838..7cb1a276 100644 --- a/inc/namespace.php +++ b/inc/namespace.php @@ -472,8 +472,8 @@ function rest_prepare_post( WP_REST_Response $response, WP_Post $post, WP_REST_R /** * Filters extra CURIEs available on REST API responses. * - * @param array[] $additional Additional CURIEs to register with the API. - * @return array[] Additional CURIEs to register with the API. + * @param array> $additional Additional CURIEs to register with the API. + * @return array> Additional CURIEs to register with the API. */ function filter_rest_response_link_curies( array $additional ): array { $additional[] = [ From 6c24a589cf5e5d41b29963dad87f20b881345ac0 Mon Sep 17 00:00:00 2001 From: "K. Adam White" Date: Tue, 7 Apr 2026 11:45:29 -0400 Subject: [PATCH 06/20] PHPStan: WP_Object_Cache::$cache is not nullable, remove isset() check --- inc/cli/class-migrate-command.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/inc/cli/class-migrate-command.php b/inc/cli/class-migrate-command.php index 48b774ac..bf5d2f42 100644 --- a/inc/cli/class-migrate-command.php +++ b/inc/cli/class-migrate-command.php @@ -397,9 +397,7 @@ private function reset_local_object_cache(): void { $wp_object_cache->memcache_debug = []; } - if ( isset( $wp_object_cache->cache ) ) { - $wp_object_cache->cache = []; - } + $wp_object_cache->cache = []; if ( method_exists( $wp_object_cache, '__remoteset' ) ) { // important! From ce427033d07a8cfe25a0792af4eee932086e1538 Mon Sep 17 00:00:00 2001 From: "K. Adam White" Date: Tue, 7 Apr 2026 11:47:45 -0400 Subject: [PATCH 07/20] PHPStan: Raise phpstan memory limit to ensure it will execute --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 160b0c3f..cdf90f24 100644 --- a/composer.json +++ b/composer.json @@ -64,7 +64,7 @@ "phpcs -p --cache=tests/cache/phpcs ." ], "test:phpstan": [ - "phpstan analyze" + "phpstan analyze --memory-limit=512M" ], "test:ut": [ "wp db reset --yes --path=tests/wordpress #", From 1e471f9b1dba3f0c2a70aea40d2543ca742559b4 Mon Sep 17 00:00:00 2001 From: "K. Adam White" Date: Tue, 7 Apr 2026 11:48:52 -0400 Subject: [PATCH 08/20] Update wp-phpunit for 6.9 compatibility --- composer.json | 2 +- composer.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index cdf90f24..af18e7de 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ "szepeviktor/phpstan-wordpress": "^2", "vlucas/phpdotenv": "^3", "wp-cli/db-command": "^2", - "wp-phpunit/wp-phpunit": "~6.6.0", + "wp-phpunit/wp-phpunit": "~6.9.0", "yoast/phpunit-polyfills": "^1.0" }, "repositories": { diff --git a/composer.lock b/composer.lock index 9afbfa22..bc811918 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "4f3d465fee855e0feec72d6973797d55", + "content-hash": "a4b10cfdbd9543ace2b9e9d06d0ef297", "packages": [ { "name": "composer/installers", @@ -4391,16 +4391,16 @@ }, { "name": "wp-phpunit/wp-phpunit", - "version": "6.6.5", + "version": "6.9.4", "source": { "type": "git", "url": "https://github.com/wp-phpunit/wp-phpunit.git", - "reference": "7a1d3a2150033a3d3e19de40aa5b2ef2fee36bc3" + "reference": "15fd216bf6516670d8d07b938675925bfa5c15b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-phpunit/wp-phpunit/zipball/7a1d3a2150033a3d3e19de40aa5b2ef2fee36bc3", - "reference": "7a1d3a2150033a3d3e19de40aa5b2ef2fee36bc3", + "url": "https://api.github.com/repos/wp-phpunit/wp-phpunit/zipball/15fd216bf6516670d8d07b938675925bfa5c15b0", + "reference": "15fd216bf6516670d8d07b938675925bfa5c15b0", "shasum": "" }, "type": "library", @@ -4435,7 +4435,7 @@ "issues": "https://github.com/wp-phpunit/issues", "source": "https://github.com/wp-phpunit/wp-phpunit" }, - "time": "2024-07-17T01:13:44+00:00" + "time": "2026-02-04T01:48:23+00:00" }, { "name": "yoast/phpunit-polyfills", From 7f2adbc038a13afea3ee8a93a7c96a61a50c090c Mon Sep 17 00:00:00 2001 From: "K. Adam White" Date: Tue, 7 Apr 2026 12:03:02 -0400 Subject: [PATCH 09/20] PHPStan: Further increase memory limit after memory exhaustion in CI --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index af18e7de..869464d3 100644 --- a/composer.json +++ b/composer.json @@ -64,7 +64,7 @@ "phpcs -p --cache=tests/cache/phpcs ." ], "test:phpstan": [ - "phpstan analyze --memory-limit=512M" + "phpstan analyze --memory-limit=1G" ], "test:ut": [ "wp db reset --yes --path=tests/wordpress #", From cf90ed249e3136486efc6c7093b0c82e04aaca66 Mon Sep 17 00:00:00 2001 From: "K. Adam White" Date: Tue, 7 Apr 2026 12:04:10 -0400 Subject: [PATCH 10/20] Update PHP/WP version notes in README --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 70e40544..84331c27 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # Authorship Stable tag: 0.2.17 -Requires at least: 5.4 -Tested up to: 6.2 -Requires PHP: 7.2 +Requires at least: 5.4 +Tested up to: 6.9 +Requires PHP: 8.2 License: GPL v3 or later Contributors: johnbillion, humanmade From 21e67588868fcd62b6987777bc1e1d2aab75c593 Mon Sep 17 00:00:00 2001 From: "K. Adam White" Date: Tue, 7 Apr 2026 12:46:12 -0400 Subject: [PATCH 11/20] Use admin user in guest author created use case, edit_user permission now required to enumerate "roles" property See https://core.trac.wordpress.org/changeset/60814 --- tests/phpunit/test-rest-api-user-endpoint.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/phpunit/test-rest-api-user-endpoint.php b/tests/phpunit/test-rest-api-user-endpoint.php index 2a93bcbb..f3f6715d 100644 --- a/tests/phpunit/test-rest-api-user-endpoint.php +++ b/tests/phpunit/test-rest-api-user-endpoint.php @@ -27,7 +27,7 @@ class TestRESTAPIUserEndpoint extends RESTAPITestCase { protected static $route = '/' . Users_Controller::_NAMESPACE . '/' . Users_Controller::BASE; public function testGuestAuthorCanBeCreatedWithJustAName(): void { - wp_set_current_user( self::$users['editor']->ID ); + wp_set_current_user( self::$users['admin']->ID ); $request = new WP_REST_Request( 'POST', self::$route ); $request->set_param( 'name', 'Firsty Lasty' ); From c257f6c4376e99f111cd019b4e0fb3301c4b9e27 Mon Sep 17 00:00:00 2001 From: "K. Adam White" Date: Tue, 7 Apr 2026 13:40:05 -0400 Subject: [PATCH 12/20] Update and pin setup-php GitHub Action --- .github/workflows/build.yml | 2 +- .github/workflows/php-standards.yml | 2 +- .github/workflows/test-nightly.yml | 2 +- .github/workflows/test.yml | 2 +- .phpunit.result.cache | 1 + 5 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 .phpunit.result.cache diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 28106fe1..99b479b3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,7 +18,7 @@ jobs: node-version-file: '.nvmrc' - name: Install PHP - uses: shivammathur/setup-php@v2 + uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0 with: php-version: 7.4 extensions: mysqli, xmlwriter diff --git a/.github/workflows/php-standards.yml b/.github/workflows/php-standards.yml index 0e813fbc..a14be8d8 100644 --- a/.github/workflows/php-standards.yml +++ b/.github/workflows/php-standards.yml @@ -17,7 +17,7 @@ jobs: uses: actions/checkout@v4 - name: Install PHP - uses: shivammathur/setup-php@v2 + uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0 with: php-version: '8.2' coverage: none diff --git a/.github/workflows/test-nightly.yml b/.github/workflows/test-nightly.yml index 1279e6d6..ace3192a 100644 --- a/.github/workflows/test-nightly.yml +++ b/.github/workflows/test-nightly.yml @@ -22,7 +22,7 @@ jobs: uses: actions/checkout@v4 - name: Install PHP - uses: shivammathur/setup-php@v2 + uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0 with: php-version: ${{ matrix.php }} extensions: mysqli, xmlwriter diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8fc4ccef..30c63042 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -25,7 +25,7 @@ jobs: uses: actions/checkout@v4 - name: Install PHP - uses: shivammathur/setup-php@v2 + uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0 with: php-version: ${{ matrix.php }} extensions: mysqli, xmlwriter diff --git a/.phpunit.result.cache b/.phpunit.result.cache new file mode 100644 index 00000000..bcb1a9a3 --- /dev/null +++ b/.phpunit.result.cache @@ -0,0 +1 @@ +{"version":1,"defects":{"Authorship\\Tests\\TestRESTAPIUserEndpoint::testGuestAuthorCanBeCreatedWithJustAName":5,"Authorship\\Tests\\TestCLI::testMigratePostTypePost":5,"Authorship\\Tests\\TestCLI::testMigratePostTypePage":5},"times":{"Authorship\\Tests\\TestRESTAPIUserEndpoint::testGuestAuthorCanBeCreatedWithJustAName":0.034,"Authorship\\Tests\\TestArchive::testAuthorArchiveQueryIsCorrect":0.036,"Authorship\\Tests\\TestArchive::testAuthorArchiveTitleIsCorrect":0.012,"Authorship\\Tests\\TestCapabilities::testUserCanManageDraftPostTheyAreAttributedTo with data set #0":0.015,"Authorship\\Tests\\TestCapabilities::testUserCanManageDraftPostTheyAreAttributedTo with data set #1":0.014,"Authorship\\Tests\\TestCapabilities::testUserCanManageDraftPostTheyAreAttributedTo with data set #2":0.012,"Authorship\\Tests\\TestCapabilities::testUserCanManageDraftPostTheyAreAttributedTo with data set #3":0.011,"Authorship\\Tests\\TestCapabilities::testUserCanManagePublishedPostTheyAreAttributedTo with data set #0":0.01,"Authorship\\Tests\\TestCapabilities::testUserCanManagePublishedPostTheyAreAttributedTo with data set #1":0.009,"Authorship\\Tests\\TestCapabilities::testUserCanManagePublishedPostTheyAreAttributedTo with data set #2":0.009,"Authorship\\Tests\\TestCapabilities::testUserCanManagePublishedPostTheyAreAttributedTo with data set #3":0.009,"Authorship\\Tests\\TestCapabilities::testUserCanManageScheduledPostTheyAreAttributedTo with data set #0":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManageScheduledPostTheyAreAttributedTo with data set #1":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManageScheduledPostTheyAreAttributedTo with data set #2":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManageScheduledPostTheyAreAttributedTo with data set #3":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManagePendingPostTheyAreAttributedTo with data set #0":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManagePendingPostTheyAreAttributedTo with data set #1":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManagePendingPostTheyAreAttributedTo with data set #2":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManagePendingPostTheyAreAttributedTo with data set #3":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManageTrashedPostTheyAreAttributedTo with data set #0":0.015,"Authorship\\Tests\\TestCapabilities::testUserCanManageTrashedPostTheyAreAttributedTo with data set #1":0.014,"Authorship\\Tests\\TestCapabilities::testUserCanManageTrashedPostTheyAreAttributedTo with data set #2":0.015,"Authorship\\Tests\\TestCapabilities::testUserCanManageTrashedPostTheyAreAttributedTo with data set #3":0.014,"Authorship\\Tests\\TestCapabilities::testUserCanManagePrivatePostTheyAreAttributedTo with data set #0":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManagePrivatePostTheyAreAttributedTo with data set #1":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManagePrivatePostTheyAreAttributedTo with data set #2":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManagePrivatePostTheyAreAttributedTo with data set #3":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManagePublishedPostTheyAreOwnerOfButNotAttributedTo with data set #0":0.009,"Authorship\\Tests\\TestCapabilities::testUserCanManagePublishedPostTheyAreOwnerOfButNotAttributedTo with data set #1":0.009,"Authorship\\Tests\\TestCapabilities::testUserCanManagePublishedPostTheyAreOwnerOfButNotAttributedTo with data set #2":0.01,"Authorship\\Tests\\TestCapabilities::testUserCanManagePublishedPostTheyAreOwnerOfButNotAttributedTo with data set #3":0.009,"Authorship\\Tests\\TestCapabilities::testUserCannotManagePublishedPostTheyAreNotAttributedTo with data set #0":0.009,"Authorship\\Tests\\TestCapabilities::testUserCannotManagePublishedPostTheyAreNotAttributedTo with data set #1":0.009,"Authorship\\Tests\\TestCapabilities::testUserCannotManagePublishedPostTheyAreNotAttributedTo with data set #2":0.01,"Authorship\\Tests\\TestCapabilities::testUserCannotManagePublishedPostTheyAreNotAttributedTo with data set #3":0.01,"Authorship\\Tests\\TestCapabilities::testUserCannotManageNonExistentPost with data set #0":0.004,"Authorship\\Tests\\TestCapabilities::testUserCannotManageNonExistentPost with data set #1":0.003,"Authorship\\Tests\\TestCapabilities::testUserCannotManageNonExistentPost with data set #2":0.003,"Authorship\\Tests\\TestCapabilities::testUserCannotManageNonExistentPost with data set #3":0.002,"Authorship\\Tests\\TestCapabilities::testDefaultCustomCapMappingIsCorrect with data set #0":0.003,"Authorship\\Tests\\TestCapabilities::testDefaultCustomCapMappingIsCorrect with data set #1":0.002,"Authorship\\Tests\\TestCapabilities::testDefaultCustomCapMappingIsCorrect with data set #2":0.002,"Authorship\\Tests\\TestCapabilities::testDefaultCustomCapMappingIsCorrect with data set #3":0.002,"Authorship\\Tests\\TestCapabilities::testDefaultCustomCapMappingIsCorrect with data set #4":0.002,"Authorship\\Tests\\TestCapabilities::testGuestAuthorCreationCanBeGranted with data set #0":0.002,"Authorship\\Tests\\TestCapabilities::testGuestAuthorCreationCanBeGranted with data set #1":0.003,"Authorship\\Tests\\TestCapabilities::testGuestAuthorCreationCanBeGranted with data set #2":0.002,"Authorship\\Tests\\TestCapabilities::testGuestAuthorCreationCanBeGranted with data set #3":0.003,"Authorship\\Tests\\TestCapabilities::testGuestAuthorCreationCanBeGranted with data set #4":0.003,"Authorship\\Tests\\TestCapabilities::testGuestAuthorCreationCanBeDenied with data set #0":0.003,"Authorship\\Tests\\TestCapabilities::testGuestAuthorCreationCanBeDenied with data set #1":0.003,"Authorship\\Tests\\TestCapabilities::testGuestAuthorCreationCanBeDenied with data set #2":0.003,"Authorship\\Tests\\TestCapabilities::testGuestAuthorCreationCanBeDenied with data set #3":0.002,"Authorship\\Tests\\TestCapabilities::testGuestAuthorCreationCanBeDenied with data set #4":0.003,"Authorship\\Tests\\TestCapabilities::testGuestPostAttributionCanBeGranted with data set #0":0.002,"Authorship\\Tests\\TestCapabilities::testGuestPostAttributionCanBeGranted with data set #1":0.003,"Authorship\\Tests\\TestCapabilities::testGuestPostAttributionCanBeGranted with data set #2":0.005,"Authorship\\Tests\\TestCapabilities::testGuestPostAttributionCanBeGranted with data set #3":0.003,"Authorship\\Tests\\TestCapabilities::testGuestPostAttributionCanBeGranted with data set #4":0.003,"Authorship\\Tests\\TestCapabilities::testGuestPostAttributionCanBeDenied with data set #0":0.003,"Authorship\\Tests\\TestCapabilities::testGuestPostAttributionCanBeDenied with data set #1":0.003,"Authorship\\Tests\\TestCapabilities::testGuestPostAttributionCanBeDenied with data set #2":0.003,"Authorship\\Tests\\TestCapabilities::testGuestPostAttributionCanBeDenied with data set #3":0.003,"Authorship\\Tests\\TestCapabilities::testGuestPostAttributionCanBeDenied with data set #4":0.003,"Authorship\\Tests\\TestCLI::testMigratePostTypePost":2.037,"Authorship\\Tests\\TestCLI::testMigratePostTypePage":2.046,"Authorship\\Tests\\TestEmails::testCommentModerationEmailIsSentToUsersWhoCanModerateIt":0.03,"Authorship\\Tests\\TestEmails::testCommentModerationEmailDoesNotDuplicateRecipients":0.009,"Authorship\\Tests\\TestEmails::testCommentNotificationEmailIsSentToAllAttributedAuthors":0.019,"Authorship\\Tests\\TestRSS2::testMultipleAuthorNamesAreListed":0.031,"Authorship\\Tests\\TestPlugin::testReadmeIsUpToDate":0.005,"Authorship\\Tests\\TestPostSaving::testPostAuthorshipDoesNotGetSavedOnPostTypeThatDoesNotSupportAuthor":0.007,"Authorship\\Tests\\TestPostSaving::testPostAuthorshipIsRetainedWhenUpdatingPostWithNoAuthorshipParameter":0.029,"Authorship\\Tests\\TestPostSaving::testPostAuthorshipIsRetainedWhenUpdatingPostWithPostAuthorParameter":0.018,"Authorship\\Tests\\TestPostSaving::testPostAuthorshipIsSetToAuthorWhenCreatingPost":0.006,"Authorship\\Tests\\TestPostSaving::testPostAuthorshipIsSetToAuthorWhenUpdatingPostWithNoExistingAuthorship":0.011,"Authorship\\Tests\\TestPostSaving::testPostAuthorshipIsSetToEmptyWhenUpdatingPostWithNoExistingAuthorshipAndFiltered":0.01,"Authorship\\Tests\\TestPostSaving::testMultiplePostInsertionDoesNotCompoundActions":0.006,"Authorship\\Tests\\TestRESTAPIPostProperty::testAuthorshipCanBeSpecifiedWhenCreatingPost":0.028,"Authorship\\Tests\\TestRESTAPIPostProperty::testAuthorshipOnlyAcceptsAnArray":0.01,"Authorship\\Tests\\TestRESTAPIPostProperty::testAuthorshipCannotBeSpecifiedWhenCreatingAsAuthorRole":0.008,"Authorship\\Tests\\TestRESTAPIPostProperty::testAuthorshipCanBeSpecifiedWhenEditing":0.031,"Authorship\\Tests\\TestRESTAPIPostProperty::testAuthorshipIsRetainedWhenNotSpecifiedWhenEditing":0.018,"Authorship\\Tests\\TestRESTAPIPostProperty::testAuthorshipIsRetainedWhenOnlyPostAuthorIsSpecifiedWhenEditing":0.018,"Authorship\\Tests\\TestRESTAPIPostProperty::testAuthorshipPropertyExists":0.016,"Authorship\\Tests\\TestRESTAPIPostProperty::testAuthorshipLinksArePresent":0.014,"Authorship\\Tests\\TestRESTAPIPostProperty::testAuthorshipLinksAreEmbeddable":0.024,"Authorship\\Tests\\TestRESTAPIPostProperty::testRelLinksArePresent":0.014,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testFieldCannotBeSpecifiedWhenCreatingGuestAuthor with data set #0":0.01,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testFieldCannotBeSpecifiedWhenCreatingGuestAuthor with data set #1":0.008,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUserOutputFieldsAreRestrictedWhenListingUsers":0.009,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testAllUsersAreListedWhenListingUsers":0.013,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUsersCannotBeFilteredByParameter with data set #0":0.011,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUsersCannotBeFilteredByParameter with data set #1":0.008,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUsersCannotBeFilteredByParameter with data set #2":0.01,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUsersCannotBeFilteredByParameter with data set #3":0.008,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testContextCannotBeSetToEditWhenListingUsers":0.008,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testPostTypeIsRequiredWhenListingUsers":0.01,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testEndpointRequiresAuthentication":0.007,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testAllowedOrderByParameters with data set #0":0.013,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testAllowedOrderByParameters with data set #1":0.015,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testDisallowedOrderByParameters with data set #0":0.008,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testDisallowedOrderByParameters with data set #1":0.01,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testDisallowedOrderByParameters with data set #2":0.01,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testDisallowedOrderByParameters with data set #3":0.009,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testDisallowedOrderByParameters with data set #4":0.009,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUserRolesThatCanListAuthors with data set #0":0.018,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUserRolesThatCanListAuthors with data set #1":0.011,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUserRolesThatCanListAuthors with data set #2":0.011,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUserRolesThatCanListAuthors with data set #3":0.011,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUserRolesThatCanListAuthors with data set #4":0.008,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUserRolesThatCanCreateGuestAuthors with data set #0":0.042,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUserRolesThatCanCreateGuestAuthors with data set #1":0.031,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUserRolesThatCanCreateGuestAuthors with data set #2":0.006,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUserRolesThatCanCreateGuestAuthors with data set #3":0.007,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUserRolesThatCanCreateGuestAuthors with data set #4":0.011,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testGuestAuthorEmailIsAllowed with data set #0":0.008,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testGuestAuthorEmailIsAllowed with data set #1":0.008,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testGuestAuthorEmailIsAllowed with data set #2":0.011,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testGuestAuthorEmailIsAllowed with data set #3":0.008,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testGuestAuthorEmailIsAllowed with data set #4":0.01,"Authorship\\Tests\\TestTemplate::testUserIsAuthor with data set #0":0.017,"Authorship\\Tests\\TestTemplate::testUserIsAuthor with data set #1":0.014,"Authorship\\Tests\\TestTemplate::testUserIsAuthor with data set #2":0.01,"Authorship\\Tests\\TestTemplate::testUserIsAuthor with data set #3":0.007,"Authorship\\Tests\\TestTemplate::testUserIsAuthor with data set #4":0.009,"Authorship\\Tests\\TestTemplate::testUserIsAuthor with data set #5":0.006,"Authorship\\Tests\\TestTemplate::testUserIsAuthor with data set #6":0.008,"Authorship\\Tests\\TestTemplate::testAuthorIDs with data set #0":0.009,"Authorship\\Tests\\TestTemplate::testAuthorIDs with data set #1":0.009,"Authorship\\Tests\\TestTemplate::testAuthorIDs with data set #2":0.01,"Authorship\\Tests\\TestTemplate::testAuthorIDs with data set #3":0.008,"Authorship\\Tests\\TestTemplate::testAuthorNames":0.01,"Authorship\\Tests\\TestTemplate::testAuthorNamesInSentence":0.011,"Authorship\\Tests\\TestTemplate::testAuthorNamesInList":0.011,"Authorship\\Tests\\TestWPQuery::testQueryForAuthorReturnsPostsAttributedToAuthor":0.041,"Authorship\\Tests\\TestWPQuery::testQueriedObjectIsRetainedAfterQueryingForAuthor":0.008,"Authorship\\Tests\\TestWPQuery::testQueryForInvalidAuthorReturnsNoResults":0.008,"Authorship\\Tests\\TestWPQuery::testQueryOverridesDoNotAffectPostTypesThatDoNotSupportAuthor":0.004,"Authorship\\Tests\\TestWPQuery::testQueryVarsRemainUnaffectedAfterQuery":0.009,"Authorship\\Tests\\TestWPQuery::testSubsequentQueriesAreUnaffected":0.013,"Authorship\\Tests\\TestMultisite::testSuperAdminWithNoRoleOnSite":0.012}} \ No newline at end of file From 75012de8b70a2eea725a96108fac2b556613cc2a Mon Sep 17 00:00:00 2001 From: "K. Adam White" Date: Tue, 7 Apr 2026 13:40:45 -0400 Subject: [PATCH 13/20] Update actions/checkout --- .github/workflows/build.yml | 2 +- .github/workflows/js-tests.yml | 2 +- .github/workflows/php-standards.yml | 2 +- .github/workflows/test-nightly.yml | 2 +- .github/workflows/test.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 99b479b3..7b8ae4a2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Setup Node uses: actions/setup-node@v4 diff --git a/.github/workflows/js-tests.yml b/.github/workflows/js-tests.yml index acea1f9d..b19c66f1 100644 --- a/.github/workflows/js-tests.yml +++ b/.github/workflows/js-tests.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Setup Node uses: actions/setup-node@v4 diff --git a/.github/workflows/php-standards.yml b/.github/workflows/php-standards.yml index a14be8d8..bf358c49 100644 --- a/.github/workflows/php-standards.yml +++ b/.github/workflows/php-standards.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install PHP uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0 diff --git a/.github/workflows/test-nightly.yml b/.github/workflows/test-nightly.yml index ace3192a..6ce50874 100644 --- a/.github/workflows/test-nightly.yml +++ b/.github/workflows/test-nightly.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install PHP uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 30c63042..2f9fc136 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,7 +22,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install PHP uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0 From e091f5574c86558a8e2ee645581a80e152c8cc9b Mon Sep 17 00:00:00 2001 From: "K. Adam White" Date: Tue, 7 Apr 2026 13:41:22 -0400 Subject: [PATCH 14/20] Update actions/cache --- .github/workflows/build.yml | 4 ++-- .github/workflows/js-tests.yml | 2 +- .github/workflows/php-standards.yml | 4 ++-- .github/workflows/test-nightly.yml | 2 +- .github/workflows/test.yml | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7b8ae4a2..01e46ad5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,7 +32,7 @@ jobs: - name: Cache PHP Dependencies id: composer-cache - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ${{ steps.composer-cache-dir.outputs.DIR }} key: ${{ runner.os }}-composer-7.4-${{ hashFiles('composer.lock') }} @@ -49,7 +49,7 @@ jobs: - name: Cache JS Dependencies id: npm-cache - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ${{ steps.npm-cache-dir.outputs.DIR }} key: ${{ runner.os }}-npm-${{ steps.npm-cache-dir.outputs.NODE_VERSION }}-${{ steps.npm-cache-dir.outputs.NPM_VERSION }}-${{ hashFiles('package-lock.json') }} diff --git a/.github/workflows/js-tests.yml b/.github/workflows/js-tests.yml index b19c66f1..15c096e7 100644 --- a/.github/workflows/js-tests.yml +++ b/.github/workflows/js-tests.yml @@ -35,7 +35,7 @@ jobs: - name: Cache Dependencies id: npm-cache - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ${{ steps.npm-cache-dir.outputs.DIR }} key: ${{ runner.os }}-npm-${{ steps.npm-cache-dir.outputs.NODE_VERSION }}-${{ steps.npm-cache-dir.outputs.NPM_VERSION }}-${{ hashFiles('package-lock.json') }} diff --git a/.github/workflows/php-standards.yml b/.github/workflows/php-standards.yml index bf358c49..ea82ba31 100644 --- a/.github/workflows/php-standards.yml +++ b/.github/workflows/php-standards.yml @@ -35,7 +35,7 @@ jobs: - name: Cache PHP Dependencies id: composer-cache - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ${{ steps.composer-cache-dir.outputs.DIR }} key: ${{ runner.os }}-composer-7.4-${{ hashFiles('composer.lock') }} @@ -45,7 +45,7 @@ jobs: composer install --prefer-dist --no-progress --no-suggest --no-interaction - name: PHPCS cache - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: tests/cache key: ${{ runner.os }}-phpcs-7.4-${{ hashFiles('plugin.php') }} diff --git a/.github/workflows/test-nightly.yml b/.github/workflows/test-nightly.yml index 6ce50874..e8dd7553 100644 --- a/.github/workflows/test-nightly.yml +++ b/.github/workflows/test-nightly.yml @@ -43,7 +43,7 @@ jobs: - name: Cache PHP Dependencies id: composer-cache - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ${{ steps.composer-cache-dir.outputs.DIR }} key: ${{ runner.os }}-composer-${{ matrix.php }}-${{ hashFiles('composer.lock') }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2f9fc136..64e52e67 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -46,7 +46,7 @@ jobs: - name: Cache PHP Dependencies id: composer-cache - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ${{ steps.composer-cache-dir.outputs.dir }} key: ${{ runner.os }}-composer-${{ matrix.php }}-${{ hashFiles('composer.lock') }}-wp6.9 From 1cce186c66888dc7391d53ee30f4dc0dfdb1ca43 Mon Sep 17 00:00:00 2001 From: "K. Adam White" Date: Tue, 7 Apr 2026 13:42:41 -0400 Subject: [PATCH 15/20] Update actions/setup-node --- .github/workflows/build.yml | 3 ++- .github/workflows/js-tests.yml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 01e46ad5..5402feb8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,9 +13,10 @@ jobs: uses: actions/checkout@v6 - name: Setup Node - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version-file: '.nvmrc' + cache: 'npm' - name: Install PHP uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0 diff --git a/.github/workflows/js-tests.yml b/.github/workflows/js-tests.yml index 15c096e7..d2f4559a 100644 --- a/.github/workflows/js-tests.yml +++ b/.github/workflows/js-tests.yml @@ -17,9 +17,10 @@ jobs: uses: actions/checkout@v6 - name: Setup Node - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version-file: '.nvmrc' + cache: 'npm' - name: Debugging run: | From 80ab432d0bce139e94711e8d14612497a55fa9aa Mon Sep 17 00:00:00 2001 From: "K. Adam White" Date: Tue, 7 Apr 2026 13:43:20 -0400 Subject: [PATCH 16/20] Finish 7.4 -> 8.2 PHP update in CI workflows --- .github/workflows/build.yml | 4 ++-- .github/workflows/php-standards.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5402feb8..0f55deb8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,7 +21,7 @@ jobs: - name: Install PHP uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0 with: - php-version: 7.4 + php-version: 8.2 extensions: mysqli, xmlwriter coverage: none tools: composer:v2 @@ -36,7 +36,7 @@ jobs: uses: actions/cache@v5 with: path: ${{ steps.composer-cache-dir.outputs.DIR }} - key: ${{ runner.os }}-composer-7.4-${{ hashFiles('composer.lock') }} + key: ${{ runner.os }}-composer-8.2-${{ hashFiles('composer.lock') }} - name: Install PHP Dependencies run: composer install --prefer-dist --no-progress --no-suggest --no-interaction diff --git a/.github/workflows/php-standards.yml b/.github/workflows/php-standards.yml index ea82ba31..a554ef72 100644 --- a/.github/workflows/php-standards.yml +++ b/.github/workflows/php-standards.yml @@ -38,7 +38,7 @@ jobs: uses: actions/cache@v5 with: path: ${{ steps.composer-cache-dir.outputs.DIR }} - key: ${{ runner.os }}-composer-7.4-${{ hashFiles('composer.lock') }} + key: ${{ runner.os }}-composer-8.2-${{ hashFiles('composer.lock') }} - name: Install PHP Dependencies run: | @@ -48,7 +48,7 @@ jobs: uses: actions/cache@v5 with: path: tests/cache - key: ${{ runner.os }}-phpcs-7.4-${{ hashFiles('plugin.php') }} + key: ${{ runner.os }}-phpcs-8.2-${{ hashFiles('plugin.php') }} - name: Run the tests run: | From 589e3fbf35e428e9c7dc45db9edce36b1bbd6464 Mon Sep 17 00:00:00 2001 From: "K. Adam White" Date: Tue, 7 Apr 2026 14:18:28 -0400 Subject: [PATCH 17/20] Remove PHPUnit cache result file from VCS --- .gitignore | 1 + .phpunit.result.cache | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 .phpunit.result.cache diff --git a/.gitignore b/.gitignore index 5ba70bb0..1a7dacd9 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ # Files: /tests/.env +.phpunit.result.cache diff --git a/.phpunit.result.cache b/.phpunit.result.cache deleted file mode 100644 index bcb1a9a3..00000000 --- a/.phpunit.result.cache +++ /dev/null @@ -1 +0,0 @@ -{"version":1,"defects":{"Authorship\\Tests\\TestRESTAPIUserEndpoint::testGuestAuthorCanBeCreatedWithJustAName":5,"Authorship\\Tests\\TestCLI::testMigratePostTypePost":5,"Authorship\\Tests\\TestCLI::testMigratePostTypePage":5},"times":{"Authorship\\Tests\\TestRESTAPIUserEndpoint::testGuestAuthorCanBeCreatedWithJustAName":0.034,"Authorship\\Tests\\TestArchive::testAuthorArchiveQueryIsCorrect":0.036,"Authorship\\Tests\\TestArchive::testAuthorArchiveTitleIsCorrect":0.012,"Authorship\\Tests\\TestCapabilities::testUserCanManageDraftPostTheyAreAttributedTo with data set #0":0.015,"Authorship\\Tests\\TestCapabilities::testUserCanManageDraftPostTheyAreAttributedTo with data set #1":0.014,"Authorship\\Tests\\TestCapabilities::testUserCanManageDraftPostTheyAreAttributedTo with data set #2":0.012,"Authorship\\Tests\\TestCapabilities::testUserCanManageDraftPostTheyAreAttributedTo with data set #3":0.011,"Authorship\\Tests\\TestCapabilities::testUserCanManagePublishedPostTheyAreAttributedTo with data set #0":0.01,"Authorship\\Tests\\TestCapabilities::testUserCanManagePublishedPostTheyAreAttributedTo with data set #1":0.009,"Authorship\\Tests\\TestCapabilities::testUserCanManagePublishedPostTheyAreAttributedTo with data set #2":0.009,"Authorship\\Tests\\TestCapabilities::testUserCanManagePublishedPostTheyAreAttributedTo with data set #3":0.009,"Authorship\\Tests\\TestCapabilities::testUserCanManageScheduledPostTheyAreAttributedTo with data set #0":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManageScheduledPostTheyAreAttributedTo with data set #1":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManageScheduledPostTheyAreAttributedTo with data set #2":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManageScheduledPostTheyAreAttributedTo with data set #3":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManagePendingPostTheyAreAttributedTo with data set #0":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManagePendingPostTheyAreAttributedTo with data set #1":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManagePendingPostTheyAreAttributedTo with data set #2":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManagePendingPostTheyAreAttributedTo with data set #3":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManageTrashedPostTheyAreAttributedTo with data set #0":0.015,"Authorship\\Tests\\TestCapabilities::testUserCanManageTrashedPostTheyAreAttributedTo with data set #1":0.014,"Authorship\\Tests\\TestCapabilities::testUserCanManageTrashedPostTheyAreAttributedTo with data set #2":0.015,"Authorship\\Tests\\TestCapabilities::testUserCanManageTrashedPostTheyAreAttributedTo with data set #3":0.014,"Authorship\\Tests\\TestCapabilities::testUserCanManagePrivatePostTheyAreAttributedTo with data set #0":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManagePrivatePostTheyAreAttributedTo with data set #1":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManagePrivatePostTheyAreAttributedTo with data set #2":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManagePrivatePostTheyAreAttributedTo with data set #3":0.007,"Authorship\\Tests\\TestCapabilities::testUserCanManagePublishedPostTheyAreOwnerOfButNotAttributedTo with data set #0":0.009,"Authorship\\Tests\\TestCapabilities::testUserCanManagePublishedPostTheyAreOwnerOfButNotAttributedTo with data set #1":0.009,"Authorship\\Tests\\TestCapabilities::testUserCanManagePublishedPostTheyAreOwnerOfButNotAttributedTo with data set #2":0.01,"Authorship\\Tests\\TestCapabilities::testUserCanManagePublishedPostTheyAreOwnerOfButNotAttributedTo with data set #3":0.009,"Authorship\\Tests\\TestCapabilities::testUserCannotManagePublishedPostTheyAreNotAttributedTo with data set #0":0.009,"Authorship\\Tests\\TestCapabilities::testUserCannotManagePublishedPostTheyAreNotAttributedTo with data set #1":0.009,"Authorship\\Tests\\TestCapabilities::testUserCannotManagePublishedPostTheyAreNotAttributedTo with data set #2":0.01,"Authorship\\Tests\\TestCapabilities::testUserCannotManagePublishedPostTheyAreNotAttributedTo with data set #3":0.01,"Authorship\\Tests\\TestCapabilities::testUserCannotManageNonExistentPost with data set #0":0.004,"Authorship\\Tests\\TestCapabilities::testUserCannotManageNonExistentPost with data set #1":0.003,"Authorship\\Tests\\TestCapabilities::testUserCannotManageNonExistentPost with data set #2":0.003,"Authorship\\Tests\\TestCapabilities::testUserCannotManageNonExistentPost with data set #3":0.002,"Authorship\\Tests\\TestCapabilities::testDefaultCustomCapMappingIsCorrect with data set #0":0.003,"Authorship\\Tests\\TestCapabilities::testDefaultCustomCapMappingIsCorrect with data set #1":0.002,"Authorship\\Tests\\TestCapabilities::testDefaultCustomCapMappingIsCorrect with data set #2":0.002,"Authorship\\Tests\\TestCapabilities::testDefaultCustomCapMappingIsCorrect with data set #3":0.002,"Authorship\\Tests\\TestCapabilities::testDefaultCustomCapMappingIsCorrect with data set #4":0.002,"Authorship\\Tests\\TestCapabilities::testGuestAuthorCreationCanBeGranted with data set #0":0.002,"Authorship\\Tests\\TestCapabilities::testGuestAuthorCreationCanBeGranted with data set #1":0.003,"Authorship\\Tests\\TestCapabilities::testGuestAuthorCreationCanBeGranted with data set #2":0.002,"Authorship\\Tests\\TestCapabilities::testGuestAuthorCreationCanBeGranted with data set #3":0.003,"Authorship\\Tests\\TestCapabilities::testGuestAuthorCreationCanBeGranted with data set #4":0.003,"Authorship\\Tests\\TestCapabilities::testGuestAuthorCreationCanBeDenied with data set #0":0.003,"Authorship\\Tests\\TestCapabilities::testGuestAuthorCreationCanBeDenied with data set #1":0.003,"Authorship\\Tests\\TestCapabilities::testGuestAuthorCreationCanBeDenied with data set #2":0.003,"Authorship\\Tests\\TestCapabilities::testGuestAuthorCreationCanBeDenied with data set #3":0.002,"Authorship\\Tests\\TestCapabilities::testGuestAuthorCreationCanBeDenied with data set #4":0.003,"Authorship\\Tests\\TestCapabilities::testGuestPostAttributionCanBeGranted with data set #0":0.002,"Authorship\\Tests\\TestCapabilities::testGuestPostAttributionCanBeGranted with data set #1":0.003,"Authorship\\Tests\\TestCapabilities::testGuestPostAttributionCanBeGranted with data set #2":0.005,"Authorship\\Tests\\TestCapabilities::testGuestPostAttributionCanBeGranted with data set #3":0.003,"Authorship\\Tests\\TestCapabilities::testGuestPostAttributionCanBeGranted with data set #4":0.003,"Authorship\\Tests\\TestCapabilities::testGuestPostAttributionCanBeDenied with data set #0":0.003,"Authorship\\Tests\\TestCapabilities::testGuestPostAttributionCanBeDenied with data set #1":0.003,"Authorship\\Tests\\TestCapabilities::testGuestPostAttributionCanBeDenied with data set #2":0.003,"Authorship\\Tests\\TestCapabilities::testGuestPostAttributionCanBeDenied with data set #3":0.003,"Authorship\\Tests\\TestCapabilities::testGuestPostAttributionCanBeDenied with data set #4":0.003,"Authorship\\Tests\\TestCLI::testMigratePostTypePost":2.037,"Authorship\\Tests\\TestCLI::testMigratePostTypePage":2.046,"Authorship\\Tests\\TestEmails::testCommentModerationEmailIsSentToUsersWhoCanModerateIt":0.03,"Authorship\\Tests\\TestEmails::testCommentModerationEmailDoesNotDuplicateRecipients":0.009,"Authorship\\Tests\\TestEmails::testCommentNotificationEmailIsSentToAllAttributedAuthors":0.019,"Authorship\\Tests\\TestRSS2::testMultipleAuthorNamesAreListed":0.031,"Authorship\\Tests\\TestPlugin::testReadmeIsUpToDate":0.005,"Authorship\\Tests\\TestPostSaving::testPostAuthorshipDoesNotGetSavedOnPostTypeThatDoesNotSupportAuthor":0.007,"Authorship\\Tests\\TestPostSaving::testPostAuthorshipIsRetainedWhenUpdatingPostWithNoAuthorshipParameter":0.029,"Authorship\\Tests\\TestPostSaving::testPostAuthorshipIsRetainedWhenUpdatingPostWithPostAuthorParameter":0.018,"Authorship\\Tests\\TestPostSaving::testPostAuthorshipIsSetToAuthorWhenCreatingPost":0.006,"Authorship\\Tests\\TestPostSaving::testPostAuthorshipIsSetToAuthorWhenUpdatingPostWithNoExistingAuthorship":0.011,"Authorship\\Tests\\TestPostSaving::testPostAuthorshipIsSetToEmptyWhenUpdatingPostWithNoExistingAuthorshipAndFiltered":0.01,"Authorship\\Tests\\TestPostSaving::testMultiplePostInsertionDoesNotCompoundActions":0.006,"Authorship\\Tests\\TestRESTAPIPostProperty::testAuthorshipCanBeSpecifiedWhenCreatingPost":0.028,"Authorship\\Tests\\TestRESTAPIPostProperty::testAuthorshipOnlyAcceptsAnArray":0.01,"Authorship\\Tests\\TestRESTAPIPostProperty::testAuthorshipCannotBeSpecifiedWhenCreatingAsAuthorRole":0.008,"Authorship\\Tests\\TestRESTAPIPostProperty::testAuthorshipCanBeSpecifiedWhenEditing":0.031,"Authorship\\Tests\\TestRESTAPIPostProperty::testAuthorshipIsRetainedWhenNotSpecifiedWhenEditing":0.018,"Authorship\\Tests\\TestRESTAPIPostProperty::testAuthorshipIsRetainedWhenOnlyPostAuthorIsSpecifiedWhenEditing":0.018,"Authorship\\Tests\\TestRESTAPIPostProperty::testAuthorshipPropertyExists":0.016,"Authorship\\Tests\\TestRESTAPIPostProperty::testAuthorshipLinksArePresent":0.014,"Authorship\\Tests\\TestRESTAPIPostProperty::testAuthorshipLinksAreEmbeddable":0.024,"Authorship\\Tests\\TestRESTAPIPostProperty::testRelLinksArePresent":0.014,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testFieldCannotBeSpecifiedWhenCreatingGuestAuthor with data set #0":0.01,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testFieldCannotBeSpecifiedWhenCreatingGuestAuthor with data set #1":0.008,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUserOutputFieldsAreRestrictedWhenListingUsers":0.009,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testAllUsersAreListedWhenListingUsers":0.013,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUsersCannotBeFilteredByParameter with data set #0":0.011,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUsersCannotBeFilteredByParameter with data set #1":0.008,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUsersCannotBeFilteredByParameter with data set #2":0.01,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUsersCannotBeFilteredByParameter with data set #3":0.008,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testContextCannotBeSetToEditWhenListingUsers":0.008,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testPostTypeIsRequiredWhenListingUsers":0.01,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testEndpointRequiresAuthentication":0.007,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testAllowedOrderByParameters with data set #0":0.013,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testAllowedOrderByParameters with data set #1":0.015,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testDisallowedOrderByParameters with data set #0":0.008,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testDisallowedOrderByParameters with data set #1":0.01,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testDisallowedOrderByParameters with data set #2":0.01,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testDisallowedOrderByParameters with data set #3":0.009,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testDisallowedOrderByParameters with data set #4":0.009,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUserRolesThatCanListAuthors with data set #0":0.018,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUserRolesThatCanListAuthors with data set #1":0.011,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUserRolesThatCanListAuthors with data set #2":0.011,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUserRolesThatCanListAuthors with data set #3":0.011,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUserRolesThatCanListAuthors with data set #4":0.008,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUserRolesThatCanCreateGuestAuthors with data set #0":0.042,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUserRolesThatCanCreateGuestAuthors with data set #1":0.031,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUserRolesThatCanCreateGuestAuthors with data set #2":0.006,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUserRolesThatCanCreateGuestAuthors with data set #3":0.007,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testUserRolesThatCanCreateGuestAuthors with data set #4":0.011,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testGuestAuthorEmailIsAllowed with data set #0":0.008,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testGuestAuthorEmailIsAllowed with data set #1":0.008,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testGuestAuthorEmailIsAllowed with data set #2":0.011,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testGuestAuthorEmailIsAllowed with data set #3":0.008,"Authorship\\Tests\\TestRESTAPIUserEndpoint::testGuestAuthorEmailIsAllowed with data set #4":0.01,"Authorship\\Tests\\TestTemplate::testUserIsAuthor with data set #0":0.017,"Authorship\\Tests\\TestTemplate::testUserIsAuthor with data set #1":0.014,"Authorship\\Tests\\TestTemplate::testUserIsAuthor with data set #2":0.01,"Authorship\\Tests\\TestTemplate::testUserIsAuthor with data set #3":0.007,"Authorship\\Tests\\TestTemplate::testUserIsAuthor with data set #4":0.009,"Authorship\\Tests\\TestTemplate::testUserIsAuthor with data set #5":0.006,"Authorship\\Tests\\TestTemplate::testUserIsAuthor with data set #6":0.008,"Authorship\\Tests\\TestTemplate::testAuthorIDs with data set #0":0.009,"Authorship\\Tests\\TestTemplate::testAuthorIDs with data set #1":0.009,"Authorship\\Tests\\TestTemplate::testAuthorIDs with data set #2":0.01,"Authorship\\Tests\\TestTemplate::testAuthorIDs with data set #3":0.008,"Authorship\\Tests\\TestTemplate::testAuthorNames":0.01,"Authorship\\Tests\\TestTemplate::testAuthorNamesInSentence":0.011,"Authorship\\Tests\\TestTemplate::testAuthorNamesInList":0.011,"Authorship\\Tests\\TestWPQuery::testQueryForAuthorReturnsPostsAttributedToAuthor":0.041,"Authorship\\Tests\\TestWPQuery::testQueriedObjectIsRetainedAfterQueryingForAuthor":0.008,"Authorship\\Tests\\TestWPQuery::testQueryForInvalidAuthorReturnsNoResults":0.008,"Authorship\\Tests\\TestWPQuery::testQueryOverridesDoNotAffectPostTypesThatDoNotSupportAuthor":0.004,"Authorship\\Tests\\TestWPQuery::testQueryVarsRemainUnaffectedAfterQuery":0.009,"Authorship\\Tests\\TestWPQuery::testSubsequentQueriesAreUnaffected":0.013,"Authorship\\Tests\\TestMultisite::testSuperAdminWithNoRoleOnSite":0.012}} \ No newline at end of file From 0f046927925f5f2116520b65a40c798e310e9849 Mon Sep 17 00:00:00 2001 From: "K. Adam White" Date: Tue, 7 Apr 2026 14:21:19 -0400 Subject: [PATCH 18/20] Pin specific SHAs for all GitHub Action dependencies --- .github/workflows/build.yml | 8 ++++---- .github/workflows/js-tests.yml | 6 +++--- .github/workflows/php-standards.yml | 6 +++--- .github/workflows/test-nightly.yml | 4 ++-- .github/workflows/test.yml | 4 ++-- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0f55deb8..660414ae 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,10 +10,10 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout repository - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Setup Node - uses: actions/setup-node@v6 + uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version-file: '.nvmrc' cache: 'npm' @@ -33,7 +33,7 @@ jobs: - name: Cache PHP Dependencies id: composer-cache - uses: actions/cache@v5 + uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: ${{ steps.composer-cache-dir.outputs.DIR }} key: ${{ runner.os }}-composer-8.2-${{ hashFiles('composer.lock') }} @@ -50,7 +50,7 @@ jobs: - name: Cache JS Dependencies id: npm-cache - uses: actions/cache@v5 + uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: ${{ steps.npm-cache-dir.outputs.DIR }} key: ${{ runner.os }}-npm-${{ steps.npm-cache-dir.outputs.NODE_VERSION }}-${{ steps.npm-cache-dir.outputs.NPM_VERSION }}-${{ hashFiles('package-lock.json') }} diff --git a/.github/workflows/js-tests.yml b/.github/workflows/js-tests.yml index d2f4559a..687bce26 100644 --- a/.github/workflows/js-tests.yml +++ b/.github/workflows/js-tests.yml @@ -14,10 +14,10 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout repository - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Setup Node - uses: actions/setup-node@v6 + uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version-file: '.nvmrc' cache: 'npm' @@ -36,7 +36,7 @@ jobs: - name: Cache Dependencies id: npm-cache - uses: actions/cache@v5 + uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: ${{ steps.npm-cache-dir.outputs.DIR }} key: ${{ runner.os }}-npm-${{ steps.npm-cache-dir.outputs.NODE_VERSION }}-${{ steps.npm-cache-dir.outputs.NPM_VERSION }}-${{ hashFiles('package-lock.json') }} diff --git a/.github/workflows/php-standards.yml b/.github/workflows/php-standards.yml index a554ef72..0a355568 100644 --- a/.github/workflows/php-standards.yml +++ b/.github/workflows/php-standards.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout repository - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install PHP uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0 @@ -35,7 +35,7 @@ jobs: - name: Cache PHP Dependencies id: composer-cache - uses: actions/cache@v5 + uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: ${{ steps.composer-cache-dir.outputs.DIR }} key: ${{ runner.os }}-composer-8.2-${{ hashFiles('composer.lock') }} @@ -45,7 +45,7 @@ jobs: composer install --prefer-dist --no-progress --no-suggest --no-interaction - name: PHPCS cache - uses: actions/cache@v5 + uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: tests/cache key: ${{ runner.os }}-phpcs-8.2-${{ hashFiles('plugin.php') }} diff --git a/.github/workflows/test-nightly.yml b/.github/workflows/test-nightly.yml index e8dd7553..84b60bc8 100644 --- a/.github/workflows/test-nightly.yml +++ b/.github/workflows/test-nightly.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout repository - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install PHP uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0 @@ -43,7 +43,7 @@ jobs: - name: Cache PHP Dependencies id: composer-cache - uses: actions/cache@v5 + uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: ${{ steps.composer-cache-dir.outputs.DIR }} key: ${{ runner.os }}-composer-${{ matrix.php }}-${{ hashFiles('composer.lock') }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 64e52e67..ed3b73d6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,7 +22,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout repository - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install PHP uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0 @@ -46,7 +46,7 @@ jobs: - name: Cache PHP Dependencies id: composer-cache - uses: actions/cache@v5 + uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: ${{ steps.composer-cache-dir.outputs.dir }} key: ${{ runner.os }}-composer-${{ matrix.php }}-${{ hashFiles('composer.lock') }}-wp6.9 From 8c00b7efdd57536d25c924a79faf5e53ff29447f Mon Sep 17 00:00:00 2001 From: "K. Adam White" Date: Fri, 10 Apr 2026 13:25:06 -0500 Subject: [PATCH 19/20] Revert "Use admin user in guest author created use case, edit_user permission now required to enumerate "roles" property" This reverts commit 21e67588868fcd62b6987777bc1e1d2aab75c593. --- tests/phpunit/test-rest-api-user-endpoint.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/phpunit/test-rest-api-user-endpoint.php b/tests/phpunit/test-rest-api-user-endpoint.php index f3f6715d..2a93bcbb 100644 --- a/tests/phpunit/test-rest-api-user-endpoint.php +++ b/tests/phpunit/test-rest-api-user-endpoint.php @@ -27,7 +27,7 @@ class TestRESTAPIUserEndpoint extends RESTAPITestCase { protected static $route = '/' . Users_Controller::_NAMESPACE . '/' . Users_Controller::BASE; public function testGuestAuthorCanBeCreatedWithJustAName(): void { - wp_set_current_user( self::$users['admin']->ID ); + wp_set_current_user( self::$users['editor']->ID ); $request = new WP_REST_Request( 'POST', self::$route ); $request->set_param( 'name', 'Firsty Lasty' ); From 7432855b2aa5b16024615b719a9b34f3bb476383 Mon Sep 17 00:00:00 2001 From: "K. Adam White" Date: Fri, 10 Apr 2026 13:25:59 -0500 Subject: [PATCH 20/20] Remove GUEST_ROLE assertion: editor cannot see roles on other users since 6.6.5 --- tests/phpunit/test-rest-api-user-endpoint.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/phpunit/test-rest-api-user-endpoint.php b/tests/phpunit/test-rest-api-user-endpoint.php index 2a93bcbb..b602f90d 100644 --- a/tests/phpunit/test-rest-api-user-endpoint.php +++ b/tests/phpunit/test-rest-api-user-endpoint.php @@ -18,8 +18,6 @@ use WP_Http; use WP_REST_Request; -use const Authorship\GUEST_ROLE; - class TestRESTAPIUserEndpoint extends RESTAPITestCase { /** * @var string @@ -33,11 +31,9 @@ public function testGuestAuthorCanBeCreatedWithJustAName(): void { $request->set_param( 'name', 'Firsty Lasty' ); $response = self::rest_do_request( $request ); - $data = $response->get_data(); $message = self::get_message( $response ); $this->assertSame( WP_Http::CREATED, $response->get_status(), $message ); - $this->assertSame( [ GUEST_ROLE ], $data['roles'] ); } /**