Skip to content

Commit

Permalink
feature #50404 [7.0] Bump to PHP 8.2 minimum (nicolas-grekas)
Browse files Browse the repository at this point in the history
This PR was merged into the 7.0 branch.

Discussion
----------

[7.0] Bump to PHP 8.2 minimum

| Q             | A
| ------------- | ---
| Branch?       | 7.0
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

:rocket:

Commits
-------

5eb8881 [7.0] Bump to PHP 8.2 minimum
  • Loading branch information
nicolas-grekas committed May 23, 2023
2 parents 48bd035 + 5eb8881 commit cfb451f
Show file tree
Hide file tree
Showing 203 changed files with 982 additions and 1,278 deletions.
23 changes: 12 additions & 11 deletions .appveyor.yml
Expand Up @@ -13,29 +13,29 @@ init:

install:
- mkdir c:\php && cd c:\php
- appveyor DownloadFile https://github.com/symfony/binary-utils/releases/download/v0.1/php-8.1.0-Win32-vs16-x86.zip
- 7z x php-8.1.0-Win32-vs16-x86.zip -y >nul
- appveyor DownloadFile https://github.com/symfony/binary-utils/releases/download/v0.1/php-8.2.0-Win32-vs16-x86.zip
- 7z x php-8.2.0-Win32-vs16-x86.zip -y >nul
- cd ext
- appveyor DownloadFile https://github.com/symfony/binary-utils/releases/download/v0.1/php_apcu-5.1.21-8.1-ts-vs16-x86.zip
- 7z x php_apcu-5.1.21-8.1-ts-vs16-x86.zip -y >nul
- appveyor DownloadFile https://github.com/symfony/binary-utils/releases/download/v0.1/php_redis-5.3.7-8.1-ts-vs16-x86.zip
- 7z x php_redis-5.3.7-8.1-ts-vs16-x86.zip -y >nul
#- appveyor DownloadFile https://github.com/symfony/binary-utils/releases/download/v0.1/php_apcu-5.1.22-8.2-ts-vs16-x86.zip
#- 7z x php_apcu-5.1.22-8.2-ts-vs16-x86.zip -y >nul
#- appveyor DownloadFile https://github.com/symfony/binary-utils/releases/download/v0.1/php_redis-5.3.7-8.2-ts-vs16-x86.zip
#- 7z x php_redis-5.3.7-8.2-ts-vs16-x86.zip -y >nul
- cd ..
- copy /Y php.ini-development php.ini-min
- echo memory_limit=-1 >> php.ini-min
- echo serialize_precision=-1 >> php.ini-min
- echo max_execution_time=1200 >> php.ini-min
- echo post_max_size=4G >> php.ini-min
- echo upload_max_filesize=4G >> php.ini-min
- echo post_max_size=2047M >> php.ini-min
- echo upload_max_filesize=2047M >> php.ini-min
- echo date.timezone="America/Los_Angeles" >> php.ini-min
- echo extension_dir=ext >> php.ini-min
- echo extension=php_xsl.dll >> php.ini-min
- copy /Y php.ini-min php.ini-max
- echo zend_extension=php_opcache.dll >> php.ini-max
- echo opcache.enable_cli=1 >> php.ini-max
- echo extension=php_openssl.dll >> php.ini-max
- echo extension=php_apcu.dll >> php.ini-max
- echo extension=php_redis.dll >> php.ini-max
#- echo extension=php_apcu.dll >> php.ini-max
#- echo extension=php_redis.dll >> php.ini-max
- echo apc.enable_cli=1 >> php.ini-max
- echo extension=php_intl.dll >> php.ini-max
- echo extension=php_mbstring.dll >> php.ini-max
Expand All @@ -51,7 +51,8 @@ install:
- git config --global user.name "Symfony"
- FOR /F "tokens=* USEBACKQ" %%F IN (`bash -c "grep ' VERSION = ' src/Symfony/Component/HttpKernel/Kernel.php | grep -o '[0-9][0-9]*\.[0-9]'"`) DO (SET SYMFONY_VERSION=%%F)
- php .github/build-packages.php HEAD^ %SYMFONY_VERSION% src\Symfony\Bridge\PhpUnit
- SET COMPOSER_ROOT_VERSION=%SYMFONY_VERSION%.x-dev
#- SET COMPOSER_ROOT_VERSION=%SYMFONY_VERSION%.x-dev
- SET COMPOSER_ROOT_VERSION=6.4.x-dev
- php composer.phar update --no-progress --ansi
- php phpunit install
- choco install memurai-developer
Expand Down
4 changes: 4 additions & 0 deletions .github/build-packages.php
Expand Up @@ -11,6 +11,10 @@
$mergeBase = trim(shell_exec(sprintf('git merge-base "%s" HEAD', array_shift($dirs))));
$version = array_shift($dirs);

