From ce953031bc30383338cded6b94cad74add02fdd3 Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Sun, 22 Oct 2023 10:47:18 +0300 Subject: [PATCH 01/25] - Extending `release` command. - Adding default branches for extensions maintainer by Ventures. - Replacing WooRelease `release` command with the local one. --- .gitignore | 3 +- bin/wr | 2 + composer.lock | 293 +++++++++--------- extensions.json | 12 +- .../src/Commands/Bulk.php | 41 ++- .../src/Commands/Release.php | 227 ++++++++++++++ 6 files changed, 424 insertions(+), 154 deletions(-) create mode 100644 packages/php/woorelease-extension/src/Commands/Release.php diff --git a/.gitignore b/.gitignore index 98aa1de4..f04d25be 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,5 @@ vendor/ *.zip # IDE files -.vscode/* \ No newline at end of file +.vscode/* +.idea diff --git a/bin/wr b/bin/wr index 62a8fbe7..87d2af16 100755 --- a/bin/wr +++ b/bin/wr @@ -3,6 +3,7 @@ use Automattic\WooCommerce\Grow\WR\Commands\Bulk; use Automattic\WooCommerce\Grow\WR\Commands\VersionReplace; +use Automattic\WooCommerce\Grow\WR\Commands\Release; use WR\Application; $rootDir = dirname(__DIR__); @@ -41,6 +42,7 @@ $app->addCommands( [ new Bulk(), new VersionReplace(), + new Release(), ] ); diff --git a/composer.lock b/composer.lock index 62d405fe..05b57ed0 100644 --- a/composer.lock +++ b/composer.lock @@ -330,16 +330,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.15.4", + "version": "v4.17.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290" + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6bb5176bc4af8bcb7d926f88718db9b96a2d4290", - "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", "shasum": "" }, "require": { @@ -380,9 +380,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.4" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" }, - "time": "2023-03-05T19:49:14+00:00" + "time": "2023-08-13T19:53:39+00:00" }, { "name": "phar-io/manifest", @@ -616,16 +616,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.26", + "version": "9.2.29", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1" + "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", - "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/6a3a87ac2bbe33b25042753df8195ba4aa534c76", + "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76", "shasum": "" }, "require": { @@ -681,7 +681,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.26" + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.29" }, "funding": [ { @@ -689,7 +690,7 @@ "type": "github" } ], - "time": "2023-03-06T12:58:08+00:00" + "time": "2023-09-19T04:57:46+00:00" }, { "name": "phpunit/php-file-iterator", @@ -934,16 +935,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.6", + "version": "9.6.13", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "b65d59a059d3004a040c16a82e07bbdf6cfdd115" + "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b65d59a059d3004a040c16a82e07bbdf6cfdd115", - "reference": "b65d59a059d3004a040c16a82e07bbdf6cfdd115", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f3d767f7f9e191eab4189abe41ab37797e30b1be", + "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be", "shasum": "" }, "require": { @@ -958,7 +959,7 @@ "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.13", + "phpunit/php-code-coverage": "^9.2.28", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.3", @@ -1017,7 +1018,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.6" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.13" }, "funding": [ { @@ -1033,7 +1034,7 @@ "type": "tidelift" } ], - "time": "2023-03-27T11:43:46+00:00" + "time": "2023-09-19T05:39:22+00:00" }, { "name": "psr/container", @@ -1483,16 +1484,16 @@ }, { "name": "sebastian/diff", - "version": "4.0.4", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", "shasum": "" }, "require": { @@ -1537,7 +1538,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" }, "funding": [ { @@ -1545,7 +1546,7 @@ "type": "github" } ], - "time": "2020-10-26T13:10:38+00:00" + "time": "2023-05-07T05:35:17+00:00" }, { "name": "sebastian/environment", @@ -1689,16 +1690,16 @@ }, { "name": "sebastian/global-state", - "version": "5.0.5", + "version": "5.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + "reference": "bde739e7565280bda77be70044ac1047bc007e34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34", + "reference": "bde739e7565280bda77be70044ac1047bc007e34", "shasum": "" }, "require": { @@ -1741,7 +1742,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6" }, "funding": [ { @@ -1749,7 +1750,7 @@ "type": "github" } ], - "time": "2022-02-14T08:28:10+00:00" + "time": "2023-08-02T09:26:13+00:00" }, { "name": "sebastian/lines-of-code", @@ -2206,16 +2207,16 @@ }, { "name": "symfony/config", - "version": "v5.4.21", + "version": "v5.4.26", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "2a6b1111d038adfa15d52c0871e540f3b352d1e4" + "reference": "8109892f27beed9252bd1f1c1880aeb4ad842650" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/2a6b1111d038adfa15d52c0871e540f3b352d1e4", - "reference": "2a6b1111d038adfa15d52c0871e540f3b352d1e4", + "url": "https://api.github.com/repos/symfony/config/zipball/8109892f27beed9252bd1f1c1880aeb4ad842650", + "reference": "8109892f27beed9252bd1f1c1880aeb4ad842650", "shasum": "" }, "require": { @@ -2265,7 +2266,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v5.4.21" + "source": "https://github.com/symfony/config/tree/v5.4.26" }, "funding": [ { @@ -2281,20 +2282,20 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:03:56+00:00" + "time": "2023-07-19T20:21:11+00:00" }, { "name": "symfony/console", - "version": "v5.4.22", + "version": "v5.4.28", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "3cd51fd2e6c461ca678f84d419461281bd87a0a8" + "reference": "f4f71842f24c2023b91237c72a365306f3c58827" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/3cd51fd2e6c461ca678f84d419461281bd87a0a8", - "reference": "3cd51fd2e6c461ca678f84d419461281bd87a0a8", + "url": "https://api.github.com/repos/symfony/console/zipball/f4f71842f24c2023b91237c72a365306f3c58827", + "reference": "f4f71842f24c2023b91237c72a365306f3c58827", "shasum": "" }, "require": { @@ -2364,7 +2365,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.22" + "source": "https://github.com/symfony/console/tree/v5.4.28" }, "funding": [ { @@ -2380,20 +2381,20 @@ "type": "tidelift" } ], - "time": "2023-03-25T09:27:28+00:00" + "time": "2023-08-07T06:12:30+00:00" }, { "name": "symfony/dependency-injection", - "version": "v5.4.22", + "version": "v5.4.28", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "e1b7c1432efb4ad1dd89d62906187271e2601ed9" + "reference": "addc22fed594f9ce04e73ef6a9d3e2416f77192d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/e1b7c1432efb4ad1dd89d62906187271e2601ed9", - "reference": "e1b7c1432efb4ad1dd89d62906187271e2601ed9", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/addc22fed594f9ce04e73ef6a9d3e2416f77192d", + "reference": "addc22fed594f9ce04e73ef6a9d3e2416f77192d", "shasum": "" }, "require": { @@ -2453,7 +2454,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v5.4.22" + "source": "https://github.com/symfony/dependency-injection/tree/v5.4.28" }, "funding": [ { @@ -2469,7 +2470,7 @@ "type": "tidelift" } ], - "time": "2023-03-10T10:02:45+00:00" + "time": "2023-08-14T10:47:38+00:00" }, { "name": "symfony/deprecation-contracts", @@ -2540,16 +2541,16 @@ }, { "name": "symfony/error-handler", - "version": "v5.4.21", + "version": "v5.4.26", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "56a94aa8cb5a5fbc411551d8d014a296b5456549" + "reference": "b26719213a39c9ba57520cbc5e52bfcc5e8d92f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/56a94aa8cb5a5fbc411551d8d014a296b5456549", - "reference": "56a94aa8cb5a5fbc411551d8d014a296b5456549", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/b26719213a39c9ba57520cbc5e52bfcc5e8d92f9", + "reference": "b26719213a39c9ba57520cbc5e52bfcc5e8d92f9", "shasum": "" }, "require": { @@ -2591,7 +2592,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.4.21" + "source": "https://github.com/symfony/error-handler/tree/v5.4.26" }, "funding": [ { @@ -2607,20 +2608,20 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:03:56+00:00" + "time": "2023-07-16T16:48:57+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.4.22", + "version": "v5.4.26", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "1df20e45d56da29a4b1d8259dd6e950acbf1b13f" + "reference": "5dcc00e03413f05c1e7900090927bb7247cb0aac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1df20e45d56da29a4b1d8259dd6e950acbf1b13f", - "reference": "1df20e45d56da29a4b1d8259dd6e950acbf1b13f", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/5dcc00e03413f05c1e7900090927bb7247cb0aac", + "reference": "5dcc00e03413f05c1e7900090927bb7247cb0aac", "shasum": "" }, "require": { @@ -2676,7 +2677,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.22" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.26" }, "funding": [ { @@ -2692,7 +2693,7 @@ "type": "tidelift" } ], - "time": "2023-03-17T11:31:58+00:00" + "time": "2023-07-06T06:34:20+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -2775,16 +2776,16 @@ }, { "name": "symfony/filesystem", - "version": "v5.4.21", + "version": "v5.4.25", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "e75960b1bbfd2b8c9e483e0d74811d555ca3de9f" + "reference": "0ce3a62c9579a53358d3a7eb6b3dfb79789a6364" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/e75960b1bbfd2b8c9e483e0d74811d555ca3de9f", - "reference": "e75960b1bbfd2b8c9e483e0d74811d555ca3de9f", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/0ce3a62c9579a53358d3a7eb6b3dfb79789a6364", + "reference": "0ce3a62c9579a53358d3a7eb6b3dfb79789a6364", "shasum": "" }, "require": { @@ -2819,7 +2820,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.4.21" + "source": "https://github.com/symfony/filesystem/tree/v5.4.25" }, "funding": [ { @@ -2835,20 +2836,20 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:03:56+00:00" + "time": "2023-05-31T13:04:02+00:00" }, { "name": "symfony/http-foundation", - "version": "v5.4.22", + "version": "v5.4.28", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "05cd1acdd0e3ce8473aaba1d86c188321d85f313" + "reference": "365992c83a836dfe635f1e903ccca43ee03d3dd2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/05cd1acdd0e3ce8473aaba1d86c188321d85f313", - "reference": "05cd1acdd0e3ce8473aaba1d86c188321d85f313", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/365992c83a836dfe635f1e903ccca43ee03d3dd2", + "reference": "365992c83a836dfe635f1e903ccca43ee03d3dd2", "shasum": "" }, "require": { @@ -2895,7 +2896,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.4.22" + "source": "https://github.com/symfony/http-foundation/tree/v5.4.28" }, "funding": [ { @@ -2911,20 +2912,20 @@ "type": "tidelift" } ], - "time": "2023-03-28T07:28:17+00:00" + "time": "2023-08-21T07:23:18+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.4.22", + "version": "v5.4.28", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "2d3a8be2c756353627398827c409af6f126c096d" + "reference": "127a2322ca1828157901092518b8ea8e4e1109d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/2d3a8be2c756353627398827c409af6f126c096d", - "reference": "2d3a8be2c756353627398827c409af6f126c096d", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/127a2322ca1828157901092518b8ea8e4e1109d4", + "reference": "127a2322ca1828157901092518b8ea8e4e1109d4", "shasum": "" }, "require": { @@ -3007,7 +3008,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.4.22" + "source": "https://github.com/symfony/http-kernel/tree/v5.4.28" }, "funding": [ { @@ -3023,7 +3024,7 @@ "type": "tidelift" } ], - "time": "2023-03-31T11:54:37+00:00" + "time": "2023-08-26T13:47:51+00:00" }, { "name": "symfony/monolog-bridge", @@ -3192,16 +3193,16 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", "shasum": "" }, "require": { @@ -3216,7 +3217,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3254,7 +3255,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" }, "funding": [ { @@ -3270,20 +3271,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354" + "reference": "875e90aeea2777b6f135677f618529449334a612" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", + "reference": "875e90aeea2777b6f135677f618529449334a612", "shasum": "" }, "require": { @@ -3295,7 +3296,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3335,7 +3336,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" }, "funding": [ { @@ -3351,20 +3352,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", "shasum": "" }, "require": { @@ -3376,7 +3377,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3419,7 +3420,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" }, "funding": [ { @@ -3435,20 +3436,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + "reference": "42292d99c55abe617799667f454222c54c60e229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", + "reference": "42292d99c55abe617799667f454222c54c60e229", "shasum": "" }, "require": { @@ -3463,7 +3464,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3502,7 +3503,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" }, "funding": [ { @@ -3518,20 +3519,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-07-28T09:04:16+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" + "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fe2f306d1d9d346a7fee353d0d5012e401e984b5", + "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5", "shasum": "" }, "require": { @@ -3540,7 +3541,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3581,7 +3582,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.28.0" }, "funding": [ { @@ -3597,20 +3598,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", "shasum": "" }, "require": { @@ -3619,7 +3620,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3664,7 +3665,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" }, "funding": [ { @@ -3680,20 +3681,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a" + "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", - "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/7581cd600fa9fd681b797d00b02f068e2f13263b", + "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b", "shasum": "" }, "require": { @@ -3702,7 +3703,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3743,7 +3744,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.28.0" }, "funding": [ { @@ -3759,7 +3760,7 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/service-contracts", @@ -3846,16 +3847,16 @@ }, { "name": "symfony/string", - "version": "v5.4.22", + "version": "v5.4.26", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "8036a4c76c0dd29e60b6a7cafcacc50cf088ea62" + "reference": "1181fe9270e373537475e826873b5867b863883c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/8036a4c76c0dd29e60b6a7cafcacc50cf088ea62", - "reference": "8036a4c76c0dd29e60b6a7cafcacc50cf088ea62", + "url": "https://api.github.com/repos/symfony/string/zipball/1181fe9270e373537475e826873b5867b863883c", + "reference": "1181fe9270e373537475e826873b5867b863883c", "shasum": "" }, "require": { @@ -3912,7 +3913,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.22" + "source": "https://github.com/symfony/string/tree/v5.4.26" }, "funding": [ { @@ -3928,20 +3929,20 @@ "type": "tidelift" } ], - "time": "2023-03-14T06:11:53+00:00" + "time": "2023-06-28T12:46:07+00:00" }, { "name": "symfony/var-dumper", - "version": "v5.4.22", + "version": "v5.4.28", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "e2edac9ce47e6df07e38143c7cfa6bdbc1a6dcc4" + "reference": "684b36ff415e1381d4a943c3ca2502cd2debad73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e2edac9ce47e6df07e38143c7cfa6bdbc1a6dcc4", - "reference": "e2edac9ce47e6df07e38143c7cfa6bdbc1a6dcc4", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/684b36ff415e1381d4a943c3ca2502cd2debad73", + "reference": "684b36ff415e1381d4a943c3ca2502cd2debad73", "shasum": "" }, "require": { @@ -3950,12 +3951,12 @@ "symfony/polyfill-php80": "^1.16" }, "conflict": { - "phpunit/phpunit": "<5.4.3", "symfony/console": "<4.4" }, "require-dev": { "ext-iconv": "*", "symfony/console": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", "symfony/process": "^4.4|^5.0|^6.0", "symfony/uid": "^5.1|^6.0", "twig/twig": "^2.13|^3.0.4" @@ -4001,7 +4002,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.22" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.28" }, "funding": [ { @@ -4017,7 +4018,7 @@ "type": "tidelift" } ], - "time": "2023-03-25T09:27:28+00:00" + "time": "2023-08-24T13:38:36+00:00" }, { "name": "theseer/tokenizer", @@ -4120,16 +4121,16 @@ }, { "name": "yoast/phpunit-polyfills", - "version": "1.0.5", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/Yoast/PHPUnit-Polyfills.git", - "reference": "3b59adeef77fb1c03ff5381dbb9d68b0aaff3171" + "reference": "224e4a1329c03d8bad520e3fc4ec980034a4b212" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/3b59adeef77fb1c03ff5381dbb9d68b0aaff3171", - "reference": "3b59adeef77fb1c03ff5381dbb9d68b0aaff3171", + "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/224e4a1329c03d8bad520e3fc4ec980034a4b212", + "reference": "224e4a1329c03d8bad520e3fc4ec980034a4b212", "shasum": "" }, "require": { @@ -4176,7 +4177,7 @@ "issues": "https://github.com/Yoast/PHPUnit-Polyfills/issues", "source": "https://github.com/Yoast/PHPUnit-Polyfills" }, - "time": "2023-03-30T23:39:05+00:00" + "time": "2023-08-19T14:25:08+00:00" } ], "aliases": [], diff --git a/extensions.json b/extensions.json index f3f4f558..d22891fa 100644 --- a/extensions.json +++ b/extensions.json @@ -14,11 +14,13 @@ }, { "name": "Points & Rewards", - "repoSlug": "woocommerce-points-and-rewards" + "repoSlug": "woocommerce-points-and-rewards", + "defaultBranch": "develop" }, { "name": "Brands", - "repoSlug": "woocommerce-brands" + "repoSlug": "woocommerce-brands", + "defaultBranch": "develop" }, { "name": "Drip", @@ -26,7 +28,8 @@ }, { "name": "Product Filters", - "repoSlug": "woocommerce-product-filters" + "repoSlug": "woocommerce-product-filters", + "defaultBranch": "develop" }, { "name": "Sales Report Email", @@ -42,7 +45,8 @@ }, { "name": "Coupon Campaigns", - "repoSlug": "woocommerce-coupon-campaigns" + "repoSlug": "woocommerce-coupon-campaigns", + "defaultBranch": "develop" } ], "retiredExtensions": [ diff --git a/packages/php/woorelease-extension/src/Commands/Bulk.php b/packages/php/woorelease-extension/src/Commands/Bulk.php index 370f3ba7..93d87ea9 100644 --- a/packages/php/woorelease-extension/src/Commands/Bulk.php +++ b/packages/php/woorelease-extension/src/Commands/Bulk.php @@ -13,7 +13,6 @@ use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Filesystem\Filesystem; use WR\Application; -use WR\Command\Release; /** * Class Bulk @@ -54,8 +53,9 @@ protected function initialize( InputInterface $input, OutputInterface $output ) if ( ! $command instanceof Release ) { throw new InvalidArgumentException( sprintf( - 'Command "%s" is not an instance of %s', + 'Command "%s" (%s) is not an instance of %s', $command->getName(), + get_class( $command ), Release::class ) ); @@ -120,6 +120,40 @@ protected function execute( InputInterface $input, OutputInterface $output ) { ] ); + // Prepare the release: check release/branch to exist. + /*try { + $repositoryUrl = sprintf( 'https://github.com/%1$s/%2$s/tree/%3$s', $item['organization'], $item['repo'] ); + Utils::exec_sprintf( 'git ls-remote --exit-code --heads %s %s', $repositoryUrl, $item['branch'] ); + } catch ( Exception $e ) { + try { + $output->writeln( sprintf( "\nRelease branch %s does not exist.\n", $item['name'] ) ); + if ( Utils::yes_no( sprintf( + 'You are trying to release from %s which does not exist. Do you want to create %s from %s first?', + $item['branch'], + $item['branch'], + $item['source'] + ) ) ) { + // Create release branch. + Utils::exec_sprintf( 'git ls-remote --exit-code --heads %s %s', $repositoryUrl, $item['branch'] ); + } else { + // Ask to release from the default branch for the given repository. + if ( ! Utils::yes_no( sprintf( + 'You\'ve decided not to create %s branch. Do you still want to release from the %s branch?', + $item['branch'], + $item['source'] + ) ) ) { + throw new \Exception( 'Release cancelled.' ); + } + } + } catch ( Exception $e ) { + $output->writeln( sprintf( "\nRelease FAILED for %s\n", $item['name'] ) ); + $output->writeln( sprintf( "\nBranch %s does not exist for %s. The default branch %s was also declined.\n", $item['branch'], $item['name'], $item['source'] ) ); + + $errors[] = $item['name']; + continue; + } + }*/ + $result = $releaseCommand->run( new ArrayInput( $args ), $output ); if ( static::SUCCESS !== $result ) { $output->writeln( sprintf( "\nRelease FAILED for %s\n", $item['name'] ) ); @@ -183,13 +217,14 @@ private function getReleaseData(): array { continue; } - [ $slug, $version, $branch ] = array_pad( explode( "\t", $line ), 3, null ); + [ $slug, $version, $branch, $source ] = array_pad( explode( "\t", $line ), 4, null ); $toRelease[ $slug ] = [ 'name' => $extensions[ $slug ]['name'], 'repo' => $extensions[ $slug ]['repoSlug'], 'version' => $version, 'organization' => $extensions[ $slug ]['githubOrganization'] ?? $githubOrganization, 'branch' => $branch ?? $extensions[ $slug ]['defaultBranch'] ?? $defaultBranch, + 'source' => $source ?? $extensions[ $slug ]['defaultBranch'] ?? $defaultBranch, ]; } diff --git a/packages/php/woorelease-extension/src/Commands/Release.php b/packages/php/woorelease-extension/src/Commands/Release.php new file mode 100644 index 00000000..c2a2a82f --- /dev/null +++ b/packages/php/woorelease-extension/src/Commands/Release.php @@ -0,0 +1,227 @@ +addOption( 'nvm_use', null, InputOption::VALUE_NONE, 'If specified, the release will use `nvm use`' ) + ->addOption( 'create_release_branch', null, InputOption::VALUE_OPTIONAL, 'If specified, the release branch will be created.' ); + } + + protected function execute( InputInterface $input, OutputInterface $output ) { + try { + $logger = Logger::instance( $output ); + $github_url = $input->getArgument( 'github_url' ); + $version = $input->getOption( 'product_version' ); + $wc_tested = $input->getOption( 'wc_tested' ); + $wp_tested = $input->getOption( 'wp_tested' ); + $prerelease = $input->getOption( 'prerelease' ); + $generate_changelog = $input->getOption( 'generate_changelog' ); + $nvm_use = $input->getOption( 'nvm_use' ); + $create_release_branch = $input->getOption( 'create_release_branch' ); + $release = ! $this->simulate; + $reauth = false !== $input->getOption( 'svn_reauth' ); + $editor = Utils::get_config( 'core.editor', false ); + + list( $product, $gh_org, $branch ) = Utils::parse_product_info( $github_url ); + + $logger->notice( 'Processing product {product}...', array( 'product' => $product ) ); + + $gh_token = Utils::get_config( 'github.token' ); + $gh_api = new GitHub_API( $gh_token, $gh_org, $product, $branch ); + + // Clone product. + $folder = Git::clone_product( $product, $branch, $gh_org ); + + // If $version is not supplied, use current and bump the patch version. + if ( ! isset( $version ) ) { + $package_file = $folder . '/package.json'; + + if ( ! file_exists( $package_file ) ) { + throw new \Exception( 'Did not find required "package.json" file in product', 2 ); + } + + $version_file = file_get_contents( $folder . '/package.json' ); + + $entry_regex = '/^\s*"version":\s*"(?\d+\.\d+\.\d+)"/ms'; + + if ( preg_match( $entry_regex, $version_file, $matches ) ) { + $version_parts = explode( '.', $matches['version'] ); + $version = $version_parts[0] . '.' . $version_parts[1] . '.' . (int) ++$version_parts[2]; + } + } + + // Call vb:replace command. + $command = $this->getApplication()->find( 'vb:replace' ); + $arguments = array( + 'github_url' => $github_url, + '--folder' => $folder, + '--product_version' => $version, + // Don't make a separate commit for PHPDoc version replacements + '--release' => false, + ); + + if ( Command::SUCCESS !== $command->run( new ArrayInput( $arguments ), $output ) ) { + return Command::FAILURE; + } + + // Call vb:change command. + $command = $this->getApplication()->find( 'vb:change' ); + $arguments = array( + 'github_url' => $github_url, + '--folder' => $folder, + '--product_version' => $version, + '--wc_tested' => $wc_tested, + '--wp_tested' => $wp_tested, + '--release' => $release, + '--generate_changelog' => $generate_changelog, + ); + + if ( Command::SUCCESS !== $command->run( new ArrayInput( $arguments ), $output ) ) { + return Command::FAILURE; + } + + // Call cl:generate command. + $command = $this->getApplication()->find( 'cl:generate' ); + $arguments = array( + 'github_url' => $github_url, + '--folder' => $folder, + '--product_version' => $version, + '--wc_tested' => $wc_tested, + '--wp_tested' => $wp_tested, + '--release' => $release, + '--parse_only' => empty( $generate_changelog ), + ); + + if ( Command::SUCCESS !== $command->run( new ArrayInput( $arguments ), $output ) ) { + return Command::FAILURE; + } + + // If version was not specified, attempt to read it from meta added by `cl:generate`. + if ( empty( $version ) ) { + if ( $this->getApplication()->has_meta( 'version' ) ) { + $version = $this->getApplication()->get_meta( 'version' ); + } + + if ( empty( $version ) ) { + throw new \Exception( 'Could not auto-detect version.', 76 ); + } + } + + $logger->notice( 'Building product' ); + $zip_file = Product::build( $product, $folder ); + + // Call wccom:release or wporg:release command. + $wp_org_slug = WP_Org::maybe_get_slug( $product, $folder ); + $arguments = array( + 'github_url' => $github_url, + '--folder' => $folder, + '--zip_file' => $zip_file, + '--release' => $release, + ); + if ( false !== $wp_org_slug ) { + $logger->notice( "Found product slug for WordPress.org: '{org_slug}'. Following .org release process.", array( 'org_slug' => $wp_org_slug ) ); + $release_command = 'wporg:release'; + if ( $version ) { + $arguments['--product_version'] = $version; + } + if ( $reauth ) { + $arguments['--svn_reauth'] = true; + } + } else { + $release_command = 'wccom:release'; + } + + $command = $this->getApplication()->find( $release_command ); + + if ( Command::SUCCESS !== $command->run( new ArrayInput( $arguments ), $output ) ) { + return Command::FAILURE; + } + + // Create GitHub release with command gh:release. + if ( ! $this->simulate ) { + $command = $this->getApplication()->find( 'gh:release' ); + $arguments = array( + 'github_url' => $github_url, + '--folder' => $folder, + '--product_version' => $version, + '--zip_file' => $zip_file, + '--prerelease' => $prerelease, + ); + + if ( Command::SUCCESS !== $command->run( new ArrayInput( $arguments ), $output ) ) { + return Command::FAILURE; + } + } else { + $logger->notice( 'Simulation mode. Skipping upload of asset {asset} to GH release.', array( 'asset' => $zip_file ) ); + } + + if ( ! $this->simulate ) { + if ( empty( $version ) ) { + $logger->warning( 'Could not auto-detect version, optional translation trigger was not executed.' ); + } else { + $command = $this->getApplication()->find( 'translate:trigger' ); + $arguments = array( + 'github_url' => $github_url, + '--product_version' => $version, + '--folder' => $folder, + ); + + if ( Command::SUCCESS !== $command->run( new ArrayInput( $arguments ), $output ) ) { + return Command::FAILURE; + } + } + } else { + $logger->notice( 'Simulation mode. Skipping optional translations trigger.' ); + } + + // End simulation mode. + if ( $this->simulate ) { + Git::output_diff( $folder ); + $logger->notice( WOORELEASE_PRODUCT_NAME . ' simulation finished.' ); + Utils::display_release_command(); + + return Command::SUCCESS; + } + + // End release. + $logger->notice( WOORELEASE_PRODUCT_NAME . ' finished.' ); + + return Command::SUCCESS; + } catch ( \Exception $e ) { + Utils::handle_error( $e ); + + return Command::FAILURE; + } + } +} From d2cbaeeae8b7f52b9de216bf84e0e54f15220dc4 Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Sun, 22 Oct 2023 13:05:26 +0300 Subject: [PATCH 02/25] - Adding Git and Nvm command utility classes. - Adjusting bulk command to call release with additional parameters. - Adjusting release command to create release branch or fallback to the default repo branch and run nvm use if selected. --- .../src/Commands/Bulk.php | 57 +++++------------ .../src/Commands/Release.php | 61 +++++++++++++++++-- .../woorelease-extension/src/Utils/Git.php | 46 ++++++++++++++ .../woorelease-extension/src/Utils/Nvm.php | 47 ++++++++++++++ 4 files changed, 164 insertions(+), 47 deletions(-) create mode 100644 packages/php/woorelease-extension/src/Utils/Git.php create mode 100644 packages/php/woorelease-extension/src/Utils/Nvm.php diff --git a/packages/php/woorelease-extension/src/Commands/Bulk.php b/packages/php/woorelease-extension/src/Commands/Bulk.php index 93d87ea9..60f137bf 100644 --- a/packages/php/woorelease-extension/src/Commands/Bulk.php +++ b/packages/php/woorelease-extension/src/Commands/Bulk.php @@ -2,6 +2,7 @@ namespace Automattic\WooCommerce\Grow\WR\Commands; +use Automattic\WooCommerce\Grow\WR\Utils\Nvm; use InvalidArgumentException; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Exception\LogicException; @@ -115,44 +116,16 @@ protected function execute( InputInterface $input, OutputInterface $output ) { $args = array_merge( $options, [ - 'github_url' => $gitHubUrl, - '--product_version' => $item['version'], + 'github_url' => $gitHubUrl, + '--product_version' => $item['version'], + '--create_release_branch' => '', // A flag to create release/x.x.x branch if it doesn't exist. + '--default_branch' => $item['default_branch'], ] ); - // Prepare the release: check release/branch to exist. - /*try { - $repositoryUrl = sprintf( 'https://github.com/%1$s/%2$s/tree/%3$s', $item['organization'], $item['repo'] ); - Utils::exec_sprintf( 'git ls-remote --exit-code --heads %s %s', $repositoryUrl, $item['branch'] ); - } catch ( Exception $e ) { - try { - $output->writeln( sprintf( "\nRelease branch %s does not exist.\n", $item['name'] ) ); - if ( Utils::yes_no( sprintf( - 'You are trying to release from %s which does not exist. Do you want to create %s from %s first?', - $item['branch'], - $item['branch'], - $item['source'] - ) ) ) { - // Create release branch. - Utils::exec_sprintf( 'git ls-remote --exit-code --heads %s %s', $repositoryUrl, $item['branch'] ); - } else { - // Ask to release from the default branch for the given repository. - if ( ! Utils::yes_no( sprintf( - 'You\'ve decided not to create %s branch. Do you still want to release from the %s branch?', - $item['branch'], - $item['source'] - ) ) ) { - throw new \Exception( 'Release cancelled.' ); - } - } - } catch ( Exception $e ) { - $output->writeln( sprintf( "\nRelease FAILED for %s\n", $item['name'] ) ); - $output->writeln( sprintf( "\nBranch %s does not exist for %s. The default branch %s was also declined.\n", $item['branch'], $item['name'], $item['source'] ) ); - - $errors[] = $item['name']; - continue; - } - }*/ + if ( Nvm::is_nvm_exists() ) { + $args['--nvm_use'] = ''; + } $result = $releaseCommand->run( new ArrayInput( $args ), $output ); if ( static::SUCCESS !== $result ) { @@ -198,7 +171,7 @@ private function getReleaseData(): array { } $extensionData = json_decode( file_get_contents( "{$app->get_meta('root_dir')}/extensions.json" ), true ); - $defaultBranch = $extensionData['defaultBranch'] ?? 'trunk'; + $defaultBranch = $extensionData['defaultBranch'] ?? 'develop'; $githubOrganization = $extensionData['githubOrganization'] ?? 'woocommerce'; $extensions = array_column( $extensionData['extensions'] ?? [], null, 'repoSlug' ); @@ -219,12 +192,12 @@ private function getReleaseData(): array { [ $slug, $version, $branch, $source ] = array_pad( explode( "\t", $line ), 4, null ); $toRelease[ $slug ] = [ - 'name' => $extensions[ $slug ]['name'], - 'repo' => $extensions[ $slug ]['repoSlug'], - 'version' => $version, - 'organization' => $extensions[ $slug ]['githubOrganization'] ?? $githubOrganization, - 'branch' => $branch ?? $extensions[ $slug ]['defaultBranch'] ?? $defaultBranch, - 'source' => $source ?? $extensions[ $slug ]['defaultBranch'] ?? $defaultBranch, + 'name' => $extensions[ $slug ]['name'], + 'repo' => $extensions[ $slug ]['repoSlug'], + 'version' => $version, + 'organization' => $extensions[ $slug ]['githubOrganization'] ?? $githubOrganization, + 'branch' => $branch ?? $extensions[ $slug ]['defaultBranch'] ?? $defaultBranch, + 'default_branch' => $extensions[ $slug ]['defaultBranch'] ?? $defaultBranch, ]; } diff --git a/packages/php/woorelease-extension/src/Commands/Release.php b/packages/php/woorelease-extension/src/Commands/Release.php index c2a2a82f..007649b9 100644 --- a/packages/php/woorelease-extension/src/Commands/Release.php +++ b/packages/php/woorelease-extension/src/Commands/Release.php @@ -7,6 +7,8 @@ namespace Automattic\WooCommerce\Grow\WR\Commands; +use Automattic\WooCommerce\Grow\WR\Utils\Nvm; +use Exception; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Input\InputInterface; @@ -19,6 +21,7 @@ use WR\Tools\Product; use WR\Tools\Utils; use WR\Tools\WP_Org; +use Automattic\WooCommerce\Grow\WR\Utils\Git as WooGrowGit; /** * Class for implementing the release command. @@ -35,7 +38,8 @@ protected function configure() { parent::configure(); $this ->addOption( 'nvm_use', null, InputOption::VALUE_NONE, 'If specified, the release will use `nvm use`' ) - ->addOption( 'create_release_branch', null, InputOption::VALUE_OPTIONAL, 'If specified, the release branch will be created.' ); + ->addOption( 'create_release_branch', null, InputOption::VALUE_NONE, 'If specified, the release branch will be created.' ) + ->addOption( 'default_branch', null, InputOption::VALUE_OPTIONAL, 'If specified, the release branch will be created from it.' ); } protected function execute( InputInterface $input, OutputInterface $output ) { @@ -49,19 +53,66 @@ protected function execute( InputInterface $input, OutputInterface $output ) { $generate_changelog = $input->getOption( 'generate_changelog' ); $nvm_use = $input->getOption( 'nvm_use' ); $create_release_branch = $input->getOption( 'create_release_branch' ); + $default_branch = $input->getOption( 'default_branch' ); $release = ! $this->simulate; $reauth = false !== $input->getOption( 'svn_reauth' ); - $editor = Utils::get_config( 'core.editor', false ); list( $product, $gh_org, $branch ) = Utils::parse_product_info( $github_url ); $logger->notice( 'Processing product {product}...', array( 'product' => $product ) ); - $gh_token = Utils::get_config( 'github.token' ); - $gh_api = new GitHub_API( $gh_token, $gh_org, $product, $branch ); + $folder = ''; + + // Prepare the release: check release/branch to exist. + $repository_url = sprintf( 'https://github.com/%1$s/%2$s', $gh_org, $product ); + $is_release_branch = WooGrowGit::is_branch_exists( $repository_url, $branch ); + if ( ! $is_release_branch ) { + $output->writeln( sprintf( "\nRelease branch %s does not exist.\n", $branch ) ); + if ( $create_release_branch && Utils::yes_no( sprintf( + 'You are trying to release from %s which does not exist. Do you want to create it from %s?', + $branch, + $default_branch + ) ) ) { + try { + // 1. Clone the repository locally. + $folder = Git::clone_product( $product, $default_branch, $gh_org ); + + // 2. Create the release branch and push to remote. + WooGrowGit::create_branch( $repository_url, $branch ); + } catch ( Exception $e ) { + if ( ! Utils::yes_no( sprintf( + 'Branch %s has failed to create. Do you want to release from the %s branch?', + $branch, + $default_branch + ) ) ) { + throw new Exception( 'Release cancelled.' ); + } + } + } else { + if ( ! Utils::yes_no( sprintf( + 'You\'ve decided not to create %s branch. Do you want to release from the %s branch?', + $branch, + $default_branch + ) ) ) { + throw new Exception( 'Release cancelled.' ); + } + } + } // Clone product. - $folder = Git::clone_product( $product, $branch, $gh_org ); + if ( empty( $folder ) ) { + $folder = Git::clone_product( $product, $branch, $gh_org ); + } + + if ( empty( $folder ) ) { + $output->writeln( sprintf( "\nRelease FAILED for %s\n", $product ) ); + throw new Exception( sprintf( 'Cloning %s repository branch %s have failed.', $product, $branch ) ); + } + + // Run `nvm use` if specified to switch to the correct node version for the product repo. + if ( $nvm_use ) { + Nvm::use(); + } // If $version is not supplied, use current and bump the patch version. if ( ! isset( $version ) ) { diff --git a/packages/php/woorelease-extension/src/Utils/Git.php b/packages/php/woorelease-extension/src/Utils/Git.php new file mode 100644 index 00000000..229b43cd --- /dev/null +++ b/packages/php/woorelease-extension/src/Utils/Git.php @@ -0,0 +1,46 @@ + Date: Sun, 22 Oct 2023 13:09:26 +0300 Subject: [PATCH 03/25] Removing unused `use` statement. --- packages/php/woorelease-extension/src/Commands/Release.php | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/php/woorelease-extension/src/Commands/Release.php b/packages/php/woorelease-extension/src/Commands/Release.php index 007649b9..b518bf06 100644 --- a/packages/php/woorelease-extension/src/Commands/Release.php +++ b/packages/php/woorelease-extension/src/Commands/Release.php @@ -16,7 +16,6 @@ use Symfony\Component\Console\Output\OutputInterface; use WR\Command\Release as WooReleaseRelease; use WR\Tools\Git; -use WR\Tools\GitHub_API; use WR\Tools\Logger; use WR\Tools\Product; use WR\Tools\Utils; From 4e08bae220a36d8b932cfff63761113567daf114 Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Sun, 22 Oct 2023 13:33:46 +0300 Subject: [PATCH 04/25] Removing test data. --- packages/php/woorelease-extension/src/Commands/Bulk.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/php/woorelease-extension/src/Commands/Bulk.php b/packages/php/woorelease-extension/src/Commands/Bulk.php index 60f137bf..2ac549b2 100644 --- a/packages/php/woorelease-extension/src/Commands/Bulk.php +++ b/packages/php/woorelease-extension/src/Commands/Bulk.php @@ -190,7 +190,7 @@ private function getReleaseData(): array { continue; } - [ $slug, $version, $branch, $source ] = array_pad( explode( "\t", $line ), 4, null ); + [ $slug, $version, $branch ] = array_pad( explode( "\t", $line ), 4, null ); $toRelease[ $slug ] = [ 'name' => $extensions[ $slug ]['name'], 'repo' => $extensions[ $slug ]['repoSlug'], From 38de5b1d76b569c48aa473468570f350cbd958d5 Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Thu, 26 Oct 2023 22:25:27 +0300 Subject: [PATCH 05/25] Overwriting the simulate command. --- bin/wr | 2 ++ .../src/Commands/Simulate.php | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 packages/php/woorelease-extension/src/Commands/Simulate.php diff --git a/bin/wr b/bin/wr index 87d2af16..d593f1db 100755 --- a/bin/wr +++ b/bin/wr @@ -2,6 +2,7 @@ addCommands( new Bulk(), new VersionReplace(), new Release(), + new Simulate() ] ); diff --git a/packages/php/woorelease-extension/src/Commands/Simulate.php b/packages/php/woorelease-extension/src/Commands/Simulate.php new file mode 100644 index 00000000..c08645d0 --- /dev/null +++ b/packages/php/woorelease-extension/src/Commands/Simulate.php @@ -0,0 +1,26 @@ +simulate = true; + + $this + ->setDescription( 'Simulates the release process, following the standard Woo process.' ) + ->setHelp( 'This command allows you to create a fully simulated release (skipping the deploy and release to GitHub).' ); + } +} From ec86f43139a25730a1f9fcfb047637d2e212b2e2 Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Fri, 27 Oct 2023 22:57:21 +0300 Subject: [PATCH 06/25] - Adding branch command. - Renaming some method names to be grammatically correct. - Separating create and push branch commands into different methods. --- bin/wr | 4 +- .../src/Commands/Branch.php | 96 +++++++++++++++++++ .../src/Commands/Bulk.php | 2 +- .../src/Commands/Release.php | 60 ++++-------- .../woorelease-extension/src/Utils/Git.php | 48 +++++++++- .../woorelease-extension/src/Utils/Nvm.php | 2 +- 6 files changed, 160 insertions(+), 52 deletions(-) create mode 100644 packages/php/woorelease-extension/src/Commands/Branch.php diff --git a/bin/wr b/bin/wr index d593f1db..ae75b241 100755 --- a/bin/wr +++ b/bin/wr @@ -5,6 +5,7 @@ use Automattic\WooCommerce\Grow\WR\Commands\Bulk; use Automattic\WooCommerce\Grow\WR\Commands\Simulate; use Automattic\WooCommerce\Grow\WR\Commands\VersionReplace; use Automattic\WooCommerce\Grow\WR\Commands\Release; +use Automattic\WooCommerce\Grow\WR\Commands\Branch; use WR\Application; $rootDir = dirname(__DIR__); @@ -44,7 +45,8 @@ $app->addCommands( new Bulk(), new VersionReplace(), new Release(), - new Simulate() + new Simulate(), + new Branch(), ] ); diff --git a/packages/php/woorelease-extension/src/Commands/Branch.php b/packages/php/woorelease-extension/src/Commands/Branch.php new file mode 100644 index 00000000..824979dd --- /dev/null +++ b/packages/php/woorelease-extension/src/Commands/Branch.php @@ -0,0 +1,96 @@ +setDescription( 'Creates a release branch if does not exist.' ) + ->setHelp( 'This command allows you to create a release branch.' ) + ->addArgument( 'github_url', InputArgument::REQUIRED, 'Full GitHub URL for product to build.' ) + ->addArgument( 'default_branch', InputArgument::REQUIRED, 'Default GitHub project branch name.' ) + ->addOption( 'release', null, InputOption::VALUE_NONE, 'If specified, it will do an actual release branch creation instead of a simulation.' ); + } + + protected function execute( InputInterface $input, OutputInterface $output ) { + try { + $logger = Logger::instance( $output ); + $github_url = $input->getArgument( 'github_url' ); + $default_branch = $input->getArgument( 'default_branch' ); + $release = false !== $input->getOption( 'release' ); + + list( $product, $gh_org, $branch ) = Utils::parse_product_info( $github_url ); + + // Prepare the release: check release/branch to exist. + $repository_url = sprintf( 'https://github.com/%1$s/%2$s', $gh_org, $product ); + $is_release_branch = WooGrowGit::does_branch_exist( $repository_url, $branch ); + if ( ! $is_release_branch ) { + $output->writeln( sprintf( "\nRelease branch %s does not exist.\n", $branch ) ); + if ( $create_release_branch && Utils::yes_no( sprintf( + 'You are trying to release from %s which does not exist. Do you want to create it from %s?', + $branch, + $default_branch + ) ) ) { + $create = WooGrowGit::create_branch( $branch ); + if ( $release ) { + $push = $create && WooGrowGit::push_branch( $repository_url, $branch ); + if ( ! $push ) { + if ( ! Utils::yes_no( sprintf( + 'Branch %s has failed to create. Do you want to release from the %s branch?', + $branch, + $default_branch + ) ) ) { + throw new Exception( 'Release cancelled.' ); + } + } + } else { + $logger->notice( 'Simulation mode. Creating local branch {branch}. In simulation mode branch won\'t be pushed to remote.', array( 'branch' => $branch ) ); + } + } else { + if ( ! Utils::yes_no( sprintf( + 'You\'ve decided not to create %s branch. Do you want to release from the %s branch?', + $branch, + $default_branch + ) ) ) { + throw new Exception( 'Release cancelled.' ); + } + } + } + + // End release. + $logger->notice( WOORELEASE_PRODUCT_NAME . ' finished.' ); + + return Command::SUCCESS; + } catch ( \Exception $e ) { + Utils::handle_error( $e ); + + return Command::FAILURE; + } + } +} diff --git a/packages/php/woorelease-extension/src/Commands/Bulk.php b/packages/php/woorelease-extension/src/Commands/Bulk.php index 2ac549b2..b0d03005 100644 --- a/packages/php/woorelease-extension/src/Commands/Bulk.php +++ b/packages/php/woorelease-extension/src/Commands/Bulk.php @@ -123,7 +123,7 @@ protected function execute( InputInterface $input, OutputInterface $output ) { ] ); - if ( Nvm::is_nvm_exists() ) { + if ( Nvm::does_nvm_exist() ) { $args['--nvm_use'] = ''; } diff --git a/packages/php/woorelease-extension/src/Commands/Release.php b/packages/php/woorelease-extension/src/Commands/Release.php index b518bf06..54da370d 100644 --- a/packages/php/woorelease-extension/src/Commands/Release.php +++ b/packages/php/woorelease-extension/src/Commands/Release.php @@ -7,6 +7,7 @@ namespace Automattic\WooCommerce\Grow\WR\Commands; +use Automattic\WooCommerce\Grow\WR\Utils\Git as WooGrowGit; use Automattic\WooCommerce\Grow\WR\Utils\Nvm; use Exception; use Symfony\Component\Console\Command\Command; @@ -20,7 +21,6 @@ use WR\Tools\Product; use WR\Tools\Utils; use WR\Tools\WP_Org; -use Automattic\WooCommerce\Grow\WR\Utils\Git as WooGrowGit; /** * Class for implementing the release command. @@ -60,47 +60,19 @@ protected function execute( InputInterface $input, OutputInterface $output ) { $logger->notice( 'Processing product {product}...', array( 'product' => $product ) ); - $folder = ''; - - // Prepare the release: check release/branch to exist. - $repository_url = sprintf( 'https://github.com/%1$s/%2$s', $gh_org, $product ); - $is_release_branch = WooGrowGit::is_branch_exists( $repository_url, $branch ); - if ( ! $is_release_branch ) { - $output->writeln( sprintf( "\nRelease branch %s does not exist.\n", $branch ) ); - if ( $create_release_branch && Utils::yes_no( sprintf( - 'You are trying to release from %s which does not exist. Do you want to create it from %s?', - $branch, - $default_branch - ) ) ) { - try { - // 1. Clone the repository locally. - $folder = Git::clone_product( $product, $default_branch, $gh_org ); - - // 2. Create the release branch and push to remote. - WooGrowGit::create_branch( $repository_url, $branch ); - } catch ( Exception $e ) { - if ( ! Utils::yes_no( sprintf( - 'Branch %s has failed to create. Do you want to release from the %s branch?', - $branch, - $default_branch - ) ) ) { - throw new Exception( 'Release cancelled.' ); - } - } - } else { - if ( ! Utils::yes_no( sprintf( - 'You\'ve decided not to create %s branch. Do you want to release from the %s branch?', - $branch, - $default_branch - ) ) ) { - throw new Exception( 'Release cancelled.' ); - } - } - } - // Clone product. - if ( empty( $folder ) ) { - $folder = Git::clone_product( $product, $branch, $gh_org ); + $folder = Git::clone_product( $product, $branch, $gh_org ); + + // Call branch command to create release branch or release from default. + $command = $this->getApplication()->find( 'branch' ); + $arguments = array( + 'github_url' => $github_url, + 'default_branch' => $default_branch, + '--release' => $release, + ); + + if ( Command::SUCCESS !== $command->run( new ArrayInput( $arguments ), $output ) ) { + return Command::FAILURE; } if ( empty( $folder ) ) { @@ -219,7 +191,7 @@ protected function execute( InputInterface $input, OutputInterface $output ) { } // Create GitHub release with command gh:release. - if ( ! $this->simulate ) { + if ( $release ) { $command = $this->getApplication()->find( 'gh:release' ); $arguments = array( 'github_url' => $github_url, @@ -236,7 +208,7 @@ protected function execute( InputInterface $input, OutputInterface $output ) { $logger->notice( 'Simulation mode. Skipping upload of asset {asset} to GH release.', array( 'asset' => $zip_file ) ); } - if ( ! $this->simulate ) { + if ( $release ) { if ( empty( $version ) ) { $logger->warning( 'Could not auto-detect version, optional translation trigger was not executed.' ); } else { @@ -256,7 +228,7 @@ protected function execute( InputInterface $input, OutputInterface $output ) { } // End simulation mode. - if ( $this->simulate ) { + if ( ! $release ) { Git::output_diff( $folder ); $logger->notice( WOORELEASE_PRODUCT_NAME . ' simulation finished.' ); Utils::display_release_command(); diff --git a/packages/php/woorelease-extension/src/Utils/Git.php b/packages/php/woorelease-extension/src/Utils/Git.php index 229b43cd..1e6c20f3 100644 --- a/packages/php/woorelease-extension/src/Utils/Git.php +++ b/packages/php/woorelease-extension/src/Utils/Git.php @@ -7,6 +7,7 @@ namespace Automattic\WooCommerce\Grow\WR\Utils; +use Exception; use WR\Tools\Utils; /** @@ -24,22 +25,59 @@ class Git extends \WR\Tools\Git { * * @return bool True if the branch exists, false otherwise. */ - public static function is_branch_exists( $repository_url, $branch ) { + public static function does_branch_exist( $repository_url, $branch ) { // --exit-code returns 0 if the branch exists, 2 otherwise. try { Utils::exec_sprintf( 'git ls-remote --exit-code --heads %s %s', $repository_url, $branch ); return true; - } catch ( \Exception $e ) { + } catch ( Exception $e ) { return false; } } - public static function create_branch( $repository_url, $branch ) { + /** + * Creates a new branch and pushes it to the remote repository. + * Rollbacks if the branch was (not) created but (and) not pushed. + * + * @param string $branch The branch name. + * + * @return bool True if the branch was created, false otherwise. + */ + public static function create_branch( $branch ) { + try { + Utils::exec_sprintf( 'git checkout -b %s', $branch ); + return true; + } catch ( Exception $e ) { + try { + // Cleanup if the branch was created but not pushed. + Utils::exec_sprintf( 'git branch -D %s', $branch ); + } catch ( Exception $e ) { + return false; + } + return false; + } + } + + /** + * Pushes a branch to the remote repository. + * + * @param string $repository_url The remote repository URL. + * @param string $branch The branch name. + * + * @return bool True if the branch was pushed, false otherwise. + */ + public static function push_branch( $repository_url, $branch ) { + self::does_branch_exist( $repository_url, $branch ); try { - Utils::exec_sprintf( 'git checkout --exit-code -b %s %s', $branch ); Utils::exec_sprintf( 'git push origin %s', $branch ); return true; - } catch ( \Exception $e ) { + } catch ( Exception $e ) { + try { + // Cleanup if the branch was created but not pushed. + Utils::exec_sprintf( 'git push origin --delete %s', $branch ); + } catch ( Exception $e ) { + return false; + } return false; } } diff --git a/packages/php/woorelease-extension/src/Utils/Nvm.php b/packages/php/woorelease-extension/src/Utils/Nvm.php index 8a4f5c83..be7f978e 100644 --- a/packages/php/woorelease-extension/src/Utils/Nvm.php +++ b/packages/php/woorelease-extension/src/Utils/Nvm.php @@ -22,7 +22,7 @@ class Nvm { * * @return bool True if `nvm` is installed, false otherwise. */ - public static function is_nvm_exists() { + public static function does_nvm_exist() { try { Utils::exec_sprintf( 'nvm -v' ); return true; From 29045825ca69eb47fc3e6cf7a4e8e68b00e16df4 Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Fri, 27 Oct 2023 23:00:04 +0300 Subject: [PATCH 07/25] Removing unnecessary props and methods. --- packages/php/woorelease-extension/src/Commands/Release.php | 7 ------- 1 file changed, 7 deletions(-) diff --git a/packages/php/woorelease-extension/src/Commands/Release.php b/packages/php/woorelease-extension/src/Commands/Release.php index 54da370d..7f66c3d1 100644 --- a/packages/php/woorelease-extension/src/Commands/Release.php +++ b/packages/php/woorelease-extension/src/Commands/Release.php @@ -7,7 +7,6 @@ namespace Automattic\WooCommerce\Grow\WR\Commands; -use Automattic\WooCommerce\Grow\WR\Utils\Git as WooGrowGit; use Automattic\WooCommerce\Grow\WR\Utils\Nvm; use Exception; use Symfony\Component\Console\Command\Command; @@ -27,12 +26,6 @@ */ class Release extends WooReleaseRelease { - protected static $defaultName = 'release'; - - public function __construct( string $name = null ) { - parent::__construct( $name ); - } - protected function configure() { parent::configure(); $this From 78ba1881e4ffd886ef98f65960e4cdec5ebd302f Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Fri, 27 Oct 2023 23:01:51 +0300 Subject: [PATCH 08/25] Changing default branch name for all the extensions since that is de facto a standard now. --- extensions.json | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/extensions.json b/extensions.json index d22891fa..b2801164 100644 --- a/extensions.json +++ b/extensions.json @@ -1,26 +1,22 @@ { - "defaultBranch": "trunk", + "defaultBranch": "develop", "githubOrganization": "woocommerce", "extensions": [ { "name": "Facebook for WooCommerce", "repoSlug": "facebook-for-woocommerce", - "defaultBranch": "develop" }, { "name": "Pinterest for WooCommerce", "repoSlug": "pinterest-for-woocommerce", - "defaultBranch": "develop" }, { "name": "Points & Rewards", "repoSlug": "woocommerce-points-and-rewards", - "defaultBranch": "develop" }, { "name": "Brands", "repoSlug": "woocommerce-brands", - "defaultBranch": "develop" }, { "name": "Drip", @@ -29,7 +25,6 @@ { "name": "Product Filters", "repoSlug": "woocommerce-product-filters", - "defaultBranch": "develop" }, { "name": "Sales Report Email", @@ -46,7 +41,6 @@ { "name": "Coupon Campaigns", "repoSlug": "woocommerce-coupon-campaigns", - "defaultBranch": "develop" } ], "retiredExtensions": [ From deec8382e1e4963e08bbb85356f033dd434f9bf4 Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Fri, 27 Oct 2023 23:03:33 +0300 Subject: [PATCH 09/25] Removing IDE unique files and folders from .gitignore --- .gitignore | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.gitignore b/.gitignore index f04d25be..c173028b 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,3 @@ vendor/ # All zip files *.zip - -# IDE files -.vscode/* -.idea From 58c58eb5c071324c3465b88fac6f15e48adecded Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Fri, 27 Oct 2023 23:28:08 +0300 Subject: [PATCH 10/25] Fixing wrong placed commas after removing default branch names from extensions. --- extensions.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/extensions.json b/extensions.json index b2801164..c97bafd1 100644 --- a/extensions.json +++ b/extensions.json @@ -4,19 +4,19 @@ "extensions": [ { "name": "Facebook for WooCommerce", - "repoSlug": "facebook-for-woocommerce", + "repoSlug": "facebook-for-woocommerce" }, { "name": "Pinterest for WooCommerce", - "repoSlug": "pinterest-for-woocommerce", + "repoSlug": "pinterest-for-woocommerce" }, { "name": "Points & Rewards", - "repoSlug": "woocommerce-points-and-rewards", + "repoSlug": "woocommerce-points-and-rewards" }, { "name": "Brands", - "repoSlug": "woocommerce-brands", + "repoSlug": "woocommerce-brands" }, { "name": "Drip", @@ -24,7 +24,7 @@ }, { "name": "Product Filters", - "repoSlug": "woocommerce-product-filters", + "repoSlug": "woocommerce-product-filters" }, { "name": "Sales Report Email", @@ -40,7 +40,7 @@ }, { "name": "Coupon Campaigns", - "repoSlug": "woocommerce-coupon-campaigns", + "repoSlug": "woocommerce-coupon-campaigns" } ], "retiredExtensions": [ From 57db21b9c6f874f924611e6a581b09dc1c90847b Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Fri, 27 Oct 2023 23:30:58 +0300 Subject: [PATCH 11/25] Remove redundant release command option. When we are releasing we are providing a release branch name which, if does not exist, is prompted to get created or fallbacks to default. This means the parameter to create a release branch is redundant. --- packages/php/woorelease-extension/src/Commands/Branch.php | 2 +- packages/php/woorelease-extension/src/Commands/Release.php | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/php/woorelease-extension/src/Commands/Branch.php b/packages/php/woorelease-extension/src/Commands/Branch.php index 824979dd..8b2c2d47 100644 --- a/packages/php/woorelease-extension/src/Commands/Branch.php +++ b/packages/php/woorelease-extension/src/Commands/Branch.php @@ -52,7 +52,7 @@ protected function execute( InputInterface $input, OutputInterface $output ) { $is_release_branch = WooGrowGit::does_branch_exist( $repository_url, $branch ); if ( ! $is_release_branch ) { $output->writeln( sprintf( "\nRelease branch %s does not exist.\n", $branch ) ); - if ( $create_release_branch && Utils::yes_no( sprintf( + if ( Utils::yes_no( sprintf( 'You are trying to release from %s which does not exist. Do you want to create it from %s?', $branch, $default_branch diff --git a/packages/php/woorelease-extension/src/Commands/Release.php b/packages/php/woorelease-extension/src/Commands/Release.php index 7f66c3d1..1d86693e 100644 --- a/packages/php/woorelease-extension/src/Commands/Release.php +++ b/packages/php/woorelease-extension/src/Commands/Release.php @@ -30,7 +30,6 @@ protected function configure() { parent::configure(); $this ->addOption( 'nvm_use', null, InputOption::VALUE_NONE, 'If specified, the release will use `nvm use`' ) - ->addOption( 'create_release_branch', null, InputOption::VALUE_NONE, 'If specified, the release branch will be created.' ) ->addOption( 'default_branch', null, InputOption::VALUE_OPTIONAL, 'If specified, the release branch will be created from it.' ); } @@ -44,7 +43,6 @@ protected function execute( InputInterface $input, OutputInterface $output ) { $prerelease = $input->getOption( 'prerelease' ); $generate_changelog = $input->getOption( 'generate_changelog' ); $nvm_use = $input->getOption( 'nvm_use' ); - $create_release_branch = $input->getOption( 'create_release_branch' ); $default_branch = $input->getOption( 'default_branch' ); $release = ! $this->simulate; $reauth = false !== $input->getOption( 'svn_reauth' ); From 00edaa94f40ca11d077bc820400cddb35bfa33be Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Fri, 27 Oct 2023 23:34:39 +0300 Subject: [PATCH 12/25] Adding branch command method commends and removing redundant constructor from the command class. --- .../src/Commands/Branch.php | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/packages/php/woorelease-extension/src/Commands/Branch.php b/packages/php/woorelease-extension/src/Commands/Branch.php index 8b2c2d47..1c12ae84 100644 --- a/packages/php/woorelease-extension/src/Commands/Branch.php +++ b/packages/php/woorelease-extension/src/Commands/Branch.php @@ -1,8 +1,8 @@ setDescription( 'Creates a release branch if does not exist.' ) @@ -38,6 +35,14 @@ protected function configure() { ->addOption( 'release', null, InputOption::VALUE_NONE, 'If specified, it will do an actual release branch creation instead of a simulation.' ); } + /** + * Executes the command. + * + * @param InputInterface $input Input. + * @param OutputInterface $output Output. + * + * @return int Exit code. + */ protected function execute( InputInterface $input, OutputInterface $output ) { try { $logger = Logger::instance( $output ); From f4c2493922bf1d5a65a31edad14485ab7c4e6d64 Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Sat, 28 Oct 2023 09:40:06 +0300 Subject: [PATCH 13/25] Adjusting `branch` command code styling and output. --- .../src/Commands/Branch.php | 40 +++++++++++++------ 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/packages/php/woorelease-extension/src/Commands/Branch.php b/packages/php/woorelease-extension/src/Commands/Branch.php index 1c12ae84..98705249 100644 --- a/packages/php/woorelease-extension/src/Commands/Branch.php +++ b/packages/php/woorelease-extension/src/Commands/Branch.php @@ -57,20 +57,29 @@ protected function execute( InputInterface $input, OutputInterface $output ) { $is_release_branch = WooGrowGit::does_branch_exist( $repository_url, $branch ); if ( ! $is_release_branch ) { $output->writeln( sprintf( "\nRelease branch %s does not exist.\n", $branch ) ); - if ( Utils::yes_no( sprintf( + + $do_create_release_branch = Utils::yes_no( + sprintf( 'You are trying to release from %s which does not exist. Do you want to create it from %s?', $branch, $default_branch - ) ) ) { + ) + ); + + if ( $do_create_release_branch ) { $create = WooGrowGit::create_branch( $branch ); if ( $release ) { $push = $create && WooGrowGit::push_branch( $repository_url, $branch ); if ( ! $push ) { - if ( ! Utils::yes_no( sprintf( - 'Branch %s has failed to create. Do you want to release from the %s branch?', - $branch, - $default_branch - ) ) ) { + $do_release_from_default = Utils::yes_no( + sprintf( + 'Branch %s has failed to create. Do you want to release from default %s branch?', + $branch, + $default_branch + ) + ); + + if ( ! $do_release_from_default ) { throw new Exception( 'Release cancelled.' ); } } @@ -78,18 +87,23 @@ protected function execute( InputInterface $input, OutputInterface $output ) { $logger->notice( 'Simulation mode. Creating local branch {branch}. In simulation mode branch won\'t be pushed to remote.', array( 'branch' => $branch ) ); } } else { - if ( ! Utils::yes_no( sprintf( - 'You\'ve decided not to create %s branch. Do you want to release from the %s branch?', - $branch, - $default_branch - ) ) ) { + $branch = $default_branch; + $do_release_from_default = Utils::yes_no( + sprintf( + 'You\'ve decided not to create %s branch. Do you want to release from the %s branch?', + $branch, + $default_branch + ) + ); + + if ( ! $do_release_from_default ) { throw new Exception( 'Release cancelled.' ); } } } // End release. - $logger->notice( WOORELEASE_PRODUCT_NAME . ' finished.' ); + $logger->notice( sprintf( 'Release branch %s is ready.', $branch ) ); return Command::SUCCESS; } catch ( \Exception $e ) { From 7d885ae2e4c9b3a9853857992a172b1a106dd9e2 Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Sat, 28 Oct 2023 09:42:04 +0300 Subject: [PATCH 14/25] Optimising imports (doing them in alphabetical order) --- bin/wr | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/wr b/bin/wr index ae75b241..13a9d009 100755 --- a/bin/wr +++ b/bin/wr @@ -1,11 +1,11 @@ #!/usr/bin/env php Date: Sun, 29 Oct 2023 15:31:55 +0200 Subject: [PATCH 15/25] Removing Simulate command since we have nothing to overwrite with it. --- bin/wr | 2 -- .../src/Commands/Simulate.php | 26 ------------------- 2 files changed, 28 deletions(-) delete mode 100644 packages/php/woorelease-extension/src/Commands/Simulate.php diff --git a/bin/wr b/bin/wr index 13a9d009..1bf8acee 100755 --- a/bin/wr +++ b/bin/wr @@ -4,7 +4,6 @@ use Automattic\WooCommerce\Grow\WR\Commands\Branch; use Automattic\WooCommerce\Grow\WR\Commands\Bulk; use Automattic\WooCommerce\Grow\WR\Commands\Release; -use Automattic\WooCommerce\Grow\WR\Commands\Simulate; use Automattic\WooCommerce\Grow\WR\Commands\VersionReplace; use WR\Application; @@ -45,7 +44,6 @@ $app->addCommands( new Bulk(), new VersionReplace(), new Release(), - new Simulate(), new Branch(), ] ); diff --git a/packages/php/woorelease-extension/src/Commands/Simulate.php b/packages/php/woorelease-extension/src/Commands/Simulate.php deleted file mode 100644 index c08645d0..00000000 --- a/packages/php/woorelease-extension/src/Commands/Simulate.php +++ /dev/null @@ -1,26 +0,0 @@ -simulate = true; - - $this - ->setDescription( 'Simulates the release process, following the standard Woo process.' ) - ->setHelp( 'This command allows you to create a fully simulated release (skipping the deploy and release to GitHub).' ); - } -} From 066d8a303eba8a3fa4d0ec7da87c52c79aed8c26 Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Tue, 7 Nov 2023 10:13:56 +0200 Subject: [PATCH 16/25] Adding `nvm` shell script to fight some OS shell inconsistencies. Adjust commands to use the newly added shell script. Adding custom `simulate` command which inherits from the overwritten `release` command to allow simulation runs. Update `branch` command by adding cleanup option to it. --- bin/nvm | 20 ++++++++++ bin/wr | 2 + .../src/Commands/Branch.php | 20 +++++++--- .../src/Commands/Bulk.php | 8 ++-- .../src/Commands/Release.php | 27 ++++++++++++- .../src/Commands/Simulate.php | 33 +++++++++++++++ .../woorelease-extension/src/Utils/Git.php | 40 ++++++++++++++++++- .../woorelease-extension/src/Utils/Nvm.php | 4 +- 8 files changed, 141 insertions(+), 13 deletions(-) create mode 100755 bin/nvm create mode 100644 packages/php/woorelease-extension/src/Commands/Simulate.php diff --git a/bin/nvm b/bin/nvm new file mode 100755 index 00000000..47715e97 --- /dev/null +++ b/bin/nvm @@ -0,0 +1,20 @@ +#! /bin/bash + +do_check=false +do_use=false +while getopts eu opt; do + case $opt in + e) do_check=true;; + u) do_use=true;; + esac +done + +source ~/.nvm/nvm.sh + +if $do_check; then + command -v nvm +fi + +if $do_use; then + nvm use +fi diff --git a/bin/wr b/bin/wr index 1bf8acee..13a9d009 100755 --- a/bin/wr +++ b/bin/wr @@ -4,6 +4,7 @@ use Automattic\WooCommerce\Grow\WR\Commands\Branch; use Automattic\WooCommerce\Grow\WR\Commands\Bulk; use Automattic\WooCommerce\Grow\WR\Commands\Release; +use Automattic\WooCommerce\Grow\WR\Commands\Simulate; use Automattic\WooCommerce\Grow\WR\Commands\VersionReplace; use WR\Application; @@ -44,6 +45,7 @@ $app->addCommands( new Bulk(), new VersionReplace(), new Release(), + new Simulate(), new Branch(), ] ); diff --git a/packages/php/woorelease-extension/src/Commands/Branch.php b/packages/php/woorelease-extension/src/Commands/Branch.php index 98705249..6cd5d21d 100644 --- a/packages/php/woorelease-extension/src/Commands/Branch.php +++ b/packages/php/woorelease-extension/src/Commands/Branch.php @@ -32,7 +32,7 @@ protected function configure() { ->setHelp( 'This command allows you to create a release branch.' ) ->addArgument( 'github_url', InputArgument::REQUIRED, 'Full GitHub URL for product to build.' ) ->addArgument( 'default_branch', InputArgument::REQUIRED, 'Default GitHub project branch name.' ) - ->addOption( 'release', null, InputOption::VALUE_NONE, 'If specified, it will do an actual release branch creation instead of a simulation.' ); + ->addOption( 'cleanup', null, InputOption::VALUE_NONE, 'If specified, it will do the branch cleanup.' ); } /** @@ -48,12 +48,17 @@ protected function execute( InputInterface $input, OutputInterface $output ) { $logger = Logger::instance( $output ); $github_url = $input->getArgument( 'github_url' ); $default_branch = $input->getArgument( 'default_branch' ); - $release = false !== $input->getOption( 'release' ); + $cleanup = false !== $input->getOption( 'cleanup' ); list( $product, $gh_org, $branch ) = Utils::parse_product_info( $github_url ); // Prepare the release: check release/branch to exist. $repository_url = sprintf( 'https://github.com/%1$s/%2$s', $gh_org, $product ); + + if ( $cleanup ) { + return $this->cleanup( $repository_url, $branch ); + } + $is_release_branch = WooGrowGit::does_branch_exist( $repository_url, $branch ); if ( ! $is_release_branch ) { $output->writeln( sprintf( "\nRelease branch %s does not exist.\n", $branch ) ); @@ -68,7 +73,7 @@ protected function execute( InputInterface $input, OutputInterface $output ) { if ( $do_create_release_branch ) { $create = WooGrowGit::create_branch( $branch ); - if ( $release ) { + /*if ( $release ) {*/ $push = $create && WooGrowGit::push_branch( $repository_url, $branch ); if ( ! $push ) { $do_release_from_default = Utils::yes_no( @@ -83,9 +88,9 @@ protected function execute( InputInterface $input, OutputInterface $output ) { throw new Exception( 'Release cancelled.' ); } } - } else { + /*} else { $logger->notice( 'Simulation mode. Creating local branch {branch}. In simulation mode branch won\'t be pushed to remote.', array( 'branch' => $branch ) ); - } + }*/ } else { $branch = $default_branch; $do_release_from_default = Utils::yes_no( @@ -112,4 +117,9 @@ protected function execute( InputInterface $input, OutputInterface $output ) { return Command::FAILURE; } } + + protected function cleanup( $repository_url, $branch ) { + WooGrowGit::delete_branch( $repository_url, $branch ); + return Command::SUCCESS; + } } diff --git a/packages/php/woorelease-extension/src/Commands/Bulk.php b/packages/php/woorelease-extension/src/Commands/Bulk.php index b0d03005..baee4ba5 100644 --- a/packages/php/woorelease-extension/src/Commands/Bulk.php +++ b/packages/php/woorelease-extension/src/Commands/Bulk.php @@ -51,7 +51,10 @@ protected function configure() { protected function initialize( InputInterface $input, OutputInterface $output ) { // This throws an exception if the command is not found, which we want to allow. $command = $this->getApplication()->get( $input->getArgument( 'release-command' ) ); - if ( ! $command instanceof Release ) { + + $is_not_release = ! $command instanceof Release; + $is_not_simulate = ! $command instanceof Simulate; + if ( $is_not_release && $is_not_simulate ) { throw new InvalidArgumentException( sprintf( 'Command "%s" (%s) is not an instance of %s', @@ -118,13 +121,12 @@ protected function execute( InputInterface $input, OutputInterface $output ) { [ 'github_url' => $gitHubUrl, '--product_version' => $item['version'], - '--create_release_branch' => '', // A flag to create release/x.x.x branch if it doesn't exist. '--default_branch' => $item['default_branch'], ] ); if ( Nvm::does_nvm_exist() ) { - $args['--nvm_use'] = ''; + $args['--nvm_use'] = true; } $result = $releaseCommand->run( new ArrayInput( $args ), $output ); diff --git a/packages/php/woorelease-extension/src/Commands/Release.php b/packages/php/woorelease-extension/src/Commands/Release.php index 1d86693e..907ad27a 100644 --- a/packages/php/woorelease-extension/src/Commands/Release.php +++ b/packages/php/woorelease-extension/src/Commands/Release.php @@ -7,6 +7,7 @@ namespace Automattic\WooCommerce\Grow\WR\Commands; +use Automattic\WooCommerce\Grow\WR\Utils\Git as WooGrowGit; use Automattic\WooCommerce\Grow\WR\Utils\Nvm; use Exception; use Symfony\Component\Console\Command\Command; @@ -25,6 +26,12 @@ * Class for implementing the release command. */ class Release extends WooReleaseRelease { + /** + * The default command name. + * + * @var string|null + */ + protected static $defaultName = 'release'; // phpcs:ignore WordPress.NamingConventions.ValidVariableName protected function configure() { parent::configure(); @@ -52,14 +59,13 @@ protected function execute( InputInterface $input, OutputInterface $output ) { $logger->notice( 'Processing product {product}...', array( 'product' => $product ) ); // Clone product. - $folder = Git::clone_product( $product, $branch, $gh_org ); + $folder = WooGrowGit::clone_product_release_or_default( $product, $branch, $default_branch, $gh_org ); // Call branch command to create release branch or release from default. $command = $this->getApplication()->find( 'branch' ); $arguments = array( 'github_url' => $github_url, 'default_branch' => $default_branch, - '--release' => $release, ); if ( Command::SUCCESS !== $command->run( new ArrayInput( $arguments ), $output ) ) { @@ -72,7 +78,9 @@ protected function execute( InputInterface $input, OutputInterface $output ) { } // Run `nvm use` if specified to switch to the correct node version for the product repo. + $logger->notice( sprintf( "Should use the extension's node version: %s.", $nvm_use ? 'true' : 'false' ) ); if ( $nvm_use ) { + $logger->notice( 'Switching to the correct node version for the product repo.' ); Nvm::use(); } @@ -218,6 +226,21 @@ protected function execute( InputInterface $input, OutputInterface $output ) { $logger->notice( 'Simulation mode. Skipping optional translations trigger.' ); } + // Cleaning up the mess after simulations. + if ( ! $release ) { + $command = $this->getApplication()->find( 'branch' ); + $arguments = array( + 'github_url' => $github_url, + 'default_branch' => $default_branch, + '--cleanup' => true, + ); + if ( Command::SUCCESS !== $command->run( new ArrayInput( $arguments ), $output ) ) { + $logger->error( 'Simulation mode. Cleaning up the release branch has failed. Please cleanup manually.' ); + } else { + $logger->notice( 'Simulation mode. Cleaning up the release branch succeeded.' ); + } + } + // End simulation mode. if ( ! $release ) { Git::output_diff( $folder ); diff --git a/packages/php/woorelease-extension/src/Commands/Simulate.php b/packages/php/woorelease-extension/src/Commands/Simulate.php new file mode 100644 index 00000000..5dc97ef8 --- /dev/null +++ b/packages/php/woorelease-extension/src/Commands/Simulate.php @@ -0,0 +1,33 @@ +simulate = true; + + $this + ->setDescription( 'Simulates the release process, following the standard Woo process.' ) + ->setHelp( 'This command allows you to create a fully simulated release (skipping the deploy and release to GitHub).' ); + } +} diff --git a/packages/php/woorelease-extension/src/Utils/Git.php b/packages/php/woorelease-extension/src/Utils/Git.php index 1e6c20f3..b970bc20 100644 --- a/packages/php/woorelease-extension/src/Utils/Git.php +++ b/packages/php/woorelease-extension/src/Utils/Git.php @@ -74,11 +74,49 @@ public static function push_branch( $repository_url, $branch ) { } catch ( Exception $e ) { try { // Cleanup if the branch was created but not pushed. - Utils::exec_sprintf( 'git push origin --delete %s', $branch ); + static::delete_branch( $repository_url, $branch ); } catch ( Exception $e ) { return false; } return false; } } + + /** + * Deletes a branch to the remote repository. + * + * @param string $repository_url The remote repository URL. + * @param string $branch The branch name. + * + * @return bool True if the branch was deleted, false otherwise. + */ + public static function delete_branch( $repository_url, $branch ) { + try { + if ( self::does_branch_exist( $repository_url, $branch ) ) { + Utils::exec_sprintf( 'git push origin --delete %s', $branch ); + } + return true; + } catch ( Exception $e ) { + return false; + } + } + + /** + * Attempt to clone the product and checkout the specific version which, if failed, tries to clone the default version. + * + * @param string $product Product name. + * @param string $branch Git branch. + * @param string $default_branch Git branch. + * @param string $gh_org Git organization. + * + * @throws \Exception On error. + * @return string Product folder. + */ + public static function clone_product_release_or_default( $product, $branch, $default_branch, $gh_org ) { + try { + return parent::clone_product( $product, $branch, $gh_org ); + } catch ( Exception $e ) { + return parent::clone_product( $product, $default_branch, $gh_org ); + } + } } diff --git a/packages/php/woorelease-extension/src/Utils/Nvm.php b/packages/php/woorelease-extension/src/Utils/Nvm.php index be7f978e..2b7f4937 100644 --- a/packages/php/woorelease-extension/src/Utils/Nvm.php +++ b/packages/php/woorelease-extension/src/Utils/Nvm.php @@ -24,7 +24,7 @@ class Nvm { */ public static function does_nvm_exist() { try { - Utils::exec_sprintf( 'nvm -v' ); + Utils::exec_sprintf( './nvm -e' ); return true; } catch ( Exception $e ) { return false; @@ -38,7 +38,7 @@ public static function does_nvm_exist() { */ public static function use() { try { - Utils::exec_sprintf( 'nvm use' ); + Utils::exec_sprintf( './nvm -u' ); return true; } catch ( Exception $e ) { return false; From 13b8d0d4c485c7c8e4428524e69972ac987744d3 Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Tue, 7 Nov 2023 12:25:53 +0200 Subject: [PATCH 17/25] Adding build script to run nvm and npm build steps in a single context. Create custom product build function to handle cases with and w/o nvm. --- bin/build | 15 ++++ .../src/Commands/Bulk.php | 3 +- .../src/Commands/Release.php | 13 +--- .../woorelease-extension/src/Utils/Nvm.php | 20 +---- .../src/Utils/Product.php | 78 +++++++++++++++++++ 5 files changed, 102 insertions(+), 27 deletions(-) create mode 100755 bin/build create mode 100644 packages/php/woorelease-extension/src/Utils/Product.php diff --git a/bin/build b/bin/build new file mode 100755 index 00000000..abbaf120 --- /dev/null +++ b/bin/build @@ -0,0 +1,15 @@ +#! /bin/bash + +source ~/.nvm/nvm.sh + +case $1 in + pnpm) echo 'pnpm' + nvm use && pnpm install && pnpm run build + ;; + npm) echo 'npm' + nvm use && npm install && npm run build + ;; + *) echo 'default' + nvm use && $1 + ;; +esac diff --git a/packages/php/woorelease-extension/src/Commands/Bulk.php b/packages/php/woorelease-extension/src/Commands/Bulk.php index baee4ba5..cbadd5e2 100644 --- a/packages/php/woorelease-extension/src/Commands/Bulk.php +++ b/packages/php/woorelease-extension/src/Commands/Bulk.php @@ -125,7 +125,8 @@ protected function execute( InputInterface $input, OutputInterface $output ) { ] ); - if ( Nvm::does_nvm_exist() ) { + $grow_root_path = $this->getApplication()->get_meta( 'root_dir' ); + if ( Nvm::does_nvm_exist( $grow_root_path ) ) { $args['--nvm_use'] = true; } diff --git a/packages/php/woorelease-extension/src/Commands/Release.php b/packages/php/woorelease-extension/src/Commands/Release.php index 907ad27a..c15e06de 100644 --- a/packages/php/woorelease-extension/src/Commands/Release.php +++ b/packages/php/woorelease-extension/src/Commands/Release.php @@ -8,7 +8,7 @@ namespace Automattic\WooCommerce\Grow\WR\Commands; use Automattic\WooCommerce\Grow\WR\Utils\Git as WooGrowGit; -use Automattic\WooCommerce\Grow\WR\Utils\Nvm; +use Automattic\WooCommerce\Grow\WR\Utils\Product as WooGrowProduct; use Exception; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\ArrayInput; @@ -18,7 +18,6 @@ use WR\Command\Release as WooReleaseRelease; use WR\Tools\Git; use WR\Tools\Logger; -use WR\Tools\Product; use WR\Tools\Utils; use WR\Tools\WP_Org; @@ -77,13 +76,6 @@ protected function execute( InputInterface $input, OutputInterface $output ) { throw new Exception( sprintf( 'Cloning %s repository branch %s have failed.', $product, $branch ) ); } - // Run `nvm use` if specified to switch to the correct node version for the product repo. - $logger->notice( sprintf( "Should use the extension's node version: %s.", $nvm_use ? 'true' : 'false' ) ); - if ( $nvm_use ) { - $logger->notice( 'Switching to the correct node version for the product repo.' ); - Nvm::use(); - } - // If $version is not supplied, use current and bump the patch version. if ( ! isset( $version ) ) { $package_file = $folder . '/package.json'; @@ -160,7 +152,8 @@ protected function execute( InputInterface $input, OutputInterface $output ) { } $logger->notice( 'Building product' ); - $zip_file = Product::build( $product, $folder ); + $grow_root_path = $this->getApplication()->get_meta( 'root_dir' ); + $zip_file = WooGrowProduct::maybe_build_with_nvm( $nvm_use, $grow_root_path, $product, $folder ); // Call wccom:release or wporg:release command. $wp_org_slug = WP_Org::maybe_get_slug( $product, $folder ); diff --git a/packages/php/woorelease-extension/src/Utils/Nvm.php b/packages/php/woorelease-extension/src/Utils/Nvm.php index 2b7f4937..77d5898b 100644 --- a/packages/php/woorelease-extension/src/Utils/Nvm.php +++ b/packages/php/woorelease-extension/src/Utils/Nvm.php @@ -20,25 +20,13 @@ class Nvm { /** * Checks if `nvm` is installed. * - * @return bool True if `nvm` is installed, false otherwise. - */ - public static function does_nvm_exist() { - try { - Utils::exec_sprintf( './nvm -e' ); - return true; - } catch ( Exception $e ) { - return false; - } - } - - /** - * Runs `nvm use` command. + * @param string $grow_root_path Path to the root of the Grow project. * - * @return bool True if `nvm use` succeeded, false otherwise. + * @return bool True if `nvm` is installed, false otherwise. */ - public static function use() { + public static function does_nvm_exist( $grow_root_path ) { try { - Utils::exec_sprintf( './nvm -u' ); + Utils::exec_sprintf( "{$grow_root_path}/bin/nvm -e" ); return true; } catch ( Exception $e ) { return false; diff --git a/packages/php/woorelease-extension/src/Utils/Product.php b/packages/php/woorelease-extension/src/Utils/Product.php new file mode 100644 index 00000000..bf8bb1e0 --- /dev/null +++ b/packages/php/woorelease-extension/src/Utils/Product.php @@ -0,0 +1,78 @@ +notice( 'Attempting to use the product\'s recommended node version.' ); + static::build( $grow_root_path, $product, $folder ); + } + return \WR\Tools\Product::build( $product, $folder ); + } + + /** + * Build the product, handling package.json build process + * + * @param string $grow_root_path WooGrow root path. + * @param string $product Product name. + * @param string $folder Product folder. + * + * @throws \Exception On error. + * @return array Zip file path. + */ + public static function build( $grow_root_path, $product, $folder ) { + $logger = Logger::default(); + $package_json = \WR\Tools\Product::get_package_json( $product, $folder ); + $wp_org_slug = ! empty( $package_json['config']['wp_org_slug'] ) && $package_json['config']['wp_org_slug'] != $product ? $package_json['config']['wp_org_slug'] : false; + $use_pnpm = (bool) ( $package_json['config']['use_pnpm'] ?? false ); + $build_step = $package_json['config']['build_step'] ?? false; + + chdir( $folder ); + Utils::exec_sprintf( 'rm -rf %s.zip', $product ); + if ( $wp_org_slug ) { + Utils::exec_sprintf( 'rm -rf %s.zip', $wp_org_slug ); + } + + if ( $build_step ) { + shell_exec( "{$grow_root_path}/bin/build {$build_step}" ); + } elseif ( $use_pnpm ) { + shell_exec( "{$grow_root_path}/bin/build pnpm" ); + } else { + shell_exec( "{$grow_root_path}/bin/build npm" ); + } + + $zipfile = ''; + if ( file_exists( sprintf( '%s/%s.zip', $folder, $product ) ) ) { + $zipfile = realpath( sprintf( '%s.zip', $product ) ); + } elseif ( $wp_org_slug && file_exists( sprintf( '%s/%s.zip', $folder, $wp_org_slug ) ) ) { + $zipfile = realpath( sprintf( '%s.zip', $wp_org_slug ) ); + } + if ( $zipfile ) { + $logger->notice( 'Product build: {zipfile}', array( 'zipfile' => $zipfile ) ); + return $zipfile; + } + + if ( $wp_org_slug ) { + throw new \Exception( sprintf( "'npm run build' command did not produce '%s.zip' or '%s.zip'", $product, $wp_org_slug ), 3 ); + } else { + throw new \Exception( sprintf( "'npm run build' command did not produce '%s.zip'", $product ), 3 ); + } + } +} From 31f9639015e9260efaf78b316a883130fbb58de4 Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Tue, 7 Nov 2023 15:00:38 +0200 Subject: [PATCH 18/25] Adding build script to set nvm and npm into a single context when running the build. Using application's meta storage to pass branches between `branch` and `release` commands. Adjusting release branches cleanup to make sure not to cleanup the default branch from the product's repo. --- bin/build | 15 ++++--- .../src/Commands/Branch.php | 43 +++++++++++-------- .../src/Commands/Release.php | 13 ++++-- .../src/Utils/Product.php | 7 +-- 4 files changed, 46 insertions(+), 32 deletions(-) diff --git a/bin/build b/bin/build index abbaf120..7ac6f7b1 100755 --- a/bin/build +++ b/bin/build @@ -1,15 +1,16 @@ -#! /bin/bash +#!/bin/bash source ~/.nvm/nvm.sh +nvm use case $1 in - pnpm) echo 'pnpm' - nvm use && pnpm install && pnpm run build + pnpm) + pnpm install && pnpm run build ;; - npm) echo 'npm' - nvm use && npm install && npm run build + npm) + npm install && npm run build ;; - *) echo 'default' - nvm use && $1 + *) + eval $1 ;; esac diff --git a/packages/php/woorelease-extension/src/Commands/Branch.php b/packages/php/woorelease-extension/src/Commands/Branch.php index 6cd5d21d..de859a67 100644 --- a/packages/php/woorelease-extension/src/Commands/Branch.php +++ b/packages/php/woorelease-extension/src/Commands/Branch.php @@ -53,10 +53,16 @@ protected function execute( InputInterface $input, OutputInterface $output ) { list( $product, $gh_org, $branch ) = Utils::parse_product_info( $github_url ); // Prepare the release: check release/branch to exist. - $repository_url = sprintf( 'https://github.com/%1$s/%2$s', $gh_org, $product ); + $repository_url = sprintf( 'https://github.com/%1$s/%2$s', $gh_org, $product ); if ( $cleanup ) { - return $this->cleanup( $repository_url, $branch ); + // Not to delete the default repo's branch. + if ( $branch !== $default_branch ) { + $output->write( sprintf( "\nCleaning up `%s` branch ...\n", $branch ) ); + return $this->cleanup( $repository_url, $branch ); + } + $output->write( sprintf( "\nDefault branch `%s` cannot be deleted.\n", $branch ) ); + return Command::SUCCESS; } $is_release_branch = WooGrowGit::does_branch_exist( $repository_url, $branch ); @@ -73,24 +79,20 @@ protected function execute( InputInterface $input, OutputInterface $output ) { if ( $do_create_release_branch ) { $create = WooGrowGit::create_branch( $branch ); - /*if ( $release ) {*/ - $push = $create && WooGrowGit::push_branch( $repository_url, $branch ); - if ( ! $push ) { - $do_release_from_default = Utils::yes_no( - sprintf( - 'Branch %s has failed to create. Do you want to release from default %s branch?', - $branch, - $default_branch - ) - ); - - if ( ! $do_release_from_default ) { - throw new Exception( 'Release cancelled.' ); - } + $push = $create && WooGrowGit::push_branch( $repository_url, $branch ); + if ( ! $push ) { + $do_release_from_default = Utils::yes_no( + sprintf( + 'Branch %s has failed to create. Do you want to release from default %s branch?', + $branch, + $default_branch + ) + ); + + if ( ! $do_release_from_default ) { + throw new Exception( 'Release cancelled.' ); } - /*} else { - $logger->notice( 'Simulation mode. Creating local branch {branch}. In simulation mode branch won\'t be pushed to remote.', array( 'branch' => $branch ) ); - }*/ + } } else { $branch = $default_branch; $do_release_from_default = Utils::yes_no( @@ -110,6 +112,9 @@ protected function execute( InputInterface $input, OutputInterface $output ) { // End release. $logger->notice( sprintf( 'Release branch %s is ready.', $branch ) ); + // Setting active branch name to the output. + $this->getApplication()->set_meta( "{$product}_branch", $branch ); + return Command::SUCCESS; } catch ( \Exception $e ) { Utils::handle_error( $e ); diff --git a/packages/php/woorelease-extension/src/Commands/Release.php b/packages/php/woorelease-extension/src/Commands/Release.php index c15e06de..77e245f1 100644 --- a/packages/php/woorelease-extension/src/Commands/Release.php +++ b/packages/php/woorelease-extension/src/Commands/Release.php @@ -70,6 +70,13 @@ protected function execute( InputInterface $input, OutputInterface $output ) { if ( Command::SUCCESS !== $command->run( new ArrayInput( $arguments ), $output ) ) { return Command::FAILURE; } + // Get current active branch name after the branch command. + $active_branch = $this->getApplication()->get_meta( "{$product}_branch" ) ?? $branch; + // Update $branch and $github_url with currently active branch name. + if ( $branch !== $active_branch ) { + $branch = $active_branch; + $github_url = sprintf( 'https://github.com/%1$s/%2$s/tree/%3$s', $gh_org, $product, $branch ); + } if ( empty( $folder ) ) { $output->writeln( sprintf( "\nRelease FAILED for %s\n", $product ) ); @@ -227,10 +234,10 @@ protected function execute( InputInterface $input, OutputInterface $output ) { 'default_branch' => $default_branch, '--cleanup' => true, ); - if ( Command::SUCCESS !== $command->run( new ArrayInput( $arguments ), $output ) ) { - $logger->error( 'Simulation mode. Cleaning up the release branch has failed. Please cleanup manually.' ); + if ( Command::SUCCESS === $command->run( new ArrayInput( $arguments ), $output ) ) { + $logger->notice( 'Simulation mode. Release branch cleanup has succeeded.' ); } else { - $logger->notice( 'Simulation mode. Cleaning up the release branch succeeded.' ); + $logger->error( 'Simulation mode. Release branch cleanup has failed. Please cleanup `{branch}` branch manually.', [ 'branch' => $branch ] ); } } diff --git a/packages/php/woorelease-extension/src/Utils/Product.php b/packages/php/woorelease-extension/src/Utils/Product.php index bf8bb1e0..10d7aec9 100644 --- a/packages/php/woorelease-extension/src/Utils/Product.php +++ b/packages/php/woorelease-extension/src/Utils/Product.php @@ -22,9 +22,10 @@ public static function maybe_build_with_nvm( $use_nvm, $grow_root_path, $product $logger = Logger::default(); if ( $use_nvm ) { $logger->notice( 'Attempting to use the product\'s recommended node version.' ); - static::build( $grow_root_path, $product, $folder ); + return static::build( $grow_root_path, $product, $folder ); + } else { + return \WR\Tools\Product::build( $product, $folder ); } - return \WR\Tools\Product::build( $product, $folder ); } /** @@ -51,7 +52,7 @@ public static function build( $grow_root_path, $product, $folder ) { } if ( $build_step ) { - shell_exec( "{$grow_root_path}/bin/build {$build_step}" ); + shell_exec( "{$grow_root_path}/bin/build '{$build_step}'" ); } elseif ( $use_pnpm ) { shell_exec( "{$grow_root_path}/bin/build pnpm" ); } else { From b3c653a874e167e703e0be51009b9ca9c2bea52e Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Thu, 12 Sep 2024 11:01:41 +0300 Subject: [PATCH 19/25] - Fixing branch operations; - Updating `woorelease` dev-trunk dependency version since the last release was back 2022. --- composer.json | 2 +- composer.lock | 664 +++++++++++++----- .../src/Commands/Branch.php | 12 +- .../src/Commands/Release.php | 2 + .../woorelease-extension/src/Utils/Git.php | 27 +- 5 files changed, 529 insertions(+), 178 deletions(-) diff --git a/composer.json b/composer.json index ff343c89..d0dcd07d 100644 --- a/composer.json +++ b/composer.json @@ -11,7 +11,7 @@ "ext-zip": "*", "phpcompatibility/php-compatibility": "^9.0", "php-parallel-lint/php-parallel-lint": "^1.3.1", - "woocommerce/woorelease": "^2.4", + "woocommerce/woorelease": "dev-trunk", "yoast/phpunit-polyfills": "^1.0" }, "repositories": [ diff --git a/composer.lock b/composer.lock index 05b57ed0..5a2d1199 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": "69f948974aac014b79e8134be2e3645e", + "content-hash": "334c7a01cf649a340011cceeafe3ef22", "packages": [], "packages-dev": [ { @@ -97,6 +97,136 @@ }, "time": "2021-12-05T09:10:49+00:00" }, + { + "name": "czproject/git-php", + "version": "v4.3.0", + "source": { + "type": "git", + "url": "https://github.com/czproject/git-php.git", + "reference": "f7fe85cc526c5f8e7ed809f7f9c68f2696940a8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/czproject/git-php/zipball/f7fe85cc526c5f8e7ed809f7f9c68f2696940a8a", + "reference": "f7fe85cc526c5f8e7ed809f7f9c68f2696940a8a", + "shasum": "" + }, + "require": { + "php": ">=5.6.0" + }, + "require-dev": { + "nette/tester": "^2.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jan Pecha", + "email": "janpecha@email.cz" + } + ], + "description": "Library for work with Git repository in PHP.", + "keywords": [ + "git" + ], + "support": { + "issues": "https://github.com/czproject/git-php/issues", + "source": "https://github.com/czproject/git-php/tree/v4.3.0" + }, + "funding": [ + { + "url": "https://www.janpecha.cz/donate/git-php/", + "type": "other" + } + ], + "time": "2024-08-05T13:28:31+00:00" + }, + { + "name": "dealerdirect/phpcodesniffer-composer-installer", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/composer-installer.git", + "reference": "4be43904336affa5c2f70744a348312336afd0da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/4be43904336affa5c2f70744a348312336afd0da", + "reference": "4be43904336affa5c2f70744a348312336afd0da", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0 || ^2.0", + "php": ">=5.4", + "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" + }, + "require-dev": { + "composer/composer": "*", + "ext-json": "*", + "ext-zip": "*", + "php-parallel-lint/php-parallel-lint": "^1.3.1", + "phpcompatibility/php-compatibility": "^9.0", + "yoast/phpunit-polyfills": "^1.0" + }, + "type": "composer-plugin", + "extra": { + "class": "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" + }, + "autoload": { + "psr-4": { + "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Franck Nijhof", + "email": "franck.nijhof@dealerdirect.com", + "homepage": "http://www.frenck.nl", + "role": "Developer / IT Manager" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/composer-installer/graphs/contributors" + } + ], + "description": "PHP_CodeSniffer Standards Composer Installer Plugin", + "homepage": "http://www.dealerdirect.com", + "keywords": [ + "PHPCodeSniffer", + "PHP_CodeSniffer", + "code quality", + "codesniffer", + "composer", + "installer", + "phpcbf", + "phpcs", + "plugin", + "qa", + "quality", + "standard", + "standards", + "style guide", + "stylecheck", + "tests" + ], + "support": { + "issues": "https://github.com/PHPCSStandards/composer-installer/issues", + "source": "https://github.com/PHPCSStandards/composer-installer" + }, + "time": "2023-01-05T11:28:13+00:00" + }, { "name": "doctrine/instantiator", "version": "1.5.0", @@ -330,16 +460,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.17.1", + "version": "v4.15.4", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" + "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6bb5176bc4af8bcb7d926f88718db9b96a2d4290", + "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290", "shasum": "" }, "require": { @@ -380,9 +510,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.4" }, - "time": "2023-08-13T19:53:39+00:00" + "time": "2023-03-05T19:49:14+00:00" }, { "name": "phar-io/manifest", @@ -614,18 +744,169 @@ }, "time": "2019-12-27T09:44:58+00:00" }, + { + "name": "phpcsstandards/phpcsextra", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/PHPCSExtra.git", + "reference": "78b2cae1e9de1c05f0416de6f9a658cbb83ac324" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/78b2cae1e9de1c05f0416de6f9a658cbb83ac324", + "reference": "78b2cae1e9de1c05f0416de6f9a658cbb83ac324", + "shasum": "" + }, + "require": { + "php": ">=5.4", + "phpcsstandards/phpcsutils": "^1.0.8", + "squizlabs/php_codesniffer": "^3.7.1" + }, + "require-dev": { + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.3.2", + "phpcsstandards/phpcsdevcs": "^1.1.6", + "phpcsstandards/phpcsdevtools": "^1.2.1", + "phpunit/phpunit": "^4.5 || ^5.0 || ^6.0 || ^7.0" + }, + "type": "phpcodesniffer-standard", + "extra": { + "branch-alias": { + "dev-stable": "1.x-dev", + "dev-develop": "1.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Juliette Reinders Folmer", + "homepage": "https://github.com/jrfnl", + "role": "lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHPCSExtra/graphs/contributors" + } + ], + "description": "A collection of sniffs and standards for use with PHP_CodeSniffer.", + "keywords": [ + "PHP_CodeSniffer", + "phpcbf", + "phpcodesniffer-standard", + "phpcs", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/PHPCSStandards/PHPCSExtra/issues", + "security": "https://github.com/PHPCSStandards/PHPCSExtra/security/policy", + "source": "https://github.com/PHPCSStandards/PHPCSExtra" + }, + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + } + ], + "time": "2023-12-02T14:30:12+00:00" + }, + { + "name": "phpcsstandards/phpcsutils", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/PHPCSUtils.git", + "reference": "69465cab9d12454e5e7767b9041af0cd8cd13be7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/69465cab9d12454e5e7767b9041af0cd8cd13be7", + "reference": "69465cab9d12454e5e7767b9041af0cd8cd13be7", + "shasum": "" + }, + "require": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7 || ^1.0", + "php": ">=5.4", + "squizlabs/php_codesniffer": "^3.7.1 || 4.0.x-dev@dev" + }, + "require-dev": { + "ext-filter": "*", + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.3.2", + "phpcsstandards/phpcsdevcs": "^1.1.6", + "yoast/phpunit-polyfills": "^1.0.5 || ^2.0.0" + }, + "type": "phpcodesniffer-standard", + "extra": { + "branch-alias": { + "dev-stable": "1.x-dev", + "dev-develop": "1.x-dev" + } + }, + "autoload": { + "classmap": [ + "PHPCSUtils/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Juliette Reinders Folmer", + "homepage": "https://github.com/jrfnl", + "role": "lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHPCSUtils/graphs/contributors" + } + ], + "description": "A suite of utility functions for use with PHP_CodeSniffer", + "homepage": "https://phpcsutils.com/", + "keywords": [ + "PHP_CodeSniffer", + "phpcbf", + "phpcodesniffer-standard", + "phpcs", + "phpcs3", + "standards", + "static analysis", + "tokens", + "utility" + ], + "support": { + "docs": "https://phpcsutils.com/", + "issues": "https://github.com/PHPCSStandards/PHPCSUtils/issues", + "source": "https://github.com/PHPCSStandards/PHPCSUtils" + }, + "time": "2023-07-16T21:39:41+00:00" + }, { "name": "phpunit/php-code-coverage", - "version": "9.2.29", + "version": "9.2.26", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76" + "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/6a3a87ac2bbe33b25042753df8195ba4aa534c76", - "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", + "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", "shasum": "" }, "require": { @@ -681,8 +962,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.29" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.26" }, "funding": [ { @@ -690,7 +970,7 @@ "type": "github" } ], - "time": "2023-09-19T04:57:46+00:00" + "time": "2023-03-06T12:58:08+00:00" }, { "name": "phpunit/php-file-iterator", @@ -935,16 +1215,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.13", + "version": "9.6.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be" + "reference": "b65d59a059d3004a040c16a82e07bbdf6cfdd115" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f3d767f7f9e191eab4189abe41ab37797e30b1be", - "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b65d59a059d3004a040c16a82e07bbdf6cfdd115", + "reference": "b65d59a059d3004a040c16a82e07bbdf6cfdd115", "shasum": "" }, "require": { @@ -959,7 +1239,7 @@ "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.28", + "phpunit/php-code-coverage": "^9.2.13", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.3", @@ -1018,7 +1298,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.13" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.6" }, "funding": [ { @@ -1034,7 +1314,7 @@ "type": "tidelift" } ], - "time": "2023-09-19T05:39:22+00:00" + "time": "2023-03-27T11:43:46+00:00" }, { "name": "psr/container", @@ -1484,16 +1764,16 @@ }, { "name": "sebastian/diff", - "version": "4.0.5", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", "shasum": "" }, "require": { @@ -1538,7 +1818,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" }, "funding": [ { @@ -1546,7 +1826,7 @@ "type": "github" } ], - "time": "2023-05-07T05:35:17+00:00" + "time": "2020-10-26T13:10:38+00:00" }, { "name": "sebastian/environment", @@ -1690,16 +1970,16 @@ }, { "name": "sebastian/global-state", - "version": "5.0.6", + "version": "5.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bde739e7565280bda77be70044ac1047bc007e34" + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34", - "reference": "bde739e7565280bda77be70044ac1047bc007e34", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", "shasum": "" }, "require": { @@ -1742,7 +2022,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" }, "funding": [ { @@ -1750,7 +2030,7 @@ "type": "github" } ], - "time": "2023-08-02T09:26:13+00:00" + "time": "2022-02-14T08:28:10+00:00" }, { "name": "sebastian/lines-of-code", @@ -2207,16 +2487,16 @@ }, { "name": "symfony/config", - "version": "v5.4.26", + "version": "v5.4.21", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "8109892f27beed9252bd1f1c1880aeb4ad842650" + "reference": "2a6b1111d038adfa15d52c0871e540f3b352d1e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/8109892f27beed9252bd1f1c1880aeb4ad842650", - "reference": "8109892f27beed9252bd1f1c1880aeb4ad842650", + "url": "https://api.github.com/repos/symfony/config/zipball/2a6b1111d038adfa15d52c0871e540f3b352d1e4", + "reference": "2a6b1111d038adfa15d52c0871e540f3b352d1e4", "shasum": "" }, "require": { @@ -2266,7 +2546,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v5.4.26" + "source": "https://github.com/symfony/config/tree/v5.4.21" }, "funding": [ { @@ -2282,20 +2562,20 @@ "type": "tidelift" } ], - "time": "2023-07-19T20:21:11+00:00" + "time": "2023-02-14T08:03:56+00:00" }, { "name": "symfony/console", - "version": "v5.4.28", + "version": "v5.4.22", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "f4f71842f24c2023b91237c72a365306f3c58827" + "reference": "3cd51fd2e6c461ca678f84d419461281bd87a0a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/f4f71842f24c2023b91237c72a365306f3c58827", - "reference": "f4f71842f24c2023b91237c72a365306f3c58827", + "url": "https://api.github.com/repos/symfony/console/zipball/3cd51fd2e6c461ca678f84d419461281bd87a0a8", + "reference": "3cd51fd2e6c461ca678f84d419461281bd87a0a8", "shasum": "" }, "require": { @@ -2365,7 +2645,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.28" + "source": "https://github.com/symfony/console/tree/v5.4.22" }, "funding": [ { @@ -2381,20 +2661,20 @@ "type": "tidelift" } ], - "time": "2023-08-07T06:12:30+00:00" + "time": "2023-03-25T09:27:28+00:00" }, { "name": "symfony/dependency-injection", - "version": "v5.4.28", + "version": "v5.4.22", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "addc22fed594f9ce04e73ef6a9d3e2416f77192d" + "reference": "e1b7c1432efb4ad1dd89d62906187271e2601ed9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/addc22fed594f9ce04e73ef6a9d3e2416f77192d", - "reference": "addc22fed594f9ce04e73ef6a9d3e2416f77192d", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/e1b7c1432efb4ad1dd89d62906187271e2601ed9", + "reference": "e1b7c1432efb4ad1dd89d62906187271e2601ed9", "shasum": "" }, "require": { @@ -2454,7 +2734,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v5.4.28" + "source": "https://github.com/symfony/dependency-injection/tree/v5.4.22" }, "funding": [ { @@ -2470,7 +2750,7 @@ "type": "tidelift" } ], - "time": "2023-08-14T10:47:38+00:00" + "time": "2023-03-10T10:02:45+00:00" }, { "name": "symfony/deprecation-contracts", @@ -2541,16 +2821,16 @@ }, { "name": "symfony/error-handler", - "version": "v5.4.26", + "version": "v5.4.21", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "b26719213a39c9ba57520cbc5e52bfcc5e8d92f9" + "reference": "56a94aa8cb5a5fbc411551d8d014a296b5456549" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/b26719213a39c9ba57520cbc5e52bfcc5e8d92f9", - "reference": "b26719213a39c9ba57520cbc5e52bfcc5e8d92f9", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/56a94aa8cb5a5fbc411551d8d014a296b5456549", + "reference": "56a94aa8cb5a5fbc411551d8d014a296b5456549", "shasum": "" }, "require": { @@ -2592,7 +2872,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.4.26" + "source": "https://github.com/symfony/error-handler/tree/v5.4.21" }, "funding": [ { @@ -2608,20 +2888,20 @@ "type": "tidelift" } ], - "time": "2023-07-16T16:48:57+00:00" + "time": "2023-02-14T08:03:56+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.4.26", + "version": "v5.4.22", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "5dcc00e03413f05c1e7900090927bb7247cb0aac" + "reference": "1df20e45d56da29a4b1d8259dd6e950acbf1b13f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/5dcc00e03413f05c1e7900090927bb7247cb0aac", - "reference": "5dcc00e03413f05c1e7900090927bb7247cb0aac", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1df20e45d56da29a4b1d8259dd6e950acbf1b13f", + "reference": "1df20e45d56da29a4b1d8259dd6e950acbf1b13f", "shasum": "" }, "require": { @@ -2677,7 +2957,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.26" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.22" }, "funding": [ { @@ -2693,7 +2973,7 @@ "type": "tidelift" } ], - "time": "2023-07-06T06:34:20+00:00" + "time": "2023-03-17T11:31:58+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -2776,16 +3056,16 @@ }, { "name": "symfony/filesystem", - "version": "v5.4.25", + "version": "v5.4.21", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "0ce3a62c9579a53358d3a7eb6b3dfb79789a6364" + "reference": "e75960b1bbfd2b8c9e483e0d74811d555ca3de9f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/0ce3a62c9579a53358d3a7eb6b3dfb79789a6364", - "reference": "0ce3a62c9579a53358d3a7eb6b3dfb79789a6364", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/e75960b1bbfd2b8c9e483e0d74811d555ca3de9f", + "reference": "e75960b1bbfd2b8c9e483e0d74811d555ca3de9f", "shasum": "" }, "require": { @@ -2820,7 +3100,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.4.25" + "source": "https://github.com/symfony/filesystem/tree/v5.4.21" }, "funding": [ { @@ -2836,20 +3116,20 @@ "type": "tidelift" } ], - "time": "2023-05-31T13:04:02+00:00" + "time": "2023-02-14T08:03:56+00:00" }, { "name": "symfony/http-foundation", - "version": "v5.4.28", + "version": "v5.4.22", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "365992c83a836dfe635f1e903ccca43ee03d3dd2" + "reference": "05cd1acdd0e3ce8473aaba1d86c188321d85f313" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/365992c83a836dfe635f1e903ccca43ee03d3dd2", - "reference": "365992c83a836dfe635f1e903ccca43ee03d3dd2", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/05cd1acdd0e3ce8473aaba1d86c188321d85f313", + "reference": "05cd1acdd0e3ce8473aaba1d86c188321d85f313", "shasum": "" }, "require": { @@ -2896,7 +3176,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.4.28" + "source": "https://github.com/symfony/http-foundation/tree/v5.4.22" }, "funding": [ { @@ -2912,20 +3192,20 @@ "type": "tidelift" } ], - "time": "2023-08-21T07:23:18+00:00" + "time": "2023-03-28T07:28:17+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.4.28", + "version": "v5.4.22", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "127a2322ca1828157901092518b8ea8e4e1109d4" + "reference": "2d3a8be2c756353627398827c409af6f126c096d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/127a2322ca1828157901092518b8ea8e4e1109d4", - "reference": "127a2322ca1828157901092518b8ea8e4e1109d4", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/2d3a8be2c756353627398827c409af6f126c096d", + "reference": "2d3a8be2c756353627398827c409af6f126c096d", "shasum": "" }, "require": { @@ -3008,7 +3288,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.4.28" + "source": "https://github.com/symfony/http-kernel/tree/v5.4.22" }, "funding": [ { @@ -3024,7 +3304,7 @@ "type": "tidelift" } ], - "time": "2023-08-26T13:47:51+00:00" + "time": "2023-03-31T11:54:37+00:00" }, { "name": "symfony/monolog-bridge", @@ -3193,16 +3473,16 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.28.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", "shasum": "" }, "require": { @@ -3217,7 +3497,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.28-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3255,7 +3535,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" }, "funding": [ { @@ -3271,20 +3551,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.28.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "875e90aeea2777b6f135677f618529449334a612" + "reference": "511a08c03c1960e08a883f4cffcacd219b758354" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", - "reference": "875e90aeea2777b6f135677f618529449334a612", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", + "reference": "511a08c03c1960e08a883f4cffcacd219b758354", "shasum": "" }, "require": { @@ -3296,7 +3576,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.28-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3336,7 +3616,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" }, "funding": [ { @@ -3352,20 +3632,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.28.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", "shasum": "" }, "require": { @@ -3377,7 +3657,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.28-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3420,7 +3700,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" }, "funding": [ { @@ -3436,20 +3716,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.28.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "42292d99c55abe617799667f454222c54c60e229" + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", - "reference": "42292d99c55abe617799667f454222c54c60e229", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", "shasum": "" }, "require": { @@ -3464,7 +3744,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.28-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3503,7 +3783,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" }, "funding": [ { @@ -3519,20 +3799,20 @@ "type": "tidelift" } ], - "time": "2023-07-28T09:04:16+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.28.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5" + "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fe2f306d1d9d346a7fee353d0d5012e401e984b5", - "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", "shasum": "" }, "require": { @@ -3541,7 +3821,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.28-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3582,7 +3862,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0" }, "funding": [ { @@ -3598,20 +3878,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.28.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", - "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", "shasum": "" }, "require": { @@ -3620,7 +3900,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.28-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3665,7 +3945,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" }, "funding": [ { @@ -3681,20 +3961,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.28.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b" + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/7581cd600fa9fd681b797d00b02f068e2f13263b", - "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a", "shasum": "" }, "require": { @@ -3703,7 +3983,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.28-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3744,7 +4024,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0" }, "funding": [ { @@ -3760,7 +4040,7 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/service-contracts", @@ -3847,16 +4127,16 @@ }, { "name": "symfony/string", - "version": "v5.4.26", + "version": "v5.4.22", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "1181fe9270e373537475e826873b5867b863883c" + "reference": "8036a4c76c0dd29e60b6a7cafcacc50cf088ea62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/1181fe9270e373537475e826873b5867b863883c", - "reference": "1181fe9270e373537475e826873b5867b863883c", + "url": "https://api.github.com/repos/symfony/string/zipball/8036a4c76c0dd29e60b6a7cafcacc50cf088ea62", + "reference": "8036a4c76c0dd29e60b6a7cafcacc50cf088ea62", "shasum": "" }, "require": { @@ -3913,7 +4193,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.26" + "source": "https://github.com/symfony/string/tree/v5.4.22" }, "funding": [ { @@ -3929,20 +4209,20 @@ "type": "tidelift" } ], - "time": "2023-06-28T12:46:07+00:00" + "time": "2023-03-14T06:11:53+00:00" }, { "name": "symfony/var-dumper", - "version": "v5.4.28", + "version": "v5.4.22", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "684b36ff415e1381d4a943c3ca2502cd2debad73" + "reference": "e2edac9ce47e6df07e38143c7cfa6bdbc1a6dcc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/684b36ff415e1381d4a943c3ca2502cd2debad73", - "reference": "684b36ff415e1381d4a943c3ca2502cd2debad73", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e2edac9ce47e6df07e38143c7cfa6bdbc1a6dcc4", + "reference": "e2edac9ce47e6df07e38143c7cfa6bdbc1a6dcc4", "shasum": "" }, "require": { @@ -3951,12 +4231,12 @@ "symfony/polyfill-php80": "^1.16" }, "conflict": { + "phpunit/phpunit": "<5.4.3", "symfony/console": "<4.4" }, "require-dev": { "ext-iconv": "*", "symfony/console": "^4.4|^5.0|^6.0", - "symfony/http-kernel": "^4.4|^5.0|^6.0", "symfony/process": "^4.4|^5.0|^6.0", "symfony/uid": "^5.1|^6.0", "twig/twig": "^2.13|^3.0.4" @@ -4002,7 +4282,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.28" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.22" }, "funding": [ { @@ -4018,7 +4298,7 @@ "type": "tidelift" } ], - "time": "2023-08-24T13:38:36+00:00" + "time": "2023-03-25T09:27:28+00:00" }, { "name": "theseer/tokenizer", @@ -4072,20 +4352,21 @@ }, { "name": "woocommerce/woorelease", - "version": "2.4.0", + "version": "dev-trunk", "source": { "type": "git", "url": "git@github.com:woocommerce/woorelease.git", - "reference": "92cdac7da77ee204a7145d7029f5f12c11cfcadd" + "reference": "6a812502efde955d4efcf78d969365c2c2f95171" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/woocommerce/woorelease/zipball/92cdac7da77ee204a7145d7029f5f12c11cfcadd", - "reference": "92cdac7da77ee204a7145d7029f5f12c11cfcadd", + "url": "https://api.github.com/repos/woocommerce/woorelease/zipball/6a812502efde955d4efcf78d969365c2c2f95171", + "reference": "6a812502efde955d4efcf78d969365c2c2f95171", "shasum": "" }, "require": { - "bramus/monolog-colored-line-formatter": "~3.0", + "bramus/monolog-colored-line-formatter": "^3.0", + "czproject/git-php": "^4.0", "monolog/monolog": "^2.0", "symfony/console": "^5.1", "symfony/event-dispatcher": "^5.1", @@ -4096,6 +4377,7 @@ "squizlabs/php_codesniffer": "^3.7", "woocommerce/woocommerce-sniffs": "0.1.0" }, + "default-branch": true, "type": "library", "autoload": { "classmap": [ @@ -4114,23 +4396,89 @@ }, "description": "Woorelease automates the deployment of extensions and themes to both woocommerce.com and wordpress.org.", "support": { - "source": "https://github.com/woocommerce/woorelease/tree/2.4.0", + "source": "https://github.com/woocommerce/woorelease/tree/trunk", "issues": "https://github.com/woocommerce/woorelease/issues" }, - "time": "2022-07-21T01:05:57+00:00" + "time": "2024-09-04T12:56:29+00:00" + }, + { + "name": "wp-coding-standards/wpcs", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/WordPress/WordPress-Coding-Standards.git", + "reference": "b4caf9689f1a0e4a4c632679a44e638c1c67aff1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/b4caf9689f1a0e4a4c632679a44e638c1c67aff1", + "reference": "b4caf9689f1a0e4a4c632679a44e638c1c67aff1", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "ext-libxml": "*", + "ext-tokenizer": "*", + "ext-xmlreader": "*", + "php": ">=5.4", + "phpcsstandards/phpcsextra": "^1.1.0", + "phpcsstandards/phpcsutils": "^1.0.8", + "squizlabs/php_codesniffer": "^3.7.2" + }, + "require-dev": { + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.3.2", + "phpcompatibility/php-compatibility": "^9.0", + "phpcsstandards/phpcsdevtools": "^1.2.0", + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "suggest": { + "ext-iconv": "For improved results", + "ext-mbstring": "For improved results" + }, + "type": "phpcodesniffer-standard", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Contributors", + "homepage": "https://github.com/WordPress/WordPress-Coding-Standards/graphs/contributors" + } + ], + "description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions", + "keywords": [ + "phpcs", + "standards", + "static analysis", + "wordpress" + ], + "support": { + "issues": "https://github.com/WordPress/WordPress-Coding-Standards/issues", + "source": "https://github.com/WordPress/WordPress-Coding-Standards", + "wiki": "https://github.com/WordPress/WordPress-Coding-Standards/wiki" + }, + "funding": [ + { + "url": "https://opencollective.com/thewpcc/contribute/wp-php-63406", + "type": "custom" + } + ], + "time": "2023-09-14T07:06:09+00:00" }, { "name": "yoast/phpunit-polyfills", - "version": "1.1.0", + "version": "1.0.5", "source": { "type": "git", "url": "https://github.com/Yoast/PHPUnit-Polyfills.git", - "reference": "224e4a1329c03d8bad520e3fc4ec980034a4b212" + "reference": "3b59adeef77fb1c03ff5381dbb9d68b0aaff3171" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/224e4a1329c03d8bad520e3fc4ec980034a4b212", - "reference": "224e4a1329c03d8bad520e3fc4ec980034a4b212", + "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/3b59adeef77fb1c03ff5381dbb9d68b0aaff3171", + "reference": "3b59adeef77fb1c03ff5381dbb9d68b0aaff3171", "shasum": "" }, "require": { @@ -4177,12 +4525,14 @@ "issues": "https://github.com/Yoast/PHPUnit-Polyfills/issues", "source": "https://github.com/Yoast/PHPUnit-Polyfills" }, - "time": "2023-08-19T14:25:08+00:00" + "time": "2023-03-30T23:39:05+00:00" } ], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": { + "woocommerce/woorelease": 20 + }, "prefer-stable": false, "prefer-lowest": false, "platform": { @@ -4192,5 +4542,5 @@ "platform-dev": { "ext-zip": "*" }, - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.6.0" } diff --git a/packages/php/woorelease-extension/src/Commands/Branch.php b/packages/php/woorelease-extension/src/Commands/Branch.php index de859a67..ea049966 100644 --- a/packages/php/woorelease-extension/src/Commands/Branch.php +++ b/packages/php/woorelease-extension/src/Commands/Branch.php @@ -32,6 +32,7 @@ protected function configure() { ->setHelp( 'This command allows you to create a release branch.' ) ->addArgument( 'github_url', InputArgument::REQUIRED, 'Full GitHub URL for product to build.' ) ->addArgument( 'default_branch', InputArgument::REQUIRED, 'Default GitHub project branch name.' ) + ->addOption( 'folder', null, InputOption::VALUE_REQUIRED, 'Folder containing a cloned version of the repository', null ) ->addOption( 'cleanup', null, InputOption::VALUE_NONE, 'If specified, it will do the branch cleanup.' ); } @@ -48,6 +49,7 @@ protected function execute( InputInterface $input, OutputInterface $output ) { $logger = Logger::instance( $output ); $github_url = $input->getArgument( 'github_url' ); $default_branch = $input->getArgument( 'default_branch' ); + $folder = $input->getOption( 'folder' ); $cleanup = false !== $input->getOption( 'cleanup' ); list( $product, $gh_org, $branch ) = Utils::parse_product_info( $github_url ); @@ -59,7 +61,7 @@ protected function execute( InputInterface $input, OutputInterface $output ) { // Not to delete the default repo's branch. if ( $branch !== $default_branch ) { $output->write( sprintf( "\nCleaning up `%s` branch ...\n", $branch ) ); - return $this->cleanup( $repository_url, $branch ); + return $this->cleanup( $folder, $repository_url, $branch ); } $output->write( sprintf( "\nDefault branch `%s` cannot be deleted.\n", $branch ) ); return Command::SUCCESS; @@ -78,8 +80,8 @@ protected function execute( InputInterface $input, OutputInterface $output ) { ); if ( $do_create_release_branch ) { - $create = WooGrowGit::create_branch( $branch ); - $push = $create && WooGrowGit::push_branch( $repository_url, $branch ); + $create = WooGrowGit::create_branch( $folder, $branch ); + $push = $create && WooGrowGit::push_branch( $folder, $repository_url, $branch ); if ( ! $push ) { $do_release_from_default = Utils::yes_no( sprintf( @@ -123,8 +125,8 @@ protected function execute( InputInterface $input, OutputInterface $output ) { } } - protected function cleanup( $repository_url, $branch ) { - WooGrowGit::delete_branch( $repository_url, $branch ); + protected function cleanup( $folder, $repository_url, $branch ) { + WooGrowGit::delete_branch( $folder, $repository_url, $branch ); return Command::SUCCESS; } } diff --git a/packages/php/woorelease-extension/src/Commands/Release.php b/packages/php/woorelease-extension/src/Commands/Release.php index 77e245f1..edebef57 100644 --- a/packages/php/woorelease-extension/src/Commands/Release.php +++ b/packages/php/woorelease-extension/src/Commands/Release.php @@ -65,6 +65,7 @@ protected function execute( InputInterface $input, OutputInterface $output ) { $arguments = array( 'github_url' => $github_url, 'default_branch' => $default_branch, + '--folder' => $folder, ); if ( Command::SUCCESS !== $command->run( new ArrayInput( $arguments ), $output ) ) { @@ -232,6 +233,7 @@ protected function execute( InputInterface $input, OutputInterface $output ) { $arguments = array( 'github_url' => $github_url, 'default_branch' => $default_branch, + '--folder' => $folder, '--cleanup' => true, ); if ( Command::SUCCESS === $command->run( new ArrayInput( $arguments ), $output ) ) { diff --git a/packages/php/woorelease-extension/src/Utils/Git.php b/packages/php/woorelease-extension/src/Utils/Git.php index b970bc20..b035fbd2 100644 --- a/packages/php/woorelease-extension/src/Utils/Git.php +++ b/packages/php/woorelease-extension/src/Utils/Git.php @@ -36,24 +36,18 @@ public static function does_branch_exist( $repository_url, $branch ) { } /** - * Creates a new branch and pushes it to the remote repository. - * Rollbacks if the branch was (not) created but (and) not pushed. + * Creates a new local release branch. * * @param string $branch The branch name. * * @return bool True if the branch was created, false otherwise. */ - public static function create_branch( $branch ) { + public static function create_branch( $folder, $branch ) { try { + chdir( $folder ); Utils::exec_sprintf( 'git checkout -b %s', $branch ); return true; } catch ( Exception $e ) { - try { - // Cleanup if the branch was created but not pushed. - Utils::exec_sprintf( 'git branch -D %s', $branch ); - } catch ( Exception $e ) { - return false; - } return false; } } @@ -61,20 +55,21 @@ public static function create_branch( $branch ) { /** * Pushes a branch to the remote repository. * + * @param string $folder Current working repository clone. * @param string $repository_url The remote repository URL. * @param string $branch The branch name. * * @return bool True if the branch was pushed, false otherwise. */ - public static function push_branch( $repository_url, $branch ) { - self::does_branch_exist( $repository_url, $branch ); + public static function push_branch( $folder, $repository_url, $branch ) { try { - Utils::exec_sprintf( 'git push origin %s', $branch ); + chdir( $folder ); + Utils::exec_sprintf( 'git push --set-upstream origin %s', $branch ); return true; } catch ( Exception $e ) { try { // Cleanup if the branch was created but not pushed. - static::delete_branch( $repository_url, $branch ); + static::delete_branch( $folder, $repository_url, $branch ); } catch ( Exception $e ) { return false; } @@ -85,15 +80,17 @@ public static function push_branch( $repository_url, $branch ) { /** * Deletes a branch to the remote repository. * + * @param string $folder Current working copy. * @param string $repository_url The remote repository URL. * @param string $branch The branch name. * * @return bool True if the branch was deleted, false otherwise. */ - public static function delete_branch( $repository_url, $branch ) { + public static function delete_branch( $folder, $repository_url, $branch ) { try { + chdir( $folder ); if ( self::does_branch_exist( $repository_url, $branch ) ) { - Utils::exec_sprintf( 'git push origin --delete %s', $branch ); + Utils::exec_sprintf( 'git push %s --delete %s', $repository_url, $branch ); } return true; } catch ( Exception $e ) { From 206cb3bc8edf1192cf29f8c8efa4f0ca1dfe39c1 Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Mon, 23 Sep 2024 09:04:11 +0300 Subject: [PATCH 20/25] Adding recent composer lock file. --- composer.lock | 1187 +++++++++++++++++++++++++++---------------------- 1 file changed, 646 insertions(+), 541 deletions(-) diff --git a/composer.lock b/composer.lock index 5a2d1199..8fdd4f7f 100644 --- a/composer.lock +++ b/composer.lock @@ -53,25 +53,25 @@ }, { "name": "bramus/monolog-colored-line-formatter", - "version": "3.0.6", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/bramus/monolog-colored-line-formatter.git", - "reference": "708891d34cb431d9ed56da91a53ecc2d8afdc24e" + "reference": "cd1ada798fec11a5862cb67944c651b6a8e04911" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bramus/monolog-colored-line-formatter/zipball/708891d34cb431d9ed56da91a53ecc2d8afdc24e", - "reference": "708891d34cb431d9ed56da91a53ecc2d8afdc24e", + "url": "https://api.github.com/repos/bramus/monolog-colored-line-formatter/zipball/cd1ada798fec11a5862cb67944c651b6a8e04911", + "reference": "cd1ada798fec11a5862cb67944c651b6a8e04911", "shasum": "" }, "require": { "bramus/ansi-php": "^3.0.3", - "php": "^7.2|^8.0" + "php": "^8.1" }, "require-dev": { - "monolog/monolog": "~2.0", - "phpunit/phpunit": "~7.0|^9.4" + "monolog/monolog": "~3.0", + "phpunit/phpunit": "~9.6" }, "type": "library", "autoload": { @@ -93,9 +93,15 @@ "description": "Colored Line Formatter for Monolog", "support": { "issues": "https://github.com/bramus/monolog-colored-line-formatter/issues", - "source": "https://github.com/bramus/monolog-colored-line-formatter/tree/3.0.6" + "source": "https://github.com/bramus/monolog-colored-line-formatter/tree/3.1.0" }, - "time": "2021-12-05T09:10:49+00:00" + "funding": [ + { + "url": "https://github.com/bramus", + "type": "github" + } + ], + "time": "2023-03-29T13:28:41+00:00" }, { "name": "czproject/git-php", @@ -229,30 +235,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": { @@ -279,7 +285,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": [ { @@ -295,20 +301,20 @@ "type": "tidelift" } ], - "time": "2022-12-30T00:15:36+00:00" + "time": "2022-12-30T00:23:10+00:00" }, { "name": "monolog/monolog", - "version": "2.9.1", + "version": "2.9.3", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1" + "reference": "a30bfe2e142720dfa990d0a7e573997f5d884215" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f259e2b15fb95494c83f52d3caad003bbf5ffaa1", - "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/a30bfe2e142720dfa990d0a7e573997f5d884215", + "reference": "a30bfe2e142720dfa990d0a7e573997f5d884215", "shasum": "" }, "require": { @@ -329,8 +335,8 @@ "mongodb/mongodb": "^1.8", "php-amqplib/php-amqplib": "~2.4 || ^3", "phpspec/prophecy": "^1.15", - "phpstan/phpstan": "^0.12.91", - "phpunit/phpunit": "^8.5.14", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^8.5.38 || ^9.6.19", "predis/predis": "^1.1 || ^2.0", "rollbar/rollbar": "^1.3 || ^2 || ^3", "ruflin/elastica": "^7", @@ -385,7 +391,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/2.9.1" + "source": "https://github.com/Seldaek/monolog/tree/2.9.3" }, "funding": [ { @@ -397,20 +403,20 @@ "type": "tidelift" } ], - "time": "2023-02-06T13:44:46+00:00" + "time": "2024-04-12T20:52:51+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.11.1", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", "shasum": "" }, "require": { @@ -418,11 +424,12 @@ }, "conflict": { "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" + "doctrine/common": "<2.13.3 || >=3 <3.2.2" }, "require-dev": { "doctrine/collections": "^1.6.8", "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", @@ -448,7 +455,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" }, "funding": [ { @@ -456,29 +463,31 @@ "type": "tidelift" } ], - "time": "2023-03-08T13:26:56+00:00" + "time": "2024-06-12T14:39:25+00:00" }, { "name": "nikic/php-parser", - "version": "v4.15.4", + "version": "v5.2.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290" + "reference": "23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6bb5176bc4af8bcb7d926f88718db9b96a2d4290", - "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb", + "reference": "23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb", "shasum": "" }, "require": { + "ext-ctype": "*", + "ext-json": "*", "ext-tokenizer": "*", - "php": ">=7.0" + "php": ">=7.4" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^9.0" }, "bin": [ "bin/php-parse" @@ -486,7 +495,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.9-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -510,26 +519,27 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.4" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.2.0" }, - "time": "2023-03-05T19:49:14+00:00" + "time": "2024-09-15T16:40:33+00:00" }, { "name": "phar-io/manifest", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + "reference": "54750ef60c58e43759730615a392c31c80e23176" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-phar": "*", "ext-xmlwriter": "*", "phar-io/version": "^3.0.1", @@ -570,9 +580,15 @@ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.3" + "source": "https://github.com/phar-io/manifest/tree/2.0.4" }, - "time": "2021-07-20T11:28:43+00:00" + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" }, { "name": "phar-io/version", @@ -627,16 +643,16 @@ }, { "name": "php-parallel-lint/php-parallel-lint", - "version": "v1.3.2", + "version": "v1.4.0", "source": { "type": "git", "url": "https://github.com/php-parallel-lint/PHP-Parallel-Lint.git", - "reference": "6483c9832e71973ed29cf71bd6b3f4fde438a9de" + "reference": "6db563514f27e19595a19f45a4bf757b6401194e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-parallel-lint/PHP-Parallel-Lint/zipball/6483c9832e71973ed29cf71bd6b3f4fde438a9de", - "reference": "6483c9832e71973ed29cf71bd6b3f4fde438a9de", + "url": "https://api.github.com/repos/php-parallel-lint/PHP-Parallel-Lint/zipball/6db563514f27e19595a19f45a4bf757b6401194e", + "reference": "6db563514f27e19595a19f45a4bf757b6401194e", "shasum": "" }, "require": { @@ -674,13 +690,17 @@ "email": "ahoj@jakubonderka.cz" } ], - "description": "This tool check syntax of PHP files about 20x faster than serial check.", + "description": "This tool checks the syntax of PHP files about 20x faster than serial check.", "homepage": "https://github.com/php-parallel-lint/PHP-Parallel-Lint", + "keywords": [ + "lint", + "static analysis" + ], "support": { "issues": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/issues", - "source": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/tree/v1.3.2" + "source": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/tree/v1.4.0" }, - "time": "2022-02-21T12:50:22+00:00" + "time": "2024-03-27T12:14:49+00:00" }, { "name": "phpcompatibility/php-compatibility", @@ -746,29 +766,29 @@ }, { "name": "phpcsstandards/phpcsextra", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHPCSExtra.git", - "reference": "78b2cae1e9de1c05f0416de6f9a658cbb83ac324" + "reference": "11d387c6642b6e4acaf0bd9bf5203b8cca1ec489" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/78b2cae1e9de1c05f0416de6f9a658cbb83ac324", - "reference": "78b2cae1e9de1c05f0416de6f9a658cbb83ac324", + "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/11d387c6642b6e4acaf0bd9bf5203b8cca1ec489", + "reference": "11d387c6642b6e4acaf0bd9bf5203b8cca1ec489", "shasum": "" }, "require": { "php": ">=5.4", - "phpcsstandards/phpcsutils": "^1.0.8", - "squizlabs/php_codesniffer": "^3.7.1" + "phpcsstandards/phpcsutils": "^1.0.9", + "squizlabs/php_codesniffer": "^3.8.0" }, "require-dev": { "php-parallel-lint/php-console-highlighter": "^1.0", "php-parallel-lint/php-parallel-lint": "^1.3.2", "phpcsstandards/phpcsdevcs": "^1.1.6", "phpcsstandards/phpcsdevtools": "^1.2.1", - "phpunit/phpunit": "^4.5 || ^5.0 || ^6.0 || ^7.0" + "phpunit/phpunit": "^4.5 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" }, "type": "phpcodesniffer-standard", "extra": { @@ -820,33 +840,33 @@ "type": "open_collective" } ], - "time": "2023-12-02T14:30:12+00:00" + "time": "2023-12-08T16:49:07+00:00" }, { "name": "phpcsstandards/phpcsutils", - "version": "1.0.8", + "version": "1.0.12", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHPCSUtils.git", - "reference": "69465cab9d12454e5e7767b9041af0cd8cd13be7" + "reference": "87b233b00daf83fb70f40c9a28692be017ea7c6c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/69465cab9d12454e5e7767b9041af0cd8cd13be7", - "reference": "69465cab9d12454e5e7767b9041af0cd8cd13be7", + "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/87b233b00daf83fb70f40c9a28692be017ea7c6c", + "reference": "87b233b00daf83fb70f40c9a28692be017ea7c6c", "shasum": "" }, "require": { "dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7 || ^1.0", "php": ">=5.4", - "squizlabs/php_codesniffer": "^3.7.1 || 4.0.x-dev@dev" + "squizlabs/php_codesniffer": "^3.10.0 || 4.0.x-dev@dev" }, "require-dev": { "ext-filter": "*", "php-parallel-lint/php-console-highlighter": "^1.0", "php-parallel-lint/php-parallel-lint": "^1.3.2", "phpcsstandards/phpcsdevcs": "^1.1.6", - "yoast/phpunit-polyfills": "^1.0.5 || ^2.0.0" + "yoast/phpunit-polyfills": "^1.1.0 || ^2.0.0" }, "type": "phpcodesniffer-standard", "extra": { @@ -891,41 +911,56 @@ "support": { "docs": "https://phpcsutils.com/", "issues": "https://github.com/PHPCSStandards/PHPCSUtils/issues", + "security": "https://github.com/PHPCSStandards/PHPCSUtils/security/policy", "source": "https://github.com/PHPCSStandards/PHPCSUtils" }, - "time": "2023-07-16T21:39:41+00:00" + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + } + ], + "time": "2024-05-20T13:34:27+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.26", + "version": "9.2.32", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1" + "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", - "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", + "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.15", + "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", @@ -934,7 +969,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.2-dev" + "dev-main": "9.2.x-dev" } }, "autoload": { @@ -962,7 +997,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.26" + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.32" }, "funding": [ { @@ -970,7 +1006,7 @@ "type": "github" } ], - "time": "2023-03-06T12:58:08+00:00" + "time": "2024-08-22T04:23:01+00:00" }, { "name": "phpunit/php-file-iterator", @@ -1215,45 +1251,45 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.6", + "version": "9.6.21", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "b65d59a059d3004a040c16a82e07bbdf6cfdd115" + "reference": "de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b65d59a059d3004a040c16a82e07bbdf6cfdd115", - "reference": "b65d59a059d3004a040c16a82e07bbdf6cfdd115", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa", + "reference": "de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.3.1 || ^2", + "doctrine/instantiator": "^1.5.0 || ^2", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", + "myclabs/deep-copy": "^1.12.0", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.13", - "phpunit/php-file-iterator": "^3.0.5", + "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.3", - "phpunit/php-timer": "^5.0.2", - "sebastian/cli-parser": "^1.0.1", - "sebastian/code-unit": "^1.0.6", + "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/diff": "^4.0.3", - "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.5", - "sebastian/global-state": "^5.0.1", - "sebastian/object-enumerator": "^4.0.3", - "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^3.2", + "sebastian/diff": "^4.0.6", + "sebastian/environment": "^5.1.5", + "sebastian/exporter": "^4.0.6", + "sebastian/global-state": "^5.0.7", + "sebastian/object-enumerator": "^4.0.4", + "sebastian/resource-operations": "^3.0.4", + "sebastian/type": "^3.2.1", "sebastian/version": "^3.0.2" }, "suggest": { @@ -1298,7 +1334,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.6" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.21" }, "funding": [ { @@ -1314,26 +1350,31 @@ "type": "tidelift" } ], - "time": "2023-03-27T11:43:46+00:00" + "time": "2024-09-19T10:50:18+00:00" }, { "name": "psr/container", - "version": "1.1.2", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", "shasum": "" }, "require": { "php": ">=7.4.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, "autoload": { "psr-4": { "Psr\\Container\\": "src/" @@ -1360,9 +1401,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" + "source": "https://github.com/php-fig/container/tree/2.0.2" }, - "time": "2021-11-05T16:50:12+00:00" + "time": "2021-11-05T16:47:00+00:00" }, { "name": "psr/event-dispatcher", @@ -1416,30 +1457,30 @@ }, { "name": "psr/log", - "version": "1.1.4", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376", + "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=8.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Log\\": "Psr/Log/" + "Psr\\Log\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1460,22 +1501,22 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/1.1.4" + "source": "https://github.com/php-fig/log/tree/2.0.0" }, - "time": "2021-05-03T11:20:27+00:00" + "time": "2021-07-14T16:41:46+00:00" }, { "name": "sebastian/cli-parser", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b", + "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b", "shasum": "" }, "require": { @@ -1510,7 +1551,7 @@ "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2" }, "funding": [ { @@ -1518,7 +1559,7 @@ "type": "github" } ], - "time": "2020-09-28T06:08:49+00:00" + "time": "2024-03-02T06:27:43+00:00" }, { "name": "sebastian/code-unit", @@ -1707,20 +1748,20 @@ }, { "name": "sebastian/complexity", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a", + "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a", "shasum": "" }, "require": { - "nikic/php-parser": "^4.7", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=7.3" }, "require-dev": { @@ -1752,7 +1793,7 @@ "homepage": "https://github.com/sebastianbergmann/complexity", "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3" }, "funding": [ { @@ -1760,20 +1801,20 @@ "type": "github" } ], - "time": "2020-10-26T15:52:27+00:00" + "time": "2023-12-22T06:19:30+00:00" }, { "name": "sebastian/diff", - "version": "4.0.4", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc", + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc", "shasum": "" }, "require": { @@ -1818,7 +1859,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6" }, "funding": [ { @@ -1826,7 +1867,7 @@ "type": "github" } ], - "time": "2020-10-26T13:10:38+00:00" + "time": "2024-03-02T06:30:58+00:00" }, { "name": "sebastian/environment", @@ -1893,16 +1934,16 @@ }, { "name": "sebastian/exporter", - "version": "4.0.5", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72", + "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72", "shasum": "" }, "require": { @@ -1958,7 +1999,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6" }, "funding": [ { @@ -1966,20 +2007,20 @@ "type": "github" } ], - "time": "2022-09-14T06:03:37+00:00" + "time": "2024-03-02T06:33:00+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.5", + "version": "5.0.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", + "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", "shasum": "" }, "require": { @@ -2022,7 +2063,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7" }, "funding": [ { @@ -2030,24 +2071,24 @@ "type": "github" } ], - "time": "2022-02-14T08:28:10+00:00" + "time": "2024-03-02T06:35:11+00:00" }, { "name": "sebastian/lines-of-code", - "version": "1.0.3", + "version": "1.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5", + "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5", "shasum": "" }, "require": { - "nikic/php-parser": "^4.6", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=7.3" }, "require-dev": { @@ -2079,7 +2120,7 @@ "homepage": "https://github.com/sebastianbergmann/lines-of-code", "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4" }, "funding": [ { @@ -2087,7 +2128,7 @@ "type": "github" } ], - "time": "2020-11-28T06:42:11+00:00" + "time": "2023-12-22T06:20:34+00:00" }, { "name": "sebastian/object-enumerator", @@ -2266,16 +2307,16 @@ }, { "name": "sebastian/resource-operations", - "version": "3.0.3", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e", + "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e", "shasum": "" }, "require": { @@ -2287,7 +2328,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -2308,8 +2349,7 @@ "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4" }, "funding": [ { @@ -2317,7 +2357,7 @@ "type": "github" } ], - "time": "2020-09-28T06:45:17+00:00" + "time": "2024-03-14T16:00:52+00:00" }, { "name": "sebastian/type", @@ -2430,16 +2470,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.7.2", + "version": "3.10.3", "source": { "type": "git", - "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879" + "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", + "reference": "62d32998e820bddc40f99f8251958aed187a5c9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ed8e00df0a83aa96acf703f8c2979ff33341f879", - "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/62d32998e820bddc40f99f8251958aed187a5c9c", + "reference": "62d32998e820bddc40f99f8251958aed187a5c9c", "shasum": "" }, "require": { @@ -2449,11 +2489,11 @@ "php": ">=5.4.0" }, "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" }, "bin": [ - "bin/phpcs", - "bin/phpcbf" + "bin/phpcbf", + "bin/phpcs" ], "type": "library", "extra": { @@ -2468,57 +2508,76 @@ "authors": [ { "name": "Greg Sherwood", - "role": "lead" + "role": "Former lead" + }, + { + "name": "Juliette Reinders Folmer", + "role": "Current lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" } ], "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", "keywords": [ "phpcs", "standards", "static analysis" ], "support": { - "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", - "source": "https://github.com/squizlabs/PHP_CodeSniffer", - "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues", + "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy", + "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki" }, - "time": "2023-02-22T23:07:41+00:00" + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + } + ], + "time": "2024-09-18T10:38:58+00:00" }, { "name": "symfony/config", - "version": "v5.4.21", + "version": "v7.1.1", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "2a6b1111d038adfa15d52c0871e540f3b352d1e4" + "reference": "2210fc99fa42a259eb6c89d1f724ce0c4d62d5d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/2a6b1111d038adfa15d52c0871e540f3b352d1e4", - "reference": "2a6b1111d038adfa15d52c0871e540f3b352d1e4", + "url": "https://api.github.com/repos/symfony/config/zipball/2210fc99fa42a259eb6c89d1f724ce0c4d62d5d2", + "reference": "2210fc99fa42a259eb6c89d1f724ce0c4d62d5d2", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/filesystem": "^4.4|^5.0|^6.0", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-php80": "^1.16", - "symfony/polyfill-php81": "^1.22" + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/filesystem": "^7.1", + "symfony/polyfill-ctype": "~1.8" }, "conflict": { - "symfony/finder": "<4.4" + "symfony/finder": "<6.4", + "symfony/service-contracts": "<2.5" }, "require-dev": { - "symfony/event-dispatcher": "^4.4|^5.0|^6.0", - "symfony/finder": "^4.4|^5.0|^6.0", - "symfony/messenger": "^4.4|^5.0|^6.0", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/yaml": "^4.4|^5.0|^6.0" - }, - "suggest": { - "symfony/yaml": "To use the yaml reference dumper" + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/finder": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/yaml": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -2546,7 +2605,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v5.4.21" + "source": "https://github.com/symfony/config/tree/v7.1.1" }, "funding": [ { @@ -2562,20 +2621,20 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:03:56+00:00" + "time": "2024-05-31T14:57:53+00:00" }, { "name": "symfony/console", - "version": "v5.4.22", + "version": "v5.4.44", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "3cd51fd2e6c461ca678f84d419461281bd87a0a8" + "reference": "5b5a0aa66e3296e303e22490f90f521551835a83" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/3cd51fd2e6c461ca678f84d419461281bd87a0a8", - "reference": "3cd51fd2e6c461ca678f84d419461281bd87a0a8", + "url": "https://api.github.com/repos/symfony/console/zipball/5b5a0aa66e3296e303e22490f90f521551835a83", + "reference": "5b5a0aa66e3296e303e22490f90f521551835a83", "shasum": "" }, "require": { @@ -2645,7 +2704,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.22" + "source": "https://github.com/symfony/console/tree/v5.4.44" }, "funding": [ { @@ -2661,52 +2720,43 @@ "type": "tidelift" } ], - "time": "2023-03-25T09:27:28+00:00" + "time": "2024-09-20T07:56:40+00:00" }, { "name": "symfony/dependency-injection", - "version": "v5.4.22", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "e1b7c1432efb4ad1dd89d62906187271e2601ed9" + "reference": "38465f925ec4e0707b090e9147c65869837d639d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/e1b7c1432efb4ad1dd89d62906187271e2601ed9", - "reference": "e1b7c1432efb4ad1dd89d62906187271e2601ed9", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/38465f925ec4e0707b090e9147c65869837d639d", + "reference": "38465f925ec4e0707b090e9147c65869837d639d", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/container": "^1.1.1", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16", - "symfony/polyfill-php81": "^1.22", - "symfony/service-contracts": "^1.1.6|^2" + "php": ">=8.2", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/service-contracts": "^3.5", + "symfony/var-exporter": "^6.4|^7.0" }, "conflict": { "ext-psr": "<1.1|>=2", - "symfony/config": "<5.3", - "symfony/finder": "<4.4", - "symfony/proxy-manager-bridge": "<4.4", - "symfony/yaml": "<4.4.26" + "symfony/config": "<6.4", + "symfony/finder": "<6.4", + "symfony/yaml": "<6.4" }, "provide": { - "psr/container-implementation": "1.0", - "symfony/service-implementation": "1.0|2.0" + "psr/container-implementation": "1.1|2.0", + "symfony/service-implementation": "1.1|2.0|3.0" }, "require-dev": { - "symfony/config": "^5.3|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/yaml": "^4.4.26|^5.0|^6.0" - }, - "suggest": { - "symfony/config": "", - "symfony/expression-language": "For using expressions in service container configuration", - "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", - "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", - "symfony/yaml": "" + "symfony/config": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/yaml": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -2734,7 +2784,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v5.4.22" + "source": "https://github.com/symfony/dependency-injection/tree/v7.1.5" }, "funding": [ { @@ -2750,29 +2800,29 @@ "type": "tidelift" } ], - "time": "2023-03-10T10:02:45+00:00" + "time": "2024-09-20T08:28:38+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v2.5.2", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.1" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -2801,7 +2851,7 @@ "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.2" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" }, "funding": [ { @@ -2817,31 +2867,35 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/error-handler", - "version": "v5.4.21", + "version": "v7.1.3", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "56a94aa8cb5a5fbc411551d8d014a296b5456549" + "reference": "432bb369952795c61ca1def65e078c4a80dad13c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/56a94aa8cb5a5fbc411551d8d014a296b5456549", - "reference": "56a94aa8cb5a5fbc411551d8d014a296b5456549", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/432bb369952795c61ca1def65e078c4a80dad13c", + "reference": "432bb369952795c61ca1def65e078c4a80dad13c", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.2", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^4.4|^5.0|^6.0" + "symfony/var-dumper": "^6.4|^7.0" + }, + "conflict": { + "symfony/deprecation-contracts": "<2.5", + "symfony/http-kernel": "<6.4" }, "require-dev": { - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/http-kernel": "^4.4|^5.0|^6.0", - "symfony/serializer": "^4.4|^5.0|^6.0" + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/serializer": "^6.4|^7.0" }, "bin": [ "Resources/bin/patch-type-declarations" @@ -2872,7 +2926,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.4.21" + "source": "https://github.com/symfony/error-handler/tree/v7.1.3" }, "funding": [ { @@ -2888,20 +2942,20 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:03:56+00:00" + "time": "2024-07-26T13:02:51+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.4.22", + "version": "v5.4.40", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "1df20e45d56da29a4b1d8259dd6e950acbf1b13f" + "reference": "a54e2a8a114065f31020d6a89ede83e34c3b27a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1df20e45d56da29a4b1d8259dd6e950acbf1b13f", - "reference": "1df20e45d56da29a4b1d8259dd6e950acbf1b13f", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a54e2a8a114065f31020d6a89ede83e34c3b27a4", + "reference": "a54e2a8a114065f31020d6a89ede83e34c3b27a4", "shasum": "" }, "require": { @@ -2957,7 +3011,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.22" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.40" }, "funding": [ { @@ -2973,33 +3027,30 @@ "type": "tidelift" } ], - "time": "2023-03-17T11:31:58+00:00" + "time": "2024-05-31T14:33:22+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v2.5.2", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1" + "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1", - "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50", + "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.1", "psr/event-dispatcher": "^1" }, - "suggest": { - "symfony/event-dispatcher-implementation": "" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -3036,7 +3087,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0" }, "funding": [ { @@ -3052,27 +3103,29 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/filesystem", - "version": "v5.4.21", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "e75960b1bbfd2b8c9e483e0d74811d555ca3de9f" + "reference": "61fe0566189bf32e8cfee78335d8776f64a66f5a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/e75960b1bbfd2b8c9e483e0d74811d555ca3de9f", - "reference": "e75960b1bbfd2b8c9e483e0d74811d555ca3de9f", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/61fe0566189bf32e8cfee78335d8776f64a66f5a", + "reference": "61fe0566189bf32e8cfee78335d8776f64a66f5a", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.2", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8", - "symfony/polyfill-php80": "^1.16" + "symfony/polyfill-mbstring": "~1.8" + }, + "require-dev": { + "symfony/process": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -3100,7 +3153,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.4.21" + "source": "https://github.com/symfony/filesystem/tree/v7.1.5" }, "funding": [ { @@ -3116,39 +3169,40 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:03:56+00:00" + "time": "2024-09-17T09:16:35+00:00" }, { "name": "symfony/http-foundation", - "version": "v5.4.22", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "05cd1acdd0e3ce8473aaba1d86c188321d85f313" + "reference": "e30ef73b1e44eea7eb37ba69600a354e553f694b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/05cd1acdd0e3ce8473aaba1d86c188321d85f313", - "reference": "05cd1acdd0e3ce8473aaba1d86c188321d85f313", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e30ef73b1e44eea7eb37ba69600a354e553f694b", + "reference": "e30ef73b1e44eea7eb37ba69600a354e553f694b", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "php": ">=8.2", "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php80": "^1.16" + "symfony/polyfill-php83": "^1.27" }, - "require-dev": { - "predis/predis": "~1.0", - "symfony/cache": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", - "symfony/mime": "^4.4|^5.0|^6.0", - "symfony/rate-limiter": "^5.2|^6.0" + "conflict": { + "doctrine/dbal": "<3.6", + "symfony/cache": "<6.4" }, - "suggest": { - "symfony/mime": "To use the file extension guesser" + "require-dev": { + "doctrine/dbal": "^3.6|^4", + "predis/predis": "^1.1|^2.0", + "symfony/cache": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/mime": "^6.4|^7.0", + "symfony/rate-limiter": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -3176,7 +3230,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.4.22" + "source": "https://github.com/symfony/http-foundation/tree/v7.1.5" }, "funding": [ { @@ -3192,76 +3246,78 @@ "type": "tidelift" } ], - "time": "2023-03-28T07:28:17+00:00" + "time": "2024-09-20T08:28:38+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.4.22", + "version": "v6.4.12", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "2d3a8be2c756353627398827c409af6f126c096d" + "reference": "96df83d51b5f78804f70c093b97310794fd6257b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/2d3a8be2c756353627398827c409af6f126c096d", - "reference": "2d3a8be2c756353627398827c409af6f126c096d", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/96df83d51b5f78804f70c093b97310794fd6257b", + "reference": "96df83d51b5f78804f70c093b97310794fd6257b", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/log": "^1|^2", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/error-handler": "^4.4|^5.0|^6.0", - "symfony/event-dispatcher": "^5.0|^6.0", - "symfony/http-foundation": "^5.4.21|^6.2.7", - "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.1", + "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/error-handler": "^6.4|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/polyfill-ctype": "^1.8" }, "conflict": { "symfony/browser-kit": "<5.4", - "symfony/cache": "<5.0", - "symfony/config": "<5.0", - "symfony/console": "<4.4", - "symfony/dependency-injection": "<5.3", - "symfony/doctrine-bridge": "<5.0", - "symfony/form": "<5.0", - "symfony/http-client": "<5.0", - "symfony/mailer": "<5.0", - "symfony/messenger": "<5.0", - "symfony/translation": "<5.0", - "symfony/twig-bridge": "<5.0", - "symfony/validator": "<5.0", + "symfony/cache": "<5.4", + "symfony/config": "<6.1", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<6.4", + "symfony/doctrine-bridge": "<5.4", + "symfony/form": "<5.4", + "symfony/http-client": "<5.4", + "symfony/http-client-contracts": "<2.5", + "symfony/mailer": "<5.4", + "symfony/messenger": "<5.4", + "symfony/translation": "<5.4", + "symfony/translation-contracts": "<2.5", + "symfony/twig-bridge": "<5.4", + "symfony/validator": "<6.4", + "symfony/var-dumper": "<6.3", "twig/twig": "<2.13" }, "provide": { - "psr/log-implementation": "1.0|2.0" + "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^5.4|^6.0", - "symfony/config": "^5.0|^6.0", - "symfony/console": "^4.4|^5.0|^6.0", - "symfony/css-selector": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^5.3|^6.0", - "symfony/dom-crawler": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/finder": "^4.4|^5.0|^6.0", - "symfony/http-client-contracts": "^1.1|^2|^3", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/routing": "^4.4|^5.0|^6.0", - "symfony/stopwatch": "^4.4|^5.0|^6.0", - "symfony/translation": "^4.4|^5.0|^6.0", - "symfony/translation-contracts": "^1.1|^2|^3", + "symfony/browser-kit": "^5.4|^6.0|^7.0", + "symfony/clock": "^6.2|^7.0", + "symfony/config": "^6.1|^7.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/css-selector": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/dom-crawler": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/http-client-contracts": "^2.5|^3", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/property-access": "^5.4.5|^6.0.5|^7.0", + "symfony/routing": "^5.4|^6.0|^7.0", + "symfony/serializer": "^6.4.4|^7.0.4", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/translation": "^5.4|^6.0|^7.0", + "symfony/translation-contracts": "^2.5|^3", + "symfony/uid": "^5.4|^6.0|^7.0", + "symfony/validator": "^6.4|^7.0", + "symfony/var-dumper": "^5.4|^6.4|^7.0", + "symfony/var-exporter": "^6.2|^7.0", "twig/twig": "^2.13|^3.0.4" }, - "suggest": { - "symfony/browser-kit": "", - "symfony/config": "", - "symfony/console": "", - "symfony/dependency-injection": "" - }, "type": "library", "autoload": { "psr-4": { @@ -3288,7 +3344,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.4.22" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.12" }, "funding": [ { @@ -3304,47 +3360,42 @@ "type": "tidelift" } ], - "time": "2023-03-31T11:54:37+00:00" + "time": "2024-09-21T06:02:57+00:00" }, { "name": "symfony/monolog-bridge", - "version": "v5.4.22", + "version": "v6.4.8", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "34be6f0695e4187dbb832a05905fb4c6581ac39a" + "reference": "0fbee64913b1c595e7650a1919ba3edba8d49ea7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/34be6f0695e4187dbb832a05905fb4c6581ac39a", - "reference": "34be6f0695e4187dbb832a05905fb4c6581ac39a", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/0fbee64913b1c595e7650a1919ba3edba8d49ea7", + "reference": "0fbee64913b1c595e7650a1919ba3edba8d49ea7", "shasum": "" }, "require": { - "monolog/monolog": "^1.25.1|^2", - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/http-kernel": "^5.3|^6.0", - "symfony/polyfill-php80": "^1.16", - "symfony/service-contracts": "^1.1|^2|^3" + "monolog/monolog": "^1.25.1|^2|^3", + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/service-contracts": "^2.5|^3" }, "conflict": { - "symfony/console": "<4.4", - "symfony/http-foundation": "<5.3" + "symfony/console": "<5.4", + "symfony/http-foundation": "<5.4", + "symfony/security-core": "<5.4" }, "require-dev": { - "symfony/console": "^4.4|^5.0|^6.0", - "symfony/http-client": "^4.4|^5.0|^6.0", - "symfony/mailer": "^4.4|^5.0|^6.0", - "symfony/messenger": "^4.4|^5.0|^6.0", - "symfony/mime": "^4.4|^5.0|^6.0", - "symfony/security-core": "^4.4|^5.0|^6.0", - "symfony/var-dumper": "^4.4|^5.0|^6.0" - }, - "suggest": { - "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings.", - "symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel.", - "symfony/var-dumper": "For using the debugging handlers like the console handler or the log server handler." + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/http-client": "^5.4|^6.0|^7.0", + "symfony/mailer": "^5.4|^6.0|^7.0", + "symfony/messenger": "^5.4|^6.0|^7.0", + "symfony/mime": "^5.4|^6.0|^7.0", + "symfony/security-core": "^5.4|^6.0|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" }, "type": "symfony-bridge", "autoload": { @@ -3372,7 +3423,7 @@ "description": "Provides integration for Monolog with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/monolog-bridge/tree/v5.4.22" + "source": "https://github.com/symfony/monolog-bridge/tree/v6.4.8" }, "funding": [ { @@ -3388,34 +3439,34 @@ "type": "tidelift" } ], - "time": "2023-03-06T21:29:33+00:00" + "time": "2024-05-31T14:49:08+00:00" }, { "name": "symfony/monolog-bundle", - "version": "v3.8.0", + "version": "v3.10.0", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bundle.git", - "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d" + "reference": "414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d", - "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181", + "reference": "414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181", "shasum": "" }, "require": { - "monolog/monolog": "^1.22 || ^2.0 || ^3.0", - "php": ">=7.1.3", - "symfony/config": "~4.4 || ^5.0 || ^6.0", - "symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0", - "symfony/http-kernel": "~4.4 || ^5.0 || ^6.0", - "symfony/monolog-bridge": "~4.4 || ^5.0 || ^6.0" + "monolog/monolog": "^1.25.1 || ^2.0 || ^3.0", + "php": ">=7.2.5", + "symfony/config": "^5.4 || ^6.0 || ^7.0", + "symfony/dependency-injection": "^5.4 || ^6.0 || ^7.0", + "symfony/http-kernel": "^5.4 || ^6.0 || ^7.0", + "symfony/monolog-bridge": "^5.4 || ^6.0 || ^7.0" }, "require-dev": { - "symfony/console": "~4.4 || ^5.0 || ^6.0", - "symfony/phpunit-bridge": "^5.2 || ^6.0", - "symfony/yaml": "~4.4 || ^5.0 || ^6.0" + "symfony/console": "^5.4 || ^6.0 || ^7.0", + "symfony/phpunit-bridge": "^6.3 || ^7.0", + "symfony/yaml": "^5.4 || ^6.0 || ^7.0" }, "type": "symfony-bundle", "extra": { @@ -3453,7 +3504,7 @@ ], "support": { "issues": "https://github.com/symfony/monolog-bundle/issues", - "source": "https://github.com/symfony/monolog-bundle/tree/v3.8.0" + "source": "https://github.com/symfony/monolog-bundle/tree/v3.10.0" }, "funding": [ { @@ -3469,24 +3520,24 @@ "type": "tidelift" } ], - "time": "2022-05-10T14:24:36+00:00" + "time": "2023-11-06T17:08:13+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.27.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-ctype": "*" @@ -3496,9 +3547,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -3535,7 +3583,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" }, "funding": [ { @@ -3551,33 +3599,30 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.27.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354" + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -3616,7 +3661,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" }, "funding": [ { @@ -3632,33 +3677,30 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.27.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + "reference": "3833d7255cc303546435cb650316bff708a1c75c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", + "reference": "3833d7255cc303546435cb650316bff708a1c75c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -3700,7 +3742,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" }, "funding": [ { @@ -3716,24 +3758,24 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.27.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-mbstring": "*" @@ -3743,9 +3785,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -3783,7 +3822,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" }, "funding": [ { @@ -3799,30 +3838,27 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.27.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" + "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f68c03565dcaaf25a890667542e8bd75fe7e5bb", + "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -3862,7 +3898,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.31.0" }, "funding": [ { @@ -3878,30 +3914,27 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.27.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -3945,7 +3978,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" }, "funding": [ { @@ -3961,30 +3994,27 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { - "name": "symfony/polyfill-php81", - "version": "v1.27.0", + "name": "symfony/polyfill-php83", + "version": "v1.31.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a" + "url": "https://github.com/symfony/polyfill-php83.git", + "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", - "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491", + "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -3995,7 +4025,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" + "Symfony\\Polyfill\\Php83\\": "" }, "classmap": [ "Resources/stubs" @@ -4015,7 +4045,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -4024,7 +4054,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.31.0" }, "funding": [ { @@ -4040,37 +4070,34 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.5.2", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/container": "^1.1", - "symfony/deprecation-contracts": "^2.1|^3" + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" }, "conflict": { "ext-psr": "<1.1|>=2" }, - "suggest": { - "symfony/service-implementation": "" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -4080,7 +4107,10 @@ "autoload": { "psr-4": { "Symfony\\Contracts\\Service\\": "" - } + }, + "exclude-from-classmap": [ + "/Test/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4107,7 +4137,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" }, "funding": [ { @@ -4123,38 +4153,38 @@ "type": "tidelift" } ], - "time": "2022-05-30T19:17:29+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/string", - "version": "v5.4.22", + "version": "v6.4.12", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "8036a4c76c0dd29e60b6a7cafcacc50cf088ea62" + "reference": "f8a1ccebd0997e16112dfecfd74220b78e5b284b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/8036a4c76c0dd29e60b6a7cafcacc50cf088ea62", - "reference": "8036a4c76c0dd29e60b6a7cafcacc50cf088ea62", + "url": "https://api.github.com/repos/symfony/string/zipball/f8a1ccebd0997e16112dfecfd74220b78e5b284b", + "reference": "f8a1ccebd0997e16112dfecfd74220b78e5b284b", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "~1.15" + "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/translation-contracts": ">=3.0" + "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/error-handler": "^4.4|^5.0|^6.0", - "symfony/http-client": "^4.4|^5.0|^6.0", - "symfony/translation-contracts": "^1.1|^2", - "symfony/var-exporter": "^4.4|^5.0|^6.0" + "symfony/error-handler": "^5.4|^6.0|^7.0", + "symfony/http-client": "^5.4|^6.0|^7.0", + "symfony/intl": "^6.2|^7.0", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -4193,7 +4223,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.22" + "source": "https://github.com/symfony/string/tree/v6.4.12" }, "funding": [ { @@ -4209,43 +4239,39 @@ "type": "tidelift" } ], - "time": "2023-03-14T06:11:53+00:00" + "time": "2024-09-20T08:15:52+00:00" }, { "name": "symfony/var-dumper", - "version": "v5.4.22", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "e2edac9ce47e6df07e38143c7cfa6bdbc1a6dcc4" + "reference": "ee14c8254a480913268b1e3b1cba8045ed122694" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e2edac9ce47e6df07e38143c7cfa6bdbc1a6dcc4", - "reference": "e2edac9ce47e6df07e38143c7cfa6bdbc1a6dcc4", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ee14c8254a480913268b1e3b1cba8045ed122694", + "reference": "ee14c8254a480913268b1e3b1cba8045ed122694", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "phpunit/phpunit": "<5.4.3", - "symfony/console": "<4.4" + "symfony/console": "<5.4" }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/uid": "^5.1|^6.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/error-handler": "^6.3|^7.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/uid": "^5.4|^6.0|^7.0", "twig/twig": "^2.13|^3.0.4" }, - "suggest": { - "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", - "ext-intl": "To show region name in time zone dump", - "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" - }, "bin": [ "Resources/bin/var-dump-server" ], @@ -4282,7 +4308,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.22" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.11" }, "funding": [ { @@ -4298,20 +4324,96 @@ "type": "tidelift" } ], - "time": "2023-03-25T09:27:28+00:00" + "time": "2024-08-30T16:03:21+00:00" + }, + { + "name": "symfony/var-exporter", + "version": "v7.1.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "b80a669a2264609f07f1667f891dbfca25eba44c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/b80a669a2264609f07f1667f891dbfca25eba44c", + "reference": "b80a669a2264609f07f1667f891dbfca25eba44c", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "symfony/property-access": "^6.4|^7.0", + "symfony/serializer": "^6.4|^7.0", + "symfony/var-dumper": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "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": "Allows exporting any serializable PHP data structure to plain PHP code", + "homepage": "https://symfony.com", + "keywords": [ + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "lazy-loading", + "proxy", + "serialize" + ], + "support": { + "source": "https://github.com/symfony/var-exporter/tree/v7.1.2" + }, + "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": "2024-06-28T08:00:31+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.1", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", "shasum": "" }, "require": { @@ -4340,7 +4442,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.1" + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" }, "funding": [ { @@ -4348,7 +4450,7 @@ "type": "github" } ], - "time": "2021-07-28T10:34:58+00:00" + "time": "2024-03-03T12:36:25+00:00" }, { "name": "woocommerce/woorelease", @@ -4403,16 +4505,16 @@ }, { "name": "wp-coding-standards/wpcs", - "version": "3.0.1", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/WordPress/WordPress-Coding-Standards.git", - "reference": "b4caf9689f1a0e4a4c632679a44e638c1c67aff1" + "reference": "9333efcbff231f10dfd9c56bb7b65818b4733ca7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/b4caf9689f1a0e4a4c632679a44e638c1c67aff1", - "reference": "b4caf9689f1a0e4a4c632679a44e638c1c67aff1", + "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/9333efcbff231f10dfd9c56bb7b65818b4733ca7", + "reference": "9333efcbff231f10dfd9c56bb7b65818b4733ca7", "shasum": "" }, "require": { @@ -4421,16 +4523,16 @@ "ext-tokenizer": "*", "ext-xmlreader": "*", "php": ">=5.4", - "phpcsstandards/phpcsextra": "^1.1.0", - "phpcsstandards/phpcsutils": "^1.0.8", - "squizlabs/php_codesniffer": "^3.7.2" + "phpcsstandards/phpcsextra": "^1.2.1", + "phpcsstandards/phpcsutils": "^1.0.10", + "squizlabs/php_codesniffer": "^3.9.0" }, "require-dev": { "php-parallel-lint/php-console-highlighter": "^1.0.0", "php-parallel-lint/php-parallel-lint": "^1.3.2", "phpcompatibility/php-compatibility": "^9.0", "phpcsstandards/phpcsdevtools": "^1.2.0", - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" }, "suggest": { "ext-iconv": "For improved results", @@ -4461,24 +4563,24 @@ }, "funding": [ { - "url": "https://opencollective.com/thewpcc/contribute/wp-php-63406", + "url": "https://opencollective.com/php_codesniffer", "type": "custom" } ], - "time": "2023-09-14T07:06:09+00:00" + "time": "2024-03-25T16:39:00+00:00" }, { "name": "yoast/phpunit-polyfills", - "version": "1.0.5", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/Yoast/PHPUnit-Polyfills.git", - "reference": "3b59adeef77fb1c03ff5381dbb9d68b0aaff3171" + "reference": "e9c8413de4c8ae03d2923a44f17d0d7dad1b96be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/3b59adeef77fb1c03ff5381dbb9d68b0aaff3171", - "reference": "3b59adeef77fb1c03ff5381dbb9d68b0aaff3171", + "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/e9c8413de4c8ae03d2923a44f17d0d7dad1b96be", + "reference": "e9c8413de4c8ae03d2923a44f17d0d7dad1b96be", "shasum": "" }, "require": { @@ -4486,12 +4588,14 @@ "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.0" }, "require-dev": { - "yoast/yoastcs": "^2.3.0" + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "yoast/yoastcs": "^3.1.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { @@ -4523,9 +4627,10 @@ ], "support": { "issues": "https://github.com/Yoast/PHPUnit-Polyfills/issues", + "security": "https://github.com/Yoast/PHPUnit-Polyfills/security/policy", "source": "https://github.com/Yoast/PHPUnit-Polyfills" }, - "time": "2023-03-30T23:39:05+00:00" + "time": "2024-09-06T22:03:10+00:00" } ], "aliases": [], From 3d008ba3b96f1f84e1b357f231340ac568f55c51 Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Mon, 23 Sep 2024 10:39:51 +0300 Subject: [PATCH 21/25] Adding composer lock file ran with php 7.4 --- composer.lock | 617 ++++++++++++++++++++++---------------------------- 1 file changed, 275 insertions(+), 342 deletions(-) diff --git a/composer.lock b/composer.lock index 8fdd4f7f..b5cbe28d 100644 --- a/composer.lock +++ b/composer.lock @@ -53,25 +53,25 @@ }, { "name": "bramus/monolog-colored-line-formatter", - "version": "3.1.0", + "version": "3.0.6", "source": { "type": "git", "url": "https://github.com/bramus/monolog-colored-line-formatter.git", - "reference": "cd1ada798fec11a5862cb67944c651b6a8e04911" + "reference": "708891d34cb431d9ed56da91a53ecc2d8afdc24e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bramus/monolog-colored-line-formatter/zipball/cd1ada798fec11a5862cb67944c651b6a8e04911", - "reference": "cd1ada798fec11a5862cb67944c651b6a8e04911", + "url": "https://api.github.com/repos/bramus/monolog-colored-line-formatter/zipball/708891d34cb431d9ed56da91a53ecc2d8afdc24e", + "reference": "708891d34cb431d9ed56da91a53ecc2d8afdc24e", "shasum": "" }, "require": { "bramus/ansi-php": "^3.0.3", - "php": "^8.1" + "php": "^7.2|^8.0" }, "require-dev": { - "monolog/monolog": "~3.0", - "phpunit/phpunit": "~9.6" + "monolog/monolog": "~2.0", + "phpunit/phpunit": "~7.0|^9.4" }, "type": "library", "autoload": { @@ -93,15 +93,9 @@ "description": "Colored Line Formatter for Monolog", "support": { "issues": "https://github.com/bramus/monolog-colored-line-formatter/issues", - "source": "https://github.com/bramus/monolog-colored-line-formatter/tree/3.1.0" + "source": "https://github.com/bramus/monolog-colored-line-formatter/tree/3.0.6" }, - "funding": [ - { - "url": "https://github.com/bramus", - "type": "github" - } - ], - "time": "2023-03-29T13:28:41+00:00" + "time": "2021-12-05T09:10:49+00:00" }, { "name": "czproject/git-php", @@ -235,30 +229,30 @@ }, { "name": "doctrine/instantiator", - "version": "2.0.0", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", "shasum": "" }, "require": { - "php": "^8.1" + "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^11", + "doctrine/coding-standard": "^9 || ^11", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^1.2", - "phpstan/phpstan": "^1.9.4", - "phpstan/phpstan-phpunit": "^1.3", - "phpunit/phpunit": "^9.5.27", - "vimeo/psalm": "^5.4" + "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" }, "type": "library", "autoload": { @@ -285,7 +279,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/2.0.0" + "source": "https://github.com/doctrine/instantiator/tree/1.5.0" }, "funding": [ { @@ -301,7 +295,7 @@ "type": "tidelift" } ], - "time": "2022-12-30T00:23:10+00:00" + "time": "2022-12-30T00:15:36+00:00" }, { "name": "monolog/monolog", @@ -1354,27 +1348,22 @@ }, { "name": "psr/container", - "version": "2.0.2", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", "shasum": "" }, "require": { "php": ">=7.4.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, "autoload": { "psr-4": { "Psr\\Container\\": "src/" @@ -1401,9 +1390,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/2.0.2" + "source": "https://github.com/php-fig/container/tree/1.1.2" }, - "time": "2021-11-05T16:47:00+00:00" + "time": "2021-11-05T16:50:12+00:00" }, { "name": "psr/event-dispatcher", @@ -1457,30 +1446,30 @@ }, { "name": "psr/log", - "version": "2.0.0", + "version": "1.1.4", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376" + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376", - "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", "shasum": "" }, "require": { - "php": ">=8.0.0" + "php": ">=5.3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Log\\": "src" + "Psr\\Log\\": "Psr/Log/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1501,9 +1490,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/2.0.0" + "source": "https://github.com/php-fig/log/tree/1.1.4" }, - "time": "2021-07-14T16:41:46+00:00" + "time": "2021-05-03T11:20:27+00:00" }, { "name": "sebastian/cli-parser", @@ -2550,34 +2539,38 @@ }, { "name": "symfony/config", - "version": "v7.1.1", + "version": "v5.4.40", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "2210fc99fa42a259eb6c89d1f724ce0c4d62d5d2" + "reference": "d4e1db78421163b98dd9971d247fd0df4a57ee5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/2210fc99fa42a259eb6c89d1f724ce0c4d62d5d2", - "reference": "2210fc99fa42a259eb6c89d1f724ce0c4d62d5d2", + "url": "https://api.github.com/repos/symfony/config/zipball/d4e1db78421163b98dd9971d247fd0df4a57ee5e", + "reference": "d4e1db78421163b98dd9971d247fd0df4a57ee5e", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/filesystem": "^7.1", - "symfony/polyfill-ctype": "~1.8" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22" }, "conflict": { - "symfony/finder": "<6.4", - "symfony/service-contracts": "<2.5" + "symfony/finder": "<4.4" }, "require-dev": { - "symfony/event-dispatcher": "^6.4|^7.0", - "symfony/finder": "^6.4|^7.0", - "symfony/messenger": "^6.4|^7.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^6.4|^7.0" + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/messenger": "^4.4|^5.0|^6.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/yaml": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" }, "type": "library", "autoload": { @@ -2605,7 +2598,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v7.1.1" + "source": "https://github.com/symfony/config/tree/v5.4.40" }, "funding": [ { @@ -2621,7 +2614,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-05-31T14:33:22+00:00" }, { "name": "symfony/console", @@ -2724,39 +2717,48 @@ }, { "name": "symfony/dependency-injection", - "version": "v7.1.5", + "version": "v5.4.44", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "38465f925ec4e0707b090e9147c65869837d639d" + "reference": "23eb9f3803a931aef16a65f362a9aeb0640a1374" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/38465f925ec4e0707b090e9147c65869837d639d", - "reference": "38465f925ec4e0707b090e9147c65869837d639d", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/23eb9f3803a931aef16a65f362a9aeb0640a1374", + "reference": "23eb9f3803a931aef16a65f362a9aeb0640a1374", "shasum": "" }, "require": { - "php": ">=8.2", - "psr/container": "^1.1|^2.0", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/service-contracts": "^3.5", - "symfony/var-exporter": "^6.4|^7.0" + "php": ">=7.2.5", + "psr/container": "^1.1.1", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22", + "symfony/service-contracts": "^1.1.6|^2" }, "conflict": { "ext-psr": "<1.1|>=2", - "symfony/config": "<6.4", - "symfony/finder": "<6.4", - "symfony/yaml": "<6.4" + "symfony/config": "<5.3", + "symfony/finder": "<4.4", + "symfony/proxy-manager-bridge": "<4.4", + "symfony/yaml": "<4.4.26" }, "provide": { - "psr/container-implementation": "1.1|2.0", - "symfony/service-implementation": "1.1|2.0|3.0" + "psr/container-implementation": "1.0", + "symfony/service-implementation": "1.0|2.0" }, "require-dev": { - "symfony/config": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/yaml": "^6.4|^7.0" + "symfony/config": "^5.3|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4.26|^5.0|^6.0" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" }, "type": "library", "autoload": { @@ -2784,7 +2786,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v7.1.5" + "source": "https://github.com/symfony/dependency-injection/tree/v5.4.44" }, "funding": [ { @@ -2800,29 +2802,29 @@ "type": "tidelift" } ], - "time": "2024-09-20T08:28:38+00:00" + "time": "2024-09-12T20:01:35+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.5.0", + "version": "v2.5.3", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" + "reference": "80d075412b557d41002320b96a096ca65aa2c98d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", - "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/80d075412b557d41002320b96a096ca65aa2c98d", + "reference": "80d075412b557d41002320b96a096ca65aa2c98d", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.5-dev" + "dev-main": "2.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -2851,7 +2853,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.3" }, "funding": [ { @@ -2867,35 +2869,31 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2023-01-24T14:02:46+00:00" }, { "name": "symfony/error-handler", - "version": "v7.1.3", + "version": "v5.4.42", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "432bb369952795c61ca1def65e078c4a80dad13c" + "reference": "db15ba0fd50890156ed40087ccedc7851a1f5b76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/432bb369952795c61ca1def65e078c4a80dad13c", - "reference": "432bb369952795c61ca1def65e078c4a80dad13c", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/db15ba0fd50890156ed40087ccedc7851a1f5b76", + "reference": "db15ba0fd50890156ed40087ccedc7851a1f5b76", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=7.2.5", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^6.4|^7.0" - }, - "conflict": { - "symfony/deprecation-contracts": "<2.5", - "symfony/http-kernel": "<6.4" + "symfony/var-dumper": "^4.4|^5.0|^6.0" }, "require-dev": { - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/serializer": "^6.4|^7.0" + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/serializer": "^4.4|^5.0|^6.0" }, "bin": [ "Resources/bin/patch-type-declarations" @@ -2926,7 +2924,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.1.3" + "source": "https://github.com/symfony/error-handler/tree/v5.4.42" }, "funding": [ { @@ -2942,7 +2940,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T13:02:51+00:00" + "time": "2024-07-23T12:34:05+00:00" }, { "name": "symfony/event-dispatcher", @@ -3031,26 +3029,29 @@ }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.5.0", + "version": "v2.5.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50" + "reference": "540f4c73e87fd0c71ca44a6aa305d024ac68cb73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50", - "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/540f4c73e87fd0c71ca44a6aa305d024ac68cb73", + "reference": "540f4c73e87fd0c71ca44a6aa305d024ac68cb73", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=7.2.5", "psr/event-dispatcher": "^1" }, + "suggest": { + "symfony/event-dispatcher-implementation": "" + }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.5-dev" + "dev-main": "2.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -3087,7 +3088,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.3" }, "funding": [ { @@ -3103,29 +3104,30 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-01-23T13:51:25+00:00" }, { "name": "symfony/filesystem", - "version": "v7.1.5", + "version": "v5.4.44", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "61fe0566189bf32e8cfee78335d8776f64a66f5a" + "reference": "76c3818964e9d32be3862c9318ae3ba9aa280ddc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/61fe0566189bf32e8cfee78335d8776f64a66f5a", - "reference": "61fe0566189bf32e8cfee78335d8776f64a66f5a", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/76c3818964e9d32be3862c9318ae3ba9aa280ddc", + "reference": "76c3818964e9d32be3862c9318ae3ba9aa280ddc", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=7.2.5", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8" + "symfony/polyfill-mbstring": "~1.8", + "symfony/polyfill-php80": "^1.16" }, "require-dev": { - "symfony/process": "^6.4|^7.0" + "symfony/process": "^5.4|^6.4" }, "type": "library", "autoload": { @@ -3153,7 +3155,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.1.5" + "source": "https://github.com/symfony/filesystem/tree/v5.4.44" }, "funding": [ { @@ -3169,40 +3171,39 @@ "type": "tidelift" } ], - "time": "2024-09-17T09:16:35+00:00" + "time": "2024-09-16T14:52:48+00:00" }, { "name": "symfony/http-foundation", - "version": "v7.1.5", + "version": "v5.4.44", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "e30ef73b1e44eea7eb37ba69600a354e553f694b" + "reference": "ae0d217e5932aa0b70ddb4cf7822cc76d48aee53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e30ef73b1e44eea7eb37ba69600a354e553f694b", - "reference": "e30ef73b1e44eea7eb37ba69600a354e553f694b", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ae0d217e5932aa0b70ddb4cf7822cc76d48aee53", + "reference": "ae0d217e5932aa0b70ddb4cf7822cc76d48aee53", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php83": "^1.27" - }, - "conflict": { - "doctrine/dbal": "<3.6", - "symfony/cache": "<6.4" + "symfony/polyfill-php80": "^1.16" }, "require-dev": { - "doctrine/dbal": "^3.6|^4", - "predis/predis": "^1.1|^2.0", - "symfony/cache": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/mime": "^6.4|^7.0", - "symfony/rate-limiter": "^6.4|^7.0" + "predis/predis": "^1.0|^2.0", + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", + "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/rate-limiter": "^5.2|^6.0" + }, + "suggest": { + "symfony/mime": "To use the file extension guesser" }, "type": "library", "autoload": { @@ -3230,7 +3231,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.1.5" + "source": "https://github.com/symfony/http-foundation/tree/v5.4.44" }, "funding": [ { @@ -3246,78 +3247,77 @@ "type": "tidelift" } ], - "time": "2024-09-20T08:28:38+00:00" + "time": "2024-09-15T07:55:06+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.12", + "version": "v5.4.44", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "96df83d51b5f78804f70c093b97310794fd6257b" + "reference": "788dcf72d9af7432a886aa3b0c5904d68087ba13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/96df83d51b5f78804f70c093b97310794fd6257b", - "reference": "96df83d51b5f78804f70c093b97310794fd6257b", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/788dcf72d9af7432a886aa3b0c5904d68087ba13", + "reference": "788dcf72d9af7432a886aa3b0c5904d68087ba13", "shasum": "" }, "require": { - "php": ">=8.1", - "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/error-handler": "^6.4|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/polyfill-ctype": "^1.8" + "php": ">=7.2.5", + "psr/log": "^1|^2", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^5.0|^6.0", + "symfony/http-foundation": "^5.4.21|^6.2.7", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16" }, "conflict": { "symfony/browser-kit": "<5.4", - "symfony/cache": "<5.4", - "symfony/config": "<6.1", - "symfony/console": "<5.4", - "symfony/dependency-injection": "<6.4", - "symfony/doctrine-bridge": "<5.4", - "symfony/form": "<5.4", - "symfony/http-client": "<5.4", - "symfony/http-client-contracts": "<2.5", - "symfony/mailer": "<5.4", - "symfony/messenger": "<5.4", - "symfony/translation": "<5.4", - "symfony/translation-contracts": "<2.5", - "symfony/twig-bridge": "<5.4", - "symfony/validator": "<6.4", - "symfony/var-dumper": "<6.3", + "symfony/cache": "<5.0", + "symfony/config": "<5.0", + "symfony/console": "<4.4", + "symfony/dependency-injection": "<5.3", + "symfony/doctrine-bridge": "<5.0", + "symfony/form": "<5.0", + "symfony/http-client": "<5.0", + "symfony/mailer": "<5.0", + "symfony/messenger": "<5.0", + "symfony/translation": "<5.0", + "symfony/twig-bridge": "<5.0", + "symfony/validator": "<5.0", "twig/twig": "<2.13" }, "provide": { - "psr/log-implementation": "1.0|2.0|3.0" + "psr/log-implementation": "1.0|2.0" }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^5.4|^6.0|^7.0", - "symfony/clock": "^6.2|^7.0", - "symfony/config": "^6.1|^7.0", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/css-selector": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/dom-crawler": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/finder": "^5.4|^6.0|^7.0", - "symfony/http-client-contracts": "^2.5|^3", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/property-access": "^5.4.5|^6.0.5|^7.0", - "symfony/routing": "^5.4|^6.0|^7.0", - "symfony/serializer": "^6.4.4|^7.0.4", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/translation": "^5.4|^6.0|^7.0", - "symfony/translation-contracts": "^2.5|^3", - "symfony/uid": "^5.4|^6.0|^7.0", - "symfony/validator": "^6.4|^7.0", - "symfony/var-dumper": "^5.4|^6.4|^7.0", - "symfony/var-exporter": "^6.2|^7.0", + "symfony/browser-kit": "^5.4|^6.0", + "symfony/config": "^5.0|^6.0", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/css-selector": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.3|^6.0", + "symfony/dom-crawler": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/http-client-contracts": "^1.1|^2|^3", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/routing": "^4.4|^5.0|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^6.0", + "symfony/translation": "^4.4|^5.0|^6.0", + "symfony/translation-contracts": "^1.1|^2|^3", + "symfony/var-dumper": "^4.4.31|^5.4", "twig/twig": "^2.13|^3.0.4" }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "" + }, "type": "library", "autoload": { "psr-4": { @@ -3344,7 +3344,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.12" + "source": "https://github.com/symfony/http-kernel/tree/v5.4.44" }, "funding": [ { @@ -3360,42 +3360,47 @@ "type": "tidelift" } ], - "time": "2024-09-21T06:02:57+00:00" + "time": "2024-09-21T05:47:58+00:00" }, { "name": "symfony/monolog-bridge", - "version": "v6.4.8", + "version": "v5.4.40", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "0fbee64913b1c595e7650a1919ba3edba8d49ea7" + "reference": "ac6e0bf2a275e017c1dedd54dd0f1fbf252a9351" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/0fbee64913b1c595e7650a1919ba3edba8d49ea7", - "reference": "0fbee64913b1c595e7650a1919ba3edba8d49ea7", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/ac6e0bf2a275e017c1dedd54dd0f1fbf252a9351", + "reference": "ac6e0bf2a275e017c1dedd54dd0f1fbf252a9351", "shasum": "" }, "require": { - "monolog/monolog": "^1.25.1|^2|^3", - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/service-contracts": "^2.5|^3" + "monolog/monolog": "^1.25.1|^2", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/http-kernel": "^5.3|^6.0", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3" }, "conflict": { - "symfony/console": "<5.4", - "symfony/http-foundation": "<5.4", - "symfony/security-core": "<5.4" + "symfony/console": "<4.4", + "symfony/http-foundation": "<5.3" }, "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/http-client": "^5.4|^6.0|^7.0", - "symfony/mailer": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/mime": "^5.4|^6.0|^7.0", - "symfony/security-core": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/http-client": "^4.4|^5.0|^6.0", + "symfony/mailer": "^4.4|^5.0|^6.0", + "symfony/messenger": "^4.4|^5.0|^6.0", + "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/security-core": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings.", + "symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel.", + "symfony/var-dumper": "For using the debugging handlers like the console handler or the log server handler." }, "type": "symfony-bridge", "autoload": { @@ -3423,7 +3428,7 @@ "description": "Provides integration for Monolog with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/monolog-bridge/tree/v6.4.8" + "source": "https://github.com/symfony/monolog-bridge/tree/v5.4.40" }, "funding": [ { @@ -3439,7 +3444,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-05-31T14:33:22+00:00" }, { "name": "symfony/monolog-bundle", @@ -3997,17 +4002,17 @@ "time": "2024-09-09T11:45:10+00:00" }, { - "name": "symfony/polyfill-php83", + "name": "symfony/polyfill-php81", "version": "v1.31.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491" + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491", - "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", "shasum": "" }, "require": { @@ -4025,7 +4030,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php83\\": "" + "Symfony\\Polyfill\\Php81\\": "" }, "classmap": [ "Resources/stubs" @@ -4045,7 +4050,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -4054,7 +4059,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0" }, "funding": [ { @@ -4074,30 +4079,33 @@ }, { "name": "symfony/service-contracts", - "version": "v3.5.0", + "version": "v2.5.3", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" + "reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", - "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/a2329596ddc8fd568900e3fc76cba42489ecc7f3", + "reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3", "shasum": "" }, "require": { - "php": ">=8.1", - "psr/container": "^1.1|^2.0", - "symfony/deprecation-contracts": "^2.5|^3" + "php": ">=7.2.5", + "psr/container": "^1.1", + "symfony/deprecation-contracts": "^2.1|^3" }, "conflict": { "ext-psr": "<1.1|>=2" }, + "suggest": { + "symfony/service-implementation": "" + }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.5-dev" + "dev-main": "2.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -4107,10 +4115,7 @@ "autoload": { "psr-4": { "Symfony\\Contracts\\Service\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4137,7 +4142,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/service-contracts/tree/v2.5.3" }, "funding": [ { @@ -4153,38 +4158,38 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2023-04-21T15:04:16+00:00" }, { "name": "symfony/string", - "version": "v6.4.12", + "version": "v5.4.44", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "f8a1ccebd0997e16112dfecfd74220b78e5b284b" + "reference": "832caa16b6d9aac6bf11747315225f5aba384c24" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/f8a1ccebd0997e16112dfecfd74220b78e5b284b", - "reference": "f8a1ccebd0997e16112dfecfd74220b78e5b284b", + "url": "https://api.github.com/repos/symfony/string/zipball/832caa16b6d9aac6bf11747315225f5aba384c24", + "reference": "832caa16b6d9aac6bf11747315225f5aba384c24", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=7.2.5", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0" + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "~1.15" }, "conflict": { - "symfony/translation-contracts": "<2.5" + "symfony/translation-contracts": ">=3.0" }, "require-dev": { - "symfony/error-handler": "^5.4|^6.0|^7.0", - "symfony/http-client": "^5.4|^6.0|^7.0", - "symfony/intl": "^6.2|^7.0", - "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^5.4|^6.0|^7.0" + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/http-client": "^4.4|^5.0|^6.0", + "symfony/translation-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.4|^5.0|^6.0" }, "type": "library", "autoload": { @@ -4223,7 +4228,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.12" + "source": "https://github.com/symfony/string/tree/v5.4.44" }, "funding": [ { @@ -4239,39 +4244,43 @@ "type": "tidelift" } ], - "time": "2024-09-20T08:15:52+00:00" + "time": "2024-09-20T07:56:40+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.11", + "version": "v5.4.43", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "ee14c8254a480913268b1e3b1cba8045ed122694" + "reference": "6be6a6a8af4818564e3726fc65cf936f34743cef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ee14c8254a480913268b1e3b1cba8045ed122694", - "reference": "ee14c8254a480913268b1e3b1cba8045ed122694", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6be6a6a8af4818564e3726fc65cf936f34743cef", + "reference": "6be6a6a8af4818564e3726fc65cf936f34743cef", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0" + "php": ">=7.2.5", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16" }, "conflict": { - "symfony/console": "<5.4" + "symfony/console": "<4.4" }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/error-handler": "^6.3|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/uid": "^5.4|^6.0|^7.0", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/uid": "^5.1|^6.0", "twig/twig": "^2.13|^3.0.4" }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, "bin": [ "Resources/bin/var-dump-server" ], @@ -4308,83 +4317,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.11" - }, - "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": "2024-08-30T16:03:21+00:00" - }, - { - "name": "symfony/var-exporter", - "version": "v7.1.2", - "source": { - "type": "git", - "url": "https://github.com/symfony/var-exporter.git", - "reference": "b80a669a2264609f07f1667f891dbfca25eba44c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/b80a669a2264609f07f1667f891dbfca25eba44c", - "reference": "b80a669a2264609f07f1667f891dbfca25eba44c", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "symfony/property-access": "^6.4|^7.0", - "symfony/serializer": "^6.4|^7.0", - "symfony/var-dumper": "^6.4|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\VarExporter\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "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": "Allows exporting any serializable PHP data structure to plain PHP code", - "homepage": "https://symfony.com", - "keywords": [ - "clone", - "construct", - "export", - "hydrate", - "instantiate", - "lazy-loading", - "proxy", - "serialize" - ], - "support": { - "source": "https://github.com/symfony/var-exporter/tree/v7.1.2" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.43" }, "funding": [ { @@ -4400,7 +4333,7 @@ "type": "tidelift" } ], - "time": "2024-06-28T08:00:31+00:00" + "time": "2024-08-30T16:01:46+00:00" }, { "name": "theseer/tokenizer", From c72aca6d057c408316f24c70533ae336372b8c41 Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Mon, 23 Sep 2024 10:56:20 +0300 Subject: [PATCH 22/25] Fixing phpcs issues --- .../src/Commands/Branch.php | 18 +++++++ .../src/Commands/Release.php | 52 ++++++++++++------- .../woorelease-extension/src/Utils/Git.php | 1 + .../src/Utils/Product.php | 10 +++- 4 files changed, 60 insertions(+), 21 deletions(-) diff --git a/packages/php/woorelease-extension/src/Commands/Branch.php b/packages/php/woorelease-extension/src/Commands/Branch.php index ea049966..349e179b 100644 --- a/packages/php/woorelease-extension/src/Commands/Branch.php +++ b/packages/php/woorelease-extension/src/Commands/Branch.php @@ -24,8 +24,18 @@ */ class Branch extends Command { + /** + * The default command name. + * + * @var string|null + */ protected static $defaultName = 'branch'; + /** + * Configures the current command. + * + * @return void + */ protected function configure() { $this ->setDescription( 'Creates a release branch if does not exist.' ) @@ -125,6 +135,14 @@ protected function execute( InputInterface $input, OutputInterface $output ) { } } + /** + * Removes the release branch after the release simulation. + * + * @param string $folder Current repository path. + * @param string $repository_url Repository URL. + * @param string $branch Repository's branch. + * @return int + */ protected function cleanup( $folder, $repository_url, $branch ) { WooGrowGit::delete_branch( $folder, $repository_url, $branch ); return Command::SUCCESS; diff --git a/packages/php/woorelease-extension/src/Commands/Release.php b/packages/php/woorelease-extension/src/Commands/Release.php index edebef57..63488d0a 100644 --- a/packages/php/woorelease-extension/src/Commands/Release.php +++ b/packages/php/woorelease-extension/src/Commands/Release.php @@ -32,6 +32,11 @@ class Release extends WooReleaseRelease { */ protected static $defaultName = 'release'; // phpcs:ignore WordPress.NamingConventions.ValidVariableName + /** + * Configures the current command. + * + * @return void + */ protected function configure() { parent::configure(); $this @@ -39,6 +44,15 @@ protected function configure() { ->addOption( 'default_branch', null, InputOption::VALUE_OPTIONAL, 'If specified, the release branch will be created from it.' ); } + /** + * Executes the command. + * + * @param InputInterface $input The input interface, to get options, arguments, etc. + * @param OutputInterface $output The output interface. + * + * @return int 0 if everything went fine, or an exit code + * @throws Exception In case of error. + */ protected function execute( InputInterface $input, OutputInterface $output ) { try { $logger = Logger::instance( $output ); @@ -55,18 +69,18 @@ protected function execute( InputInterface $input, OutputInterface $output ) { list( $product, $gh_org, $branch ) = Utils::parse_product_info( $github_url ); - $logger->notice( 'Processing product {product}...', array( 'product' => $product ) ); + $logger->notice( 'Processing product {product}...', [ 'product' => $product ] ); // Clone product. $folder = WooGrowGit::clone_product_release_or_default( $product, $branch, $default_branch, $gh_org ); // Call branch command to create release branch or release from default. $command = $this->getApplication()->find( 'branch' ); - $arguments = array( + $arguments = [ 'github_url' => $github_url, 'default_branch' => $default_branch, '--folder' => $folder, - ); + ]; if ( Command::SUCCESS !== $command->run( new ArrayInput( $arguments ), $output ) ) { return Command::FAILURE; @@ -104,13 +118,13 @@ protected function execute( InputInterface $input, OutputInterface $output ) { // Call vb:replace command. $command = $this->getApplication()->find( 'vb:replace' ); - $arguments = array( + $arguments = [ 'github_url' => $github_url, '--folder' => $folder, '--product_version' => $version, // Don't make a separate commit for PHPDoc version replacements '--release' => false, - ); + ]; if ( Command::SUCCESS !== $command->run( new ArrayInput( $arguments ), $output ) ) { return Command::FAILURE; @@ -118,7 +132,7 @@ protected function execute( InputInterface $input, OutputInterface $output ) { // Call vb:change command. $command = $this->getApplication()->find( 'vb:change' ); - $arguments = array( + $arguments = [ 'github_url' => $github_url, '--folder' => $folder, '--product_version' => $version, @@ -126,7 +140,7 @@ protected function execute( InputInterface $input, OutputInterface $output ) { '--wp_tested' => $wp_tested, '--release' => $release, '--generate_changelog' => $generate_changelog, - ); + ]; if ( Command::SUCCESS !== $command->run( new ArrayInput( $arguments ), $output ) ) { return Command::FAILURE; @@ -134,7 +148,7 @@ protected function execute( InputInterface $input, OutputInterface $output ) { // Call cl:generate command. $command = $this->getApplication()->find( 'cl:generate' ); - $arguments = array( + $arguments = [ 'github_url' => $github_url, '--folder' => $folder, '--product_version' => $version, @@ -142,7 +156,7 @@ protected function execute( InputInterface $input, OutputInterface $output ) { '--wp_tested' => $wp_tested, '--release' => $release, '--parse_only' => empty( $generate_changelog ), - ); + ]; if ( Command::SUCCESS !== $command->run( new ArrayInput( $arguments ), $output ) ) { return Command::FAILURE; @@ -165,14 +179,14 @@ protected function execute( InputInterface $input, OutputInterface $output ) { // Call wccom:release or wporg:release command. $wp_org_slug = WP_Org::maybe_get_slug( $product, $folder ); - $arguments = array( + $arguments = [ 'github_url' => $github_url, '--folder' => $folder, '--zip_file' => $zip_file, '--release' => $release, - ); + ]; if ( false !== $wp_org_slug ) { - $logger->notice( "Found product slug for WordPress.org: '{org_slug}'. Following .org release process.", array( 'org_slug' => $wp_org_slug ) ); + $logger->notice( "Found product slug for WordPress.org: '{org_slug}'. Following .org release process.", [ 'org_slug' => $wp_org_slug ] ); $release_command = 'wporg:release'; if ( $version ) { $arguments['--product_version'] = $version; @@ -193,19 +207,19 @@ protected function execute( InputInterface $input, OutputInterface $output ) { // Create GitHub release with command gh:release. if ( $release ) { $command = $this->getApplication()->find( 'gh:release' ); - $arguments = array( + $arguments = [ 'github_url' => $github_url, '--folder' => $folder, '--product_version' => $version, '--zip_file' => $zip_file, '--prerelease' => $prerelease, - ); + ]; if ( Command::SUCCESS !== $command->run( new ArrayInput( $arguments ), $output ) ) { return Command::FAILURE; } } else { - $logger->notice( 'Simulation mode. Skipping upload of asset {asset} to GH release.', array( 'asset' => $zip_file ) ); + $logger->notice( 'Simulation mode. Skipping upload of asset {asset} to GH release.', [ 'asset' => $zip_file ] ); } if ( $release ) { @@ -213,11 +227,11 @@ protected function execute( InputInterface $input, OutputInterface $output ) { $logger->warning( 'Could not auto-detect version, optional translation trigger was not executed.' ); } else { $command = $this->getApplication()->find( 'translate:trigger' ); - $arguments = array( + $arguments = [ 'github_url' => $github_url, '--product_version' => $version, '--folder' => $folder, - ); + ]; if ( Command::SUCCESS !== $command->run( new ArrayInput( $arguments ), $output ) ) { return Command::FAILURE; @@ -230,12 +244,12 @@ protected function execute( InputInterface $input, OutputInterface $output ) { // Cleaning up the mess after simulations. if ( ! $release ) { $command = $this->getApplication()->find( 'branch' ); - $arguments = array( + $arguments = [ 'github_url' => $github_url, 'default_branch' => $default_branch, '--folder' => $folder, '--cleanup' => true, - ); + ]; if ( Command::SUCCESS === $command->run( new ArrayInput( $arguments ), $output ) ) { $logger->notice( 'Simulation mode. Release branch cleanup has succeeded.' ); } else { diff --git a/packages/php/woorelease-extension/src/Utils/Git.php b/packages/php/woorelease-extension/src/Utils/Git.php index b035fbd2..71aa6656 100644 --- a/packages/php/woorelease-extension/src/Utils/Git.php +++ b/packages/php/woorelease-extension/src/Utils/Git.php @@ -38,6 +38,7 @@ public static function does_branch_exist( $repository_url, $branch ) { /** * Creates a new local release branch. * + * @param string $folder Current working repository. * @param string $branch The branch name. * * @return bool True if the branch was created, false otherwise. diff --git a/packages/php/woorelease-extension/src/Utils/Product.php b/packages/php/woorelease-extension/src/Utils/Product.php index 10d7aec9..91be8396 100644 --- a/packages/php/woorelease-extension/src/Utils/Product.php +++ b/packages/php/woorelease-extension/src/Utils/Product.php @@ -1,10 +1,16 @@ notice( 'Product build: {zipfile}', array( 'zipfile' => $zipfile ) ); + $logger->notice( 'Product build: {zipfile}', [ 'zipfile' => $zipfile ] ); return $zipfile; } From ca6e984ecf5372783f3f9ed0d67f3e91ef90f9e7 Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Mon, 23 Sep 2024 11:00:39 +0300 Subject: [PATCH 23/25] Fixing phpcs issues with spaces and @throws missing. --- .../src/Commands/Branch.php | 3 ++- .../src/Commands/Release.php | 22 +++++++++---------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/packages/php/woorelease-extension/src/Commands/Branch.php b/packages/php/woorelease-extension/src/Commands/Branch.php index 349e179b..13ff7cfa 100644 --- a/packages/php/woorelease-extension/src/Commands/Branch.php +++ b/packages/php/woorelease-extension/src/Commands/Branch.php @@ -29,7 +29,7 @@ class Branch extends Command { * * @var string|null */ - protected static $defaultName = 'branch'; + protected static $defaultName = 'branch'; // phpcs:ignore WordPress.NamingConventions.ValidVariableName /** * Configures the current command. @@ -53,6 +53,7 @@ protected function configure() { * @param OutputInterface $output Output. * * @return int Exit code. + * @throws Exception When the command has failed. */ protected function execute( InputInterface $input, OutputInterface $output ) { try { diff --git a/packages/php/woorelease-extension/src/Commands/Release.php b/packages/php/woorelease-extension/src/Commands/Release.php index 63488d0a..00aaa1f3 100644 --- a/packages/php/woorelease-extension/src/Commands/Release.php +++ b/packages/php/woorelease-extension/src/Commands/Release.php @@ -55,17 +55,17 @@ protected function configure() { */ protected function execute( InputInterface $input, OutputInterface $output ) { try { - $logger = Logger::instance( $output ); - $github_url = $input->getArgument( 'github_url' ); - $version = $input->getOption( 'product_version' ); - $wc_tested = $input->getOption( 'wc_tested' ); - $wp_tested = $input->getOption( 'wp_tested' ); - $prerelease = $input->getOption( 'prerelease' ); - $generate_changelog = $input->getOption( 'generate_changelog' ); - $nvm_use = $input->getOption( 'nvm_use' ); - $default_branch = $input->getOption( 'default_branch' ); - $release = ! $this->simulate; - $reauth = false !== $input->getOption( 'svn_reauth' ); + $logger = Logger::instance( $output ); + $github_url = $input->getArgument( 'github_url' ); + $version = $input->getOption( 'product_version' ); + $wc_tested = $input->getOption( 'wc_tested' ); + $wp_tested = $input->getOption( 'wp_tested' ); + $prerelease = $input->getOption( 'prerelease' ); + $generate_changelog = $input->getOption( 'generate_changelog' ); + $nvm_use = $input->getOption( 'nvm_use' ); + $default_branch = $input->getOption( 'default_branch' ); + $release = ! $this->simulate; + $reauth = false !== $input->getOption( 'svn_reauth' ); list( $product, $gh_org, $branch ) = Utils::parse_product_info( $github_url ); From 3e17ce50de5f8c7cdc698f4dec1aaf341845fd94 Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Mon, 23 Sep 2024 11:09:11 +0300 Subject: [PATCH 24/25] Fixing phpcs issues. --- packages/php/woorelease-extension/src/Commands/Bulk.php | 2 +- packages/php/woorelease-extension/src/Commands/Release.php | 1 + packages/php/woorelease-extension/src/Utils/Product.php | 6 +++--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/php/woorelease-extension/src/Commands/Bulk.php b/packages/php/woorelease-extension/src/Commands/Bulk.php index a45153c8..e584fa05 100644 --- a/packages/php/woorelease-extension/src/Commands/Bulk.php +++ b/packages/php/woorelease-extension/src/Commands/Bulk.php @@ -209,7 +209,7 @@ private function getReleaseData(): array { } [ $slug, $version, $branch ] = array_pad( explode( "\t", $line ), 4, null ); - $to_release[ $slug ] = [ + $to_release[ $slug ] = [ 'name' => $extensions[ $slug ]['name'], 'repo' => $extensions[ $slug ]['repoSlug'], 'version' => $version, diff --git a/packages/php/woorelease-extension/src/Commands/Release.php b/packages/php/woorelease-extension/src/Commands/Release.php index 00aaa1f3..cefdc613 100644 --- a/packages/php/woorelease-extension/src/Commands/Release.php +++ b/packages/php/woorelease-extension/src/Commands/Release.php @@ -106,6 +106,7 @@ protected function execute( InputInterface $input, OutputInterface $output ) { throw new \Exception( 'Did not find required "package.json" file in product', 2 ); } + // phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents $version_file = file_get_contents( $folder . '/package.json' ); $entry_regex = '/^\s*"version":\s*"(?\d+\.\d+\.\d+)"/ms'; diff --git a/packages/php/woorelease-extension/src/Utils/Product.php b/packages/php/woorelease-extension/src/Utils/Product.php index 91be8396..c501ed7b 100644 --- a/packages/php/woorelease-extension/src/Utils/Product.php +++ b/packages/php/woorelease-extension/src/Utils/Product.php @@ -58,11 +58,11 @@ public static function build( $grow_root_path, $product, $folder ) { } if ( $build_step ) { - shell_exec( "{$grow_root_path}/bin/build '{$build_step}'" ); + shell_exec( "{$grow_root_path}/bin/build '{$build_step}'" ); // phpcs:ignore } elseif ( $use_pnpm ) { - shell_exec( "{$grow_root_path}/bin/build pnpm" ); + shell_exec( "{$grow_root_path}/bin/build pnpm" ); // phpcs:ignore } else { - shell_exec( "{$grow_root_path}/bin/build npm" ); + shell_exec( "{$grow_root_path}/bin/build npm" ); // phpcs:ignore } $zipfile = ''; From 56837acc4bb1ce782dcfa0635e09506a86c86a2a Mon Sep 17 00:00:00 2001 From: Dima <9010963+message-dimke@users.noreply.github.com> Date: Mon, 23 Sep 2024 11:30:42 +0300 Subject: [PATCH 25/25] Adding node auto-install command. --- bin/build | 2 +- bin/nvm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/build b/bin/build index 7ac6f7b1..e56e39ef 100755 --- a/bin/build +++ b/bin/build @@ -1,7 +1,7 @@ #!/bin/bash source ~/.nvm/nvm.sh -nvm use +nvm use || nvm install $(cat .nvmrc) case $1 in pnpm) diff --git a/bin/nvm b/bin/nvm index 47715e97..30ce7764 100755 --- a/bin/nvm +++ b/bin/nvm @@ -16,5 +16,5 @@ if $do_check; then fi if $do_use; then - nvm use + nvm use || nvm install $(cat .nvmrc) fi