From 389c86c3dbda79fad806ee59d41d36c38647376a Mon Sep 17 00:00:00 2001 From: Aryan Jasala Date: Tue, 28 Jul 2026 01:27:29 +0530 Subject: [PATCH 1/3] chore(deps): pin rtcamp/wp-framework to ^1.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The theme tracked `dev-main`, so every build silently picked up whatever the framework's main branch happened to be at install time — unreproducible, and with no protection against a breaking change landing upstream. wp-framework now has a tagged v1.0.0 release, so pin to the constraint and let composer resolve it. The lock moves from dev-main@e30352c to v1.0.0 and the dev stability flag for the package drops out. minimum-stability stays `dev` — other dependencies may still rely on it, and narrowing it is a separate change. --- composer.json | 2 +- composer.lock | 21 +++++++++------------ 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/composer.json b/composer.json index 775b8d2f..ca5bdc8a 100644 --- a/composer.json +++ b/composer.json @@ -13,7 +13,7 @@ ], "require": { "php": ">=8.2", - "rtcamp/wp-framework": "dev-main" + "rtcamp/wp-framework": "^1.0" }, "require-dev": { "wp-coding-standards/wpcs": "^2.3", diff --git a/composer.lock b/composer.lock index e01d0c11..9b55d8f7 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "2cb40a71ad05e3074aa7f27c09214369", + "content-hash": "fc03e049ceadaf9e8cee4fb9a4657381", "packages": [ { "name": "rtcamp/wp-framework", - "version": "dev-main", + "version": "v1.0.0", "source": { "type": "git", "url": "https://github.com/rtCamp/wp-framework.git", - "reference": "e30352cf578fcba49f889f801311b881cc368908" + "reference": "10f9a4d1fd9d2d56e2cd477605253e82a1317039" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rtCamp/wp-framework/zipball/e30352cf578fcba49f889f801311b881cc368908", - "reference": "e30352cf578fcba49f889f801311b881cc368908", + "url": "https://api.github.com/repos/rtCamp/wp-framework/zipball/10f9a4d1fd9d2d56e2cd477605253e82a1317039", + "reference": "10f9a4d1fd9d2d56e2cd477605253e82a1317039", "shasum": "" }, "require": { @@ -32,10 +32,9 @@ "squizlabs/php_codesniffer": "^3.10", "szepeviktor/phpstan-wordpress": "^2.0", "wp-coding-standards/wpcs": "^3.1", - "wp-phpunit/wp-phpunit": "^6.9", + "wp-phpunit/wp-phpunit": "^6.9 || ^7.0", "yoast/phpunit-polyfills": "^4.0" }, - "default-branch": true, "type": "library", "autoload": { "psr-4": { @@ -75,7 +74,7 @@ "issues": "https://github.com/rtCamp/wp-framework/issues", "source": "https://github.com/rtCamp/wp-framework" }, - "time": "2026-06-23T22:36:13+00:00" + "time": "2026-07-27T19:49:48+00:00" } ], "packages-dev": [ @@ -3449,15 +3448,13 @@ ], "aliases": [], "minimum-stability": "dev", - "stability-flags": { - "rtcamp/wp-framework": 20 - }, + "stability-flags": [], "prefer-stable": true, "prefer-lowest": false, "platform": { "php": ">=8.2" }, - "platform-dev": {}, + "platform-dev": [], "platform-overrides": { "php": "8.2" }, From ca88e3f9f6419c4b0e8dd93f9f9c44e5442171c3 Mon Sep 17 00:00:00 2001 From: Aryan Jasala Date: Wed, 29 Jul 2026 17:10:22 +0530 Subject: [PATCH 2/3] chore(deps): bump rtcamp/wp-framework lock to v1.0.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit v1.0.0's Singleton storage change fataled this theme on boot (Access to undeclared static property Main::$instance — inc/Main.php:47 assigns it as the constructor's re-entrancy guard). v1.0.1 restores the protected $instance contract and documents that guard as the supported pattern, so no theme change is needed. --- composer.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/composer.lock b/composer.lock index 9b55d8f7..5fd4e01c 100644 --- a/composer.lock +++ b/composer.lock @@ -8,16 +8,16 @@ "packages": [ { "name": "rtcamp/wp-framework", - "version": "v1.0.0", + "version": "v1.0.1", "source": { "type": "git", "url": "https://github.com/rtCamp/wp-framework.git", - "reference": "10f9a4d1fd9d2d56e2cd477605253e82a1317039" + "reference": "87774ee10d2e10f5b8bd2561a5d8e4a92f431b8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rtCamp/wp-framework/zipball/10f9a4d1fd9d2d56e2cd477605253e82a1317039", - "reference": "10f9a4d1fd9d2d56e2cd477605253e82a1317039", + "url": "https://api.github.com/repos/rtCamp/wp-framework/zipball/87774ee10d2e10f5b8bd2561a5d8e4a92f431b8d", + "reference": "87774ee10d2e10f5b8bd2561a5d8e4a92f431b8d", "shasum": "" }, "require": { @@ -74,7 +74,7 @@ "issues": "https://github.com/rtCamp/wp-framework/issues", "source": "https://github.com/rtCamp/wp-framework" }, - "time": "2026-07-27T19:49:48+00:00" + "time": "2026-07-29T11:38:56+00:00" } ], "packages-dev": [ From b5a8a4c037303972a506986aed75da126b9e6c4e Mon Sep 17 00:00:00 2001 From: Aryan Jasala Date: Wed, 29 Jul 2026 17:16:40 +0530 Subject: [PATCH 3/3] ci(phpstan): mark node_modules as an optional excludePath MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Lint PHP job installs composer only, never npm, so node_modules does not exist there. PHPStan treats a missing excludePath as a configuration error and refuses to run: Invalid entry in excludePaths: Path ".../node_modules" is neither a directory, nor a file path, nor a fnmatch pattern. Appending `(?)` marks it optional, which is what PHPStan's own message recommends. Verified both ways locally: analysis passes with node_modules absent (CI) and present (dev), 16 files at level 8, no errors. Pre-existing on feature branches and on theme-elementary-v2 itself, not caused by the dependency pin in this PR — it surfaces here because the PHPStan job is new. Merging this carries the fix to the base branch too. --- phpstan.neon.dist | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/phpstan.neon.dist b/phpstan.neon.dist index 07f4864d..47e791a0 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -34,6 +34,8 @@ parameters: - tests/ - vendor/ analyseAndScan: - - node_modules/ + # Optional: the Lint PHP job never runs `npm install`, so this path is + # absent there and PHPStan treats a missing excludePath as a config error. + - node_modules/ (?) scanFiles: - vendor/php-stubs/wp-cli-stubs/wp-cli-stubs.php