if ('7.0' === $version) {
$version = '6.4'; // to be removed once deps allow ^7.0
}

$packages = [];
$flags = JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE;
$preferredInstall = json_decode(file_get_contents(__DIR__.'/composer-config.json'), true)['config']['preferred-install'];
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/integration-tests.yml
Expand Up @@ -23,7 +23,7 @@ jobs:

strategy:
matrix:
php: ['8.1']
php: ['8.2']
fail-fast: false

services:
Expand Down Expand Up @@ -155,7 +155,8 @@ jobs:
run: |
COMPOSER_HOME="$(composer config home)"
([ -d "$COMPOSER_HOME" ] || mkdir "$COMPOSER_HOME") && cp .github/composer-config.json "$COMPOSER_HOME/config.json"
export COMPOSER_ROOT_VERSION=$(grep ' VERSION = ' src/Symfony/Component/HttpKernel/Kernel.php | grep -P -o '[0-9]+\.[0-9]+').x-dev
#export COMPOSER_ROOT_VERSION=$(grep ' VERSION = ' src/Symfony/Component/HttpKernel/Kernel.php | grep -P -o '[0-9]+\.[0-9]+').x-dev
export COMPOSER_ROOT_VERSION=6.4.x-dev # to be removed once deps allow ^7.0
echo COMPOSER_ROOT_VERSION=$COMPOSER_ROOT_VERSION >> $GITHUB_ENV
echo "::group::composer update"
Expand All @@ -182,7 +183,7 @@ jobs:
POSTGRES_HOST: localhost

#- name: Run HTTP push tests
# if: matrix.php == '8.1'
# if: matrix.php == '8.2'
# run: |
# [ -d .phpunit ] && mv .phpunit .phpunit.bak
# wget -q https://github.com/symfony/binary-utils/releases/download/v0.1/vulcain_0.1.3_Linux_x86_64.tar.gz -O - | tar xz && mv vulcain /usr/local/bin
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/intl-data-tests.yml
Expand Up @@ -57,13 +57,14 @@ jobs:
coverage: "none"
extensions: "zip,intl-${{env.SYMFONY_ICU_VERSION}}"
ini-values: "memory_limit=-1"
php-version: "8.1"
php-version: "8.2"

- name: Install dependencies
run: |
COMPOSER_HOME="$(composer config home)"
([ -d "$COMPOSER_HOME" ] || mkdir "$COMPOSER_HOME") && cp .github/composer-config.json "$COMPOSER_HOME/config.json"
export COMPOSER_ROOT_VERSION=$(grep ' VERSION = ' src/Symfony/Component/HttpKernel/Kernel.php | grep -P -o '[0-9]+\.[0-9]+').x-dev
#export COMPOSER_ROOT_VERSION=$(grep ' VERSION = ' src/Symfony/Component/HttpKernel/Kernel.php | grep -P -o '[0-9]+\.[0-9]+').x-dev
export COMPOSER_ROOT_VERSION=6.4.x-dev # to be removed once deps allow ^7.0
echo COMPOSER_ROOT_VERSION=$COMPOSER_ROOT_VERSION >> $GITHUB_ENV
echo "::group::composer update"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/phpunit-bridge.yml
Expand Up @@ -32,7 +32,7 @@ jobs:
uses: shivammathur/setup-php@v2
with:
coverage: "none"
php-version: "7.1"
php-version: "7.2"

