From f1bb33e3a9c0d84c46390da6bc857a8eecf768af Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Mon, 12 Aug 2024 14:39:45 +0200 Subject: [PATCH] debug failures on PHP 8.4 --- .appveyor.yml | 69 ------ .github/workflows/integration-tests.yml | 218 ------------------ .github/workflows/intl-data-tests.yml | 81 ------- .github/workflows/package-tests.yml | 143 ------------ .github/workflows/phpunit-bridge.yml | 38 --- .github/workflows/psalm.yml | 59 ----- .github/workflows/unit-tests.yml | 13 +- .../Tests/Caster/ReflectionCasterTest.php | 4 +- 8 files changed, 5 insertions(+), 620 deletions(-) delete mode 100644 .appveyor.yml delete mode 100644 .github/workflows/integration-tests.yml delete mode 100644 .github/workflows/intl-data-tests.yml delete mode 100644 .github/workflows/package-tests.yml delete mode 100644 .github/workflows/phpunit-bridge.yml delete mode 100644 .github/workflows/psalm.yml diff --git a/.appveyor.yml b/.appveyor.yml deleted file mode 100644 index f848a56342852..0000000000000 --- a/.appveyor.yml +++ /dev/null @@ -1,69 +0,0 @@ -build: false -clone_depth: 2 -clone_folder: c:\projects\symfony - -init: - - SET PATH=c:\php;%PATH% - - SET COMPOSER_NO_INTERACTION=1 - - SET SYMFONY_DEPRECATIONS_HELPER=strict - - SET ANSICON=121x90 (121x90) - - SET SYMFONY_PHPUNIT_DISABLE_RESULT_CACHE=1 - - REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Command Processor" /v DelayedExpansion /t REG_DWORD /d 1 /f - -install: - - mkdir c:\php && cd c:\php - - appveyor DownloadFile https://github.com/symfony/binary-utils/releases/download/v0.1/php-7.2.5-Win32-VC15-x86.zip - - 7z x php-7.2.5-Win32-VC15-x86.zip -y >nul - - cd ext - - appveyor DownloadFile https://github.com/symfony/binary-utils/releases/download/v0.1/php_apcu-5.1.19-7.2-ts-vc15-x86.zip - - 7z x php_apcu-5.1.19-7.2-ts-vc15-x86.zip -y >nul - - appveyor DownloadFile https://github.com/symfony/binary-utils/releases/download/v0.1/php_redis-5.3.2-7.2-ts-vc15-x86.zip - - 7z x php_redis-5.3.2-7.2-ts-vc15-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 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 apc.enable_cli=1 >> php.ini-max - - echo extension=php_intl.dll >> php.ini-max - - echo extension=php_mbstring.dll >> php.ini-max - - echo extension=php_fileinfo.dll >> php.ini-max - - echo extension=php_pdo_sqlite.dll >> php.ini-max - - echo extension=php_curl.dll >> php.ini-max - - echo extension=php_sodium.dll >> php.ini-max - - copy /Y php.ini-max php.ini - - cd c:\projects\symfony - - appveyor DownloadFile https://getcomposer.org/download/latest-stable/composer.phar - - mkdir %APPDATA%\Composer && copy /Y .github\composer-config.json %APPDATA%\Composer\config.json - - git config --global user.email "" - - 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 - - php composer.phar update --no-progress --ansi - - php phpunit install - - choco install memurai-developer - -test_script: - - SET X=0 - - SET SYMFONY_PHPUNIT_SKIPPED_TESTS=phpunit.skipped - - copy /Y c:\php\php.ini-min c:\php\php.ini - - IF %APPVEYOR_REPO_BRANCH:~-2% neq .x (rm -Rf src\Symfony\Bridge\PhpUnit) - - mv src\Symfony\Component\HttpClient\phpunit.xml.dist src\Symfony\Component\HttpClient\phpunit.xml - - php phpunit src\Symfony --exclude-group tty,benchmark,intl-data,network,transient-on-windows || SET X=!errorlevel! - - php phpunit src\Symfony\Component\HttpClient || SET X=!errorlevel! - - copy /Y c:\php\php.ini-max c:\php\php.ini - - php phpunit src\Symfony --exclude-group tty,benchmark,intl-data,network,transient-on-windows || SET X=!errorlevel! - - php phpunit src\Symfony\Component\HttpClient || SET X=!errorlevel! - - exit %X% diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml deleted file mode 100644 index 7994d7dcc44b4..0000000000000 --- a/.github/workflows/integration-tests.yml +++ /dev/null @@ -1,218 +0,0 @@ -name: Integration - -on: - push: - pull_request: - -defaults: - run: - shell: bash - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - - tests: - name: Integration - runs-on: Ubuntu-20.04 - - strategy: - matrix: - php: ['7.2', '8.0'] - fail-fast: false - - services: - postgres: - image: postgres:10.6-alpine - ports: - - 5432:5432 - env: - POSTGRES_PASSWORD: 'password' - ldap: - image: bitnami/openldap - ports: - - 3389:3389 - env: - LDAP_ADMIN_USERNAME: admin - LDAP_ADMIN_PASSWORD: symfony - LDAP_ROOT: dc=symfony,dc=com - LDAP_PORT_NUMBER: 3389 - LDAP_USERS: a - LDAP_PASSWORDS: a - redis: - image: redis:6.2.8 - ports: - - 16379:6379 - redis-authenticated: - image: redis:6.2.8 - ports: - - 16380:6379 - env: - REDIS_ARGS: "--requirepass p@ssword" - redis-cluster: - image: grokzen/redis-cluster:6.2.8 - ports: - - 7000:7000 - - 7001:7001 - - 7002:7002 - - 7003:7003 - - 7004:7004 - - 7005:7005 - - 7006:7006 - env: - STANDALONE: 1 - redis-sentinel: - image: bitnami/redis-sentinel:6.2.8 - ports: - - 26379:26379 - env: - REDIS_MASTER_HOST: redis - REDIS_MASTER_SET: redis_sentinel - REDIS_SENTINEL_QUORUM: 1 - memcached: - image: memcached:1.6.5 - ports: - - 11211:11211 - rabbitmq: - image: rabbitmq:3.8.3 - ports: - - 5672:5672 - mongodb: - image: mongo - ports: - - 27017:27017 - couchbase: - image: couchbase:6.5.1 - ports: - - 8091:8091 - - 8092:8092 - - 8093:8093 - - 8094:8094 - - 11210:11210 - sqs: - image: localstack/localstack:3.0.2 - ports: - - 4566:4566 - zookeeper: - image: zookeeper - kafka: - image: bitnami/kafka:3.7 - ports: - - 9092:9092 - env: - KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE: false - ALLOW_PLAINTEXT_LISTENER: 'yes' - KAFKA_CFG_ADVERTISED_LISTENERS: 'PLAINTEXT://127.0.0.1:9092' - KAFKA_CFG_LISTENERS: 'PLAINTEXT://:9092' - KAFKA_CFG_ZOOKEEPER_CONNECT: 'zookeeper:2181' - options: --name=kafka - - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Init Kafka topics - run: | - docker exec kafka /opt/bitnami/kafka/bin/kafka-topics.sh --create --topic test-topic --bootstrap-server kafka:9092 - - - name: Install system dependencies - run: | - echo "::group::apt-get update" - sudo wget -O - https://packages.couchbase.com/clients/c/repos/deb/couchbase.key | sudo apt-key add - - echo "deb https://packages.couchbase.com/clients/c/repos/deb/ubuntu2004 focal focal/main" | sudo tee /etc/apt/sources.list.d/couchbase.list - sudo apt-get update - echo "::endgroup::" - - echo "::group::install tools & libraries" - sudo apt-get install librdkafka-dev redis-server libcouchbase-dev - sudo -- sh -c 'echo unixsocket /var/run/redis/redis-server.sock >> /etc/redis/redis.conf' - sudo -- sh -c 'echo unixsocketperm 777 >> /etc/redis/redis.conf' - sudo service redis-server restart - echo "::endgroup::" - - - name: Configure Couchbase - run: | - curl -s -u 'username=Administrator&password=111111' -X POST http://localhost:8091/node/controller/setupServices -d 'services=kv%2Cn1ql%2Cindex%2Cfts' - curl -s -X POST http://localhost:8091/settings/web -d 'username=Administrator&password=111111&port=SAME' - curl -s -u Administrator:111111 -X POST http://localhost:8091/pools/default/buckets -d 'ramQuotaMB=100&bucketType=ephemeral&name=cache' - curl -s -u Administrator:111111 -X POST http://localhost:8091/pools/default -d 'memoryQuota=256' - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - coverage: "none" - extensions: "json,couchbase-3.2.2,memcached,mongodb-1.10.0,redis-5.3.4,rdkafka,xsl,ldap" - ini-values: date.timezone=UTC,memory_limit=-1,default_socket_timeout=10,session.gc_probability=0,apc.enable_cli=1,zend.assertions=1 - php-version: "${{ matrix.php }}" - tools: pecl - - - name: Display versions - run: | - php -r 'foreach (get_loaded_extensions() as $extension) echo $extension . " " . phpversion($extension) . PHP_EOL;' - php -i - - - name: Load fixtures - uses: docker://bitnami/openldap - with: - entrypoint: /bin/bash - args: -c "(/opt/bitnami/openldap/bin/ldapwhoami -H ldap://ldap:3389 -D cn=admin,dc=symfony,dc=com -w symfony||sleep 5) && /opt/bitnami/openldap/bin/ldapadd -H ldap://ldap:3389 -D cn=admin,dc=symfony,dc=com -w symfony -f src/Symfony/Component/Ldap/Tests/Fixtures/data/fixtures.ldif && /opt/bitnami/openldap/bin/ldapdelete -H ldap://ldap:3389 -D cn=admin,dc=symfony,dc=com -w symfony cn=a,ou=users,dc=symfony,dc=com" - - - 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 - echo COMPOSER_ROOT_VERSION=$COMPOSER_ROOT_VERSION >> $GITHUB_ENV - [[ "${{ matrix.php }}" < '8.0' ]] && echo SYMFONY_DEPRECATIONS_HELPER="baselineFile=$(pwd)/.github/deprecations-baseline.json" >> $GITHUB_ENV - - echo "::group::composer update" - composer require --dev --no-update mongodb/mongodb - composer update --no-progress --ansi - echo "::endgroup::" - - echo "::group::install phpunit" - ./phpunit install - echo "::endgroup::" - - - name: Check for changes in translation files - id: changed-translation-files - run: | - echo 'changed='$((git diff --quiet HEAD~1 HEAD -- 'src/**/Resources/translations/*.xlf' || (echo 'true' && exit 1)) && echo 'false') >> $GITHUB_OUTPUT - - - name: Check Translation Status - if: steps.changed-translation-files.outputs.changed == 'true' - run: | - php src/Symfony/Component/Translation/Resources/bin/translation-status.php -v - php .github/sync-translations.php - git diff --exit-code src/ || (echo '::error::Run "php .github/sync-translations.php" to fix XLIFF files.' && exit 1) - - - name: Run tests - run: ./phpunit --group integration -v - env: - REDIS_HOST: 'localhost:16379' - REDIS_AUTHENTICATED_HOST: 'localhost:16380' - REDIS_CLUSTER_HOSTS: 'localhost:7000 localhost:7001 localhost:7002 localhost:7003 localhost:7004 localhost:7005' - REDIS_SENTINEL_HOSTS: 'localhost:26379 localhost:26379 localhost:26379' - REDIS_SENTINEL_SERVICE: redis_sentinel - MESSENGER_REDIS_DSN: redis://127.0.0.1:7006/messages - MESSENGER_AMQP_DSN: amqp://localhost/%2f/messages - MESSENGER_SQS_DSN: "sqs://localhost:4566/messages?sslmode=disable&poll_timeout=0.01" - MESSENGER_SQS_FIFO_QUEUE_DSN: "sqs://localhost:4566/messages.fifo?sslmode=disable&poll_timeout=0.01" - KAFKA_BROKER: 127.0.0.1:9092 - POSTGRES_HOST: localhost - - #- name: Run HTTP push tests - # if: matrix.php == '8.0' - # 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 - # docker run --rm -e COMPOSER_ROOT_VERSION -v $(pwd):/app -v $(which composer):/usr/local/bin/composer -v $(which vulcain):/usr/local/bin/vulcain -w /app php:8.0-alpine ./phpunit src/Symfony/Component/HttpClient/Tests/CurlHttpClientTest.php --filter testHttp2Push - # sudo rm -rf .phpunit - # [ -d .phpunit.bak ] && mv .phpunit.bak .phpunit diff --git a/.github/workflows/intl-data-tests.yml b/.github/workflows/intl-data-tests.yml deleted file mode 100644 index ac2b8d41237ad..0000000000000 --- a/.github/workflows/intl-data-tests.yml +++ /dev/null @@ -1,81 +0,0 @@ -name: Intl data - -on: - push: - paths: - - 'src/Symfony/Component/Intl/*.php' - - 'src/Symfony/Component/Intl/Util/GitRepository.php' - - 'src/Symfony/Component/Intl/Resources/data/**' - - 'src/Symfony/Component/Intl/Tests/*Test.php' - - 'src/Symfony/Component/Intl/Tests/Util/GitRepositoryTest.php' - pull_request: - paths: - - 'src/Symfony/Component/Intl/*.php' - - 'src/Symfony/Component/Intl/Util/GitRepository.php' - - 'src/Symfony/Component/Intl/Resources/data/**' - - 'src/Symfony/Component/Intl/Tests/*Test.php' - - 'src/Symfony/Component/Intl/Tests/Util/GitRepositoryTest.php' - -defaults: - run: - shell: bash - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - tests: - name: Intl data - runs-on: Ubuntu-20.04 - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Install system dependencies - run: | - echo "::group::apt-get update" - sudo apt-get update - echo "::endgroup::" - - echo "::group::install tools & libraries" - sudo apt-get install icu-devtools - echo "::endgroup::" - - - name: Define the ICU version - run: | - SYMFONY_ICU_VERSION=$(php -r 'require "src/Symfony/Component/Intl/Intl.php"; echo Symfony\Component\Intl\Intl::getIcuStubVersion();') - echo "SYMFONY_ICU_VERSION=$SYMFONY_ICU_VERSION" >> $GITHUB_ENV - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - coverage: "none" - extensions: "zip,intl-${{env.SYMFONY_ICU_VERSION}}" - ini-values: "memory_limit=-1" - php-version: "7.4" - - - 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 - echo COMPOSER_ROOT_VERSION=$COMPOSER_ROOT_VERSION >> $GITHUB_ENV - - echo "::group::composer update" - composer update --no-progress --ansi - echo "::endgroup::" - - echo "::group::install phpunit" - ./phpunit install - echo "::endgroup::" - - - name: Report the ICU version - run: uconv -V && php -i | grep 'ICU version' - - - name: Run intl-data tests - run: ./phpunit --group intl-data -v diff --git a/.github/workflows/package-tests.yml b/.github/workflows/package-tests.yml deleted file mode 100644 index 69f22dab44a9f..0000000000000 --- a/.github/workflows/package-tests.yml +++ /dev/null @@ -1,143 +0,0 @@ -name: Verify Packages - -on: - pull_request: - paths: - - src/** - -permissions: - contents: read - -jobs: - verify: - name: Verify Packages - runs-on: Ubuntu-20.04 - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Fetch branch from where the PR started - run: git fetch --no-tags --prune --depth=1 origin +refs/heads/*:refs/remotes/origin/* - - - name: Find packages - id: find-packages - run: echo "packages=$(php .github/get-modified-packages.php $(find src/Symfony -mindepth 2 -type f -name composer.json -printf '%h\n' | jq -R -s -c 'split("\n")[:-1]') $(git diff --name-only origin/${{ github.base_ref }} HEAD | grep src/ | jq -R -s -c 'split("\n")[:-1]'))" >> $GITHUB_OUTPUT - - - name: Verify meta files are correct - run: | - ok=0 - - _file_exist() { - if [ ! -f "${1}" ]; then - echo "File ${1} does not exist" - return 1 - fi - } - - _file_not_exist() { - if [ -f "${1}" ]; then - echo "File ${1} should not be here" - return 1 - fi - } - - _correct_license_file() { - FIRST_LINE="Copyright (c) $(date +"%Y")-present Fabien Potencier" - PACKAGE_FIRST_LINE=$(head -1 ${1}) - if [[ "$FIRST_LINE" != "$PACKAGE_FIRST_LINE" ]]; then - echo "First line of the license file is wrong. Maybe it is the wrong year?" - return 1 - fi - - TEMPLATE=$(tail -n +2 LICENSE) - PACKAGE_LICENSE=$(tail -n +2 ${1}) - if [[ "$TEMPLATE" != "$PACKAGE_LICENSE" ]]; then - echo "Wrong content in license file" - return 1 - fi - } - - json='${{ steps.find-packages.outputs.packages }}' - for package in $(echo "${json}" | jq -r '.[] | @base64'); do - _jq() { - echo ${package} | base64 --decode | jq -r ${1} - } - - DIR=$(_jq '.directory') - NAME=$(_jq '.name') - echo "::group::$NAME" - TYPE=$(_jq '.type') - localExit=0 - - if [ $TYPE != 'contract' ] && [ $TYPE != 'contracts' ]; then - _file_exist $DIR/.gitattributes || localExit=1 - fi - _file_exist $DIR/.gitignore || localExit=1 - _file_exist $DIR/CHANGELOG.md || localExit=1 - _file_exist $DIR/LICENSE || localExit=1 - if [ $TYPE != 'contract' ]; then - _file_exist $DIR/phpunit.xml.dist || localExit=1 - fi - _file_exist $DIR/README.md || localExit=1 - _file_not_exist $DIR/phpunit.xml || localExit=1 - - if [ $(_jq '.new') == true ]; then - echo "Verifying new package" - _correct_license_file $DIR/LICENSE || localExit=1 - - if [ $TYPE != 'component_bridge' ]; then - if [ ! $(cat composer.json | jq -e ".replace.\"$NAME\"|test(\"self.version\")") ]; then - echo "Composer.json's replace section needs to contain $NAME" - localExit=1 - fi - fi - fi - - ok=$(( $localExit || $ok )) - echo ::endgroup:: - if [ $localExit -ne 0 ]; then - echo "::error::$NAME failed" - fi - done - - exit $ok - - name: Verify symfony/deprecation-contracts requirements - run: | - set +e - - ok=0 - json='${{ steps.find-packages.outputs.packages }}' - for package in $(echo "${json}" | jq -r '.[] | @base64'); do - _jq() { - echo ${package} | base64 --decode | jq -r ${1} - } - - NAME=$(_jq '.name') - if [[ $NAME = 'symfony/deprecation-contracts' || $NAME = 'symfony/contracts' ]]; then - continue - fi - - echo "::group::$NAME" - DIR=$(_jq '.directory') - localExit=0 - grep -rq 'trigger_deprecation(' --include=*.php --exclude-dir=Tests/ --exclude-dir=Bridge/ $DIR - triggersDeprecation=$? - if [[ $triggersDeprecation -eq 0 && $(_jq '.requires_deprecation_contracts') == false ]]; then - errorMessage="::error::$NAME does not require symfony/deprecation-contracts but triggers at least one deprecation" - localExit=1 - elif [[ $triggersDeprecation -eq 1 && $(_jq '.requires_deprecation_contracts') == true ]]; then - errorMessage="::error::$NAME requires symfony/deprecation-contracts but does not trigger any deprecation" - localExit=1 - elif [[ $triggersDeprecation -ne 0 && $triggersDeprecation -ne 1 ]]; then - echo "::error::grep failed" - exit 2 - fi - - ok=$(( $localExit || $ok )) - echo ::endgroup:: - if [ $localExit -ne 0 ]; then - echo $errorMessage - fi - done - - exit $ok diff --git a/.github/workflows/phpunit-bridge.yml b/.github/workflows/phpunit-bridge.yml deleted file mode 100644 index f63c02bc31925..0000000000000 --- a/.github/workflows/phpunit-bridge.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Lint PhpUnitBridge - -on: - push: - paths: - - 'src/Symfony/Bridge/PhpUnit/**' - pull_request: - paths: - - 'src/Symfony/Bridge/PhpUnit/**' - -defaults: - run: - shell: bash - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - lint: - name: Lint PhpUnitBridge - runs-on: Ubuntu-20.04 - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - coverage: "none" - php-version: "7.1" - - - 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 {} diff --git a/.github/workflows/psalm.yml b/.github/workflows/psalm.yml deleted file mode 100644 index 9524faefab71d..0000000000000 --- a/.github/workflows/psalm.yml +++ /dev/null @@ -1,59 +0,0 @@ -name: Psalm - -on: - pull_request: ~ - -defaults: - run: - shell: bash - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - psalm: - name: Psalm - runs-on: Ubuntu-20.04 - - env: - php-version: '8.1' - steps: - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ env.php-version }} - ini-values: "memory_limit=-1" - coverage: none - - - name: Checkout target branch - uses: actions/checkout@v4 - with: - ref: ${{ github.base_ref }} - - - name: Checkout PR - uses: actions/checkout@v4 - - - 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 - composer remove --dev --no-update --no-interaction symfony/phpunit-bridge - composer require --no-progress --ansi --no-plugins psalm/phar:@stable phpunit/phpunit:^9.5 php-http/discovery psr/event-dispatcher mongodb/mongodb jetbrains/phpstorm-stubs - - - name: Generate Psalm baseline - run: | - git checkout composer.json - git checkout -m ${{ github.base_ref }} - cat .github/psalm/stubs/SetUpTearDownTrait.php > src/Symfony/Bridge/PhpUnit/SetUpTearDownTrait.php - - ./vendor/bin/psalm.phar --set-baseline=.github/psalm/psalm.baseline.xml --no-progress - git checkout -m FETCH_HEAD - - - name: Psalm - run: | - ./vendor/bin/psalm.phar --no-progress || ./vendor/bin/psalm.phar --output-format=github --no-progress diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index 969835cccdde1..e5497159c7e8b 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -26,13 +26,6 @@ jobs: strategy: matrix: include: - - php: '7.2' - - php: '7.4' - - php: '8.2' - mode: high-deps - - php: '8.2' - mode: low-deps - - php: '8.3' - php: '8.4' extensions: amqp,apcu,igbinary,intl,mbstring,memcached,redis #mode: experimental @@ -112,14 +105,14 @@ jobs: SYMFONY_VERSION=$(echo "$SYMFONY_VERSIONS" | grep -FB1 /$SYMFONY_VERSION | head -n 1 | sed s/.//) git fetch --depth=2 origin $SYMFONY_VERSION git checkout -m FETCH_HEAD - echo COMPONENTS=$(find src/Symfony -mindepth 2 -type f -name phpunit.xml.dist -printf '%h ') >> $GITHUB_ENV + echo COMPONENTS=src/Symfony/Component/VarDumper >> $GITHUB_ENV fi # Skip the phpunit-bridge on bugfix-branches when not in *-deps mode if [[ ! "${{ matrix.mode }}" = *-deps && $SYMFONY_VERSION != $SYMFONY_FEATURE_BRANCH ]]; then - echo COMPONENTS=$(find src/Symfony -mindepth 2 -type f -name phpunit.xml.dist -not -wholename '*/Bridge/PhpUnit/*' | xargs -I{} dirname {}) >> $GITHUB_ENV + echo COMPONENTS=src/Symfony/Component/VarDumper >> $GITHUB_ENV else - echo COMPONENTS=$(find src/Symfony -mindepth 2 -type f -name phpunit.xml.dist | xargs -I{} dirname {}) >> $GITHUB_ENV + echo COMPONENTS=src/Symfony/Component/VarDumper >> $GITHUB_ENV fi # Legacy tests are skipped when deps=high and when the current branch version has not the same major version number as the next one diff --git a/src/Symfony/Component/VarDumper/Tests/Caster/ReflectionCasterTest.php b/src/Symfony/Component/VarDumper/Tests/Caster/ReflectionCasterTest.php index a87fa55c8fa8f..2c809ccc2d7ae 100644 --- a/src/Symfony/Component/VarDumper/Tests/Caster/ReflectionCasterTest.php +++ b/src/Symfony/Component/VarDumper/Tests/Caster/ReflectionCasterTest.php @@ -594,9 +594,9 @@ function: "Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::baz" %s: { %sGeneratorDemo.php:14 { Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo->baz() + › + › public function baz() › { - › yield from bar(); - › } } Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo->baz() {} %A}