From e231b62841dfe5592255098568ce3996334f6589 Mon Sep 17 00:00:00 2001 From: Greg Anderson Date: Tue, 17 Dec 2024 10:29:21 -0800 Subject: [PATCH 1/9] Create a bash wrapper that allows users to select a specific PHP version via an environment variable. --- bin/terminus | 131 ++++++++++++++++++----------------------------- bin/terminus.php | 81 +++++++++++++++++++++++++++++ composer.json | 1 + 3 files changed, 132 insertions(+), 81 deletions(-) create mode 100755 bin/terminus.php diff --git a/bin/terminus b/bin/terminus index 1b5a18740..dd402b7a4 100755 --- a/bin/terminus +++ b/bin/terminus @@ -1,81 +1,50 @@ -#!/usr/bin/env php -=') === true) { - fwrite(STDERR, "\n"); - fwrite(STDERR, 'PHP 8.5+ is not supported by this version of Terminus.' . "\n"); - fwrite(STDERR, 'Check for new versions at https://github.com/pantheon-systems/terminus/releases' . "\n"); - fwrite(STDERR, "\n"); - fwrite(STDERR, 'Set environment variable TERMINUS_ALLOW_UNSUPPORTED_NEWER_PHP to try continuing anyway.' . "\n"); - fwrite(STDERR, "Stopping.\n\n"); - exit(1); -} - -// This variable is automatically managed via updateDependenciesversion() in /RoboFile.php, -// which is run after every call to composer update. -$terminusPluginsDependenciesVersion = '51e2c517dd'; - -// Cannot use $_SERVER superglobal since that's empty during phpunit testing -// getenv('HOME') isn't set on Windows and generates a Notice. -$home = @getenv('HOME'); -if (!empty($home)) { - // home should never end with a trailing slash. - $home = rtrim($home, '/'); -} - -if (empty($home) && !empty($_SERVER['HOMEDRIVE']) && !empty($_SERVER['HOMEPATH'])) { - // home on windows - $home = $_SERVER['HOMEDRIVE'] . $_SERVER['HOMEPATH']; - // If HOMEPATH is a root directory the path can end with a slash. Make sure - // that doesn't happen. - $home = rtrim($home, '\\/'); - @putenv("HOME={$home}"); -} - -$pharPath = \Phar::running(true); -if ($pharPath) { - include_once("$pharPath/vendor/autoload.php"); -} elseif (file_exists($path = __DIR__ . '/../vendor/autoload.php') - || file_exists($path = __DIR__ . '/../../autoload.php') - || file_exists($path = __DIR__ . '/../../../autoload.php') -) { - include_once($path); -} else { - throw new \Exception('Could not locate autoload.php'); -} - -use Pantheon\Terminus\Terminus; - -$home_tokens_folder = '.terminus' . DIRECTORY_SEPARATOR . 'cache' . DIRECTORY_SEPARATOR . 'tokens'; - -$tokens_dir = $home . DIRECTORY_SEPARATOR . $home_tokens_folder; -if (!is_dir($tokens_dir)) { - mkdir( - $tokens_dir, - 0700, - true - ); -} - -$terminus = Terminus::factory($terminusPluginsDependenciesVersion); -$status_code = $terminus->run(); -exit($status_code); +#!/usr/bin/env sh + +SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + +# If we can find a .env file next to the `terminus` binary, source it. +# TODO: Is this a reasonable location? Where else should we look? +# Should we make the filename more specific, e.g. `.terminus-env`? +if [ -f "$SCRIPTPATH/.env" ]; then + source "$SCRIPTPATH/.env" +fi + +# One good fallback location is in the Terminus config directory. +# Note that we already have $HOME/.terminus/config.yml, but I +# don't think we should parse that here. +if [ -f "$HOME/.terminus/.env" ]; then + source "$HOME/.terminus/.env" +fi + +# The logic below is ideal for scripts that are distributed +# in `vendor/bin`. We might benefit if we decide to support +# `terminus create-project pantheon-systems/terminus` as an +# installation method. If we decide aginst this, we could +# remove "$COMPOSER_RUNTIME_BIN_DIR" checks. +if [ -z "$COMPOSER_RUNTIME_BIN_DIR" ]; then + # This branch is for the development of Drush itself. + # @see https://stackoverflow.com/questions/4774054 + TERMINUS_EXECUTABLE="$SCRIPTPATH/terminus.php" +else + TERMINUS_EXECUTABLE="$COMPOSER_RUNTIME_BIN_DIR/terminus.php" +fi + +# If we can't find `terminus.php` next to `terminus`, +# look for `terminus.php` in the same directory. +if [ ! -f "$TERMINUS_EXECUTABLE" ]; then + TERMINUS_EXECUTABLE="$SCRIPTPATH/terminus.phar" +fi + +# If there is no `terminus.phar` nearby, check for one +# in the $PATH. +if [ ! -f "$TERMINUS_EXECUTABLE" ]; then + TERMINUS_EXECUTABLE="terminus.phar" +fi + +# Use the PHP binary indicated by $TERMINUS_PHP, or use +# the one in the $PATH if $TERMINUS_PHP is not set. +PHP="${TERMINUS_PHP=php}" + +# Run Terminus with the selected version of PHP, passing +# through all parameters. +exec "$TERMINUS_PHP" "$TERMINUS_EXECUTABLE" "$@" diff --git a/bin/terminus.php b/bin/terminus.php new file mode 100755 index 000000000..1b5a18740 --- /dev/null +++ b/bin/terminus.php @@ -0,0 +1,81 @@ +#!/usr/bin/env php +=') === true) { + fwrite(STDERR, "\n"); + fwrite(STDERR, 'PHP 8.5+ is not supported by this version of Terminus.' . "\n"); + fwrite(STDERR, 'Check for new versions at https://github.com/pantheon-systems/terminus/releases' . "\n"); + fwrite(STDERR, "\n"); + fwrite(STDERR, 'Set environment variable TERMINUS_ALLOW_UNSUPPORTED_NEWER_PHP to try continuing anyway.' . "\n"); + fwrite(STDERR, "Stopping.\n\n"); + exit(1); +} + +// This variable is automatically managed via updateDependenciesversion() in /RoboFile.php, +// which is run after every call to composer update. +$terminusPluginsDependenciesVersion = '51e2c517dd'; + +// Cannot use $_SERVER superglobal since that's empty during phpunit testing +// getenv('HOME') isn't set on Windows and generates a Notice. +$home = @getenv('HOME'); +if (!empty($home)) { + // home should never end with a trailing slash. + $home = rtrim($home, '/'); +} + +if (empty($home) && !empty($_SERVER['HOMEDRIVE']) && !empty($_SERVER['HOMEPATH'])) { + // home on windows + $home = $_SERVER['HOMEDRIVE'] . $_SERVER['HOMEPATH']; + // If HOMEPATH is a root directory the path can end with a slash. Make sure + // that doesn't happen. + $home = rtrim($home, '\\/'); + @putenv("HOME={$home}"); +} + +$pharPath = \Phar::running(true); +if ($pharPath) { + include_once("$pharPath/vendor/autoload.php"); +} elseif (file_exists($path = __DIR__ . '/../vendor/autoload.php') + || file_exists($path = __DIR__ . '/../../autoload.php') + || file_exists($path = __DIR__ . '/../../../autoload.php') +) { + include_once($path); +} else { + throw new \Exception('Could not locate autoload.php'); +} + +use Pantheon\Terminus\Terminus; + +$home_tokens_folder = '.terminus' . DIRECTORY_SEPARATOR . 'cache' . DIRECTORY_SEPARATOR . 'tokens'; + +$tokens_dir = $home . DIRECTORY_SEPARATOR . $home_tokens_folder; +if (!is_dir($tokens_dir)) { + mkdir( + $tokens_dir, + 0700, + true + ); +} + +$terminus = Terminus::factory($terminusPluginsDependenciesVersion); +$status_code = $terminus->run(); +exit($status_code); diff --git a/composer.json b/composer.json index 83ddfc823..5cc2f1170 100644 --- a/composer.json +++ b/composer.json @@ -64,6 +64,7 @@ ] }, "bin": [ + "bin/terminus.php", "bin/terminus" ], "scripts": { From c03345564d0e40213cf8926ac70a5eee8c1ea94c Mon Sep 17 00:00:00 2001 From: Greg Anderson Date: Tue, 17 Dec 2024 12:04:37 -0800 Subject: [PATCH 2/9] Simplify script --- bin/terminus | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/bin/terminus b/bin/terminus index dd402b7a4..8fa560756 100755 --- a/bin/terminus +++ b/bin/terminus @@ -2,32 +2,7 @@ SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" -# If we can find a .env file next to the `terminus` binary, source it. -# TODO: Is this a reasonable location? Where else should we look? -# Should we make the filename more specific, e.g. `.terminus-env`? -if [ -f "$SCRIPTPATH/.env" ]; then - source "$SCRIPTPATH/.env" -fi - -# One good fallback location is in the Terminus config directory. -# Note that we already have $HOME/.terminus/config.yml, but I -# don't think we should parse that here. -if [ -f "$HOME/.terminus/.env" ]; then - source "$HOME/.terminus/.env" -fi - -# The logic below is ideal for scripts that are distributed -# in `vendor/bin`. We might benefit if we decide to support -# `terminus create-project pantheon-systems/terminus` as an -# installation method. If we decide aginst this, we could -# remove "$COMPOSER_RUNTIME_BIN_DIR" checks. -if [ -z "$COMPOSER_RUNTIME_BIN_DIR" ]; then - # This branch is for the development of Drush itself. - # @see https://stackoverflow.com/questions/4774054 - TERMINUS_EXECUTABLE="$SCRIPTPATH/terminus.php" -else - TERMINUS_EXECUTABLE="$COMPOSER_RUNTIME_BIN_DIR/terminus.php" -fi +TERMINUS_EXECUTABLE="$COMPOSER_RUNTIME_BIN_DIR/terminus.php" # If we can't find `terminus.php` next to `terminus`, # look for `terminus.php` in the same directory. From fadf111759aadeaef70290a90925b59a6336f10e Mon Sep 17 00:00:00 2001 From: Greg Anderson Date: Tue, 17 Dec 2024 16:43:41 -0800 Subject: [PATCH 3/9] Also build a terminus.phar for PHP 7.4. Use this phar on functional tests; we expect that the tests should pass on 7.4 and 8.2, but fail on 8.4. --- .github/workflows/3x.yml | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/.github/workflows/3x.yml b/.github/workflows/3x.yml index 728f18c56..ca403f5c9 100644 --- a/.github/workflows/3x.yml +++ b/.github/workflows/3x.yml @@ -50,6 +50,20 @@ jobs: name: terminus-phar path: terminus.phar if-no-files-found: error + - name: Adjust dependencies for PHP 7.4 + run: composer config platform.php 7.4.28 + - name: Update dependencies + run: composer update + - name: Phar Build for PHP 7.4 + run: composer phar:build + - name: Rename PHP 7.4 phar + run: mv terminus.phar terminus-php74.phar + - name: Save terminus-php74.phar as artifact + uses: actions/upload-artifact@v4 + with: + name: terminus-php74-phar + path: terminus-php74.phar + if-no-files-found: error functional: runs-on: ${{ matrix.operating-system }} @@ -58,7 +72,7 @@ jobs: strategy: matrix: operating-system: [ 'macos-latest' ] - php-versions: [ '8.2', '8.4' ] + php-versions: [ '7.4', '8.2', '8.4' ] max-parallel: 1 env: TERMINUS_TOKEN: ${{ secrets.TERMINUS_TOKEN }} @@ -100,6 +114,12 @@ jobs: uses: actions/download-artifact@v4 with: name: terminus-phar + - name: Download terminus-php74.phar as artifact + uses: actions/download-artifact@v4 + with: + name: terminus-php74-phar + - name: Rename terminus-php74.phar to terminus.phar + mv: terminus-php74.phar terminus.phar - name: Install Composer Dependencies run: composer install --no-interaction --prefer-dist - name: Setup tmate session From ca28e64507b7feb4016957b12e97a0565ceb7521 Mon Sep 17 00:00:00 2001 From: Greg Anderson Date: Tue, 17 Dec 2024 16:50:34 -0800 Subject: [PATCH 4/9] Try with only one phar, but for PHP 7.4 --- .github/workflows/3x.yml | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/.github/workflows/3x.yml b/.github/workflows/3x.yml index ca403f5c9..948cb2296 100644 --- a/.github/workflows/3x.yml +++ b/.github/workflows/3x.yml @@ -38,6 +38,10 @@ jobs: run: composer install --dev - name: Validate Code run: composer code:lint + - name: Adjust dependencies for PHP 7.4 + run: composer config platform.php 7.4.28 + - name: Update dependencies + run: composer update - name: Phar Build run: | mkdir $HOME/box @@ -50,20 +54,6 @@ jobs: name: terminus-phar path: terminus.phar if-no-files-found: error - - name: Adjust dependencies for PHP 7.4 - run: composer config platform.php 7.4.28 - - name: Update dependencies - run: composer update - - name: Phar Build for PHP 7.4 - run: composer phar:build - - name: Rename PHP 7.4 phar - run: mv terminus.phar terminus-php74.phar - - name: Save terminus-php74.phar as artifact - uses: actions/upload-artifact@v4 - with: - name: terminus-php74-phar - path: terminus-php74.phar - if-no-files-found: error functional: runs-on: ${{ matrix.operating-system }} @@ -114,12 +104,6 @@ jobs: uses: actions/download-artifact@v4 with: name: terminus-phar - - name: Download terminus-php74.phar as artifact - uses: actions/download-artifact@v4 - with: - name: terminus-php74-phar - - name: Rename terminus-php74.phar to terminus.phar - mv: terminus-php74.phar terminus.phar - name: Install Composer Dependencies run: composer install --no-interaction --prefer-dist - name: Setup tmate session From 9af3255a9bf409bf35de244adde68b0b7d45a56d Mon Sep 17 00:00:00 2001 From: Greg Anderson Date: Tue, 17 Dec 2024 16:51:14 -0800 Subject: [PATCH 5/9] Rename config script for 4.x branch --- .github/workflows/{3x.yml => 4x.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{3x.yml => 4x.yml} (100%) diff --git a/.github/workflows/3x.yml b/.github/workflows/4x.yml similarity index 100% rename from .github/workflows/3x.yml rename to .github/workflows/4x.yml From 7c775a83345e3e83b8ed5e59939f9fcb5600c910 Mon Sep 17 00:00:00 2001 From: Greg Anderson Date: Tue, 17 Dec 2024 17:04:06 -0800 Subject: [PATCH 6/9] Update dependencies for PHP 7.4 if necessary --- .github/workflows/4x.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/4x.yml b/.github/workflows/4x.yml index 948cb2296..497f892da 100644 --- a/.github/workflows/4x.yml +++ b/.github/workflows/4x.yml @@ -104,6 +104,11 @@ jobs: uses: actions/download-artifact@v4 with: name: terminus-phar + - name: Adjust dependencies for PHP 7.4, if necessary + if: ${{ matrix.php-versions == '7.4' }} + run: | + composer config platform.php 7.4.28 + composer update - name: Install Composer Dependencies run: composer install --no-interaction --prefer-dist - name: Setup tmate session From 57f0d7dcc0293fc2480608dc10cb22dee5021d2b Mon Sep 17 00:00:00 2001 From: Greg Anderson Date: Tue, 17 Dec 2024 17:11:43 -0800 Subject: [PATCH 7/9] Temporarily make php version check more lax --- bin/terminus.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/terminus.php b/bin/terminus.php index 1b5a18740..6e2186efa 100755 --- a/bin/terminus.php +++ b/bin/terminus.php @@ -12,10 +12,10 @@ // Unset memory limit ini_set('memory_limit', -1); -if (version_compare(PHP_VERSION, '8.2.0', '<') === true) { +-if (version_compare(PHP_VERSION, '7.4.0', '<') === true) { fwrite(STDERR, "\n"); fwrite(STDERR, 'Sorry, your PHP version (' . PHP_VERSION . ') is no longer supported.' . "\n"); - fwrite(STDERR, 'Upgrade to PHP 8.2 or newer to use Terminus 4. For PHP versions prior to 8.2, downgrade to Terminus 3.x.' . "\n\n"); + fwrite(STDERR, 'Upgrade to PHP 7.4 or newer to use Terminus 4. For PHP versions prior to 7.4, downgrade to Terminus 2.x.' . "\n\n"); fwrite(STDERR, 'For more information, see https://pantheon.io/docs/terminus/updates#php-version-compatibility-matrix' . "\n\n"); exit(1); } From 7bb1017768b0d60570fca64464df32aee59299cb Mon Sep 17 00:00:00 2001 From: Greg Anderson Date: Wed, 18 Dec 2024 09:30:37 -0800 Subject: [PATCH 8/9] Allow php74 to work after dependencies update --- bin/terminus | 2 +- bin/terminus.php | 2 +- composer.json | 2 +- composer.lock | 1265 +++++++++++++++++++++------------------------- 4 files changed, 587 insertions(+), 684 deletions(-) diff --git a/bin/terminus b/bin/terminus index 8fa560756..ca1acd91c 100755 --- a/bin/terminus +++ b/bin/terminus @@ -2,7 +2,7 @@ SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" -TERMINUS_EXECUTABLE="$COMPOSER_RUNTIME_BIN_DIR/terminus.php" +TERMINUS_EXECUTABLE="$SCRIPTPATH/terminus.php" # If we can't find `terminus.php` next to `terminus`, # look for `terminus.php` in the same directory. diff --git a/bin/terminus.php b/bin/terminus.php index 6e2186efa..e64066672 100755 --- a/bin/terminus.php +++ b/bin/terminus.php @@ -12,7 +12,7 @@ // Unset memory limit ini_set('memory_limit', -1); --if (version_compare(PHP_VERSION, '7.4.0', '<') === true) { +if (version_compare(PHP_VERSION, '7.4.0', '<') === true) { fwrite(STDERR, "\n"); fwrite(STDERR, 'Sorry, your PHP version (' . PHP_VERSION . ') is no longer supported.' . "\n"); fwrite(STDERR, 'Upgrade to PHP 7.4 or newer to use Terminus 4. For PHP versions prior to 7.4, downgrade to Terminus 2.x.' . "\n\n"); diff --git a/composer.json b/composer.json index 5cc2f1170..1bac13909 100644 --- a/composer.json +++ b/composer.json @@ -164,7 +164,7 @@ "preferred-install": "dist", "sort-packages": true, "platform": { - "php": "8.2.26" + "php": "7.4.28" }, "allow-plugins": { "phpstan/extension-installer": true diff --git a/composer.lock b/composer.lock index bb49e874a..9b49aae3a 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": "48650a811bc30389233b5f2e77bc591c", + "content-hash": "ffef2d69234a551fa6f5f1be28744eb8", "packages": [ { "name": "composer/semver", @@ -145,30 +145,32 @@ }, { "name": "consolidation/comments", - "version": "2.0.0", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/consolidation/comments.git", - "reference": "02e08ce0a16c82a53ecfe0d6317ca64b5ec1eae8" + "reference": "908832ce3c8174a9414d741913543fd058aac5fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/comments/zipball/02e08ce0a16c82a53ecfe0d6317ca64b5ec1eae8", - "reference": "02e08ce0a16c82a53ecfe0d6317ca64b5ec1eae8", + "url": "https://api.github.com/repos/consolidation/comments/zipball/908832ce3c8174a9414d741913543fd058aac5fb", + "reference": "908832ce3c8174a9414d741913543fd058aac5fb", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=5.5.0" }, "require-dev": { - "phpunit/phpunit": "^9", - "squizlabs/php_codesniffer": "^3", - "symfony/yaml": "^5 || ^6 || ^7" + "phpunit/php-code-coverage": "~2|~4", + "phpunit/phpunit": "^4.8", + "satooshi/php-coveralls": "^1.0", + "squizlabs/php_codesniffer": "^2.8", + "symfony/yaml": "^3.1" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { @@ -189,36 +191,36 @@ "description": "A tool for preserving comments, e.g. when parsing YAML files.", "support": { "issues": "https://github.com/consolidation/comments/issues", - "source": "https://github.com/consolidation/comments/tree/2.0.0" + "source": "https://github.com/consolidation/comments/tree/1.0.2" }, - "time": "2024-12-15T10:45:47+00:00" + "time": "2019-07-30T05:52:24+00:00" }, { "name": "consolidation/config", - "version": "3.1.0", + "version": "2.1.2", "source": { "type": "git", "url": "https://github.com/consolidation/config.git", - "reference": "0615499781449ab773ffc609b97b934b3357b3f9" + "reference": "597f8d7fbeef801736250ec10c3e190569b1b0ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/config/zipball/0615499781449ab773ffc609b97b934b3357b3f9", - "reference": "0615499781449ab773ffc609b97b934b3357b3f9", + "url": "https://api.github.com/repos/consolidation/config/zipball/597f8d7fbeef801736250ec10c3e190569b1b0ae", + "reference": "597f8d7fbeef801736250ec10c3e190569b1b0ae", "shasum": "" }, "require": { - "dflydev/dot-access-data": "^3", - "grasmash/expander": "^3", - "php": ">=8.2.0", - "symfony/event-dispatcher": "^7" + "dflydev/dot-access-data": "^1.1.0 || ^2 || ^3", + "grasmash/expander": "^2.0.1 || ^3", + "php": ">=7.1.3", + "symfony/event-dispatcher": "^4 || ^5 || ^6" }, "require-dev": { "ext-json": "*", - "phpunit/phpunit": "^9", + "phpunit/phpunit": ">=7.5.20", "squizlabs/php_codesniffer": "^3", - "symfony/console": "^7", - "symfony/yaml": "^7", + "symfony/console": "^4 || ^5 || ^6", + "symfony/yaml": "^4 || ^5 || ^6", "yoast/phpunit-polyfills": "^1" }, "suggest": { @@ -249,9 +251,9 @@ "description": "Provide configuration services for a commandline tool.", "support": { "issues": "https://github.com/consolidation/config/issues", - "source": "https://github.com/consolidation/config/tree/3.1.0" + "source": "https://github.com/consolidation/config/tree/2.1.2" }, - "time": "2024-11-28T14:37:27+00:00" + "time": "2022-10-06T17:48:03+00:00" }, { "name": "consolidation/filter-via-dot-access-data", @@ -305,32 +307,32 @@ }, { "name": "consolidation/log", - "version": "3.1.0", + "version": "2.1.1", "source": { "type": "git", "url": "https://github.com/consolidation/log.git", - "reference": "c27a3beb36137c141ccbce0d89f64befb243c015" + "reference": "3ad08dc57e8aff9400111bad36beb0ed387fe6a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/log/zipball/c27a3beb36137c141ccbce0d89f64befb243c015", - "reference": "c27a3beb36137c141ccbce0d89f64befb243c015", + "url": "https://api.github.com/repos/consolidation/log/zipball/3ad08dc57e8aff9400111bad36beb0ed387fe6a9", + "reference": "3ad08dc57e8aff9400111bad36beb0ed387fe6a9", "shasum": "" }, "require": { - "php": ">=8.0.0", - "psr/log": "^3", - "symfony/console": "^5 || ^6 || ^7" + "php": ">=7.1.3", + "psr/log": "^1 || ^2", + "symfony/console": "^4 || ^5 || ^6" }, "require-dev": { - "phpunit/phpunit": "^7.5.20 || ^8 || ^9", + "phpunit/phpunit": ">=7.5.20", "squizlabs/php_codesniffer": "^3", "yoast/phpunit-polyfills": "^0.2.0" }, "type": "library", "extra": { - "platform": { - "php": "8.2.17" + "branch-alias": { + "dev-main": "2.x-dev" } }, "autoload": { @@ -351,9 +353,9 @@ "description": "Improved Psr-3 / Psr\\Log logger based on Symfony Console components.", "support": { "issues": "https://github.com/consolidation/log/issues", - "source": "https://github.com/consolidation/log/tree/3.1.0" + "source": "https://github.com/consolidation/log/tree/2.1.1" }, - "time": "2024-04-04T23:50:25+00:00" + "time": "2022-02-24T04:27:32+00:00" }, { "name": "consolidation/output-formatters", @@ -411,32 +413,32 @@ }, { "name": "consolidation/robo", - "version": "5.1.0", + "version": "3.0.12", "source": { "type": "git", "url": "https://github.com/consolidation/robo.git", - "reference": "dde6bd88de5e1e8a7f6ed8906f80353817647ad9" + "reference": "0c3a5085357f46c90a0b756e3d326f44847158b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/robo/zipball/dde6bd88de5e1e8a7f6ed8906f80353817647ad9", - "reference": "dde6bd88de5e1e8a7f6ed8906f80353817647ad9", + "url": "https://api.github.com/repos/consolidation/robo/zipball/0c3a5085357f46c90a0b756e3d326f44847158b8", + "reference": "0c3a5085357f46c90a0b756e3d326f44847158b8", "shasum": "" }, "require": { - "consolidation/annotated-command": "^4.8.1", - "consolidation/config": "^3", - "consolidation/log": "^3", + "consolidation/annotated-command": "^4.3", + "consolidation/config": "^1.2.1 || ^2.0.1", + "consolidation/log": "^1.1.1 || ^2.0.2", "consolidation/output-formatters": "^4.1.2", + "consolidation/self-update": "^2.0", "league/container": "^3.3.1 || ^4.0", - "php": ">=8.2", - "phpowermove/docblock": "^4.0", - "symfony/console": "^6 || ^7", - "symfony/event-dispatcher": "^6 || ^7", - "symfony/filesystem": "^6 || ^7", - "symfony/finder": "^6 || ^7", - "symfony/process": "^6 || ^7", - "symfony/yaml": "^6 || ^7" + "php": ">=7.1.3", + "symfony/console": "^4.4.19 || ^5 || ^6", + "symfony/event-dispatcher": "^4.4.19 || ^5 || ^6", + "symfony/filesystem": "^4.4.9 || ^5 || ^6", + "symfony/finder": "^4.4.9 || ^5 || ^6", + "symfony/process": "^4.4.9 || ^5 || ^6", + "symfony/yaml": "^4.4 || ^5 || ^6" }, "conflict": { "codegyre/robo": "*" @@ -445,12 +447,11 @@ "natxet/cssmin": "3.0.4", "patchwork/jsqueeze": "^2", "pear/archive_tar": "^1.4.4", - "phpunit/phpunit": "^7.5.20 || ^8 || ^9", + "phpunit/phpunit": "^7.5.20 || ^8", "squizlabs/php_codesniffer": "^3.6", "yoast/phpunit-polyfills": "^0.2.0" }, "suggest": { - "consolidation/self-update": "For self-updating a phar-based app built with Robo", "natxet/cssmin": "For minifying CSS files in taskMinify", "patchwork/jsqueeze": "For minifying JS files in taskMinify", "pear/archive_tar": "Allows tar archives to be created and extracted in taskPack and taskExtract, respectively.", @@ -460,6 +461,33 @@ "robo" ], "type": "library", + "extra": { + "scenarios": { + "symfony4": { + "config": { + "platform": { + "php": "7.1.3" + } + }, + "remove": [ + "codeception/phpunit-wrapper" + ], + "require": { + "symfony/finder": "^4.4.11", + "phpunit/phpunit": "^6", + "symfony/console": "^4.4.11", + "symfony/process": "^4.4.11", + "nikic/php-parser": "^2", + "symfony/filesystem": "^4.4.11", + "symfony/event-dispatcher": "^4.4.11" + } + } + }, + "branch-alias": { + "dev-main": "2.x-dev", + "dev-master": "2.x-dev" + } + }, "autoload": { "psr-4": { "Robo\\": "src" @@ -478,9 +506,9 @@ "description": "Modern task runner", "support": { "issues": "https://github.com/consolidation/robo/issues", - "source": "https://github.com/consolidation/robo/tree/5.1.0" + "source": "https://github.com/consolidation/robo/tree/3.0.12" }, - "time": "2024-10-22T13:18:54+00:00" + "time": "2023-04-30T21:18:09+00:00" }, { "name": "consolidation/self-update", @@ -725,28 +753,27 @@ }, { "name": "grasmash/expander", - "version": "3.0.1", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/grasmash/expander.git", - "reference": "eea11b9afb0c32483b18b9009f4ca07b770e39f4" + "reference": "b7cbc1f2fdf9a9c0e253a424c2a4058316b7cb6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/grasmash/expander/zipball/eea11b9afb0c32483b18b9009f4ca07b770e39f4", - "reference": "eea11b9afb0c32483b18b9009f4ca07b770e39f4", + "url": "https://api.github.com/repos/grasmash/expander/zipball/b7cbc1f2fdf9a9c0e253a424c2a4058316b7cb6e", + "reference": "b7cbc1f2fdf9a9c0e253a424c2a4058316b7cb6e", "shasum": "" }, "require": { "dflydev/dot-access-data": "^3.0.0", - "php": ">=8.0", - "psr/log": "^2 | ^3" + "php": ">=7.1", + "psr/log": "^1 | ^2 | ^3" }, "require-dev": { "greg-1-anderson/composer-test-scenarios": "^1", - "php-coveralls/php-coveralls": "^2.5", - "phpunit/phpunit": "^9", - "squizlabs/php_codesniffer": "^3.3" + "phpunit/phpunit": "^6.0 || ^8.0 || ^9", + "squizlabs/php_codesniffer": "^2.7 || ^3.3" }, "type": "library", "extra": { @@ -771,9 +798,9 @@ "description": "Expands internal property references in PHP arrays file.", "support": { "issues": "https://github.com/grasmash/expander/issues", - "source": "https://github.com/grasmash/expander/tree/3.0.1" + "source": "https://github.com/grasmash/expander/tree/2.0.3" }, - "time": "2024-11-25T23:28:05+00:00" + "time": "2022-04-25T22:17:46+00:00" }, { "name": "guzzlehttp/guzzle", @@ -1405,185 +1432,24 @@ }, "time": "2024-09-29T15:01:53+00:00" }, - { - "name": "phootwork/collection", - "version": "v3.2.3", - "source": { - "type": "git", - "url": "https://github.com/phootwork/collection.git", - "reference": "46dde20420fba17766c89200bc3ff91d3e58eafa" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phootwork/collection/zipball/46dde20420fba17766c89200bc3ff91d3e58eafa", - "reference": "46dde20420fba17766c89200bc3ff91d3e58eafa", - "shasum": "" - }, - "require": { - "phootwork/lang": "^3.0", - "php": ">=8.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "phootwork\\collection\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Thomas Gossmann", - "homepage": "http://gos.si" - } - ], - "description": "The phootwork library fills gaps in the php language and provides better solutions than the existing ones php offers.", - "homepage": "https://phootwork.github.io/collection/", - "keywords": [ - "Array object", - "Text object", - "collection", - "collections", - "json", - "list", - "map", - "queue", - "set", - "stack", - "xml" - ], - "support": { - "issues": "https://github.com/phootwork/phootwork/issues", - "source": "https://github.com/phootwork/collection/tree/v3.2.3" - }, - "time": "2022-08-27T12:51:24+00:00" - }, - { - "name": "phootwork/lang", - "version": "v3.2.3", - "source": { - "type": "git", - "url": "https://github.com/phootwork/lang.git", - "reference": "52ec8cce740ce1c424eef02f43b43d5ddfec7b5e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phootwork/lang/zipball/52ec8cce740ce1c424eef02f43b43d5ddfec7b5e", - "reference": "52ec8cce740ce1c424eef02f43b43d5ddfec7b5e", - "shasum": "" - }, - "require": { - "php": ">=8.0", - "symfony/polyfill-mbstring": "^1.12", - "symfony/polyfill-php81": "^1.22" - }, - "type": "library", - "autoload": { - "psr-4": { - "phootwork\\lang\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Thomas Gossmann", - "homepage": "http://gos.si" - } - ], - "description": "Missing PHP language constructs", - "homepage": "https://phootwork.github.io/lang/", - "keywords": [ - "array", - "comparator", - "comparison", - "string" - ], - "support": { - "issues": "https://github.com/phootwork/phootwork/issues", - "source": "https://github.com/phootwork/lang/tree/v3.2.3" - }, - "time": "2024-10-03T13:43:19+00:00" - }, - { - "name": "phpowermove/docblock", - "version": "v4.0", - "source": { - "type": "git", - "url": "https://github.com/phpowermove/docblock.git", - "reference": "a73f6e17b7d4e1b92ca5378c248c952c9fae7826" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpowermove/docblock/zipball/a73f6e17b7d4e1b92ca5378c248c952c9fae7826", - "reference": "a73f6e17b7d4e1b92ca5378c248c952c9fae7826", - "shasum": "" - }, - "require": { - "phootwork/collection": "^3.0", - "phootwork/lang": "^3.0", - "php": ">=8.0" - }, - "require-dev": { - "phootwork/php-cs-fixer-config": "^0.4", - "phpunit/phpunit": "^9.0", - "psalm/phar": "^4.3" - }, - "type": "library", - "autoload": { - "psr-4": { - "phpowermove\\docblock\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Thomas Gossmann", - "homepage": "http://gos.si" - } - ], - "description": "PHP Docblock parser and generator. An API to read and write Docblocks.", - "keywords": [ - "docblock", - "generator", - "parser" - ], - "support": { - "issues": "https://github.com/phpowermove/docblock/issues", - "source": "https://github.com/phpowermove/docblock/tree/v4.0" - }, - "time": "2021-09-22T16:57:06+00:00" - }, { "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/" @@ -1610,9 +1476,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", @@ -1826,30 +1692,30 @@ }, { "name": "psr/log", - "version": "3.0.2", + "version": "1.1.4", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", - "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "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": "3.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Log\\": "src" + "Psr\\Log\\": "Psr/Log/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1870,9 +1736,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/3.0.2" + "source": "https://github.com/php-fig/log/tree/1.1.4" }, - "time": "2024-09-11T13:17:53+00:00" + "time": "2021-05-03T11:20:27+00:00" }, { "name": "psy/psysh", @@ -2042,47 +1908,52 @@ }, { "name": "symfony/console", - "version": "v6.4.15", + "version": "v5.4.47", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd" + "reference": "c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/f1fc6f47283e27336e7cebb9e8946c8de7bff9bd", - "reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd", + "url": "https://api.github.com/repos/symfony/console/zipball/c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed", + "reference": "c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^5.4|^6.0|^7.0" + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/string": "^5.1|^6.0" }, "conflict": { - "symfony/dependency-injection": "<5.4", - "symfony/dotenv": "<5.4", - "symfony/event-dispatcher": "<5.4", - "symfony/lock": "<5.4", - "symfony/process": "<5.4" + "psr/log": ">=3", + "symfony/dependency-injection": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/event-dispatcher": "<4.4", + "symfony/lock": "<4.4", + "symfony/process": "<4.4" }, "provide": { - "psr/log-implementation": "1.0|2.0|3.0" + "psr/log-implementation": "1.0|2.0" }, "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/lock": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" + "psr/log": "^1|^2", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/lock": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" }, "type": "library", "autoload": { @@ -2116,7 +1987,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.15" + "source": "https://github.com/symfony/console/tree/v5.4.47" }, "funding": [ { @@ -2132,29 +2003,29 @@ "type": "tidelift" } ], - "time": "2024-11-06T14:19:14+00:00" + "time": "2024-11-06T11:30:55+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.5.1", + "version": "v2.5.4", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6" + "reference": "605389f2a7e5625f273b53960dc46aeaf9c62918" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", - "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/605389f2a7e5625f273b53960dc46aeaf9c62918", + "reference": "605389f2a7e5625f273b53960dc46aeaf9c62918", "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", @@ -2183,7 +2054,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.1" + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.4" }, "funding": [ { @@ -2199,43 +2070,48 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2024-09-25T14:11:13+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.2.0", + "version": "v5.4.45", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1" + "reference": "72982eb416f61003e9bb6e91f8b3213600dcf9e9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/910c5db85a5356d0fea57680defec4e99eb9c8c1", - "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/72982eb416f61003e9bb6e91f8b3213600dcf9e9", + "reference": "72982eb416f61003e9bb6e91f8b3213600dcf9e9", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/event-dispatcher-contracts": "^2.5|^3" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/event-dispatcher-contracts": "^2|^3", + "symfony/polyfill-php80": "^1.16" }, "conflict": { - "symfony/dependency-injection": "<6.4", - "symfony/service-contracts": "<2.5" + "symfony/dependency-injection": "<4.4" }, "provide": { "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "2.0|3.0" + "symfony/event-dispatcher-implementation": "2.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/error-handler": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^6.4|^7.0" + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/stopwatch": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" }, "type": "library", "autoload": { @@ -2263,7 +2139,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/v7.2.0" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.45" }, "funding": [ { @@ -2279,30 +2155,33 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:21:43+00:00" + "time": "2024-09-25T14:11:13+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.5.1", + "version": "v2.5.4", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f" + "reference": "e0fe3d79b516eb75126ac6fa4cbf19b79b08c99f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7642f5e970b672283b7823222ae8ef8bbc160b9f", - "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/e0fe3d79b516eb75126ac6fa4cbf19b79b08c99f", + "reference": "e0fe3d79b516eb75126ac6fa4cbf19b79b08c99f", "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", @@ -2339,7 +2218,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.4" }, "funding": [ { @@ -2355,29 +2234,30 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2024-09-25T14:11:13+00:00" }, { "name": "symfony/filesystem", - "version": "v6.4.13", + "version": "v5.4.45", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3" + "reference": "57c8294ed37d4a055b77057827c67f9558c95c54" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/4856c9cf585d5a0313d8d35afd681a526f038dd3", - "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/57c8294ed37d4a055b77057827c67f9558c95c54", + "reference": "57c8294ed37d4a055b77057827c67f9558c95c54", "shasum": "" }, "require": { - "php": ">=8.1", + "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": "^5.4|^6.4|^7.0" + "symfony/process": "^5.4|^6.4" }, "type": "library", "autoload": { @@ -2405,7 +2285,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.4.13" + "source": "https://github.com/symfony/filesystem/tree/v5.4.45" }, "funding": [ { @@ -2421,27 +2301,26 @@ "type": "tidelift" } ], - "time": "2024-10-25T15:07:50+00:00" + "time": "2024-10-22T13:05:35+00:00" }, { "name": "symfony/finder", - "version": "v7.2.0", + "version": "v5.4.45", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "6de263e5868b9a137602dd1e33e4d48bfae99c49" + "reference": "63741784cd7b9967975eec610b256eed3ede022b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/6de263e5868b9a137602dd1e33e4d48bfae99c49", - "reference": "6de263e5868b9a137602dd1e33e4d48bfae99c49", + "url": "https://api.github.com/repos/symfony/finder/zipball/63741784cd7b9967975eec610b256eed3ede022b", + "reference": "63741784cd7b9967975eec610b256eed3ede022b", "shasum": "" }, "require": { - "php": ">=8.2" - }, - "require-dev": { - "symfony/filesystem": "^6.4|^7.0" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -2469,7 +2348,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.2.0" + "source": "https://github.com/symfony/finder/tree/v5.4.45" }, "funding": [ { @@ -2485,7 +2364,7 @@ "type": "tidelift" } ], - "time": "2024-10-23T06:56:12+00:00" + "time": "2024-09-28T13:32:08+00:00" }, { "name": "symfony/polyfill-ctype", @@ -2805,6 +2684,162 @@ ], "time": "2024-09-09T11:45:10+00:00" }, + { + "name": "symfony/polyfill-php73", + "version": "v1.31.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f68c03565dcaaf25a890667542e8bd75fe7e5bb", + "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.31.0" + }, + "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-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.31.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" + }, + "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-09-09T11:45:10+00:00" + }, { "name": "symfony/polyfill-php81", "version": "v1.31.0", @@ -2883,20 +2918,21 @@ }, { "name": "symfony/process", - "version": "v7.2.0", + "version": "v5.4.47", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e" + "reference": "5d1662fb32ebc94f17ddb8d635454a776066733d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/d34b22ba9390ec19d2dd966c40aa9e8462f27a7e", - "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e", + "url": "https://api.github.com/repos/symfony/process/zipball/5d1662fb32ebc94f17ddb8d635454a776066733d", + "reference": "5d1662fb32ebc94f17ddb8d635454a776066733d", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -2924,7 +2960,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.2.0" + "source": "https://github.com/symfony/process/tree/v5.4.47" }, "funding": [ { @@ -2940,34 +2976,37 @@ "type": "tidelift" } ], - "time": "2024-11-06T14:24:19+00:00" + "time": "2024-11-06T11:36:42+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.5.1", + "version": "v2.5.4", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0" + "reference": "f37b419f7aea2e9abf10abd261832cace12e3300" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0", - "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f37b419f7aea2e9abf10abd261832cace12e3300", + "reference": "f37b419f7aea2e9abf10abd261832cace12e3300", "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", @@ -2977,10 +3016,7 @@ "autoload": { "psr-4": { "Symfony\\Contracts\\Service\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3007,7 +3043,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.5.1" + "source": "https://github.com/symfony/service-contracts/tree/v2.5.4" }, "funding": [ { @@ -3023,39 +3059,38 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2024-09-25T14:11:13+00:00" }, { "name": "symfony/string", - "version": "v7.2.0", + "version": "v5.4.47", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82" + "reference": "136ca7d72f72b599f2631aca474a4f8e26719799" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/446e0d146f991dde3e73f45f2c97a9faad773c82", - "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82", + "url": "https://api.github.com/repos/symfony/string/zipball/136ca7d72f72b599f2631aca474a4f8e26719799", + "reference": "136ca7d72f72b599f2631aca474a4f8e26719799", "shasum": "" }, "require": { - "php": ">=8.2", + "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/emoji": "^7.1", - "symfony/error-handler": "^6.4|^7.0", - "symfony/http-client": "^6.4|^7.0", - "symfony/intl": "^6.4|^7.0", - "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4|^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": { @@ -3094,7 +3129,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.2.0" + "source": "https://github.com/symfony/string/tree/v5.4.47" }, "funding": [ { @@ -3110,36 +3145,42 @@ "type": "tidelift" } ], - "time": "2024-11-13T13:31:26+00:00" + "time": "2024-11-10T20:33:58+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.2.0", + "version": "v5.4.48", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "c6a22929407dec8765d6e2b6ff85b800b245879c" + "reference": "42f18f170aa86d612c3559cfb3bd11a375df32c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c6a22929407dec8765d6e2b6ff85b800b245879c", - "reference": "c6a22929407dec8765d6e2b6ff85b800b245879c", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/42f18f170aa86d612c3559cfb3bd11a375df32c8", + "reference": "42f18f170aa86d612c3559cfb3bd11a375df32c8", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/polyfill-mbstring": "~1.0" + "php": ">=7.2.5", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16" }, "conflict": { - "symfony/console": "<6.4" + "symfony/console": "<4.4" }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/process": "^6.4|^7.0", - "symfony/uid": "^6.4|^7.0", - "twig/twig": "^3.12" + "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" @@ -3177,7 +3218,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.2.0" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.48" }, "funding": [ { @@ -3193,32 +3234,35 @@ "type": "tidelift" } ], - "time": "2024-11-08T15:48:14+00:00" + "time": "2024-11-08T15:21:10+00:00" }, { "name": "symfony/yaml", - "version": "v7.2.0", + "version": "v5.4.45", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "099581e99f557e9f16b43c5916c26380b54abb22" + "reference": "a454d47278cc16a5db371fe73ae66a78a633371e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/099581e99f557e9f16b43c5916c26380b54abb22", - "reference": "099581e99f557e9f16b43c5916c26380b54abb22", + "url": "https://api.github.com/repos/symfony/yaml/zipball/a454d47278cc16a5db371fe73ae66a78a633371e", + "reference": "a454d47278cc16a5db371fe73ae66a78a633371e", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3.0", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/console": "<6.4" + "symfony/console": "<5.3" }, "require-dev": { - "symfony/console": "^6.4|^7.0" + "symfony/console": "^5.3|^6.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" }, "bin": [ "Resources/bin/yaml-lint" @@ -3249,7 +3293,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.2.0" + "source": "https://github.com/symfony/yaml/tree/v5.4.45" }, "funding": [ { @@ -3265,31 +3309,31 @@ "type": "tidelift" } ], - "time": "2024-10-23T06:56:12+00:00" + "time": "2024-09-25T14:11:13+00:00" }, { "name": "twig/twig", - "version": "v3.17.1", + "version": "v3.11.3", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "677ef8da6497a03048192aeeb5aa3018e379ac71" + "reference": "3b06600ff3abefaf8ff55d5c336cd1c4253f8c7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/677ef8da6497a03048192aeeb5aa3018e379ac71", - "reference": "677ef8da6497a03048192aeeb5aa3018e379ac71", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/3b06600ff3abefaf8ff55d5c336cd1c4253f8c7e", + "reference": "3b06600ff3abefaf8ff55d5c336cd1c4253f8c7e", "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=7.2.5", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php80": "^1.22", "symfony/polyfill-php81": "^1.29" }, "require-dev": { - "phpstan/phpstan": "^2.0", "psr/container": "^1.0|^2.0", "symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0" }, @@ -3333,7 +3377,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.17.1" + "source": "https://github.com/twigphp/Twig/tree/v3.11.3" }, "funding": [ { @@ -3345,43 +3389,41 @@ "type": "tidelift" } ], - "time": "2024-12-12T09:58:10+00:00" + "time": "2024-11-07T12:34:41+00:00" } ], "packages-dev": [ { "name": "behat/behat", - "version": "v3.16.0", + "version": "v3.15.0", "source": { "type": "git", "url": "https://github.com/Behat/Behat.git", - "reference": "18f5f44c80d1cf5711ec27019afcb26b8bc6c3b0" + "reference": "132e32fdad69340f503b103a5ccaf5dd72ce7d83" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Behat/zipball/18f5f44c80d1cf5711ec27019afcb26b8bc6c3b0", - "reference": "18f5f44c80d1cf5711ec27019afcb26b8bc6c3b0", + "url": "https://api.github.com/repos/Behat/Behat/zipball/132e32fdad69340f503b103a5ccaf5dd72ce7d83", + "reference": "132e32fdad69340f503b103a5ccaf5dd72ce7d83", "shasum": "" }, "require": { "behat/gherkin": "^4.10.0", - "behat/transliterator": "^1.5", - "composer-runtime-api": "^2.2", + "behat/transliterator": "^1.2", "ext-mbstring": "*", - "php": "8.1.* || 8.2.* || 8.3.* || 8.4.* ", + "php": "^7.2 || ^8.0", "psr/container": "^1.0 || ^2.0", - "symfony/config": "^5.4 || ^6.4 || ^7.0", - "symfony/console": "^5.4 || ^6.4 || ^7.0", - "symfony/dependency-injection": "^5.4 || ^6.4 || ^7.0", - "symfony/event-dispatcher": "^5.4 || ^6.4 || ^7.0", - "symfony/translation": "^5.4 || ^6.4 || ^7.0", - "symfony/yaml": "^5.4 || ^6.4 || ^7.0" + "symfony/config": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/console": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/event-dispatcher": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/translation": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/yaml": "^4.4 || ^5.0 || ^6.0 || ^7.0" }, "require-dev": { "herrera-io/box": "~1.6.1", - "phpunit/phpunit": "^9.6", - "symfony/polyfill-php84": "^1.31", - "symfony/process": "^5.4 || ^6.4 || ^7.0", + "phpunit/phpunit": "^8.5 || ^9.0", + "symfony/process": "^4.4 || ^5.0 || ^6.0 || ^7.0", "vimeo/psalm": "^4.8" }, "suggest": { @@ -3433,31 +3475,31 @@ ], "support": { "issues": "https://github.com/Behat/Behat/issues", - "source": "https://github.com/Behat/Behat/tree/v3.16.0" + "source": "https://github.com/Behat/Behat/tree/v3.15.0" }, - "time": "2024-11-08T12:25:17+00:00" + "time": "2024-10-30T07:54:51+00:00" }, { "name": "behat/gherkin", - "version": "v4.11.0", + "version": "v4.10.0", "source": { "type": "git", "url": "https://github.com/Behat/Gherkin.git", - "reference": "32821a17b12620951e755b5d49328a6421a5b5b5" + "reference": "cbb83c4c435dd8d05a161f2a5ae322e61b2f4db6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/32821a17b12620951e755b5d49328a6421a5b5b5", - "reference": "32821a17b12620951e755b5d49328a6421a5b5b5", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/cbb83c4c435dd8d05a161f2a5ae322e61b2f4db6", + "reference": "cbb83c4c435dd8d05a161f2a5ae322e61b2f4db6", "shasum": "" }, "require": { - "php": "8.1.* || 8.2.* || 8.3.* || 8.4.*" + "php": "~7.2|~8.0" }, "require-dev": { "cucumber/cucumber": "dev-gherkin-24.1.0", - "phpunit/phpunit": "^9.6", - "symfony/yaml": "^5.4 || ^6.4 || ^7.0" + "phpunit/phpunit": "~8|~9", + "symfony/yaml": "~3|~4|~5|~6|~7" }, "suggest": { "symfony/yaml": "If you want to parse features, represented in YAML files" @@ -3496,9 +3538,9 @@ ], "support": { "issues": "https://github.com/Behat/Gherkin/issues", - "source": "https://github.com/Behat/Gherkin/tree/v4.11.0" + "source": "https://github.com/Behat/Gherkin/tree/v4.10.0" }, - "time": "2024-12-06T10:07:25+00:00" + "time": "2024-10-19T14:46:06+00:00" }, { "name": "behat/transliterator", @@ -3760,30 +3802,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": { @@ -3810,7 +3852,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": [ { @@ -3826,7 +3868,7 @@ "type": "tidelift" } ], - "time": "2022-12-30T00:23:10+00:00" + "time": "2022-12-30T00:15:36+00:00" }, { "name": "erusev/parsedown", @@ -6360,34 +6402,38 @@ }, { "name": "symfony/config", - "version": "v7.0.8", + "version": "v5.4.46", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "f8a8fb0c2d0a188a00a2dd5af8a4eb070641ec60" + "reference": "977c88a02d7d3f16904a81907531b19666a08e78" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/f8a8fb0c2d0a188a00a2dd5af8a4eb070641ec60", - "reference": "f8a8fb0c2d0a188a00a2dd5af8a4eb070641ec60", + "url": "https://api.github.com/repos/symfony/config/zipball/977c88a02d7d3f16904a81907531b19666a08e78", + "reference": "977c88a02d7d3f16904a81907531b19666a08e78", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/filesystem": "^6.4|^7.0", - "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": { @@ -6415,7 +6461,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.0.8" + "source": "https://github.com/symfony/config/tree/v5.4.46" }, "funding": [ { @@ -6431,43 +6477,52 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:55:39+00:00" + "time": "2024-10-30T07:58:02+00:00" }, { "name": "symfony/dependency-injection", - "version": "v7.2.0", + "version": "v5.4.48", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "a475747af1a1c98272a5471abc35f3da81197c5d" + "reference": "e5ca16dee39ef7d63e552ff0bf0a2526a1142c92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/a475747af1a1c98272a5471abc35f3da81197c5d", - "reference": "a475747af1a1c98272a5471abc35f3da81197c5d", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/e5ca16dee39ef7d63e552ff0bf0a2526a1142c92", + "reference": "e5ca16dee39ef7d63e552ff0bf0a2526a1142c92", "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": { @@ -6495,7 +6550,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.2.0" + "source": "https://github.com/symfony/dependency-injection/tree/v5.4.48" }, "funding": [ { @@ -6511,25 +6566,27 @@ "type": "tidelift" } ], - "time": "2024-11-25T15:45:00+00:00" + "time": "2024-11-20T10:51:57+00:00" }, { "name": "symfony/options-resolver", - "version": "v7.2.0", + "version": "v5.4.45", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "7da8fbac9dcfef75ffc212235d76b2754ce0cf50" + "reference": "74e5b6f0db3e8589e6cfd5efb317a1fc2bb52fb6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/7da8fbac9dcfef75ffc212235d76b2754ce0cf50", - "reference": "7da8fbac9dcfef75ffc212235d76b2754ce0cf50", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/74e5b6f0db3e8589e6cfd5efb317a1fc2bb52fb6", + "reference": "74e5b6f0db3e8589e6cfd5efb317a1fc2bb52fb6", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php73": "~1.0", + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -6562,87 +6619,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v7.2.0" - }, - "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-11-20T11:17:29+00:00" - }, - { - "name": "symfony/polyfill-php80", - "version": "v1.31.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", - "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" + "source": "https://github.com/symfony/options-resolver/tree/v5.4.45" }, "funding": [ { @@ -6658,25 +6635,25 @@ "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2024-09-25T14:11:13+00:00" }, { "name": "symfony/stopwatch", - "version": "v7.2.0", + "version": "v5.4.45", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "696f418b0d722a4225e1c3d95489d262971ca924" + "reference": "fb2c199cf302eb207f8c23e7ee174c1c31a5c004" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/696f418b0d722a4225e1c3d95489d262971ca924", - "reference": "696f418b0d722a4225e1c3d95489d262971ca924", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/fb2c199cf302eb207f8c23e7ee174c1c31a5c004", + "reference": "fb2c199cf302eb207f8c23e7ee174c1c31a5c004", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/service-contracts": "^2.5|^3" + "php": ">=7.2.5", + "symfony/service-contracts": "^1|^2|^3" }, "type": "library", "autoload": { @@ -6704,7 +6681,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v7.2.0" + "source": "https://github.com/symfony/stopwatch/tree/v5.4.45" }, "funding": [ { @@ -6720,55 +6697,57 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:21:43+00:00" + "time": "2024-09-25T14:11:13+00:00" }, { "name": "symfony/translation", - "version": "v7.2.0", + "version": "v5.4.45", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "dc89e16b44048ceecc879054e5b7f38326ab6cc5" + "reference": "98f26acc99341ca4bab345fb14d7b1d7cb825bed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/dc89e16b44048ceecc879054e5b7f38326ab6cc5", - "reference": "dc89e16b44048ceecc879054e5b7f38326ab6cc5", + "url": "https://api.github.com/repos/symfony/translation/zipball/98f26acc99341ca4bab345fb14d7b1d7cb825bed", + "reference": "98f26acc99341ca4bab345fb14d7b1d7cb825bed", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^2.5|^3.0" + "symfony/polyfill-php80": "^1.16", + "symfony/translation-contracts": "^2.3" }, "conflict": { - "symfony/config": "<6.4", - "symfony/console": "<6.4", - "symfony/dependency-injection": "<6.4", - "symfony/http-client-contracts": "<2.5", - "symfony/http-kernel": "<6.4", - "symfony/service-contracts": "<2.5", - "symfony/twig-bundle": "<6.4", - "symfony/yaml": "<6.4" + "symfony/config": "<4.4", + "symfony/console": "<5.3", + "symfony/dependency-injection": "<5.0", + "symfony/http-kernel": "<5.0", + "symfony/twig-bundle": "<5.0", + "symfony/yaml": "<4.4" }, "provide": { - "symfony/translation-implementation": "2.3|3.0" + "symfony/translation-implementation": "2.3" }, "require-dev": { - "nikic/php-parser": "^4.18|^5.0", "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/console": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/finder": "^6.4|^7.0", - "symfony/http-client-contracts": "^2.5|^3.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/intl": "^6.4|^7.0", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/http-client-contracts": "^1.1|^2.0|^3.0", + "symfony/http-kernel": "^5.0|^6.0", + "symfony/intl": "^4.4|^5.0|^6.0", "symfony/polyfill-intl-icu": "^1.21", - "symfony/routing": "^6.4|^7.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^6.4|^7.0" + "symfony/service-contracts": "^1.1.2|^2|^3", + "symfony/yaml": "^4.4|^5.0|^6.0" + }, + "suggest": { + "psr/log-implementation": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" }, "type": "library", "autoload": { @@ -6799,7 +6778,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v7.2.0" + "source": "https://github.com/symfony/translation/tree/v5.4.45" }, "funding": [ { @@ -6815,29 +6794,32 @@ "type": "tidelift" } ], - "time": "2024-11-12T20:47:56+00:00" + "time": "2024-09-25T14:11:13+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.5.1", + "version": "v2.5.4", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "4667ff3bd513750603a09c8dedbea942487fb07c" + "reference": "450d4172653f38818657022252f9d81be89ee9a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/4667ff3bd513750603a09c8dedbea942487fb07c", - "reference": "4667ff3bd513750603a09c8dedbea942487fb07c", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/450d4172653f38818657022252f9d81be89ee9a8", + "reference": "450d4172653f38818657022252f9d81be89ee9a8", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=7.2.5" + }, + "suggest": { + "symfony/translation-implementation": "" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.5-dev" + "dev-main": "2.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -6847,10 +6829,7 @@ "autoload": { "psr-4": { "Symfony\\Contracts\\Translation\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6877,83 +6856,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.5.1" - }, - "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-09-25T14:20:29+00:00" - }, - { - "name": "symfony/var-exporter", - "version": "v7.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/var-exporter.git", - "reference": "1a6a89f95a46af0f142874c9d650a6358d13070d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/1a6a89f95a46af0f142874c9d650a6358d13070d", - "reference": "1a6a89f95a46af0f142874c9d650a6358d13070d", - "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.2.0" + "source": "https://github.com/symfony/translation-contracts/tree/v2.5.4" }, "funding": [ { @@ -6969,7 +6872,7 @@ "type": "tidelift" } ], - "time": "2024-10-18T07:58:17+00:00" + "time": "2024-09-25T14:11:13+00:00" }, { "name": "theseer/tokenizer", @@ -7092,7 +6995,7 @@ "ext-pcov": "*" }, "platform-overrides": { - "php": "8.2.26" + "php": "7.4.28" }, "plugin-api-version": "2.6.0" } From 4d3b1da23f226f6501eb696bb08fe64ffaec9dd7 Mon Sep 17 00:00:00 2001 From: Greg Anderson Date: Wed, 18 Dec 2024 10:27:57 -0800 Subject: [PATCH 9/9] Update version checking in terminus.php --- bin/terminus.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/bin/terminus.php b/bin/terminus.php index e64066672..211ec107b 100755 --- a/bin/terminus.php +++ b/bin/terminus.php @@ -12,10 +12,15 @@ // Unset memory limit ini_set('memory_limit', -1); -if (version_compare(PHP_VERSION, '7.4.0', '<') === true) { +// Look up minimum PHP version from composer.json. +$composer_json_contents = file_get_contents(dirname(__DIR__) . '/composer.json'); +$composer_json_data = json_decode($composer_json_contents, true); +$min_php_version = $composer_json_data['config']['platform']['php']; + +if (version_compare(PHP_VERSION, $min_php_version, '<') === true) { fwrite(STDERR, "\n"); fwrite(STDERR, 'Sorry, your PHP version (' . PHP_VERSION . ') is no longer supported.' . "\n"); - fwrite(STDERR, 'Upgrade to PHP 7.4 or newer to use Terminus 4. For PHP versions prior to 7.4, downgrade to Terminus 2.x.' . "\n\n"); + fwrite(STDERR, 'Upgrade to PHP ' . $min_php_version . ' or newer to use Terminus 4. For prior PHP versions, downgrade to Terminus 3.x.' . "\n\n"); fwrite(STDERR, 'For more information, see https://pantheon.io/docs/terminus/updates#php-version-compatibility-matrix' . "\n\n"); exit(1); }