- name: Lint
run: find ./src/Symfony/Bridge/PhpUnit -name '*.php' | grep -v -e /Tests/ -e ForV7 -e ForV8 -e ForV9 -e ConstraintLogicTrait | parallel -j 4 php -l {}
7 changes: 4 additions & 3 deletions .github/workflows/psalm.yml
Expand Up @@ -20,7 +20,7 @@ jobs:
runs-on: Ubuntu-20.04

env:
php-version: '8.1'
php-version: '8.2'
steps:
- name: Setup PHP
uses: shivammathur/setup-php@v2
Expand All @@ -41,9 +41,10 @@ jobs:
run: |
COMPOSER_HOME="$(composer config home)"
([ -d "$COMPOSER_HOME" ] || mkdir "$COMPOSER_HOME") && cp .github/composer-config.json "$COMPOSER_HOME/config.json"
export COMPOSER_ROOT_VERSION=$(grep ' VERSION = ' src/Symfony/Component/HttpKernel/Kernel.php | grep -P -o '[0-9]+\.[0-9]+').x-dev
#export COMPOSER_ROOT_VERSION=$(grep ' VERSION = ' src/Symfony/Component/HttpKernel/Kernel.php | grep -P -o '[0-9]+\.[0-9]+').x-dev
export COMPOSER_ROOT_VERSION=6.4.x-dev # to be removed once deps allow ^7.0
composer remove --dev --no-update --no-interaction symfony/phpunit-bridge
composer require --no-progress --ansi --no-plugins psalm/phar phpunit/phpunit:^9.5 php-http/discovery psr/event-dispatcher mongodb/mongodb jetbrains/phpstorm-stubs
composer require --no-progress --ansi --no-plugins psalm/phar phpunit/phpunit:^9.6 php-http/discovery psr/event-dispatcher mongodb/mongodb jetbrains/phpstorm-stubs
- name: Generate Psalm baseline
run: |
Expand Down
27 changes: 14 additions & 13 deletions .github/workflows/unit-tests.yml
Expand Up @@ -26,13 +26,13 @@ jobs:
strategy:
matrix:
include:
- php: '8.1'
- php: '8.1'
- php: '8.2'
- php: '8.2'
mode: high-deps
- php: '8.1'
mode: low-deps
- php: '8.2'
#mode: experimental
mode: low-deps
#- php: '8.3'
# mode: experimental
fail-fast: false

runs-on: ubuntu-20.04
Expand Down Expand Up @@ -122,7 +122,8 @@ jobs:
[[ "${{ matrix.mode }}" = high-deps && $SYMFONY_VERSION = *.4 ]] && echo LEGACY=,legacy >> $GITHUB_ENV || true
echo SYMFONY_VERSION=$SYMFONY_VERSION >> $GITHUB_ENV
echo COMPOSER_ROOT_VERSION=$SYMFONY_VERSION.x-dev >> $GITHUB_ENV
#echo COMPOSER_ROOT_VERSION=$SYMFONY_VERSION.x-dev >> $GITHUB_ENV
echo COMPOSER_ROOT_VERSION=6.4.x-dev >> $GITHUB_ENV # to be removed once all deps allow ^7.0
echo SYMFONY_REQUIRE=">=$([ '${{ matrix.mode }}' = low-deps ] && echo 5.4 || echo $SYMFONY_VERSION)" >> $GITHUB_ENV
[[ "${{ matrix.mode }}" = *-deps ]] && mv composer.json.phpunit composer.json || true
Expand All @@ -137,19 +138,19 @@ jobs:
echo "::endgroup::"
- name: Patch return types
if: "matrix.php == '8.1' && ! matrix.mode"
if: "matrix.php == '8.2' && ! matrix.mode"
run: |
patch -sp1 < .github/expected-missing-return-types.diff
git add .
composer install -q --optimize-autoloader || composer install --optimize-autoloader
SYMFONY_PATCH_TYPE_DECLARATIONS='force=2&php=8.1' php .github/patch-types.php
SYMFONY_PATCH_TYPE_DECLARATIONS='force=2&php=8.2' php .github/patch-types.php
git checkout src/Symfony/Contracts/Service/ResetInterface.php
SYMFONY_PATCH_TYPE_DECLARATIONS='force=2&php=8.1' php .github/patch-types.php # ensure the script is idempotent
SYMFONY_PATCH_TYPE_DECLARATIONS='force=2&php=8.2' php .github/patch-types.php # ensure the script is idempotent
git checkout src/Symfony/Contracts/Service/ResetInterface.php
git diff --exit-code
- name: Check interface return types
if: "matrix.php == '8.1' && ! matrix.mode"
if: "matrix.php == '8.2' && ! matrix.mode"
run: |
php .github/patch-types.php lint
Expand Down Expand Up @@ -227,12 +228,12 @@ jobs:
script -e -c './phpunit --group tty' /dev/null
- name: Run tests with SIGCHLD enabled PHP
if: "matrix.php == '8.1' && ! matrix.mode"
if: "false && matrix.php == '8.2' && ! matrix.mode"
run: |
mkdir build
cd build
wget -q https://github.com/symfony/binary-utils/releases/download/v0.1/php-8.1.2-pcntl-sigchild.tar.bz2
tar -xjf php-8.1.2-pcntl-sigchild.tar.bz2
wget -q https://github.com/symfony/binary-utils/releases/download/v0.1/php-8.2.6-pcntl-sigchild.tar.bz2
tar -xjf php-8.2.6-pcntl-sigchild.tar.bz2
cd ..
./build/php/bin/php ./phpunit --colors=always src/Symfony/Component/Process
4 changes: 2 additions & 2 deletions composer.json
Expand Up @@ -33,7 +33,7 @@
"symfony/translation-implementation": "2.3|3.0"
},
"require": {
"php": ">=8.1",
"php": ">=8.2",
"composer-runtime-api": ">=2.1",
"ext-xml": "*",
"friendsofphp/proxy-manager-lts": "^1.0.2",
Expand Down Expand Up @@ -150,7 +150,7 @@
"psr/http-client": "^1.0",
"psr/simple-cache": "^1.0|^2.0|^3.0",
"symfony/mercure-bundle": "^0.3",
"symfony/phpunit-bridge": "^5.4|^6.0|^7.0",
"symfony/phpunit-bridge": "^6.4|^7.0",
"symfony/runtime": "self.version",
"symfony/security-acl": "~2.8|~3.0",
"twig/cssinliner-extra": "^2.12|^3",
Expand Down
60 changes: 30 additions & 30 deletions src/Symfony/Bridge/Doctrine/composer.json
Expand Up @@ -16,7 +16,7 @@
}
],
"require": {
"php": ">=8.1",
"php": ">=8.2",
"doctrine/event-manager": "^1.2|^2",
"doctrine/persistence": "^2|^3",
"symfony/deprecation-contracts": "^2.5|^3",
Expand All @@ -25,24 +25,24 @@
"symfony/service-contracts": "^2.5|^3"
},
"require-dev": {
"symfony/cache": "^5.4|^6.0|^7.0",
"symfony/config": "^5.4|^6.0|^7.0",
"symfony/dependency-injection": "^6.2|^7.0",
"symfony/doctrine-messenger": "^5.4|^6.0|^7.0",
"symfony/expression-language": "^5.4|^6.0|^7.0",
"symfony/form": "^5.4.21|^6.2.7|^7.0",
"symfony/http-kernel": "^6.3|^7.0",
"symfony/lock": "^6.3|^7.0",
"symfony/messenger": "^5.4|^6.0|^7.0",
"symfony/property-access": "^5.4|^6.0|^7.0",
"symfony/property-info": "^5.4|^6.0|^7.0",
"symfony/proxy-manager-bridge": "^5.4|^6.0|^7.0",
"symfony/security-core": "^6.0|^7.0",
"symfony/stopwatch": "^5.4|^6.0|^7.0",
"symfony/translation": "^5.4|^6.0|^7.0",
"symfony/uid": "^5.4|^6.0|^7.0",
"symfony/validator": "^5.4|^6.0|^7.0",
"symfony/var-dumper": "^5.4|^6.0|^7.0",
"symfony/cache": "^6.4|^7.0",
"symfony/config": "^6.4|^7.0",
"symfony/dependency-injection": "^6.4|^7.0",
"symfony/doctrine-messenger": "^6.4|^7.0",
"symfony/expression-language": "^6.4|^7.0",
"symfony/form": "^6.4|^7.0",
"symfony/http-kernel": "^6.4|^7.0",
"symfony/lock": "^6.4|^7.0",
"symfony/messenger": "^6.4|^7.0",
"symfony/property-access": "^6.4|^7.0",
"symfony/property-info": "^6.4|^7.0",
"symfony/proxy-manager-bridge": "^6.4|^7.0",
"symfony/security-core": "^6.4|^7.0",
"symfony/stopwatch": "^6.4|^7.0",
"symfony/translation": "^6.4|^7.0",
"symfony/uid": "^6.4|^7.0",
"symfony/validator": "^6.4|^7.0",
"symfony/var-dumper": "^6.4|^7.0",
"doctrine/annotations": "^1.13.1|^2",
"doctrine/collections": "^1.0|^2.0",
"doctrine/data-fixtures": "^1.1",
Expand All @@ -56,17 +56,17 @@
"doctrine/lexer": "<1.1",
"doctrine/orm": "<2.12",
"phpunit/phpunit": "<5.4.3",
"symfony/cache": "<5.4",
"symfony/dependency-injection": "<6.2",
"symfony/form": "<5.4.21|>=6,<6.2.7",
"symfony/http-foundation": "<6.3",
"symfony/http-kernel": "<6.2",
"symfony/lock": "<6.3",
"symfony/messenger": "<5.4",
"symfony/property-info": "<5.4",
"symfony/security-bundle": "<5.4",
"symfony/security-core": "<6.0",
"symfony/validator": "<5.4"
"symfony/cache": "<6.4",
"symfony/dependency-injection": "<6.4",
"symfony/form": "<6.4",
"symfony/http-foundation": "<6.4",
"symfony/http-kernel": "<6.4",
"symfony/lock": "<6.4",
"symfony/messenger": "<6.4",
"symfony/property-info": "<6.4",
"symfony/security-bundle": "<6.4",
"symfony/security-core": "<6.4",
"symfony/validator": "<6.4"
},
"autoload": {
"psr-4": { "Symfony\\Bridge\\Doctrine\\": "" },
Expand Down
24 changes: 12 additions & 12 deletions src/Symfony/Bridge/Monolog/composer.json
Expand Up @@ -16,24 +16,24 @@
}
],
"require": {
"php": ">=8.1",
"php": ">=8.2",
"monolog/monolog": "^1.25.1|^2|^3",
"symfony/service-contracts": "^2.5|^3",
"symfony/http-kernel": "^5.4|^6.0|^7.0"
"symfony/http-kernel": "^6.4|^7.0"
},
"require-dev": {
"symfony/console": "^5.4|^6.0|^7.0",
"symfony/http-client": "^5.4|^6.0|^7.0",
"symfony/security-core": "^6.0|^7.0",
"symfony/var-dumper": "^5.4|^6.0|^7.0",
"symfony/mailer": "^5.4|^6.0|^7.0",
"symfony/mime": "^5.4|^6.0|^7.0",
"symfony/messenger": "^5.4|^6.0|^7.0"
"symfony/console": "^6.4|^7.0",
"symfony/http-client": "^6.4|^7.0",
"symfony/security-core": "^6.4|^7.0",
"symfony/var-dumper": "^6.4|^7.0",
"symfony/mailer": "^6.4|^7.0",
"symfony/mime": "^6.4|^7.0",
"symfony/messenger": "^6.4|^7.0"
},
"conflict": {
"symfony/console": "<5.4",
"symfony/http-foundation": "<5.4",
"symfony/security-core": "<6.0"
"symfony/console": "<6.4",
"symfony/http-foundation": "<6.4",
"symfony/security-core": "<6.4"
},
"autoload": {
"psr-4": { "Symfony\\Bridge\\Monolog\\": "" },
Expand Down
8 changes: 2 additions & 6 deletions src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php
Expand Up @@ -98,13 +98,9 @@
};

if (\PHP_VERSION_ID >= 80000) {
// PHP 8 requires PHPUnit 9.3+, PHP 8.1 requires PHPUnit 9.5+
$PHPUNIT_VERSION = $getEnvVar('SYMFONY_PHPUNIT_VERSION', '9.5') ?: '9.5';
} elseif (\PHP_VERSION_ID >= 70200) {
// PHPUnit 8 requires PHP 7.2+
$PHPUNIT_VERSION = $getEnvVar('SYMFONY_PHPUNIT_VERSION', '8.5') ?: '8.5';
$PHPUNIT_VERSION = $getEnvVar('SYMFONY_PHPUNIT_VERSION', '9.6') ?: '9.6';
} else {
$PHPUNIT_VERSION = $getEnvVar('SYMFONY_PHPUNIT_VERSION', '7.5') ?: '7.5';
$PHPUNIT_VERSION = $getEnvVar('SYMFONY_PHPUNIT_VERSION', '8.5') ?: '8.5';
}

$MAX_PHPUNIT_VERSION = $getEnvVar('SYMFONY_MAX_PHPUNIT_VERSION', false);
Expand Down
6 changes: 3 additions & 3 deletions src/Symfony/Bridge/PhpUnit/composer.json
Expand Up @@ -16,13 +16,13 @@
}
],
"require": {
"php": ">=7.1.3 EVEN ON LATEST SYMFONY VERSIONS TO ALLOW USING",
"php": ">=7.2.5 EVEN ON LATEST SYMFONY VERSIONS TO ALLOW USING",
"php": "THIS BRIDGE WHEN TESTING LOWEST SYMFONY VERSIONS.",
"php": ">=7.1.3"
"php": ">=7.2.5"
},
"require-dev": {
"symfony/deprecation-contracts": "^2.5|^3.0",
"symfony/error-handler": "^5.4|^6.0|^7.0",
"symfony/error-handler": "^5.4|^6.4|^7.0",
"symfony/polyfill-php81": "^1.27"
},
"conflict": {
Expand Down
6 changes: 3 additions & 3 deletions src/Symfony/Bridge/ProxyManager/composer.json
Expand Up @@ -16,13 +16,13 @@
}
],
"require": {
"php": ">=8.1",
"php": ">=8.2",
"friendsofphp/proxy-manager-lts": "^1.0.2",
"symfony/dependency-injection": "^6.3|^7.0",
"symfony/dependency-injection": "^6.4|^7.0",
"symfony/deprecation-contracts": "^2.5|^3"
},
"require-dev": {
"symfony/config": "^6.1|^7.0"
"symfony/config": "^6.4|^7.0"
},
"autoload": {
"psr-4": { "Symfony\\Bridge\\ProxyManager\\": "" },
Expand Down

0 comments on commit cfb451f

Please sign in to comment.