From d88dd13e431554acd372379dad5eceff54c94dc8 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sun, 4 Oct 2020 09:20:11 +0200 Subject: [PATCH 001/156] Update CHANGELOG for 4.4.15 --- CHANGELOG-4.4.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/CHANGELOG-4.4.md b/CHANGELOG-4.4.md index bfd9af706376f..9b3ef80dc1c16 100644 --- a/CHANGELOG-4.4.md +++ b/CHANGELOG-4.4.md @@ -7,6 +7,23 @@ in 4.4 minor versions. To get the diff for a specific change, go to https://github.com/symfony/symfony/commit/XXX where XXX is the change hash To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v4.4.0...v4.4.1 +* 4.4.15 (2020-10-04) + + * bug #36291 [Lock] Fix StoreFactory to accept same DSN syntax as AbstractAdapter (Jontsa) + * bug #38390 [Serializer][Minor] Fix circular reference exception message (bad limit displayed) (l-vo) + * bug #38388 [HttpClient] Always "buffer" empty responses (nicolas-grekas) + * bug #38380 [Form] propagate validation groups to subforms (johanderuijter, xabbuh) + * bug #38377 Ignore more deprecations for Mockery mocks (fancyweb) + * bug #38375 [HttpClient] fix using proxies with NativeHttpClient (nicolas-grekas) + * bug #38372 [Routing] fix using !important and defaults/reqs in inline route definitions (nicolas-grekas) + * bug #38373 [ErrorHandler][DebugClassLoader] Do not check Mockery mocks classes (fancyweb) + * bug #38368 [HttpClient] Fix using https with proxies (bohanyang) + * bug #38350 [TwigBundle] Only remove kernel exception listener if twig is used (dmolineus) + * bug #38360 [BrowserKit] Cookie expiration at current timestamp (iquito) + * bug #38358 [Messenger] Fix redis connection error message (alexander-schranz) + * bug #38343 Revert "bug #38063 [FrameworkBundle] generate preload.php in src/ to make opcache.preload predictable" (nicolas-grekas) + * bug #38336 [PhpUnitBridge] Fixed class_alias() for PHPUnit\Framework\Error\Error (stevegrunwell) + * 4.4.14 (2020-09-27) * bug #38248 [HttpClient] Allow bearer token with colon (stephanvierkant) From e42cfee4511bf82bd6c4906af0eb430d409c48f7 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sun, 4 Oct 2020 09:48:13 +0200 Subject: [PATCH 002/156] Update VERSION for 4.4.15 --- src/Symfony/Component/HttpKernel/Kernel.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/Kernel.php b/src/Symfony/Component/HttpKernel/Kernel.php index 7816b6ce3bcd5..26720d4b0e34e 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -76,12 +76,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl private static $freshCache = []; - const VERSION = '4.4.15-DEV'; + const VERSION = '4.4.15'; const VERSION_ID = 40415; const MAJOR_VERSION = 4; const MINOR_VERSION = 4; const RELEASE_VERSION = 15; - const EXTRA_VERSION = 'DEV'; + const EXTRA_VERSION = ''; const END_OF_MAINTENANCE = '11/2022'; const END_OF_LIFE = '11/2023'; From 8cb3387ce2a04db6c0dbd377f05e23f10e9279b4 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sun, 4 Oct 2020 09:55:30 +0200 Subject: [PATCH 003/156] Bump Symfony version to 4.4.16 --- src/Symfony/Component/HttpKernel/Kernel.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/Kernel.php b/src/Symfony/Component/HttpKernel/Kernel.php index 26720d4b0e34e..d5bf69ea73192 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -76,12 +76,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl private static $freshCache = []; - const VERSION = '4.4.15'; - const VERSION_ID = 40415; + const VERSION = '4.4.16-DEV'; + const VERSION_ID = 40416; const MAJOR_VERSION = 4; const MINOR_VERSION = 4; - const RELEASE_VERSION = 15; - const EXTRA_VERSION = ''; + const RELEASE_VERSION = 16; + const EXTRA_VERSION = 'DEV'; const END_OF_MAINTENANCE = '11/2022'; const END_OF_LIFE = '11/2023'; From a6103adcf90a26aa536f4400bb09d0cf087cf27f Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sun, 4 Oct 2020 10:00:52 +0200 Subject: [PATCH 004/156] Bump Symfony version to 5.1.8 --- src/Symfony/Component/HttpKernel/Kernel.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/Kernel.php b/src/Symfony/Component/HttpKernel/Kernel.php index 8ae9cfc6c25b5..0ae79ee10d603 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -73,12 +73,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl private static $freshCache = []; - const VERSION = '5.1.7'; - const VERSION_ID = 50107; + const VERSION = '5.1.8-DEV'; + const VERSION_ID = 50108; const MAJOR_VERSION = 5; const MINOR_VERSION = 1; - const RELEASE_VERSION = 7; - const EXTRA_VERSION = ''; + const RELEASE_VERSION = 8; + const EXTRA_VERSION = 'DEV'; const END_OF_MAINTENANCE = '01/2021'; const END_OF_LIFE = '01/2021'; From bfde15b728e942d2f38ad838588b5906a4ae37b7 Mon Sep 17 00:00:00 2001 From: "M. Vondano" Date: Sun, 4 Oct 2020 12:25:24 +0200 Subject: [PATCH 005/156] Fix type annotation --- src/Symfony/Component/ExpressionLanguage/Token.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/ExpressionLanguage/Token.php b/src/Symfony/Component/ExpressionLanguage/Token.php index 4517335bbc739..60dc32d7f8f91 100644 --- a/src/Symfony/Component/ExpressionLanguage/Token.php +++ b/src/Symfony/Component/ExpressionLanguage/Token.php @@ -54,7 +54,7 @@ public function __toString() /** * Tests the current token for a type and/or a value. * - * @param array|int $type The type to test + * @param string $type The type to test * @param string|null $value The token value * * @return bool From e2461c90d2367a491b085a2b1c9476e9df14c2ce Mon Sep 17 00:00:00 2001 From: Wouter de Jong Date: Sun, 4 Oct 2020 14:01:13 +0200 Subject: [PATCH 006/156] Added Stopwatch example to the README --- src/Symfony/Component/Stopwatch/README.md | 31 ++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Stopwatch/README.md b/src/Symfony/Component/Stopwatch/README.md index eb0ebb3fa8ab0..4c3cb7ecb3172 100644 --- a/src/Symfony/Component/Stopwatch/README.md +++ b/src/Symfony/Component/Stopwatch/README.md @@ -3,10 +3,39 @@ Stopwatch Component The Stopwatch component provides a way to profile code. +Getting Started +--------------- + +``` +$ composer require symfony/stopwatch +``` + +```php +use Symfony\Component\Stopwatch\Stopwatch; + +$stopwatch = new Stopwatch(); + +// optionally group events into sections (e.g. phases of the execution) +$stopwatch->openSection(); + +// starts event named 'eventName' +$stopwatch->start('eventName'); + +// ... run your code here + +// optionally, start a new "lap" time +$stopwatch->lap('foo'); + +// ... run your code here + +$event = $stopwatch->stop('eventName'); + +$stopwatch->stopSection('phase_1'); +``` + Resources --------- - * [Documentation](https://symfony.com/doc/current/components/stopwatch.html) * [Contributing](https://symfony.com/doc/current/contributing/index.html) * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) From bfcf65f61cf81911f9e1fe70f3c97677674d4c0c Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sun, 4 Oct 2020 18:34:28 +0200 Subject: [PATCH 007/156] Change test --- .../Component/HttpFoundation/Tests/File/UploadedFileTest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/HttpFoundation/Tests/File/UploadedFileTest.php b/src/Symfony/Component/HttpFoundation/Tests/File/UploadedFileTest.php index 2ca309963c187..9d260e7adef29 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/File/UploadedFileTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/File/UploadedFileTest.php @@ -82,12 +82,12 @@ public function testGuessClientExtensionWithIncorrectMimeType() $file = new UploadedFile( __DIR__.'/Fixtures/test.gif', 'original.gif', - 'image/jpeg', + 'image/png', filesize(__DIR__.'/Fixtures/test.gif'), null ); - $this->assertEquals('jpeg', $file->guessClientExtension()); + $this->assertEquals('png', $file->guessClientExtension()); } public function testCaseSensitiveMimeType() From de6a852b46f14ec70c434c7e021bbd3bfc1525dc Mon Sep 17 00:00:00 2001 From: "Alexander M. Turek" Date: Sun, 4 Oct 2020 21:57:32 +0200 Subject: [PATCH 008/156] Use PHPUnit 9.4 to run the test suite. --- phpunit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpunit b/phpunit index e1b1aea0e46c5..af8cc7f7520e8 100755 --- a/phpunit +++ b/phpunit @@ -15,7 +15,7 @@ if (!getenv('SYMFONY_PHPUNIT_VERSION')) { if (\PHP_VERSION_ID < 70300) { putenv('SYMFONY_PHPUNIT_VERSION=8.5'); } else { - putenv('SYMFONY_PHPUNIT_VERSION=9.3'); + putenv('SYMFONY_PHPUNIT_VERSION=9.4'); } } elseif (\PHP_VERSION_ID >= 70000) { putenv('SYMFONY_PHPUNIT_VERSION=6.5'); From 25e5fa661146d8b4c626a1ac1464050893ddbded Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Tue, 6 Oct 2020 09:11:09 +0200 Subject: [PATCH 009/156] Move to the new default 5.x branch --- .github/PULL_REQUEST_TEMPLATE.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 7b86916e7bc14..df9db03fa8bca 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,6 +1,6 @@ | Q | A | ------------- | --- -| Branch? | master for features / 3.4, 4.4 or 5.1 for bug fixes +| Branch? | 5.x for features / 3.4, 4.4 or 5.1 for bug fixes | Bug fix? | yes/no | New feature? | yes/no | Deprecations? | yes/no @@ -16,5 +16,5 @@ Additionally (see https://symfony.com/releases): - Never break backward compatibility (see https://symfony.com/bc). - Bug fixes must be submitted against the lowest maintained branch where they apply (lowest branches are regularly merged to upper ones so they get the fixes too.) - - Features and deprecations must be submitted against branch master. + - Features and deprecations must be submitted against branch 5.x. --> From 9d40c796c48658783b3af26a2fe12f8631c02409 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 6 Oct 2020 13:13:36 +0200 Subject: [PATCH 010/156] Remove "branch-alias", populate "version" --- .appveyor.yml | 1 - .github/build-packages.php | 12 +++++------- .travis.yml | 14 +++++++------- composer.json | 6 +----- src/Symfony/Bridge/Doctrine/composer.json | 6 +----- src/Symfony/Bridge/Monolog/composer.json | 6 +----- src/Symfony/Bridge/ProxyManager/composer.json | 6 +----- src/Symfony/Bridge/Twig/composer.json | 6 +----- src/Symfony/Bundle/DebugBundle/composer.json | 6 +----- src/Symfony/Bundle/FrameworkBundle/composer.json | 6 +----- src/Symfony/Bundle/SecurityBundle/composer.json | 6 +----- src/Symfony/Bundle/TwigBundle/composer.json | 6 +----- src/Symfony/Bundle/WebProfilerBundle/composer.json | 6 +----- src/Symfony/Bundle/WebServerBundle/composer.json | 6 +----- src/Symfony/Component/Asset/composer.json | 6 +----- src/Symfony/Component/BrowserKit/composer.json | 6 +----- src/Symfony/Component/Cache/composer.json | 6 +----- src/Symfony/Component/ClassLoader/composer.json | 6 +----- src/Symfony/Component/Config/composer.json | 6 +----- src/Symfony/Component/Console/composer.json | 6 +----- src/Symfony/Component/CssSelector/composer.json | 6 +----- src/Symfony/Component/Debug/composer.json | 6 +----- .../Component/DependencyInjection/composer.json | 6 +----- src/Symfony/Component/DomCrawler/composer.json | 6 +----- src/Symfony/Component/Dotenv/composer.json | 6 +----- .../Component/EventDispatcher/composer.json | 6 +----- .../Component/ExpressionLanguage/composer.json | 6 +----- src/Symfony/Component/Filesystem/composer.json | 6 +----- src/Symfony/Component/Finder/composer.json | 6 +----- src/Symfony/Component/Form/composer.json | 6 +----- src/Symfony/Component/HttpFoundation/composer.json | 6 +----- src/Symfony/Component/HttpKernel/composer.json | 6 +----- src/Symfony/Component/Inflector/composer.json | 6 +----- src/Symfony/Component/Intl/composer.json | 6 +----- src/Symfony/Component/Ldap/composer.json | 6 +----- src/Symfony/Component/Lock/composer.json | 6 +----- .../Component/OptionsResolver/composer.json | 6 +----- src/Symfony/Component/Process/composer.json | 6 +----- src/Symfony/Component/PropertyAccess/composer.json | 6 +----- src/Symfony/Component/PropertyInfo/composer.json | 6 +----- src/Symfony/Component/Routing/composer.json | 6 +----- src/Symfony/Component/Security/Core/composer.json | 6 +----- src/Symfony/Component/Security/Csrf/composer.json | 6 +----- src/Symfony/Component/Security/Guard/composer.json | 6 +----- src/Symfony/Component/Security/Http/composer.json | 6 +----- src/Symfony/Component/Security/composer.json | 6 +----- src/Symfony/Component/Serializer/composer.json | 6 +----- src/Symfony/Component/Stopwatch/composer.json | 6 +----- src/Symfony/Component/Templating/composer.json | 6 +----- src/Symfony/Component/Translation/composer.json | 6 +----- src/Symfony/Component/Validator/composer.json | 6 +----- src/Symfony/Component/VarDumper/composer.json | 6 +----- src/Symfony/Component/WebLink/composer.json | 6 +----- src/Symfony/Component/Workflow/composer.json | 6 +----- src/Symfony/Component/Yaml/composer.json | 6 +----- 55 files changed, 64 insertions(+), 275 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 188dfe78a2493..bcb87210ad87b 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -57,7 +57,6 @@ install: - git config --global user.email "" - git config --global user.name "Symfony" - php .github/build-packages.php "HEAD^" src\Symfony\Bridge\PhpUnit - - IF %APPVEYOR_REPO_BRANCH%==master (SET COMPOSER_ROOT_VERSION=dev-master) ELSE (SET COMPOSER_ROOT_VERSION=%APPVEYOR_REPO_BRANCH%.x-dev) - php composer.phar config platform.php 5.5.9 - php composer.phar update --no-progress --no-suggest --ansi - php phpunit install diff --git a/.github/build-packages.php b/.github/build-packages.php index 81a309911135c..95ff7fc1a8601 100644 --- a/.github/build-packages.php +++ b/.github/build-packages.php @@ -50,22 +50,20 @@ passthru("cd $dir && git init && git add . && git commit -q -m - && git archive -o package.tar HEAD && rm .git/ -Rf"); } - if (!isset($package->extra->{'branch-alias'}->{'dev-master'})) { - echo "Missing \"dev-master\" branch-alias in composer.json extra.\n"; + if (!isset($package->version)) { + echo "Missing \"version\" in composer.json.\n"; exit(1); } - $package->version = str_replace('-dev', '.x-dev', $package->extra->{'branch-alias'}->{'dev-master'}); + $package->version = str_replace('-dev', '.x-dev', $package->version); $package->dist['type'] = 'tar'; $package->dist['url'] = 'file://'.str_replace(DIRECTORY_SEPARATOR, '/', dirname(__DIR__))."/$dir/package.tar"; $packages[$package->name][$package->version] = $package; - $versions = @file_get_contents('https://repo.packagist.org/p/'.$package->name.'.json') ?: sprintf('{"packages":{"%s":{"dev-master":%s}}}', $package->name, file_get_contents($dir.'/composer.json')); + $versions = @file_get_contents('https://repo.packagist.org/p/'.$package->name.'.json') ?: sprintf('{"packages":{"%s":{"%s":%s}}}', $package->name, $package->version, file_get_contents($dir.'/composer.json')); $versions = json_decode($versions)->packages->{$package->name}; - if (isset($versions->{'dev-master'}) && $package->version === str_replace('-dev', '.x-dev', $versions->{'dev-master'}->extra->{'branch-alias'}->{'dev-master'})) { - unset($versions->{'dev-master'}); - } + unset($versions->{'dev-master'}); foreach ($versions as $v => $package) { $packages[$package->name] += array($v => $package); diff --git a/.travis.yml b/.travis.yml index 0382b1646f7e0..48479d4a9e432 100644 --- a/.travis.yml +++ b/.travis.yml @@ -228,7 +228,7 @@ install: git fetch --depth=2 origin refs/pull/$SYMFONY_PHPUNIT_BRIDGE_PR/head git rm -rq src/Symfony/Bridge/PhpUnit git checkout -q FETCH_HEAD -- src/Symfony/Bridge/PhpUnit - export SYMFONY_VERSION=$(cat src/Symfony/Bridge/PhpUnit/composer.json | grep '^ *"dev-master". *"[1-9]' | grep -o '[0-9.]*') + export SYMFONY_VERSION=$(cat src/Symfony/Bridge/PhpUnit/composer.json | grep '^ *"version": *"[1-9]' | grep -o '[0-9.]*') sed -i 's/"symfony\/phpunit-bridge": ".*"/"symfony\/phpunit-bridge": "'$SYMFONY_VERSION'.x@dev"/' composer.json rm -rf .phpunit fi @@ -254,20 +254,20 @@ install: fi - | - # For the master branch, when deps=high, the version before master is checked out and tested with the locally patched components - if [[ $deps = high && $TRAVIS_BRANCH = master ]]; then + # For the .x branch, when deps=high, the version before .x is checked out and tested with the locally patched components + if [[ $deps = high && $TRAVIS_BRANCH = *.x ]]; then export FLIP='🙃' export SYMFONY_VERSION=$(git ls-remote --heads | grep -o '/[1-9].*' | tail -n 1 | sed s/.//) && git fetch --depth=2 origin $SYMFONY_VERSION && git checkout -m FETCH_HEAD && export COMPONENTS=$(find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist -printf '%h\n' | sort) else - export SYMFONY_VERSION=$(cat composer.json | grep '^ *"dev-master". *"[1-9]' | grep -o '[0-9.]*') + export SYMFONY_VERSION=$(cat composer.json | grep '^ *"version". *"[1-9]' | grep -o '[0-9.]*') fi - | - # Skip the phpunit-bridge on not-master branches when $deps is empty - if [[ ! $deps && $TRAVIS_BRANCH != master ]]; then + # Skip the phpunit-bridge on bugfix-only branches when $deps is empty + if [[ ! $deps && ! $TRAVIS_BRANCH = *.x ]]; then export COMPONENTS=$(find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist -not -wholename '*/Bridge/PhpUnit/*' -printf '%h\n' | sort) fi @@ -289,7 +289,7 @@ install: - | # Legacy tests are skipped when deps=high and when the current branch version has not the same major version number as the next one - [[ $deps = high && ${SYMFONY_VERSION%.*} != $(git show $(git ls-remote --heads | grep -FA1 /$SYMFONY_VERSION | tail -n 1):composer.json | grep '^ *"dev-master". *"[1-9]' | grep -o '[0-9]*' | head -n 1) ]] && export LEGACY=,legacy + [[ $deps = high && ${SYMFONY_VERSION%.*} != $(git show $(git ls-remote --heads | grep -FA1 /$SYMFONY_VERSION | tail -n 1):composer.json | grep '^ *"version". *"[1-9]' | grep -o '[0-9]*' | head -n 1) ]] && export LEGACY=,legacy export COMPOSER_ROOT_VERSION=$SYMFONY_VERSION.x-dev if [[ $deps ]]; then mv composer.json.phpunit composer.json; fi diff --git a/composer.json b/composer.json index 565d5f298ff44..d256a82569cea 100644 --- a/composer.json +++ b/composer.json @@ -134,9 +134,5 @@ "files": [ "src/Symfony/Component/VarDumper/Resources/functions/dump.php" ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Bridge/Doctrine/composer.json b/src/Symfony/Bridge/Doctrine/composer.json index 0ad66ccf72a2c..d2d74e4bc6343 100644 --- a/src/Symfony/Bridge/Doctrine/composer.json +++ b/src/Symfony/Bridge/Doctrine/composer.json @@ -57,9 +57,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Bridge/Monolog/composer.json b/src/Symfony/Bridge/Monolog/composer.json index d2791d4ec5831..b4204017e78c8 100644 --- a/src/Symfony/Bridge/Monolog/composer.json +++ b/src/Symfony/Bridge/Monolog/composer.json @@ -43,9 +43,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Bridge/ProxyManager/composer.json b/src/Symfony/Bridge/ProxyManager/composer.json index 7e34cd90b5139..fc64ae4b367be 100644 --- a/src/Symfony/Bridge/ProxyManager/composer.json +++ b/src/Symfony/Bridge/ProxyManager/composer.json @@ -30,9 +30,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Bridge/Twig/composer.json b/src/Symfony/Bridge/Twig/composer.json index f4fb1c98a4f1b..359a6a7da9085 100644 --- a/src/Symfony/Bridge/Twig/composer.json +++ b/src/Symfony/Bridge/Twig/composer.json @@ -67,9 +67,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Bundle/DebugBundle/composer.json b/src/Symfony/Bundle/DebugBundle/composer.json index c5224da2e45b8..c78cc7a055b9f 100644 --- a/src/Symfony/Bundle/DebugBundle/composer.json +++ b/src/Symfony/Bundle/DebugBundle/composer.json @@ -41,9 +41,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Bundle/FrameworkBundle/composer.json b/src/Symfony/Bundle/FrameworkBundle/composer.json index c9750dc8dfa25..652dea2d987c9 100644 --- a/src/Symfony/Bundle/FrameworkBundle/composer.json +++ b/src/Symfony/Bundle/FrameworkBundle/composer.json @@ -91,9 +91,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Bundle/SecurityBundle/composer.json b/src/Symfony/Bundle/SecurityBundle/composer.json index 84b624ec7b5fe..afe5a6934c479 100644 --- a/src/Symfony/Bundle/SecurityBundle/composer.json +++ b/src/Symfony/Bundle/SecurityBundle/composer.json @@ -62,9 +62,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Bundle/TwigBundle/composer.json b/src/Symfony/Bundle/TwigBundle/composer.json index f48e3bc078655..51615a302070d 100644 --- a/src/Symfony/Bundle/TwigBundle/composer.json +++ b/src/Symfony/Bundle/TwigBundle/composer.json @@ -51,9 +51,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Bundle/WebProfilerBundle/composer.json b/src/Symfony/Bundle/WebProfilerBundle/composer.json index 341f320fbf754..2519fa09644c2 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/composer.json +++ b/src/Symfony/Bundle/WebProfilerBundle/composer.json @@ -45,9 +45,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Bundle/WebServerBundle/composer.json b/src/Symfony/Bundle/WebServerBundle/composer.json index 9a96b41cd001a..9e68b902a1d70 100644 --- a/src/Symfony/Bundle/WebServerBundle/composer.json +++ b/src/Symfony/Bundle/WebServerBundle/composer.json @@ -35,9 +35,5 @@ "symfony/expression-language": "For using the filter option of the log server." }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Asset/composer.json b/src/Symfony/Component/Asset/composer.json index ec5dd156fb9e6..1ba4221a75d59 100644 --- a/src/Symfony/Component/Asset/composer.json +++ b/src/Symfony/Component/Asset/composer.json @@ -32,9 +32,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/BrowserKit/composer.json b/src/Symfony/Component/BrowserKit/composer.json index 82c0a8ec35014..2a4c2f39092f5 100644 --- a/src/Symfony/Component/BrowserKit/composer.json +++ b/src/Symfony/Component/BrowserKit/composer.json @@ -33,9 +33,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Cache/composer.json b/src/Symfony/Component/Cache/composer.json index 652e9a4a539c3..f4b7949ea5eb1 100644 --- a/src/Symfony/Component/Cache/composer.json +++ b/src/Symfony/Component/Cache/composer.json @@ -42,9 +42,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/ClassLoader/composer.json b/src/Symfony/Component/ClassLoader/composer.json index 97f150fbf1385..0990c9def0e80 100644 --- a/src/Symfony/Component/ClassLoader/composer.json +++ b/src/Symfony/Component/ClassLoader/composer.json @@ -32,9 +32,5 @@ "/Tests/" ] }, - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Config/composer.json b/src/Symfony/Component/Config/composer.json index c04294dd4cba5..25c944cace722 100644 --- a/src/Symfony/Component/Config/composer.json +++ b/src/Symfony/Component/Config/composer.json @@ -40,9 +40,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Console/composer.json b/src/Symfony/Component/Console/composer.json index d994a460451c6..b5e8b73affd31 100644 --- a/src/Symfony/Component/Console/composer.json +++ b/src/Symfony/Component/Console/composer.json @@ -48,9 +48,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/CssSelector/composer.json b/src/Symfony/Component/CssSelector/composer.json index 56ab35b81408a..2ef698f2729a5 100644 --- a/src/Symfony/Component/CssSelector/composer.json +++ b/src/Symfony/Component/CssSelector/composer.json @@ -29,9 +29,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Debug/composer.json b/src/Symfony/Component/Debug/composer.json index f98a5d07b5d6c..4993aada25686 100644 --- a/src/Symfony/Component/Debug/composer.json +++ b/src/Symfony/Component/Debug/composer.json @@ -32,9 +32,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/DependencyInjection/composer.json b/src/Symfony/Component/DependencyInjection/composer.json index 6eaa3fd089cff..02dbcae695214 100644 --- a/src/Symfony/Component/DependencyInjection/composer.json +++ b/src/Symfony/Component/DependencyInjection/composer.json @@ -47,9 +47,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/DomCrawler/composer.json b/src/Symfony/Component/DomCrawler/composer.json index ed50e6ee6b4f1..25d361253fd11 100644 --- a/src/Symfony/Component/DomCrawler/composer.json +++ b/src/Symfony/Component/DomCrawler/composer.json @@ -33,9 +33,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Dotenv/composer.json b/src/Symfony/Component/Dotenv/composer.json index e35339c98e111..fe20e9378c7d3 100644 --- a/src/Symfony/Component/Dotenv/composer.json +++ b/src/Symfony/Component/Dotenv/composer.json @@ -28,9 +28,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/EventDispatcher/composer.json b/src/Symfony/Component/EventDispatcher/composer.json index eab9464257b58..89bf5c9273705 100644 --- a/src/Symfony/Component/EventDispatcher/composer.json +++ b/src/Symfony/Component/EventDispatcher/composer.json @@ -40,9 +40,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/ExpressionLanguage/composer.json b/src/Symfony/Component/ExpressionLanguage/composer.json index ee441851343ed..d8773139aac35 100644 --- a/src/Symfony/Component/ExpressionLanguage/composer.json +++ b/src/Symfony/Component/ExpressionLanguage/composer.json @@ -27,9 +27,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Filesystem/composer.json b/src/Symfony/Component/Filesystem/composer.json index 0fc8043cc092a..ca568bbeb7a75 100644 --- a/src/Symfony/Component/Filesystem/composer.json +++ b/src/Symfony/Component/Filesystem/composer.json @@ -26,9 +26,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Finder/composer.json b/src/Symfony/Component/Finder/composer.json index de19826f73b31..40fae1bd75db6 100644 --- a/src/Symfony/Component/Finder/composer.json +++ b/src/Symfony/Component/Finder/composer.json @@ -25,9 +25,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Form/composer.json b/src/Symfony/Component/Form/composer.json index 5e2010acbe543..121534083299e 100644 --- a/src/Symfony/Component/Form/composer.json +++ b/src/Symfony/Component/Form/composer.json @@ -58,9 +58,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/HttpFoundation/composer.json b/src/Symfony/Component/HttpFoundation/composer.json index f6c6f2e623fe6..8a96aa81ddcf6 100644 --- a/src/Symfony/Component/HttpFoundation/composer.json +++ b/src/Symfony/Component/HttpFoundation/composer.json @@ -30,9 +30,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/HttpKernel/composer.json b/src/Symfony/Component/HttpKernel/composer.json index 7f471c680ed40..b1d4b7bc61902 100644 --- a/src/Symfony/Component/HttpKernel/composer.json +++ b/src/Symfony/Component/HttpKernel/composer.json @@ -66,9 +66,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Inflector/composer.json b/src/Symfony/Component/Inflector/composer.json index 06696a938bd9f..9b2f5885a9a66 100644 --- a/src/Symfony/Component/Inflector/composer.json +++ b/src/Symfony/Component/Inflector/composer.json @@ -33,9 +33,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Intl/composer.json b/src/Symfony/Component/Intl/composer.json index 582049066431d..fd7ec1c3eca27 100644 --- a/src/Symfony/Component/Intl/composer.json +++ b/src/Symfony/Component/Intl/composer.json @@ -41,9 +41,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Ldap/composer.json b/src/Symfony/Component/Ldap/composer.json index 6e4e266923db5..9859d13e7c155 100644 --- a/src/Symfony/Component/Ldap/composer.json +++ b/src/Symfony/Component/Ldap/composer.json @@ -28,9 +28,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Lock/composer.json b/src/Symfony/Component/Lock/composer.json index 9a6e768723bb9..f75fcecbd93e3 100644 --- a/src/Symfony/Component/Lock/composer.json +++ b/src/Symfony/Component/Lock/composer.json @@ -30,9 +30,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/OptionsResolver/composer.json b/src/Symfony/Component/OptionsResolver/composer.json index 895847ea5add7..63f86816fd8a4 100644 --- a/src/Symfony/Component/OptionsResolver/composer.json +++ b/src/Symfony/Component/OptionsResolver/composer.json @@ -25,9 +25,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Process/composer.json b/src/Symfony/Component/Process/composer.json index b8867db368038..134bab277ffcf 100644 --- a/src/Symfony/Component/Process/composer.json +++ b/src/Symfony/Component/Process/composer.json @@ -25,9 +25,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/PropertyAccess/composer.json b/src/Symfony/Component/PropertyAccess/composer.json index d6e7afb69c48c..245d2923fa290 100644 --- a/src/Symfony/Component/PropertyAccess/composer.json +++ b/src/Symfony/Component/PropertyAccess/composer.json @@ -33,9 +33,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/PropertyInfo/composer.json b/src/Symfony/Component/PropertyInfo/composer.json index f19e3d1e2a2d7..c73aa05c43483 100644 --- a/src/Symfony/Component/PropertyInfo/composer.json +++ b/src/Symfony/Component/PropertyInfo/composer.json @@ -51,9 +51,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Routing/composer.json b/src/Symfony/Component/Routing/composer.json index e623e294fdf74..1e152fd07b65f 100644 --- a/src/Symfony/Component/Routing/composer.json +++ b/src/Symfony/Component/Routing/composer.json @@ -46,9 +46,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Security/Core/composer.json b/src/Symfony/Component/Security/Core/composer.json index c23755a97c549..694213f701a10 100644 --- a/src/Symfony/Component/Security/Core/composer.json +++ b/src/Symfony/Component/Security/Core/composer.json @@ -43,9 +43,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Security/Csrf/composer.json b/src/Symfony/Component/Security/Csrf/composer.json index 5b27fee3a4591..2645957c26661 100644 --- a/src/Symfony/Component/Security/Csrf/composer.json +++ b/src/Symfony/Component/Security/Csrf/composer.json @@ -37,9 +37,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Security/Guard/composer.json b/src/Symfony/Component/Security/Guard/composer.json index 5d38065ff63bf..117afc2448cda 100644 --- a/src/Symfony/Component/Security/Guard/composer.json +++ b/src/Symfony/Component/Security/Guard/composer.json @@ -30,9 +30,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Security/Http/composer.json b/src/Symfony/Component/Security/Http/composer.json index 449e07ed8f680..177764a5f8380 100644 --- a/src/Symfony/Component/Security/Http/composer.json +++ b/src/Symfony/Component/Security/Http/composer.json @@ -44,9 +44,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Security/composer.json b/src/Symfony/Component/Security/composer.json index 44eedcc9de12e..78064a0077496 100644 --- a/src/Symfony/Component/Security/composer.json +++ b/src/Symfony/Component/Security/composer.json @@ -59,9 +59,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Serializer/composer.json b/src/Symfony/Component/Serializer/composer.json index 964f1b7bfd6ba..330d794d3273a 100644 --- a/src/Symfony/Component/Serializer/composer.json +++ b/src/Symfony/Component/Serializer/composer.json @@ -55,9 +55,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Stopwatch/composer.json b/src/Symfony/Component/Stopwatch/composer.json index 8c3397878725f..e9f9692e63044 100644 --- a/src/Symfony/Component/Stopwatch/composer.json +++ b/src/Symfony/Component/Stopwatch/composer.json @@ -25,9 +25,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Templating/composer.json b/src/Symfony/Component/Templating/composer.json index 0bc6ea0b4e7ee..9c2803c8c412f 100644 --- a/src/Symfony/Component/Templating/composer.json +++ b/src/Symfony/Component/Templating/composer.json @@ -32,9 +32,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Translation/composer.json b/src/Symfony/Component/Translation/composer.json index 93c1236f27323..71ce68647f4e0 100644 --- a/src/Symfony/Component/Translation/composer.json +++ b/src/Symfony/Component/Translation/composer.json @@ -46,9 +46,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Validator/composer.json b/src/Symfony/Component/Validator/composer.json index 287e3c2d18c4c..cbc236bc0cb45 100644 --- a/src/Symfony/Component/Validator/composer.json +++ b/src/Symfony/Component/Validator/composer.json @@ -62,9 +62,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/VarDumper/composer.json b/src/Symfony/Component/VarDumper/composer.json index d31e0b495abb9..7677937ddbc2e 100644 --- a/src/Symfony/Component/VarDumper/composer.json +++ b/src/Symfony/Component/VarDumper/composer.json @@ -39,9 +39,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/WebLink/composer.json b/src/Symfony/Component/WebLink/composer.json index 03d079e467994..04aac7f394707 100644 --- a/src/Symfony/Component/WebLink/composer.json +++ b/src/Symfony/Component/WebLink/composer.json @@ -35,9 +35,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Workflow/composer.json b/src/Symfony/Component/Workflow/composer.json index 09e173a130090..a5e4e7025d128 100644 --- a/src/Symfony/Component/Workflow/composer.json +++ b/src/Symfony/Component/Workflow/composer.json @@ -35,9 +35,5 @@ "psr-4": { "Symfony\\Component\\Workflow\\": "" } }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } diff --git a/src/Symfony/Component/Yaml/composer.json b/src/Symfony/Component/Yaml/composer.json index 933547da02195..780163ad26b4c 100644 --- a/src/Symfony/Component/Yaml/composer.json +++ b/src/Symfony/Component/Yaml/composer.json @@ -35,9 +35,5 @@ ] }, "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } + "version": "3.4-dev" } From f4a1885b8d42a4ebc00f19a418674bac1103d582 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 6 Oct 2020 13:42:19 +0200 Subject: [PATCH 011/156] [appveyor] fix checking for the .x branch --- .appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.appveyor.yml b/.appveyor.yml index bcb87210ad87b..3f379ce4173b2 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -65,7 +65,7 @@ test_script: - SET X=0 - cd c:\php && copy /Y php.ini-min php.ini - cd c:\projects\symfony - - IF %APPVEYOR_REPO_BRANCH% neq master (rm -Rf src\Symfony\Bridge\PhpUnit) + - IF %APPVEYOR_REPO_BRANCH:~-2% neq .x (rm -Rf src\Symfony\Bridge\PhpUnit) - php phpunit src\Symfony --exclude-group benchmark,intl-data || SET X=!errorlevel! - cd c:\php && 7z x php-5.5.9-nts-Win32-VC11-x86.zip -y >nul && copy /Y php.ini-min php.ini - cd c:\projects\symfony From 2f7751f0dfe69e17a61c5f3a03a631215856c89b Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 6 Oct 2020 13:56:58 +0200 Subject: [PATCH 012/156] fix merge --- src/Symfony/Component/Mailer/Bridge/Amazon/composer.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/Symfony/Component/Mailer/Bridge/Amazon/composer.json b/src/Symfony/Component/Mailer/Bridge/Amazon/composer.json index 704fc51dcd5bb..4e953cc22b5ad 100644 --- a/src/Symfony/Component/Mailer/Bridge/Amazon/composer.json +++ b/src/Symfony/Component/Mailer/Bridge/Amazon/composer.json @@ -28,10 +28,6 @@ "/Tests/" ] }, -<<<<<<< HEAD:src/Symfony/Component/Mailer/Bridge/Amazon/composer.json "minimum-stability": "dev", "version": "4.4-dev" -======= - "version": "3.4-dev" ->>>>>>> 3.4:src/Symfony/Component/ClassLoader/composer.json } From fd99eb26d893390b45c214f4884fea090f1c1178 Mon Sep 17 00:00:00 2001 From: Gilbertsoft <25326036+gilbertsoft@users.noreply.github.com> Date: Tue, 6 Oct 2020 14:06:01 +0200 Subject: [PATCH 013/156] [Mime] Fix serialization of RawMessage --- src/Symfony/Component/Mime/RawMessage.php | 2 +- .../Component/Mime/Tests/RawMessageTest.php | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Mime/RawMessage.php b/src/Symfony/Component/Mime/RawMessage.php index 79a27e9fcc69d..66788d8ad526d 100644 --- a/src/Symfony/Component/Mime/RawMessage.php +++ b/src/Symfony/Component/Mime/RawMessage.php @@ -78,7 +78,7 @@ final public function unserialize($serialized) public function __serialize(): array { - return [$this->message]; + return [$this->toString()]; } public function __unserialize(array $data): void diff --git a/src/Symfony/Component/Mime/Tests/RawMessageTest.php b/src/Symfony/Component/Mime/Tests/RawMessageTest.php index 5d1588bff00fa..26e7605baba2d 100644 --- a/src/Symfony/Component/Mime/Tests/RawMessageTest.php +++ b/src/Symfony/Component/Mime/Tests/RawMessageTest.php @@ -32,4 +32,18 @@ public function testToString() $this->assertEquals('some string', $message->toString()); $this->assertEquals('some string', implode('', iterator_to_array($message->toIterable()))); } + + public function testSerialization() + { + $message = new RawMessage('string'); + $this->assertEquals('string', unserialize(serialize($message))->toString()); + // calling methods more than once work + $this->assertEquals('string', unserialize(serialize($message))->toString()); + + $message = new RawMessage(new \ArrayObject(['some', ' ', 'string'])); + $message = new RawMessage($message->toIterable()); + $this->assertEquals('some string', unserialize(serialize($message))->toString()); + // calling methods more than once work + $this->assertEquals('some string', unserialize(serialize($message))->toString()); + } } From 8f714a2fd6eef5aac8978359c5836b8e2232988a Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 6 Oct 2020 16:37:11 +0200 Subject: [PATCH 014/156] Update versions in composer.json --- .github/build-packages.php | 1 - .travis.yml | 4 ++-- composer.json | 2 +- src/Symfony/Bridge/Doctrine/composer.json | 2 +- src/Symfony/Bridge/Monolog/composer.json | 2 +- src/Symfony/Bridge/PhpUnit/composer.json | 6 ++---- src/Symfony/Bridge/ProxyManager/composer.json | 2 +- src/Symfony/Bridge/Twig/composer.json | 2 +- src/Symfony/Bundle/DebugBundle/composer.json | 2 +- src/Symfony/Bundle/FrameworkBundle/composer.json | 2 +- src/Symfony/Bundle/SecurityBundle/composer.json | 2 +- src/Symfony/Bundle/TwigBundle/composer.json | 2 +- src/Symfony/Bundle/WebProfilerBundle/composer.json | 2 +- src/Symfony/Bundle/WebServerBundle/composer.json | 2 +- src/Symfony/Component/Asset/composer.json | 2 +- src/Symfony/Component/BrowserKit/composer.json | 2 +- src/Symfony/Component/Cache/composer.json | 2 +- src/Symfony/Component/ClassLoader/composer.json | 2 +- src/Symfony/Component/Config/composer.json | 2 +- src/Symfony/Component/Console/composer.json | 2 +- src/Symfony/Component/CssSelector/composer.json | 2 +- src/Symfony/Component/Debug/composer.json | 2 +- src/Symfony/Component/DependencyInjection/composer.json | 2 +- src/Symfony/Component/DomCrawler/composer.json | 2 +- src/Symfony/Component/Dotenv/composer.json | 2 +- src/Symfony/Component/EventDispatcher/composer.json | 2 +- src/Symfony/Component/ExpressionLanguage/composer.json | 2 +- src/Symfony/Component/Filesystem/composer.json | 2 +- src/Symfony/Component/Finder/composer.json | 2 +- src/Symfony/Component/Form/composer.json | 2 +- src/Symfony/Component/HttpFoundation/composer.json | 2 +- src/Symfony/Component/HttpKernel/composer.json | 2 +- src/Symfony/Component/Inflector/composer.json | 2 +- src/Symfony/Component/Intl/composer.json | 2 +- src/Symfony/Component/Ldap/composer.json | 2 +- src/Symfony/Component/Lock/composer.json | 2 +- src/Symfony/Component/OptionsResolver/composer.json | 2 +- src/Symfony/Component/Process/composer.json | 2 +- src/Symfony/Component/PropertyAccess/composer.json | 2 +- src/Symfony/Component/PropertyInfo/composer.json | 2 +- src/Symfony/Component/Routing/composer.json | 2 +- src/Symfony/Component/Security/Core/composer.json | 2 +- src/Symfony/Component/Security/Csrf/composer.json | 2 +- src/Symfony/Component/Security/Guard/composer.json | 2 +- src/Symfony/Component/Security/Http/composer.json | 2 +- src/Symfony/Component/Security/composer.json | 2 +- src/Symfony/Component/Serializer/composer.json | 2 +- src/Symfony/Component/Stopwatch/composer.json | 2 +- src/Symfony/Component/Templating/composer.json | 2 +- src/Symfony/Component/Translation/composer.json | 2 +- src/Symfony/Component/Validator/composer.json | 2 +- src/Symfony/Component/VarDumper/composer.json | 2 +- src/Symfony/Component/WebLink/composer.json | 2 +- src/Symfony/Component/Workflow/composer.json | 2 +- src/Symfony/Component/Yaml/composer.json | 2 +- 55 files changed, 56 insertions(+), 59 deletions(-) diff --git a/.github/build-packages.php b/.github/build-packages.php index 95ff7fc1a8601..eb5cc6757e87c 100644 --- a/.github/build-packages.php +++ b/.github/build-packages.php @@ -54,7 +54,6 @@ echo "Missing \"version\" in composer.json.\n"; exit(1); } - $package->version = str_replace('-dev', '.x-dev', $package->version); $package->dist['type'] = 'tar'; $package->dist['url'] = 'file://'.str_replace(DIRECTORY_SEPARATOR, '/', dirname(__DIR__))."/$dir/package.tar"; diff --git a/.travis.yml b/.travis.yml index 48479d4a9e432..ab57c5518ce1b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -228,7 +228,7 @@ install: git fetch --depth=2 origin refs/pull/$SYMFONY_PHPUNIT_BRIDGE_PR/head git rm -rq src/Symfony/Bridge/PhpUnit git checkout -q FETCH_HEAD -- src/Symfony/Bridge/PhpUnit - export SYMFONY_VERSION=$(cat src/Symfony/Bridge/PhpUnit/composer.json | grep '^ *"version": *"[1-9]' | grep -o '[0-9.]*') + export SYMFONY_VERSION=$(cat src/Symfony/Bridge/PhpUnit/composer.json | grep '^ *"version": *"[1-9]' | grep -o '[0-9.]*[0-9]') sed -i 's/"symfony\/phpunit-bridge": ".*"/"symfony\/phpunit-bridge": "'$SYMFONY_VERSION'.x@dev"/' composer.json rm -rf .phpunit fi @@ -262,7 +262,7 @@ install: git checkout -m FETCH_HEAD && export COMPONENTS=$(find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist -printf '%h\n' | sort) else - export SYMFONY_VERSION=$(cat composer.json | grep '^ *"version". *"[1-9]' | grep -o '[0-9.]*') + export SYMFONY_VERSION=$(cat composer.json | grep '^ *"version". *"[1-9]' | grep -o '[0-9.]*[0-9]') fi - | diff --git a/composer.json b/composer.json index d256a82569cea..c4ea5408e4729 100644 --- a/composer.json +++ b/composer.json @@ -134,5 +134,5 @@ "files": [ "src/Symfony/Component/VarDumper/Resources/functions/dump.php" ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Bridge/Doctrine/composer.json b/src/Symfony/Bridge/Doctrine/composer.json index d2d74e4bc6343..97078c4b037b4 100644 --- a/src/Symfony/Bridge/Doctrine/composer.json +++ b/src/Symfony/Bridge/Doctrine/composer.json @@ -57,5 +57,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Bridge/Monolog/composer.json b/src/Symfony/Bridge/Monolog/composer.json index b4204017e78c8..4b4c63b691a14 100644 --- a/src/Symfony/Bridge/Monolog/composer.json +++ b/src/Symfony/Bridge/Monolog/composer.json @@ -43,5 +43,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Bridge/PhpUnit/composer.json b/src/Symfony/Bridge/PhpUnit/composer.json index 30b3cc23f63d8..f797578bb3288 100644 --- a/src/Symfony/Bridge/PhpUnit/composer.json +++ b/src/Symfony/Bridge/PhpUnit/composer.json @@ -38,12 +38,10 @@ ], "minimum-stability": "dev", "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - }, "thanks": { "name": "phpunit/phpunit", "url": "https://github.com/sebastianbergmann/phpunit" } - } + }, + "version": "3.4.x-dev" } diff --git a/src/Symfony/Bridge/ProxyManager/composer.json b/src/Symfony/Bridge/ProxyManager/composer.json index fc64ae4b367be..fb8be1edec9eb 100644 --- a/src/Symfony/Bridge/ProxyManager/composer.json +++ b/src/Symfony/Bridge/ProxyManager/composer.json @@ -30,5 +30,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Bridge/Twig/composer.json b/src/Symfony/Bridge/Twig/composer.json index 359a6a7da9085..c661c947a2b4f 100644 --- a/src/Symfony/Bridge/Twig/composer.json +++ b/src/Symfony/Bridge/Twig/composer.json @@ -67,5 +67,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Bundle/DebugBundle/composer.json b/src/Symfony/Bundle/DebugBundle/composer.json index c78cc7a055b9f..7f67ccf169b85 100644 --- a/src/Symfony/Bundle/DebugBundle/composer.json +++ b/src/Symfony/Bundle/DebugBundle/composer.json @@ -41,5 +41,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Bundle/FrameworkBundle/composer.json b/src/Symfony/Bundle/FrameworkBundle/composer.json index 652dea2d987c9..060849fdb340f 100644 --- a/src/Symfony/Bundle/FrameworkBundle/composer.json +++ b/src/Symfony/Bundle/FrameworkBundle/composer.json @@ -91,5 +91,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Bundle/SecurityBundle/composer.json b/src/Symfony/Bundle/SecurityBundle/composer.json index afe5a6934c479..ad524906239bb 100644 --- a/src/Symfony/Bundle/SecurityBundle/composer.json +++ b/src/Symfony/Bundle/SecurityBundle/composer.json @@ -62,5 +62,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Bundle/TwigBundle/composer.json b/src/Symfony/Bundle/TwigBundle/composer.json index 51615a302070d..3498946daadc4 100644 --- a/src/Symfony/Bundle/TwigBundle/composer.json +++ b/src/Symfony/Bundle/TwigBundle/composer.json @@ -51,5 +51,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Bundle/WebProfilerBundle/composer.json b/src/Symfony/Bundle/WebProfilerBundle/composer.json index 2519fa09644c2..81da6b217b23a 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/composer.json +++ b/src/Symfony/Bundle/WebProfilerBundle/composer.json @@ -45,5 +45,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Bundle/WebServerBundle/composer.json b/src/Symfony/Bundle/WebServerBundle/composer.json index 9e68b902a1d70..d6f22240170e7 100644 --- a/src/Symfony/Bundle/WebServerBundle/composer.json +++ b/src/Symfony/Bundle/WebServerBundle/composer.json @@ -35,5 +35,5 @@ "symfony/expression-language": "For using the filter option of the log server." }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Asset/composer.json b/src/Symfony/Component/Asset/composer.json index 1ba4221a75d59..394c5792da411 100644 --- a/src/Symfony/Component/Asset/composer.json +++ b/src/Symfony/Component/Asset/composer.json @@ -32,5 +32,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/BrowserKit/composer.json b/src/Symfony/Component/BrowserKit/composer.json index 2a4c2f39092f5..5c65eb6a71a96 100644 --- a/src/Symfony/Component/BrowserKit/composer.json +++ b/src/Symfony/Component/BrowserKit/composer.json @@ -33,5 +33,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Cache/composer.json b/src/Symfony/Component/Cache/composer.json index f4b7949ea5eb1..474d67232fefb 100644 --- a/src/Symfony/Component/Cache/composer.json +++ b/src/Symfony/Component/Cache/composer.json @@ -42,5 +42,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/ClassLoader/composer.json b/src/Symfony/Component/ClassLoader/composer.json index 0990c9def0e80..f291e200a41f5 100644 --- a/src/Symfony/Component/ClassLoader/composer.json +++ b/src/Symfony/Component/ClassLoader/composer.json @@ -32,5 +32,5 @@ "/Tests/" ] }, - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Config/composer.json b/src/Symfony/Component/Config/composer.json index 25c944cace722..02c990204c283 100644 --- a/src/Symfony/Component/Config/composer.json +++ b/src/Symfony/Component/Config/composer.json @@ -40,5 +40,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Console/composer.json b/src/Symfony/Component/Console/composer.json index b5e8b73affd31..9135a767a1397 100644 --- a/src/Symfony/Component/Console/composer.json +++ b/src/Symfony/Component/Console/composer.json @@ -48,5 +48,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/CssSelector/composer.json b/src/Symfony/Component/CssSelector/composer.json index 2ef698f2729a5..603db8c9b59e7 100644 --- a/src/Symfony/Component/CssSelector/composer.json +++ b/src/Symfony/Component/CssSelector/composer.json @@ -29,5 +29,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Debug/composer.json b/src/Symfony/Component/Debug/composer.json index 4993aada25686..b9d87042ff8a3 100644 --- a/src/Symfony/Component/Debug/composer.json +++ b/src/Symfony/Component/Debug/composer.json @@ -32,5 +32,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/DependencyInjection/composer.json b/src/Symfony/Component/DependencyInjection/composer.json index 02dbcae695214..904983daafc34 100644 --- a/src/Symfony/Component/DependencyInjection/composer.json +++ b/src/Symfony/Component/DependencyInjection/composer.json @@ -47,5 +47,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/DomCrawler/composer.json b/src/Symfony/Component/DomCrawler/composer.json index 25d361253fd11..6a5cb973b394d 100644 --- a/src/Symfony/Component/DomCrawler/composer.json +++ b/src/Symfony/Component/DomCrawler/composer.json @@ -33,5 +33,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Dotenv/composer.json b/src/Symfony/Component/Dotenv/composer.json index fe20e9378c7d3..fec7f35ce8e09 100644 --- a/src/Symfony/Component/Dotenv/composer.json +++ b/src/Symfony/Component/Dotenv/composer.json @@ -28,5 +28,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/EventDispatcher/composer.json b/src/Symfony/Component/EventDispatcher/composer.json index 89bf5c9273705..6f0c13ba92133 100644 --- a/src/Symfony/Component/EventDispatcher/composer.json +++ b/src/Symfony/Component/EventDispatcher/composer.json @@ -40,5 +40,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/ExpressionLanguage/composer.json b/src/Symfony/Component/ExpressionLanguage/composer.json index d8773139aac35..becba884dfd12 100644 --- a/src/Symfony/Component/ExpressionLanguage/composer.json +++ b/src/Symfony/Component/ExpressionLanguage/composer.json @@ -27,5 +27,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Filesystem/composer.json b/src/Symfony/Component/Filesystem/composer.json index ca568bbeb7a75..a5dde06150710 100644 --- a/src/Symfony/Component/Filesystem/composer.json +++ b/src/Symfony/Component/Filesystem/composer.json @@ -26,5 +26,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Finder/composer.json b/src/Symfony/Component/Finder/composer.json index 40fae1bd75db6..d0820916eb1a0 100644 --- a/src/Symfony/Component/Finder/composer.json +++ b/src/Symfony/Component/Finder/composer.json @@ -25,5 +25,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Form/composer.json b/src/Symfony/Component/Form/composer.json index 121534083299e..7bfe4ddf9eb58 100644 --- a/src/Symfony/Component/Form/composer.json +++ b/src/Symfony/Component/Form/composer.json @@ -58,5 +58,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/HttpFoundation/composer.json b/src/Symfony/Component/HttpFoundation/composer.json index 8a96aa81ddcf6..4abed072251ff 100644 --- a/src/Symfony/Component/HttpFoundation/composer.json +++ b/src/Symfony/Component/HttpFoundation/composer.json @@ -30,5 +30,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/HttpKernel/composer.json b/src/Symfony/Component/HttpKernel/composer.json index b1d4b7bc61902..a2961007d719e 100644 --- a/src/Symfony/Component/HttpKernel/composer.json +++ b/src/Symfony/Component/HttpKernel/composer.json @@ -66,5 +66,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Inflector/composer.json b/src/Symfony/Component/Inflector/composer.json index 9b2f5885a9a66..e282009f7d37a 100644 --- a/src/Symfony/Component/Inflector/composer.json +++ b/src/Symfony/Component/Inflector/composer.json @@ -33,5 +33,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Intl/composer.json b/src/Symfony/Component/Intl/composer.json index fd7ec1c3eca27..2adf30c513a85 100644 --- a/src/Symfony/Component/Intl/composer.json +++ b/src/Symfony/Component/Intl/composer.json @@ -41,5 +41,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Ldap/composer.json b/src/Symfony/Component/Ldap/composer.json index 9859d13e7c155..9e1f5f5057249 100644 --- a/src/Symfony/Component/Ldap/composer.json +++ b/src/Symfony/Component/Ldap/composer.json @@ -28,5 +28,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Lock/composer.json b/src/Symfony/Component/Lock/composer.json index f75fcecbd93e3..b155099334ece 100644 --- a/src/Symfony/Component/Lock/composer.json +++ b/src/Symfony/Component/Lock/composer.json @@ -30,5 +30,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/OptionsResolver/composer.json b/src/Symfony/Component/OptionsResolver/composer.json index 63f86816fd8a4..1f3df00ad7ddb 100644 --- a/src/Symfony/Component/OptionsResolver/composer.json +++ b/src/Symfony/Component/OptionsResolver/composer.json @@ -25,5 +25,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Process/composer.json b/src/Symfony/Component/Process/composer.json index 134bab277ffcf..c6367ccd007e7 100644 --- a/src/Symfony/Component/Process/composer.json +++ b/src/Symfony/Component/Process/composer.json @@ -25,5 +25,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/PropertyAccess/composer.json b/src/Symfony/Component/PropertyAccess/composer.json index 245d2923fa290..7f8eb025cbfae 100644 --- a/src/Symfony/Component/PropertyAccess/composer.json +++ b/src/Symfony/Component/PropertyAccess/composer.json @@ -33,5 +33,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/PropertyInfo/composer.json b/src/Symfony/Component/PropertyInfo/composer.json index c73aa05c43483..a01cada9f42da 100644 --- a/src/Symfony/Component/PropertyInfo/composer.json +++ b/src/Symfony/Component/PropertyInfo/composer.json @@ -51,5 +51,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Routing/composer.json b/src/Symfony/Component/Routing/composer.json index 1e152fd07b65f..55da0f7ee9f14 100644 --- a/src/Symfony/Component/Routing/composer.json +++ b/src/Symfony/Component/Routing/composer.json @@ -46,5 +46,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Security/Core/composer.json b/src/Symfony/Component/Security/Core/composer.json index 694213f701a10..715d37472ad86 100644 --- a/src/Symfony/Component/Security/Core/composer.json +++ b/src/Symfony/Component/Security/Core/composer.json @@ -43,5 +43,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Security/Csrf/composer.json b/src/Symfony/Component/Security/Csrf/composer.json index 2645957c26661..06e3b2429910d 100644 --- a/src/Symfony/Component/Security/Csrf/composer.json +++ b/src/Symfony/Component/Security/Csrf/composer.json @@ -37,5 +37,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Security/Guard/composer.json b/src/Symfony/Component/Security/Guard/composer.json index 117afc2448cda..d1803d3eb4218 100644 --- a/src/Symfony/Component/Security/Guard/composer.json +++ b/src/Symfony/Component/Security/Guard/composer.json @@ -30,5 +30,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Security/Http/composer.json b/src/Symfony/Component/Security/Http/composer.json index 177764a5f8380..9147501ad88b1 100644 --- a/src/Symfony/Component/Security/Http/composer.json +++ b/src/Symfony/Component/Security/Http/composer.json @@ -44,5 +44,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Security/composer.json b/src/Symfony/Component/Security/composer.json index 78064a0077496..0dc7e59554b0e 100644 --- a/src/Symfony/Component/Security/composer.json +++ b/src/Symfony/Component/Security/composer.json @@ -59,5 +59,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Serializer/composer.json b/src/Symfony/Component/Serializer/composer.json index 330d794d3273a..d7f69a916df8f 100644 --- a/src/Symfony/Component/Serializer/composer.json +++ b/src/Symfony/Component/Serializer/composer.json @@ -55,5 +55,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Stopwatch/composer.json b/src/Symfony/Component/Stopwatch/composer.json index e9f9692e63044..99e415cdf8e24 100644 --- a/src/Symfony/Component/Stopwatch/composer.json +++ b/src/Symfony/Component/Stopwatch/composer.json @@ -25,5 +25,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Templating/composer.json b/src/Symfony/Component/Templating/composer.json index 9c2803c8c412f..f497bd42edf64 100644 --- a/src/Symfony/Component/Templating/composer.json +++ b/src/Symfony/Component/Templating/composer.json @@ -32,5 +32,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Translation/composer.json b/src/Symfony/Component/Translation/composer.json index 71ce68647f4e0..fbe802520f052 100644 --- a/src/Symfony/Component/Translation/composer.json +++ b/src/Symfony/Component/Translation/composer.json @@ -46,5 +46,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Validator/composer.json b/src/Symfony/Component/Validator/composer.json index cbc236bc0cb45..200f41296821d 100644 --- a/src/Symfony/Component/Validator/composer.json +++ b/src/Symfony/Component/Validator/composer.json @@ -62,5 +62,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/VarDumper/composer.json b/src/Symfony/Component/VarDumper/composer.json index 7677937ddbc2e..ae38ce5ed785e 100644 --- a/src/Symfony/Component/VarDumper/composer.json +++ b/src/Symfony/Component/VarDumper/composer.json @@ -39,5 +39,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/WebLink/composer.json b/src/Symfony/Component/WebLink/composer.json index 04aac7f394707..fbd30d1c833dd 100644 --- a/src/Symfony/Component/WebLink/composer.json +++ b/src/Symfony/Component/WebLink/composer.json @@ -35,5 +35,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Workflow/composer.json b/src/Symfony/Component/Workflow/composer.json index a5e4e7025d128..f77b2719fad40 100644 --- a/src/Symfony/Component/Workflow/composer.json +++ b/src/Symfony/Component/Workflow/composer.json @@ -35,5 +35,5 @@ "psr-4": { "Symfony\\Component\\Workflow\\": "" } }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } diff --git a/src/Symfony/Component/Yaml/composer.json b/src/Symfony/Component/Yaml/composer.json index 780163ad26b4c..6da8cf38608f9 100644 --- a/src/Symfony/Component/Yaml/composer.json +++ b/src/Symfony/Component/Yaml/composer.json @@ -35,5 +35,5 @@ ] }, "minimum-stability": "dev", - "version": "3.4-dev" + "version": "3.4.x-dev" } From 6d5a8036245988bd515f3336df208da2c2235ad3 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 6 Oct 2020 18:09:33 +0200 Subject: [PATCH 015/156] [gha] Fix leftover --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 66b035855531d..a6cb491a5dde2 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -57,7 +57,7 @@ jobs: - name: Configure composer run: | ([ -d ~/.composer ] || mkdir ~/.composer) && cp .github/composer-config.json ~/.composer/config.json - SYMFONY_VERSION=$(cat composer.json | grep '^ *\"dev-master\". *\"[1-9]' | grep -o '[0-9.]*') + SYMFONY_VERSION=$(cat composer.json | grep '^ *\"version\". *\"[1-9]' | grep -o '[0-9.]*[0-9]') echo "::set-env name=SYMFONY_VERSION::$SYMFONY_VERSION" echo "::set-env name=COMPOSER_ROOT_VERSION::$SYMFONY_VERSION.x-dev" From a8b986e35e15d93ae1d57131077808a2e7267694 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 6 Oct 2020 18:40:22 +0200 Subject: [PATCH 016/156] [VarDumper] fix truncating big arrays --- src/Symfony/Component/VarDumper/Cloner/VarCloner.php | 2 +- .../Component/VarDumper/Tests/Cloner/VarClonerTest.php | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/VarDumper/Cloner/VarCloner.php b/src/Symfony/Component/VarDumper/Cloner/VarCloner.php index a0e2f3824f100..8c4221220ebde 100644 --- a/src/Symfony/Component/VarDumper/Cloner/VarCloner.php +++ b/src/Symfony/Component/VarDumper/Cloner/VarCloner.php @@ -247,7 +247,7 @@ protected function doClone($var) $stub->position = $len++; } elseif ($pos < $maxItems) { if ($maxItems < $pos += \count($a)) { - $a = \array_slice($a, 0, $maxItems - $pos); + $a = \array_slice($a, 0, $maxItems - $pos, true); if ($stub->cut >= 0) { $stub->cut += $pos - $maxItems; } diff --git a/src/Symfony/Component/VarDumper/Tests/Cloner/VarClonerTest.php b/src/Symfony/Component/VarDumper/Tests/Cloner/VarClonerTest.php index 2d55a073ef9a6..e37482fca9c16 100644 --- a/src/Symfony/Component/VarDumper/Tests/Cloner/VarClonerTest.php +++ b/src/Symfony/Component/VarDumper/Tests/Cloner/VarClonerTest.php @@ -162,7 +162,7 @@ public function testLimits() 'Level 3 Item 3', ], [ - 'Level 3 Item 4', + 999 => 'Level 3 Item 4', 'Level 3 Item 5', 'Level 3 Item 6', ], @@ -242,7 +242,7 @@ public function testLimits() [1] => Array ( [0] => 2 - [2] => 7 + [1] => 7 ) [2] => Array @@ -299,7 +299,7 @@ public function testLimits() [7] => Array ( - [0] => Level 3 Item 4 + [999] => Level 3 Item 4 ) ) From 6b13ffaef2e12e79d4ebd952e3dc379ba00b6153 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 6 Oct 2020 19:33:03 +0200 Subject: [PATCH 017/156] [PhpUnitBridge] fix running parallel tests with phpunit 9 --- src/Symfony/Bridge/PhpUnit/bin/simple-phpunit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit b/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit index 7b5e3b1675a7a..9f933d4f2450e 100755 --- a/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit +++ b/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit @@ -175,7 +175,7 @@ if (class_exists('PHPUnit_Util_Blacklist')) { eval(" // PHP 5.3 compat (new PHPUnit\Util\BlackList())->getBlacklistedDirectories(); PHPUnit\Util\Blacklist::addDirectory(dirname((new ReflectionClass('SymfonyBlacklistPhpunit'))->getFileName())); - PHPUnit\Util\Blacklist::addDirectory(dirname((new ReflectionClass('SymfonyBlacklistSimplePhpunit'))->getFileName())); + class_exists('SymfonyBlacklistSimplePhpunit', false) && PHPUnit\Util\Blacklist::addDirectory(dirname((new ReflectionClass('SymfonyBlacklistSimplePhpunit'))->getFileName())); "); } else { PHPUnit\Util\Blacklist::$blacklistedClassNames['SymfonyBlacklistPhpunit'] = 1; From 33d37e56ba2d2b78c34257bcfa96ecb40d23cea6 Mon Sep 17 00:00:00 2001 From: Baptiste Leduc Date: Tue, 6 Oct 2020 20:00:06 +0200 Subject: [PATCH 018/156] Fix no collection in extract default value --- .../Component/PropertyInfo/Extractor/ReflectionExtractor.php | 3 ++- .../PropertyInfo/Tests/Extractor/ReflectionExtractorTest.php | 3 ++- .../Component/PropertyInfo/Tests/Fixtures/Php74Dummy.php | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/PropertyInfo/Extractor/ReflectionExtractor.php b/src/Symfony/Component/PropertyInfo/Extractor/ReflectionExtractor.php index 8c207cffc97f0..1d82948e69208 100644 --- a/src/Symfony/Component/PropertyInfo/Extractor/ReflectionExtractor.php +++ b/src/Symfony/Component/PropertyInfo/Extractor/ReflectionExtractor.php @@ -477,8 +477,9 @@ private function extractFromDefaultValue(string $class, string $property): ?arra } $type = \gettype($defaultValue); + $type = static::MAP_TYPES[$type] ?? $type; - return [new Type(static::MAP_TYPES[$type] ?? $type)]; + return [new Type($type, false, null, Type::BUILTIN_TYPE_ARRAY === $type)]; } private function extractFromReflectionType(\ReflectionType $reflectionType, \ReflectionClass $declaringClass): array diff --git a/src/Symfony/Component/PropertyInfo/Tests/Extractor/ReflectionExtractorTest.php b/src/Symfony/Component/PropertyInfo/Tests/Extractor/ReflectionExtractorTest.php index a2d2db5b8000b..4e1fae4a35503 100644 --- a/src/Symfony/Component/PropertyInfo/Tests/Extractor/ReflectionExtractorTest.php +++ b/src/Symfony/Component/PropertyInfo/Tests/Extractor/ReflectionExtractorTest.php @@ -257,7 +257,7 @@ public function defaultValueProvider() ['defaultInt', [new Type(Type::BUILTIN_TYPE_INT, false)]], ['defaultFloat', [new Type(Type::BUILTIN_TYPE_FLOAT, false)]], ['defaultString', [new Type(Type::BUILTIN_TYPE_STRING, false)]], - ['defaultArray', [new Type(Type::BUILTIN_TYPE_ARRAY, false)]], + ['defaultArray', [new Type(Type::BUILTIN_TYPE_ARRAY, false, null, true)]], ['defaultNull', null], ]; } @@ -415,6 +415,7 @@ public function testTypedProperties(): void $this->assertEquals([new Type(Type::BUILTIN_TYPE_OBJECT, false, Dummy::class)], $this->extractor->getTypes(Php74Dummy::class, 'dummy')); $this->assertEquals([new Type(Type::BUILTIN_TYPE_BOOL, true)], $this->extractor->getTypes(Php74Dummy::class, 'nullableBoolProp')); $this->assertEquals([new Type(Type::BUILTIN_TYPE_ARRAY, false, null, true, new Type(Type::BUILTIN_TYPE_INT), new Type(Type::BUILTIN_TYPE_STRING))], $this->extractor->getTypes(Php74Dummy::class, 'stringCollection')); + $this->assertEquals([new Type(Type::BUILTIN_TYPE_ARRAY, false, null, true)], $this->extractor->getTypes(Php74Dummy::class, 'collection')); } /** diff --git a/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Php74Dummy.php b/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Php74Dummy.php index ffc4f4cd37621..932b251b9560b 100644 --- a/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Php74Dummy.php +++ b/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Php74Dummy.php @@ -20,6 +20,7 @@ class Php74Dummy private ?bool $nullableBoolProp; /** @var string[] */ private array $stringCollection; + public array $collection = []; public function addStringCollection(string $string): void { From 96499920a2d0ec5a999a3f494262b4a11ee9588b Mon Sep 17 00:00:00 2001 From: Sheitak Date: Tue, 6 Oct 2020 18:38:11 +0200 Subject: [PATCH 019/156] Estonian update --- .../Resources/translations/validators.et.xlf | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.et.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.et.xlf index 84c24720dae3c..261b8f34e62f9 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.et.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.et.xlf @@ -290,6 +290,82 @@ The image is square ({{ width }}x{{ height }}px). Square images are not allowed. Pilt on ruudukujuline ({{ width }}x{{ height }}px). Ruudukujulised pildid pole lubatud. + + The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed. + Pilt on horisontaalselt orienteeritud ({{ width }}x{{ height }}px). Maastikulised pildid pole lubatud. + + + The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed. + Pilt on vertikaalselt orienteeritud ({{ width }}x{{ height }}px). Portreepildid pole lubatud. + + + An empty file is not allowed. + Tühi fail pole lubatud. + + + The host could not be resolved. + Peremeest ei õnnestunud lahendada. + + + This value does not match the expected {{ charset }} charset. + See väärtus ei ühti eeldatava tähemärgiga {{ charset }}. + + + This is not a valid Business Identifier Code (BIC). + See ei ole kehtiv ettevõtte identifitseerimiskood (BIC). + + + Error + Viga + + + This is not a valid UUID. + See pole kehtiv UUID. + + + This value should be a multiple of {{ compared_value }}. + See väärtus peaks olema väärtuse {{ compared_value }} kordne. + + + This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}. + See ettevõtte identifitseerimiskood (BIC) ei ole seotud IBAN-iga {{ iban }}. + + + This value should be valid JSON. + See väärtus peaks olema kehtiv JSON. + + + This collection should contain only unique elements. + See kogu peaks sisaldama ainult unikaalseid elemente. + + + This value should be positive. + See väärtus peaks olema positiivne. + + + This value should be either positive or zero. + See väärtus peaks olema kas positiivne või null. + + + This value should be negative. + See väärtus peaks olema negatiivne. + + + This value should be either negative or zero. + See väärtus peaks olema kas negatiivne või null. + + + This value is not a valid timezone. + See väärtus pole kehtiv ajavöönd. + + + This password has been leaked in a data breach, it must not be used. Please use another password. + See parool on lekkinud andmerikkumise korral, seda ei tohi kasutada. Palun kasutage muud parooli. + + + This value should be between {{ min }} and {{ max }}. + See väärtus peaks olema vahemikus {{ min }} kuni {{ max }}. + From 4bede2824cc13e2c7c0c7a0eb1b4d8ae718d9272 Mon Sep 17 00:00:00 2001 From: Guilherme Augusto Henschel Date: Tue, 6 Oct 2020 18:50:13 -0300 Subject: [PATCH 020/156] [Form] [Validator] added pt_BR translations --- .../translations/validators.pt_BR.xlf | 100 ++++++++++++++++++ .../translations/validators.pt_BR.xlf | 52 +++++++++ 2 files changed, 152 insertions(+) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.pt_BR.xlf b/src/Symfony/Component/Form/Resources/translations/validators.pt_BR.xlf index 9ae4d719126b5..3e79f391ad1f3 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.pt_BR.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.pt_BR.xlf @@ -14,6 +14,106 @@ The CSRF token is invalid. Please try to resubmit the form. O token CSRF é inválido. Por favor, tente reenviar o formulário. + + This value is not a valid HTML5 color. + Este valor não é uma cor HTML5 válida. + + + Please enter a valid birthdate. + Por favor, informe uma data de nascimento válida. + + + The selected choice is invalid. + A escolha selecionada é inválida. + + + The collection is invalid. + A coleção é inválida. + + + Please select a valid color. + Por favor, selecione uma cor válida. + + + Please select a valid country. + Por favor, selecione um país válido. + + + Please select a valid currency. + Por favor, selecione uma moeda válida. + + + Please choose a valid date interval. + Por favor, escolha um intervalo de datas válido. + + + Please enter a valid date and time. + Por favor, informe uma data e horário válidos. + + + Please enter a valid date. + Por favor, informe uma data válida. + + + Please select a valid file. + Por favor, selecione um arquivo válido. + + + The hidden field is invalid. + O campo oculto é inválido. + + + Please enter an integer. + Por favor, informe um número inteiro. + + + Please select a valid language. + Por favor, selecione um idioma válido. + + + Please select a valid locale. + Por favor, selecione uma configuração de local válida. + + + Please enter a valid money amount. + Por favor, informe um valor monetário válido. + + + Please enter a number. + Por favor, informe um número. + + + The password is invalid. + A senha é inválida. + + + Please enter a percentage value. + Por favor, informe um valor percentual. + + + The values do not match. + Os valores não conferem. + + + Please enter a valid time. + Por favor, informe um horário válido. + + + Please select a valid timezone. + Por favor, selecione um fuso horário válido. + + + Please enter a valid URL. + Por favor, informe uma URL válida. + + + Please enter a valid search term. + Por favor, informe um termo de busca válido. + + + Please provide a valid phone number. + Por favor, informe um telefone válido. + diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.pt_BR.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.pt_BR.xlf index 8616edf4b9096..2dbd009ccdd53 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.pt_BR.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.pt_BR.xlf @@ -334,6 +334,58 @@ This value should be valid JSON. Este valor deve ser um JSON válido. + + This collection should contain only unique elements. + Esta coleção deve conter somente elementos únicos. + + + This value should be positive. + Este valor deve ser positivo. + + + This value should be either positive or zero. + Este valor deve ser positivo ou zero. + + + This value should be negative. + Este valor deve ser negativo. + + + This value should be either negative or zero. + Este valor deve ser negativo ou zero. + + + This value is not a valid timezone. + Este valor não representa um fuso horário válido. + + + This password has been leaked in a data breach, it must not be used. Please use another password. + Esta senha foi divulgada num vazamento de dados e não deve ser utilizada. Por favor, utilize outra senha. + + + This value should be between {{ min }} and {{ max }}. + Este valor deve estar entre {{ min }} e {{ max }}. + + + This value is not a valid hostname. + Este valor não é um nome de host válido. + + + The number of elements in this collection should be a multiple of {{ compared_value }}. + O número de elementos desta coleção deve ser um múltiplo de {{ compared_value }}. + + + This value should satisfy at least one of the following constraints: + Este valor deve satisfazer pelo menos uma das seguintes restrições: + + + Each element of this collection should satisfy its own set of constraints. + Cada elemento desta coleção deve satisfazer seu próprio grupo de restrições. + + + This value is not a valid International Securities Identification Number (ISIN). + Este valor não é um Número de Identificação de Títulos Internacionais (ISIN) válido. + From d332b30526050ef0df12103b00c21446628dd3ef Mon Sep 17 00:00:00 2001 From: Luca Saba Date: Sat, 3 Oct 2020 12:00:23 +0200 Subject: [PATCH 021/156] [Ldap] Bypass the use of `ldap_control_paged_result` on PHP >= 7.3 --- .../Component/Ldap/Adapter/ExtLdap/Query.php | 79 ++++++++++++++++--- 1 file changed, 66 insertions(+), 13 deletions(-) diff --git a/src/Symfony/Component/Ldap/Adapter/ExtLdap/Query.php b/src/Symfony/Component/Ldap/Adapter/ExtLdap/Query.php index aa93b1699e1a7..151e47881143f 100644 --- a/src/Symfony/Component/Ldap/Adapter/ExtLdap/Query.php +++ b/src/Symfony/Component/Ldap/Adapter/ExtLdap/Query.php @@ -30,6 +30,9 @@ class Query extends AbstractQuery /** @var resource[] */ private $results; + /** @var array */ + private $serverctrls = []; + public function __construct(Connection $connection, string $dn, string $query, array $options = []) { parent::__construct($connection, $dn, $query, $options); @@ -97,22 +100,13 @@ public function execute() $cookie = ''; do { if ($pageControl) { - ldap_control_paged_result($con, $pageSize, true, $cookie); + $this->controlPagedResult($con, $pageSize, $cookie); } $sizeLimit = $itemsLeft; if ($pageSize > 0 && $sizeLimit >= $pageSize) { $sizeLimit = 0; } - $search = @$func( - $con, - $this->dn, - $this->query, - $this->options['filter'], - $this->options['attrsOnly'], - $sizeLimit, - $this->options['timeout'], - $this->options['deref'] - ); + $search = $this->callSearchFunction($con, $func, $sizeLimit); if (false === $search) { $ldapError = ''; @@ -133,7 +127,7 @@ public function execute() break; } if ($pageControl) { - ldap_control_paged_result_response($con, $search, $cookie); + $cookie = $this->controlPagedResultResponse($con, $search, $cookie); } } while (null !== $cookie && '' !== $cookie); @@ -180,7 +174,8 @@ public function getResources(): array private function resetPagination() { $con = $this->connection->getResource(); - ldap_control_paged_result($con, 0); + $this->controlPagedResultResponse($con, 0, ''); + $this->serverctrls = []; // This is a workaround for a bit of a bug in the above invocation // of ldap_control_paged_result. Instead of indicating to extldap that @@ -203,4 +198,62 @@ private function resetPagination() ldap_set_option($con, \LDAP_OPT_SERVER_CONTROLS, $ctl); } } + + /** + * Sets LDAP pagination controls. + * + * @param resource $con + */ + private function controlPagedResult($con, int $pageSize, string $cookie): bool + { + if (\PHP_VERSION_ID < 70300) { + return ldap_control_paged_result($con, $pageSize, true, $cookie); + } + $this->serverctrls = [ + [ + 'oid' => \LDAP_CONTROL_PAGEDRESULTS, + 'isCritical' => true, + 'value' => [ + 'size' => $pageSize, + 'cookie' => $cookie, + ], + ], + ]; + + return true; + } + + /** + * Retrieve LDAP pagination cookie. + * + * @param resource $con + * @param resource $result + */ + private function controlPagedResultResponse($con, $result, string $cookie = ''): string + { + if (\PHP_VERSION_ID < 70300) { + ldap_control_paged_result_response($con, $result, $cookie); + + return $cookie; + } + ldap_parse_result($con, $result, $errcode, $matcheddn, $errmsg, $referrals, $controls); + + return $controls[\LDAP_CONTROL_PAGEDRESULTS]['value']['cookie'] ?? ''; + } + + /** + * Calls actual LDAP search function with the prepared options and parameters. + * + * @param resource $con + * + * @return resource + */ + private function callSearchFunction($con, string $func, int $sizeLimit) + { + if (\PHP_VERSION_ID < 70300) { + return @$func($con, $this->dn, $this->query, $this->options['filter'], $this->options['attrsOnly'], $sizeLimit, $this->options['timeout'], $this->options['deref']); + } + + return @$func($con, $this->dn, $this->query, $this->options['filter'], $this->options['attrsOnly'], $sizeLimit, $this->options['timeout'], $this->options['deref'], $this->serverctrls); + } } From 065474c94f387864b62975b2730273b9098d81be Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Wed, 7 Oct 2020 11:17:28 +0200 Subject: [PATCH 022/156] [Cache] skip igbinary < 3.1.6 --- .../Component/Cache/Marshaller/DefaultMarshaller.php | 8 ++++---- .../Cache/Tests/Marshaller/DefaultMarshallerTest.php | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Symfony/Component/Cache/Marshaller/DefaultMarshaller.php b/src/Symfony/Component/Cache/Marshaller/DefaultMarshaller.php index 0dbc4f89c2014..7493a2efa6aa1 100644 --- a/src/Symfony/Component/Cache/Marshaller/DefaultMarshaller.php +++ b/src/Symfony/Component/Cache/Marshaller/DefaultMarshaller.php @@ -25,9 +25,9 @@ class DefaultMarshaller implements MarshallerInterface public function __construct(bool $useIgbinarySerialize = null) { if (null === $useIgbinarySerialize) { - $useIgbinarySerialize = \extension_loaded('igbinary') && (\PHP_VERSION_ID < 70400 || version_compare('3.1.0', phpversion('igbinary'), '<=')); - } elseif ($useIgbinarySerialize && (!\extension_loaded('igbinary') || (\PHP_VERSION_ID >= 70400 && version_compare('3.1.0', phpversion('igbinary'), '>')))) { - throw new CacheException(\extension_loaded('igbinary') && \PHP_VERSION_ID >= 70400 ? 'Please upgrade the "igbinary" PHP extension to v3.1 or higher.' : 'The "igbinary" PHP extension is not loaded.'); + $useIgbinarySerialize = \extension_loaded('igbinary') && (\PHP_VERSION_ID < 70400 || version_compare('3.1.6', phpversion('igbinary'), '<=')); + } elseif ($useIgbinarySerialize && (!\extension_loaded('igbinary') || (\PHP_VERSION_ID >= 70400 && version_compare('3.1.6', phpversion('igbinary'), '>')))) { + throw new CacheException(\extension_loaded('igbinary') && \PHP_VERSION_ID >= 70400 ? 'Please upgrade the "igbinary" PHP extension to v3.1.6 or higher.' : 'The "igbinary" PHP extension is not loaded.'); } $this->useIgbinarySerialize = $useIgbinarySerialize; } @@ -66,7 +66,7 @@ public function unmarshall(string $value) return null; } static $igbinaryNull; - if ($value === ($igbinaryNull ?? $igbinaryNull = \extension_loaded('igbinary') && (\PHP_VERSION_ID < 70400 || version_compare('3.1.0', phpversion('igbinary'), '<=')) ? igbinary_serialize(null) : false)) { + if ($value === ($igbinaryNull ?? $igbinaryNull = \extension_loaded('igbinary') ? igbinary_serialize(null) : false)) { return null; } $unserializeCallbackHandler = ini_set('unserialize_callback_func', __CLASS__.'::handleUnserializeCallback'); diff --git a/src/Symfony/Component/Cache/Tests/Marshaller/DefaultMarshallerTest.php b/src/Symfony/Component/Cache/Tests/Marshaller/DefaultMarshallerTest.php index aaef04610e457..050aab4207358 100644 --- a/src/Symfony/Component/Cache/Tests/Marshaller/DefaultMarshallerTest.php +++ b/src/Symfony/Component/Cache/Tests/Marshaller/DefaultMarshallerTest.php @@ -24,7 +24,7 @@ public function testSerialize() 'b' => function () {}, ]; - $expected = ['a' => \extension_loaded('igbinary') && (\PHP_VERSION_ID < 70400 || version_compare('3.1.0', phpversion('igbinary'), '<=')) ? igbinary_serialize(123) : serialize(123)]; + $expected = ['a' => \extension_loaded('igbinary') && (\PHP_VERSION_ID < 70400 || version_compare('3.1.6', phpversion('igbinary'), '<=')) ? igbinary_serialize(123) : serialize(123)]; $this->assertSame($expected, $marshaller->marshall($values, $failed)); $this->assertSame(['b'], $failed); } @@ -43,7 +43,7 @@ public function testNativeUnserialize() */ public function testIgbinaryUnserialize() { - if (\PHP_VERSION_ID >= 70400 && version_compare('3.1.0', phpversion('igbinary'), '>')) { + if (\PHP_VERSION_ID >= 70400 && version_compare('3.1.6', phpversion('igbinary'), '>')) { $this->markTestSkipped('igbinary is not compatible with PHP 7.4.'); } @@ -67,7 +67,7 @@ public function testNativeUnserializeNotFoundClass() */ public function testIgbinaryUnserializeNotFoundClass() { - if (\PHP_VERSION_ID >= 70400 && version_compare('3.1.0', phpversion('igbinary'), '>')) { + if (\PHP_VERSION_ID >= 70400 && version_compare('3.1.6', phpversion('igbinary'), '>')) { $this->markTestSkipped('igbinary is not compatible with PHP 7.4.'); } @@ -95,7 +95,7 @@ public function testNativeUnserializeInvalid() */ public function testIgbinaryUnserializeInvalid() { - if (\PHP_VERSION_ID >= 70400 && version_compare('3.1.0', phpversion('igbinary'), '>')) { + if (\PHP_VERSION_ID >= 70400 && version_compare('3.1.6', phpversion('igbinary'), '>')) { $this->markTestSkipped('igbinary is not compatible with PHP 7.4.'); } From 80bcd0ee2028f6107e558208dc840bf7dfdb9f82 Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 8 Oct 2020 21:40:09 +0200 Subject: [PATCH 023/156] [Form] Add missing Serbian (latn & cyrl) validators translation --- .../translations/validators.sr_Cyrl.xlf | 102 +++++++++++++++++- .../translations/validators.sr_Latn.xlf | 102 +++++++++++++++++- 2 files changed, 202 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.sr_Cyrl.xlf b/src/Symfony/Component/Form/Resources/translations/validators.sr_Cyrl.xlf index ff7f550adff3c..1aa242f4186a4 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.sr_Cyrl.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.sr_Cyrl.xlf @@ -12,7 +12,107 @@ The CSRF token is invalid. Please try to resubmit the form. - CSRF вредност је невалидна. Покушајте поново. + CSRF вредност није исправна. Покушајте поново. + + + This value is not a valid HTML5 color. + Ова вредност није исправна HTML5 боја. + + + Please enter a valid birthdate. + Молим упишите исправан датум рођења. + + + The selected choice is invalid. + Одабрани избор није исправан. + + + The collection is invalid. + Ова колекција није исправна. + + + Please select a valid color. + Молим изаберите исправну боју. + + + Please select a valid country. + Молим изаберите исправну државу. + + + Please select a valid currency. + Молим изаберите исправну валуту. + + + Please choose a valid date interval. + Молим изаберите исправан датумски интервал. + + + Please enter a valid date and time. + Молим упишите исправан датум и време. + + + Please enter a valid date. + Молим упишите исправан датум. + + + Please select a valid file. + Молим изаберите исправну датотеку. + + + The hidden field is invalid. + Скривено поље није исправно. + + + Please enter an integer. + Молим упишите цео број (integer). + + + Please select a valid language. + Молим изаберите исправан језик. + + + Please select a valid locale. + Молим изаберите исправну локализацију. + + + Please enter a valid money amount. + Молим упишите исправну количину новца. + + + Please enter a number. + Молим упишите број. + + + The password is invalid. + Ова лозинка није исправна. + + + Please enter a percentage value. + Молим упишите процентуалну вредност. + + + The values do not match. + Дате вредности се не поклапају. + + + Please enter a valid time. + Молим упишите исправно време. + + + Please select a valid timezone. + Молим изаберите исправну временску зону. + + + Please enter a valid URL. + Молим упишите исправан URL. + + + Please enter a valid search term. + Молим упишите исправан термин за претрагу. + + + Please provide a valid phone number. + Молим наведите исправан број телефона. diff --git a/src/Symfony/Component/Form/Resources/translations/validators.sr_Latn.xlf b/src/Symfony/Component/Form/Resources/translations/validators.sr_Latn.xlf index 6c4be3585718e..75a2aaab70e2e 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.sr_Latn.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.sr_Latn.xlf @@ -12,7 +12,107 @@ The CSRF token is invalid. Please try to resubmit the form. - CSRF vrednost je nevalidna. Pokušajte ponovo. + CSRF vrednost nije ispravna. Pokušajte ponovo. + + + This value is not a valid HTML5 color. + Ova vrednost nije ispravna HTML5 boja. + + + Please enter a valid birthdate. + Molim upišite ispravan datum rođenja. + + + The selected choice is invalid. + Odabrani izbor nije ispravan. + + + The collection is invalid. + Ova kolekcija nije ispravna. + + + Please select a valid color. + Molim izaberite ispravnu boju. + + + Please select a valid country. + Molim izaberite ispravnu državu. + + + Please select a valid currency. + Molim izaberite ispravnu valutu. + + + Please choose a valid date interval. + Molim izaberite ispravan datumski interval. + + + Please enter a valid date and time. + Molim upišite ispravan datum i vreme. + + + Please enter a valid date. + Molim upišite ispravan datum. + + + Please select a valid file. + Molim izaberite ispravnu datoteku. + + + The hidden field is invalid. + Skriveno polje nije ispravno. + + + Please enter an integer. + Molim upišite ceo broj (integer). + + + Please select a valid language. + Molim izaberite ispravan jezik. + + + Please select a valid locale. + Molim izaberite ispravnu lokalizaciju. + + + Please enter a valid money amount. + Molim upišite ispravnu količinu novca. + + + Please enter a number. + Molim upišite broj. + + + The password is invalid. + Ova lozinka nije ispravna. + + + Please enter a percentage value. + Molim upišite procentualnu vrednost. + + + The values do not match. + Date vrednosti se ne poklapaju. + + + Please enter a valid time. + Molim upišite ispravno vreme. + + + Please select a valid timezone. + Molim izaberite ispravnu vremensku zonu. + + + Please enter a valid URL. + Molim upišite ispravan URL. + + + Please enter a valid search term. + Molim upišite ispravan termin za pretragu. + + + Please provide a valid phone number. + Molim navedite ispravan broj telefona. From bd80b1e08d2a6ccea37c58bfff8c98c73963ec4a Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 8 Oct 2020 12:20:53 +0200 Subject: [PATCH 024/156] [Form] Add Bosnian (bs) validators translation --- .../Resources/translations/validators.bs.xlf | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 src/Symfony/Component/Form/Resources/translations/validators.bs.xlf diff --git a/src/Symfony/Component/Form/Resources/translations/validators.bs.xlf b/src/Symfony/Component/Form/Resources/translations/validators.bs.xlf new file mode 100644 index 0000000000000..cfe681e3b0534 --- /dev/null +++ b/src/Symfony/Component/Form/Resources/translations/validators.bs.xlf @@ -0,0 +1,119 @@ + + + + + + This form should not contain extra fields. + Ovaj obrazac ne bi trebalo da sadrži dodatna polja. + + + The uploaded file was too large. Please try to upload a smaller file. + Prenijeta (uploaded) datoteka je prevelika. Molim pokušajte prenijeti manju datoteku. + + + The CSRF token is invalid. Please try to resubmit the form. + CSRF vrijednost nije ispravna. Molim pokušajte ponovo da pošaljete obrazac. + + + This value is not a valid HTML5 color. + Ova vrijednost nije ispravna HTML5 boja. + + + Please enter a valid birthdate. + Molim upišite ispravan datum rođenja. + + + The selected choice is invalid. + Odabrani izbor nije ispravan. + + + The collection is invalid. + Ova kolekcija nije ispravna. + + + Please select a valid color. + Molim izaberite ispravnu boju. + + + Please select a valid country. + Molim izaberite ispravnu državu. + + + Please select a valid currency. + Molim izaberite ispravnu valutu. + + + Please choose a valid date interval. + Molim izaberite ispravan datumski interval. + + + Please enter a valid date and time. + Molim upišite ispravan datum i vrijeme. + + + Please enter a valid date. + Molim upišite ispravan datum. + + + Please select a valid file. + Molim izaberite ispravnu datoteku. + + + The hidden field is invalid. + Skriveno polje nije ispravno. + + + Please enter an integer. + Molim upišite cijeli broj (integer). + + + Please select a valid language. + Molim izaberite ispravan jezik. + + + Please select a valid locale. + Molim izaberite ispravnu lokalizaciju. + + + Please enter a valid money amount. + Molim upišite ispravnu količinu novca. + + + Please enter a number. + Molim upišite broj. + + + The password is invalid. + Ova lozinka nije ispravna. + + + Please enter a percentage value. + Molim upišite procentualnu vrijednost. + + + The values do not match. + Date vrijednosti se ne poklapaju. + + + Please enter a valid time. + Molim upišite ispravno vrijeme. + + + Please select a valid timezone. + Molim izaberite ispravnu vremensku zonu. + + + Please enter a valid URL. + Molim upišite ispravan URL. + + + Please enter a valid search term. + Molim upišite ispravan termin za pretragu. + + + Please provide a valid phone number. + Molim navedite ispravan broj telefona. + + + + From aeb4ddf31662e052bf74991e6e47f5dab179a8c5 Mon Sep 17 00:00:00 2001 From: HypeMC Date: Fri, 9 Oct 2020 00:15:53 +0200 Subject: [PATCH 025/156] [HttpClient] Fix CurlHttpClient memory leak --- .../HttpClient/Response/CurlResponse.php | 10 +++----- .../HttpClient/Response/NativeResponse.php | 10 +++----- .../HttpClient/Tests/HttpClientTestCase.php | 24 +++++++++++++++++++ .../HttpClient/Tests/MockHttpClientTest.php | 4 ++++ .../HttpClient/Test/Fixtures/web/index.php | 4 ++-- 5 files changed, 36 insertions(+), 16 deletions(-) diff --git a/src/Symfony/Component/HttpClient/Response/CurlResponse.php b/src/Symfony/Component/HttpClient/Response/CurlResponse.php index 29f82ac9b7ced..02236b466bb69 100644 --- a/src/Symfony/Component/HttpClient/Response/CurlResponse.php +++ b/src/Symfony/Component/HttpClient/Response/CurlResponse.php @@ -17,7 +17,6 @@ use Symfony\Component\HttpClient\Exception\TransportException; use Symfony\Component\HttpClient\Internal\ClientState; use Symfony\Component\HttpClient\Internal\CurlClientState; -use Symfony\Contracts\HttpClient\Exception\HttpExceptionInterface; use Symfony\Contracts\HttpClient\ResponseInterface; /** @@ -205,14 +204,9 @@ public function __destruct() return; // Unused pushed response } - $e = null; $this->doDestruct(); - } catch (HttpExceptionInterface $e) { - throw $e; } finally { - if ($e ?? false) { - throw $e; - } + $multi = clone $this->multi; $this->close(); @@ -221,6 +215,8 @@ public function __destruct() $this->multi->dnsCache->evictions = $this->multi->dnsCache->evictions ?: $this->multi->dnsCache->removals; $this->multi->dnsCache->removals = $this->multi->dnsCache->hostnames = []; } + + $this->multi = $multi; } } diff --git a/src/Symfony/Component/HttpClient/Response/NativeResponse.php b/src/Symfony/Component/HttpClient/Response/NativeResponse.php index e29005b58fbbc..402210f53e3ae 100644 --- a/src/Symfony/Component/HttpClient/Response/NativeResponse.php +++ b/src/Symfony/Component/HttpClient/Response/NativeResponse.php @@ -16,7 +16,6 @@ use Symfony\Component\HttpClient\Exception\TransportException; use Symfony\Component\HttpClient\Internal\ClientState; use Symfony\Component\HttpClient\Internal\NativeClientState; -use Symfony\Contracts\HttpClient\Exception\HttpExceptionInterface; use Symfony\Contracts\HttpClient\ResponseInterface; /** @@ -87,14 +86,9 @@ public function getInfo(string $type = null) public function __destruct() { try { - $e = null; $this->doDestruct(); - } catch (HttpExceptionInterface $e) { - throw $e; } finally { - if ($e ?? false) { - throw $e; - } + $multi = clone $this->multi; $this->close(); @@ -103,6 +97,8 @@ public function __destruct() $this->multi->responseCount = 0; $this->multi->dnsCache = []; } + + $this->multi = $multi; } } diff --git a/src/Symfony/Component/HttpClient/Tests/HttpClientTestCase.php b/src/Symfony/Component/HttpClient/Tests/HttpClientTestCase.php index 94b35470e338f..3de724cc70b37 100644 --- a/src/Symfony/Component/HttpClient/Tests/HttpClientTestCase.php +++ b/src/Symfony/Component/HttpClient/Tests/HttpClientTestCase.php @@ -13,6 +13,8 @@ use Symfony\Component\HttpClient\Exception\ClientException; use Symfony\Component\HttpClient\Exception\TransportException; +use Symfony\Component\HttpClient\Internal\ClientState; +use Symfony\Contracts\HttpClient\Exception\RedirectionExceptionInterface; use Symfony\Contracts\HttpClient\Test\HttpClientTestCase as BaseHttpClientTestCase; abstract class HttpClientTestCase extends BaseHttpClientTestCase @@ -120,4 +122,26 @@ public function testTimeoutIsNotAFatalError() throw $e; } } + + public function testHandleIsRemovedOnException() + { + $client = $this->getHttpClient(__FUNCTION__); + + try { + $client->request('GET', 'http://localhost:8057/304'); + $this->fail(RedirectionExceptionInterface::class.' expected'); + } catch (RedirectionExceptionInterface $e) { + // The response content-type mustn't be json as that calls getContent + // @see src/Symfony/Component/HttpClient/Exception/HttpExceptionTrait.php:58 + $this->assertStringNotContainsString('json', $e->getResponse()->getHeaders(false)['content-type'][0] ?? ''); + + $r = new \ReflectionProperty($client, 'multi'); + $r->setAccessible(true); + /** @var ClientState $clientState */ + $clientState = $r->getValue($client); + + $this->assertCount(0, $clientState->handlesActivity); + $this->assertCount(0, $clientState->openHandles); + } + } } diff --git a/src/Symfony/Component/HttpClient/Tests/MockHttpClientTest.php b/src/Symfony/Component/HttpClient/Tests/MockHttpClientTest.php index bfed5ce14585b..17e1dd1c3d21b 100644 --- a/src/Symfony/Component/HttpClient/Tests/MockHttpClientTest.php +++ b/src/Symfony/Component/HttpClient/Tests/MockHttpClientTest.php @@ -119,6 +119,10 @@ protected function getHttpClient(string $testCase): HttpClientInterface $this->markTestSkipped("MockHttpClient doesn't timeout on destruct"); break; + case 'testHandleIsRemovedOnException': + $this->markTestSkipped("MockHttpClient doesn't cache handles"); + break; + case 'testGetRequest': array_unshift($headers, 'HTTP/1.1 200 OK'); $responses[] = new MockResponse($body, ['response_headers' => $headers]); diff --git a/src/Symfony/Contracts/HttpClient/Test/Fixtures/web/index.php b/src/Symfony/Contracts/HttpClient/Test/Fixtures/web/index.php index 96486ca3168c8..32a005f404f90 100644 --- a/src/Symfony/Contracts/HttpClient/Test/Fixtures/web/index.php +++ b/src/Symfony/Contracts/HttpClient/Test/Fixtures/web/index.php @@ -157,7 +157,7 @@ exit; case '/json': - header("Content-Type: application/json"); + header('Content-Type: application/json'); echo json_encode([ 'documents' => [ ['id' => '/json/1'], @@ -170,7 +170,7 @@ case '/json/1': case '/json/2': case '/json/3': - header("Content-Type: application/json"); + header('Content-Type: application/json'); echo json_encode([ 'title' => $vars['REQUEST_URI'], ]); From 8fa4f85013977105e789e5dc36ab9e5756fa0906 Mon Sep 17 00:00:00 2001 From: HypeMC Date: Sat, 10 Oct 2020 18:12:36 +0200 Subject: [PATCH 026/156] Don't unset the inflate resource on close as it might still be needed --- .../Component/HttpClient/Response/CurlResponse.php | 1 - .../Component/HttpClient/Response/NativeResponse.php | 2 +- .../Contracts/HttpClient/Test/Fixtures/web/index.php | 6 ++++++ .../Contracts/HttpClient/Test/HttpClientTestCase.php | 12 ++++++++++++ 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/HttpClient/Response/CurlResponse.php b/src/Symfony/Component/HttpClient/Response/CurlResponse.php index 02236b466bb69..a99bfff2e8fe2 100644 --- a/src/Symfony/Component/HttpClient/Response/CurlResponse.php +++ b/src/Symfony/Component/HttpClient/Response/CurlResponse.php @@ -225,7 +225,6 @@ public function __destruct() */ private function close(): void { - $this->inflate = null; unset($this->multi->openHandles[$this->id], $this->multi->handlesActivity[$this->id]); curl_setopt($this->handle, \CURLOPT_PRIVATE, '_0'); diff --git a/src/Symfony/Component/HttpClient/Response/NativeResponse.php b/src/Symfony/Component/HttpClient/Response/NativeResponse.php index 402210f53e3ae..41eadf1a41564 100644 --- a/src/Symfony/Component/HttpClient/Response/NativeResponse.php +++ b/src/Symfony/Component/HttpClient/Response/NativeResponse.php @@ -193,7 +193,7 @@ private function open(): void private function close(): void { unset($this->multi->openHandles[$this->id], $this->multi->handlesActivity[$this->id]); - $this->handle = $this->buffer = $this->inflate = $this->onProgress = null; + $this->handle = $this->buffer = $this->onProgress = null; } /** diff --git a/src/Symfony/Contracts/HttpClient/Test/Fixtures/web/index.php b/src/Symfony/Contracts/HttpClient/Test/Fixtures/web/index.php index 32a005f404f90..ed9d4e404540e 100644 --- a/src/Symfony/Contracts/HttpClient/Test/Fixtures/web/index.php +++ b/src/Symfony/Contracts/HttpClient/Test/Fixtures/web/index.php @@ -63,6 +63,12 @@ header('Content-Type: application/json', true, 404); break; + case '/404-gzipped': + header('Content-Type: text/plain', true, 404); + ob_start('ob_gzhandler'); + echo 'some text'; + exit; + case '/301': if ('Basic Zm9vOmJhcg==' === $vars['HTTP_AUTHORIZATION']) { header('Location: http://127.0.0.1:8057/302', true, 301); diff --git a/src/Symfony/Contracts/HttpClient/Test/HttpClientTestCase.php b/src/Symfony/Contracts/HttpClient/Test/HttpClientTestCase.php index 839965df79a56..f3e75c9337c2c 100644 --- a/src/Symfony/Contracts/HttpClient/Test/HttpClientTestCase.php +++ b/src/Symfony/Contracts/HttpClient/Test/HttpClientTestCase.php @@ -835,6 +835,18 @@ public function testGetContentAfterDestruct() } } + public function testGetEncodedContentAfterDestruct() + { + $client = $this->getHttpClient(__FUNCTION__); + + try { + $client->request('GET', 'http://localhost:8057/404-gzipped'); + $this->fail(ClientExceptionInterface::class.' expected'); + } catch (ClientExceptionInterface $e) { + $this->assertSame('some text', $e->getResponse()->getContent(false)); + } + } + public function testProxy() { $client = $this->getHttpClient(__FUNCTION__); From 1a3b538e1623625dc53ef6d7fa7838f55716e934 Mon Sep 17 00:00:00 2001 From: "Alexander M. Turek" Date: Sun, 11 Oct 2020 00:06:12 +0200 Subject: [PATCH 027/156] [PropertyInfo] Support for the mixed type. --- .../PropertyInfo/Extractor/ReflectionExtractor.php | 2 +- .../Tests/Extractor/ReflectionExtractorTest.php | 2 ++ .../Component/PropertyInfo/Tests/Fixtures/Php80Dummy.php | 8 ++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/PropertyInfo/Extractor/ReflectionExtractor.php b/src/Symfony/Component/PropertyInfo/Extractor/ReflectionExtractor.php index 59af87584b464..d17b1c84671f7 100644 --- a/src/Symfony/Component/PropertyInfo/Extractor/ReflectionExtractor.php +++ b/src/Symfony/Component/PropertyInfo/Extractor/ReflectionExtractor.php @@ -243,7 +243,7 @@ private function extractFromReflectionType(\ReflectionType $reflectionType, \Ref foreach ($reflectionType instanceof \ReflectionUnionType ? $reflectionType->getTypes() : [$reflectionType] as $type) { $phpTypeOrClass = $reflectionType instanceof \ReflectionNamedType ? $reflectionType->getName() : (string) $type; - if ('null' === $phpTypeOrClass) { + if ('null' === $phpTypeOrClass || 'mixed' === $phpTypeOrClass) { continue; } diff --git a/src/Symfony/Component/PropertyInfo/Tests/Extractor/ReflectionExtractorTest.php b/src/Symfony/Component/PropertyInfo/Tests/Extractor/ReflectionExtractorTest.php index bac036aa5bf90..5ce1e7ba4cce8 100644 --- a/src/Symfony/Component/PropertyInfo/Tests/Extractor/ReflectionExtractorTest.php +++ b/src/Symfony/Component/PropertyInfo/Tests/Extractor/ReflectionExtractorTest.php @@ -221,6 +221,8 @@ public function php80TypesProvider() ['timeout', [new Type(Type::BUILTIN_TYPE_INT), new Type(Type::BUILTIN_TYPE_FLOAT)]], ['optional', [new Type(Type::BUILTIN_TYPE_INT, true), new Type(Type::BUILTIN_TYPE_FLOAT, true)]], ['string', [new Type(Type::BUILTIN_TYPE_OBJECT, false, 'Stringable'), new Type(Type::BUILTIN_TYPE_STRING)]], + ['payload', null], + ['data', null], ]; } diff --git a/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Php80Dummy.php b/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Php80Dummy.php index 484498f4a6c0e..3e1ffba6628f0 100644 --- a/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Php80Dummy.php +++ b/src/Symfony/Component/PropertyInfo/Tests/Fixtures/Php80Dummy.php @@ -23,4 +23,12 @@ public function getOptional(): int|float|null public function setString(string|\Stringable $string) { } + + public function setPayload(mixed $payload) + { + } + + public function getData(): mixed + { + } } From b45f002932f6f06a38ef616fa9e627acd639cb1c Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Mon, 12 Oct 2020 12:52:41 +0200 Subject: [PATCH 028/156] Disable the PhpUnit bridge when testing it --- .travis.yml | 4 ++-- phpunit | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index ab57c5518ce1b..118094527448b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -244,7 +244,7 @@ install: export SYMFONY_DEPRECATIONS_HELPER=weak && cp composer.json composer.json.orig && echo -e '{\n"require":{'"$(grep phpunit-bridge composer.json)"'"php":"*"},"minimum-stability":"dev"}' > composer.json && - php .github/build-packages.php HEAD^ $(find src/Symfony -mindepth 3 -type f -name composer.json -printf '%h\n' | sort) && + php .github/build-packages.php HEAD^ $(find src/Symfony -mindepth 2 -type f -name composer.json -printf '%h\n' | sort) && mv composer.json composer.json.phpunit && mv composer.json.orig composer.json fi @@ -268,7 +268,7 @@ install: - | # Skip the phpunit-bridge on bugfix-only branches when $deps is empty if [[ ! $deps && ! $TRAVIS_BRANCH = *.x ]]; then - export COMPONENTS=$(find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist -not -wholename '*/Bridge/PhpUnit/*' -printf '%h\n' | sort) + export COMPONENTS=$(find src/Symfony -mindepth 2 -type f -name phpunit.xml.dist -not -wholename '*/Bridge/PhpUnit/*' -printf '%h\n' | sort) fi - | diff --git a/phpunit b/phpunit index af8cc7f7520e8..71915eecb2b34 100755 --- a/phpunit +++ b/phpunit @@ -24,5 +24,8 @@ if (!getenv('SYMFONY_PHPUNIT_VERSION')) { if (!getenv('SYMFONY_PATCH_TYPE_DECLARATIONS')) { putenv('SYMFONY_PATCH_TYPE_DECLARATIONS=deprecations=1'); } +if (getcwd() === realpath(__DIR__.'/src/Symfony/Bridge/PhpUnit')) { + putenv('SYMFONY_DEPRECATIONS_HELPER=disabled'); +} putenv('SYMFONY_PHPUNIT_DIR='.__DIR__.'/.phpunit'); require __DIR__.'/vendor/symfony/phpunit-bridge/bin/simple-phpunit'; From 48e6976ac8de35578d97ee4cf6cb914793e77d11 Mon Sep 17 00:00:00 2001 From: idetox Date: Sun, 11 Oct 2020 19:10:53 +0200 Subject: [PATCH 029/156] [Typography] Remove unneeded description comments --- src/Symfony/Component/Serializer/Encoder/DecoderInterface.php | 2 -- src/Symfony/Component/Serializer/Encoder/EncoderInterface.php | 2 -- .../Serializer/Normalizer/DenormalizerAwareInterface.php | 2 -- .../Component/Serializer/Normalizer/DenormalizerAwareTrait.php | 2 -- .../Component/Serializer/Normalizer/DenormalizerInterface.php | 2 -- .../Serializer/Normalizer/NormalizerAwareInterface.php | 2 -- .../Component/Serializer/Normalizer/NormalizerAwareTrait.php | 2 -- .../Component/Serializer/Normalizer/NormalizerInterface.php | 2 -- src/Symfony/Component/Serializer/SerializerAwareInterface.php | 2 -- src/Symfony/Component/Serializer/SerializerAwareTrait.php | 2 -- src/Symfony/Component/Serializer/SerializerInterface.php | 2 -- 11 files changed, 22 deletions(-) diff --git a/src/Symfony/Component/Serializer/Encoder/DecoderInterface.php b/src/Symfony/Component/Serializer/Encoder/DecoderInterface.php index cfc591e7adf81..9c5a6a4384389 100644 --- a/src/Symfony/Component/Serializer/Encoder/DecoderInterface.php +++ b/src/Symfony/Component/Serializer/Encoder/DecoderInterface.php @@ -14,8 +14,6 @@ use Symfony\Component\Serializer\Exception\UnexpectedValueException; /** - * Defines the interface of decoders. - * * @author Jordi Boggiano */ interface DecoderInterface diff --git a/src/Symfony/Component/Serializer/Encoder/EncoderInterface.php b/src/Symfony/Component/Serializer/Encoder/EncoderInterface.php index 9b9862e2acb23..8e5ebbc12fcad 100644 --- a/src/Symfony/Component/Serializer/Encoder/EncoderInterface.php +++ b/src/Symfony/Component/Serializer/Encoder/EncoderInterface.php @@ -14,8 +14,6 @@ use Symfony\Component\Serializer\Exception\UnexpectedValueException; /** - * Defines the interface of encoders. - * * @author Jordi Boggiano */ interface EncoderInterface diff --git a/src/Symfony/Component/Serializer/Normalizer/DenormalizerAwareInterface.php b/src/Symfony/Component/Serializer/Normalizer/DenormalizerAwareInterface.php index 87bfb842290e6..f88df1bec6827 100644 --- a/src/Symfony/Component/Serializer/Normalizer/DenormalizerAwareInterface.php +++ b/src/Symfony/Component/Serializer/Normalizer/DenormalizerAwareInterface.php @@ -12,8 +12,6 @@ namespace Symfony\Component\Serializer\Normalizer; /** - * Class accepting a denormalizer. - * * @author Joel Wurtz */ interface DenormalizerAwareInterface diff --git a/src/Symfony/Component/Serializer/Normalizer/DenormalizerAwareTrait.php b/src/Symfony/Component/Serializer/Normalizer/DenormalizerAwareTrait.php index ff8528bff93ce..1daf54488e84e 100644 --- a/src/Symfony/Component/Serializer/Normalizer/DenormalizerAwareTrait.php +++ b/src/Symfony/Component/Serializer/Normalizer/DenormalizerAwareTrait.php @@ -12,8 +12,6 @@ namespace Symfony\Component\Serializer\Normalizer; /** - * DenormalizerAware trait. - * * @author Joel Wurtz */ trait DenormalizerAwareTrait diff --git a/src/Symfony/Component/Serializer/Normalizer/DenormalizerInterface.php b/src/Symfony/Component/Serializer/Normalizer/DenormalizerInterface.php index 8e48788828cd9..effe8f1c4ff46 100644 --- a/src/Symfony/Component/Serializer/Normalizer/DenormalizerInterface.php +++ b/src/Symfony/Component/Serializer/Normalizer/DenormalizerInterface.php @@ -20,8 +20,6 @@ use Symfony\Component\Serializer\Exception\UnexpectedValueException; /** - * Defines the interface of denormalizers. - * * @author Jordi Boggiano */ interface DenormalizerInterface diff --git a/src/Symfony/Component/Serializer/Normalizer/NormalizerAwareInterface.php b/src/Symfony/Component/Serializer/Normalizer/NormalizerAwareInterface.php index be380912b1ca4..08865a3f1e395 100644 --- a/src/Symfony/Component/Serializer/Normalizer/NormalizerAwareInterface.php +++ b/src/Symfony/Component/Serializer/Normalizer/NormalizerAwareInterface.php @@ -12,8 +12,6 @@ namespace Symfony\Component\Serializer\Normalizer; /** - * Class accepting a normalizer. - * * @author Joel Wurtz */ interface NormalizerAwareInterface diff --git a/src/Symfony/Component/Serializer/Normalizer/NormalizerAwareTrait.php b/src/Symfony/Component/Serializer/Normalizer/NormalizerAwareTrait.php index 7d60587550cb9..34eeada733f3c 100644 --- a/src/Symfony/Component/Serializer/Normalizer/NormalizerAwareTrait.php +++ b/src/Symfony/Component/Serializer/Normalizer/NormalizerAwareTrait.php @@ -12,8 +12,6 @@ namespace Symfony\Component\Serializer\Normalizer; /** - * NormalizerAware trait. - * * @author Joel Wurtz */ trait NormalizerAwareTrait diff --git a/src/Symfony/Component/Serializer/Normalizer/NormalizerInterface.php b/src/Symfony/Component/Serializer/Normalizer/NormalizerInterface.php index 4e0fbfb7a6b14..d7f89095ffba6 100644 --- a/src/Symfony/Component/Serializer/Normalizer/NormalizerInterface.php +++ b/src/Symfony/Component/Serializer/Normalizer/NormalizerInterface.php @@ -17,8 +17,6 @@ use Symfony\Component\Serializer\Exception\LogicException; /** - * Defines the interface of normalizers. - * * @author Jordi Boggiano */ interface NormalizerInterface diff --git a/src/Symfony/Component/Serializer/SerializerAwareInterface.php b/src/Symfony/Component/Serializer/SerializerAwareInterface.php index 13dfb392e9688..4811fc9667d5f 100644 --- a/src/Symfony/Component/Serializer/SerializerAwareInterface.php +++ b/src/Symfony/Component/Serializer/SerializerAwareInterface.php @@ -12,8 +12,6 @@ namespace Symfony\Component\Serializer; /** - * Defines the interface of encoders. - * * @author Jordi Boggiano */ interface SerializerAwareInterface diff --git a/src/Symfony/Component/Serializer/SerializerAwareTrait.php b/src/Symfony/Component/Serializer/SerializerAwareTrait.php index 7f5839eef3e6d..c8d00f6c107f8 100644 --- a/src/Symfony/Component/Serializer/SerializerAwareTrait.php +++ b/src/Symfony/Component/Serializer/SerializerAwareTrait.php @@ -12,8 +12,6 @@ namespace Symfony\Component\Serializer; /** - * SerializerAware trait. - * * @author Joel Wurtz */ trait SerializerAwareTrait diff --git a/src/Symfony/Component/Serializer/SerializerInterface.php b/src/Symfony/Component/Serializer/SerializerInterface.php index aa00f2222b847..9151a890e8ebd 100644 --- a/src/Symfony/Component/Serializer/SerializerInterface.php +++ b/src/Symfony/Component/Serializer/SerializerInterface.php @@ -12,8 +12,6 @@ namespace Symfony\Component\Serializer; /** - * Defines the interface of the Serializer. - * * @author Jordi Boggiano */ interface SerializerInterface From d83f806e5f5d58e2f6ca8b9e2df8dce9d18f169f Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Mon, 12 Oct 2020 14:57:05 +0200 Subject: [PATCH 030/156] [Validator] remove phpunit-bridge from dev deps --- src/Symfony/Component/Validator/composer.json | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Symfony/Component/Validator/composer.json b/src/Symfony/Component/Validator/composer.json index c2826faf7ffdf..51534f58c06ef 100644 --- a/src/Symfony/Component/Validator/composer.json +++ b/src/Symfony/Component/Validator/composer.json @@ -34,7 +34,6 @@ "symfony/expression-language": "^5.1", "symfony/cache": "^4.4|^5.0", "symfony/mime": "^4.4|^5.0", - "symfony/phpunit-bridge": "^5.1.1", "symfony/property-access": "^4.4|^5.0", "symfony/property-info": "^4.4|^5.0", "symfony/translation": "^4.4|^5.0", From 481a2917c1a6f09e312bd924f4eda58ebc314747 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Mon, 12 Oct 2020 16:54:01 +0200 Subject: [PATCH 031/156] [HttpClient] fix tests and merge --- .../HttpClient/Response/AmpResponse.php | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/Symfony/Component/HttpClient/Response/AmpResponse.php b/src/Symfony/Component/HttpClient/Response/AmpResponse.php index 7745461c9475e..ed28a13c85f1b 100644 --- a/src/Symfony/Component/HttpClient/Response/AmpResponse.php +++ b/src/Symfony/Component/HttpClient/Response/AmpResponse.php @@ -24,6 +24,7 @@ use Symfony\Component\HttpClient\Exception\TransportException; use Symfony\Component\HttpClient\HttpClientTrait; use Symfony\Component\HttpClient\Internal\AmpBody; +use Symfony\Component\HttpClient\Internal\AmpCanary; use Symfony\Component\HttpClient\Internal\AmpClientState; use Symfony\Component\HttpClient\Internal\ClientState; use Symfony\Contracts\HttpClient\ResponseInterface; @@ -108,6 +109,8 @@ public function __destruct() try { $this->doDestruct(); } finally { + $multi = clone $this->multi; + $this->close(); // Clear the DNS cache when all requests completed @@ -115,6 +118,8 @@ public function __destruct() $this->multi->responseCount = 0; $this->multi->dnsCache = []; } + + $this->multi = $multi; } } @@ -189,11 +194,9 @@ private static function select(ClientState $multi, float $timeout): int private static function generateResponse(Request $request, AmpClientState $multi, string $id, array &$info, array &$headers, CancellationTokenSource $canceller, array &$options, \Closure $onProgress, &$handle, ?LoggerInterface $logger) { - $activity = &$multi->handlesActivity; - - $request->setInformationalResponseHandler(static function (Response $response) use (&$activity, $id, &$info, &$headers) { + $request->setInformationalResponseHandler(static function (Response $response) use ($multi, $id, &$info, &$headers) { self::addResponseHeaders($response, $info, $headers); - $activity[$id][] = new InformationalChunk($response->getStatus(), $response->getHeaders()); + $multi->handlesActivity[$id][] = new InformationalChunk($response->getStatus(), $response->getHeaders()); self::stopLoop(); }); @@ -207,11 +210,11 @@ private static function generateResponse(Request $request, AmpClientState $multi $options = null; - $activity[$id][] = new FirstChunk(); + $multi->handlesActivity[$id][] = new FirstChunk(); if ('HEAD' === $response->getRequest()->getMethod() || \in_array($info['http_code'], [204, 304], true)) { - $activity[$id][] = null; - $activity[$id][] = null; + $multi->handlesActivity[$id][] = null; + $multi->handlesActivity[$id][] = null; self::stopLoop(); return; @@ -231,14 +234,14 @@ private static function generateResponse(Request $request, AmpClientState $multi } $info['size_download'] += \strlen($data); - $activity[$id][] = $data; + $multi->handlesActivity[$id][] = $data; } - $activity[$id][] = null; - $activity[$id][] = null; + $multi->handlesActivity[$id][] = null; + $multi->handlesActivity[$id][] = null; } catch (\Throwable $e) { - $activity[$id][] = null; - $activity[$id][] = $e; + $multi->handlesActivity[$id][] = null; + $multi->handlesActivity[$id][] = $e; } finally { $info['download_content_length'] = $info['size_download']; } From 0159a397094a30135f9419ec3308b3700e860d9b Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Mon, 12 Oct 2020 18:02:59 +0200 Subject: [PATCH 032/156] [HttpClient] fix reading the body after a ClientException --- .../Component/HttpClient/Internal/Canary.php | 40 +++++++++++ .../HttpClient/Response/CurlResponse.php | 69 ++++++++----------- .../HttpClient/Response/NativeResponse.php | 17 +++-- .../HttpClient/Response/ResponseTrait.php | 7 +- .../HttpClient/Tests/HttpClientTestCase.php | 1 + .../HttpClient/Test/Fixtures/web/index.php | 3 + 6 files changed, 87 insertions(+), 50 deletions(-) create mode 100644 src/Symfony/Component/HttpClient/Internal/Canary.php diff --git a/src/Symfony/Component/HttpClient/Internal/Canary.php b/src/Symfony/Component/HttpClient/Internal/Canary.php new file mode 100644 index 0000000000000..3d14b5fd1ab6f --- /dev/null +++ b/src/Symfony/Component/HttpClient/Internal/Canary.php @@ -0,0 +1,40 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\HttpClient\Internal; + +/** + * @author Nicolas Grekas + * + * @internal + */ +final class Canary +{ + private $canceller; + + public function __construct(\Closure $canceller) + { + $this->canceller = $canceller; + } + + public function cancel() + { + if (($canceller = $this->canceller) instanceof \Closure) { + $this->canceller = null; + $canceller(); + } + } + + public function __destruct() + { + $this->cancel(); + } +} diff --git a/src/Symfony/Component/HttpClient/Response/CurlResponse.php b/src/Symfony/Component/HttpClient/Response/CurlResponse.php index a99bfff2e8fe2..fe1c16ac8d591 100644 --- a/src/Symfony/Component/HttpClient/Response/CurlResponse.php +++ b/src/Symfony/Component/HttpClient/Response/CurlResponse.php @@ -15,6 +15,7 @@ use Symfony\Component\HttpClient\Chunk\FirstChunk; use Symfony\Component\HttpClient\Chunk\InformationalChunk; use Symfony\Component\HttpClient\Exception\TransportException; +use Symfony\Component\HttpClient\Internal\Canary; use Symfony\Component\HttpClient\Internal\ClientState; use Symfony\Component\HttpClient\Internal\CurlClientState; use Symfony\Contracts\HttpClient\ResponseInterface; @@ -149,6 +150,31 @@ public function __construct(CurlClientState $multi, $ch, array $options = null, // Schedule the request in a non-blocking way $multi->openHandles[$id] = [$ch, $options]; curl_multi_add_handle($multi->handle, $ch); + + $this->canary = new Canary(static function () use ($ch, $multi, $id) { + unset($multi->openHandles[$id], $multi->handlesActivity[$id]); + curl_setopt($ch, \CURLOPT_PRIVATE, '_0'); + + if (self::$performing) { + return; + } + + curl_multi_remove_handle($multi->handle, $ch); + curl_setopt_array($ch, [ + \CURLOPT_NOPROGRESS => true, + \CURLOPT_PROGRESSFUNCTION => null, + \CURLOPT_HEADERFUNCTION => null, + \CURLOPT_WRITEFUNCTION => null, + \CURLOPT_READFUNCTION => null, + \CURLOPT_INFILE => null, + ]); + + if (!$multi->openHandles) { + // Schedule DNS cache eviction for the next request + $multi->dnsCache->evictions = $multi->dnsCache->evictions ?: $multi->dnsCache->removals; + $multi->dnsCache->removals = $multi->dnsCache->hostnames = []; + } + }); } /** @@ -199,48 +225,11 @@ public function getContent(bool $throw = true): string public function __destruct() { - try { - if (null === $this->timeout) { - return; // Unused pushed response - } - - $this->doDestruct(); - } finally { - $multi = clone $this->multi; - - $this->close(); - - if (!$this->multi->openHandles) { - // Schedule DNS cache eviction for the next request - $this->multi->dnsCache->evictions = $this->multi->dnsCache->evictions ?: $this->multi->dnsCache->removals; - $this->multi->dnsCache->removals = $this->multi->dnsCache->hostnames = []; - } - - $this->multi = $multi; - } - } - - /** - * {@inheritdoc} - */ - private function close(): void - { - unset($this->multi->openHandles[$this->id], $this->multi->handlesActivity[$this->id]); - curl_setopt($this->handle, \CURLOPT_PRIVATE, '_0'); - - if (self::$performing) { - return; + if (null === $this->timeout) { + return; // Unused pushed response } - curl_multi_remove_handle($this->multi->handle, $this->handle); - curl_setopt_array($this->handle, [ - \CURLOPT_NOPROGRESS => true, - \CURLOPT_PROGRESSFUNCTION => null, - \CURLOPT_HEADERFUNCTION => null, - \CURLOPT_WRITEFUNCTION => null, - \CURLOPT_READFUNCTION => null, - \CURLOPT_INFILE => null, - ]); + $this->doDestruct(); } /** diff --git a/src/Symfony/Component/HttpClient/Response/NativeResponse.php b/src/Symfony/Component/HttpClient/Response/NativeResponse.php index 41eadf1a41564..a3566aea326e4 100644 --- a/src/Symfony/Component/HttpClient/Response/NativeResponse.php +++ b/src/Symfony/Component/HttpClient/Response/NativeResponse.php @@ -14,6 +14,7 @@ use Psr\Log\LoggerInterface; use Symfony\Component\HttpClient\Chunk\FirstChunk; use Symfony\Component\HttpClient\Exception\TransportException; +use Symfony\Component\HttpClient\Internal\Canary; use Symfony\Component\HttpClient\Internal\ClientState; use Symfony\Component\HttpClient\Internal\NativeClientState; use Symfony\Contracts\HttpClient\ResponseInterface; @@ -43,7 +44,7 @@ final class NativeResponse implements ResponseInterface public function __construct(NativeClientState $multi, $context, string $url, array $options, array &$info, callable $resolveRedirect, ?callable $onProgress, ?LoggerInterface $logger) { $this->multi = $multi; - $this->id = (int) $context; + $this->id = $id = (int) $context; $this->context = $context; $this->url = $url; $this->logger = $logger; @@ -63,6 +64,10 @@ public function __construct(NativeClientState $multi, $context, string $url, arr $this->initializer = static function (self $response) { return null === $response->remaining; }; + + $this->canary = new Canary(static function () use ($multi, $id) { + unset($multi->openHandles[$id], $multi->handlesActivity[$id]); + }); } /** @@ -88,17 +93,11 @@ public function __destruct() try { $this->doDestruct(); } finally { - $multi = clone $this->multi; - - $this->close(); - // Clear the DNS cache when all requests completed if (0 >= --$this->multi->responseCount) { $this->multi->responseCount = 0; $this->multi->dnsCache = []; } - - $this->multi = $multi; } } @@ -192,8 +191,8 @@ private function open(): void */ private function close(): void { - unset($this->multi->openHandles[$this->id], $this->multi->handlesActivity[$this->id]); - $this->handle = $this->buffer = $this->onProgress = null; + $this->canary->cancel(); + $this->handle = $this->buffer = $this->inflate = $this->onProgress = null; } /** diff --git a/src/Symfony/Component/HttpClient/Response/ResponseTrait.php b/src/Symfony/Component/HttpClient/Response/ResponseTrait.php index 9f457d334ecdd..4a3dfce062e7b 100644 --- a/src/Symfony/Component/HttpClient/Response/ResponseTrait.php +++ b/src/Symfony/Component/HttpClient/Response/ResponseTrait.php @@ -37,6 +37,7 @@ trait ResponseTrait { private $logger; private $headers = []; + private $canary; /** * @var callable|null A callback that initializes the two previous properties @@ -207,7 +208,11 @@ public function toStream(bool $throw = true) /** * Closes the response and all its network handles. */ - abstract protected function close(): void; + private function close(): void + { + $this->canary->cancel(); + $this->inflate = null; + } /** * Adds pending responses to the activity list. diff --git a/src/Symfony/Component/HttpClient/Tests/HttpClientTestCase.php b/src/Symfony/Component/HttpClient/Tests/HttpClientTestCase.php index 3de724cc70b37..d429934b8bdfa 100644 --- a/src/Symfony/Component/HttpClient/Tests/HttpClientTestCase.php +++ b/src/Symfony/Component/HttpClient/Tests/HttpClientTestCase.php @@ -134,6 +134,7 @@ public function testHandleIsRemovedOnException() // The response content-type mustn't be json as that calls getContent // @see src/Symfony/Component/HttpClient/Exception/HttpExceptionTrait.php:58 $this->assertStringNotContainsString('json', $e->getResponse()->getHeaders(false)['content-type'][0] ?? ''); + unset($e); $r = new \ReflectionProperty($client, 'multi'); $r->setAccessible(true); diff --git a/src/Symfony/Contracts/HttpClient/Test/Fixtures/web/index.php b/src/Symfony/Contracts/HttpClient/Test/Fixtures/web/index.php index ed9d4e404540e..68406e69c4c3c 100644 --- a/src/Symfony/Contracts/HttpClient/Test/Fixtures/web/index.php +++ b/src/Symfony/Contracts/HttpClient/Test/Fixtures/web/index.php @@ -66,6 +66,9 @@ case '/404-gzipped': header('Content-Type: text/plain', true, 404); ob_start('ob_gzhandler'); + @ob_flush(); + flush(); + usleep(300000); echo 'some text'; exit; From 0f167f6ed44d0c64394b3708168654a1d24112fa Mon Sep 17 00:00:00 2001 From: Bernd Stellwag Date: Mon, 12 Oct 2020 21:56:01 +0200 Subject: [PATCH 033/156] fix warning for preloading TranslatorTrait class --- src/Symfony/Bridge/Twig/Extension/TranslationExtension.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php b/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php index d65578608d1aa..4e143f78d360e 100644 --- a/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php @@ -23,6 +23,7 @@ // Help opcache.preload discover always-needed symbols class_exists(TranslatorInterface::class); +class_exists(TranslatorTrait::class); /** * Provides integration of the Translation component with Twig. From 2a370143a4577a0c6642a09533448760203c6c92 Mon Sep 17 00:00:00 2001 From: Bernd Stellwag Date: Mon, 12 Oct 2020 21:56:01 +0200 Subject: [PATCH 034/156] fix warning for preloading TranslatorTrait class --- src/Symfony/Bridge/Twig/Extension/TranslationExtension.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php b/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php index 0204df05be7fa..96df106307da7 100644 --- a/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php @@ -26,6 +26,7 @@ // Help opcache.preload discover always-needed symbols class_exists(TranslatorInterface::class); +class_exists(TranslatorTrait::class); /** * Provides integration of the Translation component with Twig. From a279d22d250dfb5bc32e524941506f29a3025003 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 13 Oct 2020 09:44:15 +0200 Subject: [PATCH 035/156] [HttpClient] shutdown verbose output from curl at destruction --- src/Symfony/Component/HttpClient/Response/CurlResponse.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Symfony/Component/HttpClient/Response/CurlResponse.php b/src/Symfony/Component/HttpClient/Response/CurlResponse.php index fe1c16ac8d591..435f6402c796d 100644 --- a/src/Symfony/Component/HttpClient/Response/CurlResponse.php +++ b/src/Symfony/Component/HttpClient/Response/CurlResponse.php @@ -225,6 +225,8 @@ public function getContent(bool $throw = true): string public function __destruct() { + curl_setopt($this->handle, \CURLOPT_VERBOSE, false); + if (null === $this->timeout) { return; // Unused pushed response } From 4f8384829c325ae20b4125f7b465ad7b6c4eab58 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 13 Oct 2020 09:54:33 +0200 Subject: [PATCH 036/156] [HttpClient] fix using freed curl resource at destruct time --- src/Symfony/Component/HttpClient/CurlHttpClient.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Symfony/Component/HttpClient/CurlHttpClient.php b/src/Symfony/Component/HttpClient/CurlHttpClient.php index 9cb7fb52957da..247d63e28668d 100644 --- a/src/Symfony/Component/HttpClient/CurlHttpClient.php +++ b/src/Symfony/Component/HttpClient/CurlHttpClient.php @@ -320,6 +320,10 @@ public function request(string $method, string $url, array $options = []): Respo */ public function stream($responses, float $timeout = null): ResponseStreamInterface { + if (!\is_resource($this->multi->handle) && !$this->multi->handle instanceof \CurlMultiHandle) { + $responses = []; + } + if ($responses instanceof CurlResponse) { $responses = [$responses]; } elseif (!is_iterable($responses)) { From a580688ee53657c1fd05974af3dc6a188dfedf01 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 13 Oct 2020 10:06:18 +0200 Subject: [PATCH 037/156] [HttpClient] skip executing the multi handle when it's freed already --- src/Symfony/Component/HttpClient/CurlHttpClient.php | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/Symfony/Component/HttpClient/CurlHttpClient.php b/src/Symfony/Component/HttpClient/CurlHttpClient.php index 247d63e28668d..bbcaf69e3bda1 100644 --- a/src/Symfony/Component/HttpClient/CurlHttpClient.php +++ b/src/Symfony/Component/HttpClient/CurlHttpClient.php @@ -320,18 +320,16 @@ public function request(string $method, string $url, array $options = []): Respo */ public function stream($responses, float $timeout = null): ResponseStreamInterface { - if (!\is_resource($this->multi->handle) && !$this->multi->handle instanceof \CurlMultiHandle) { - $responses = []; - } - if ($responses instanceof CurlResponse) { $responses = [$responses]; } elseif (!is_iterable($responses)) { throw new \TypeError(sprintf('"%s()" expects parameter 1 to be an iterable of CurlResponse objects, "%s" given.', __METHOD__, \is_object($responses) ? \get_class($responses) : \gettype($responses))); } - $active = 0; - while (\CURLM_CALL_MULTI_PERFORM === curl_multi_exec($this->multi->handle, $active)); + if (\is_resource($this->multi->handle) || $this->multi->handle instanceof \CurlMultiHandle) { + $active = 0; + while (\CURLM_CALL_MULTI_PERFORM === curl_multi_exec($this->multi->handle, $active)); + } return new ResponseStream(CurlResponse::stream($responses, $timeout)); } From 746a8d1a0998f7e0ae9c45038ae1a8a7a696580f Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 13 Oct 2020 11:53:00 +0200 Subject: [PATCH 038/156] [DI] fix dumping env vars --- .../Component/DependencyInjection/Dumper/PhpDumper.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php index 92d039c9ed7c8..65ab834329cc5 100644 --- a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php +++ b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php @@ -1413,7 +1413,7 @@ private function addDefaultParametersMethod(): string $export = $this->exportParameters([$value]); $export = explode('0 => ', substr(rtrim($export, " ]\n"), 2, -1), 2); - if (preg_match("/\\\$this->(?:getEnv\('(?:\w++:)*+\w++'\)|targetDir\.'')/", $export[1])) { + if (preg_match("/\\\$this->(?:getEnv\('(?:[-.\w]*+:)*+\w++'\)|targetDir\.'')/", $export[1])) { $dynamicPhp[$key] = sprintf('%scase %s: $value = %s; break;', $export[0], $this->export($key), $export[1]); } else { $php[] = sprintf('%s%s => %s,', $export[0], $this->export($key), $export[1]); @@ -1819,7 +1819,7 @@ private function dumpParameter(string $name): string return $dumpedValue; } - if (!preg_match("/\\\$this->(?:getEnv\('(?:\w++:)*+\w++'\)|targetDir\.'')/", $dumpedValue)) { + if (!preg_match("/\\\$this->(?:getEnv\('(?:[-.\w]*+:)*+\w++'\)|targetDir\.'')/", $dumpedValue)) { return sprintf('$this->parameters[%s]', $this->doExport($name)); } } From 15c22c69e44d78ca11e09a4f1c77d0af58f5f7d3 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 13 Oct 2020 14:06:13 +0200 Subject: [PATCH 039/156] [String] fix "is too large" ValueError on PHP 8 --- src/Symfony/Component/String/UnicodeString.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/String/UnicodeString.php b/src/Symfony/Component/String/UnicodeString.php index 81bf8ea56b605..16945b70a4407 100644 --- a/src/Symfony/Component/String/UnicodeString.php +++ b/src/Symfony/Component/String/UnicodeString.php @@ -268,7 +268,7 @@ public function slice(int $start = 0, int $length = null): AbstractString { $str = clone $this; try { - $str->string = (string) grapheme_substr($this->string, $start, $length ?? \PHP_INT_MAX); + $str->string = (string) grapheme_substr($this->string, $start, $length ?? 2147483647); } catch (\ValueError $e) { $str->string = ''; } @@ -280,8 +280,8 @@ public function splice(string $replacement, int $start = 0, int $length = null): { $str = clone $this; $start = $start ? \strlen(grapheme_substr($this->string, 0, $start)) : 0; - $length = $length ? \strlen(grapheme_substr($this->string, $start, $length ?? \PHP_INT_MAX)) : $length; - $str->string = substr_replace($this->string, $replacement, $start, $length ?? \PHP_INT_MAX); + $length = $length ? \strlen(grapheme_substr($this->string, $start, $length ?? 2147483647)) : $length; + $str->string = substr_replace($this->string, $replacement, $start, $length ?? 2147483647); normalizer_is_normalized($str->string) ?: $str->string = normalizer_normalize($str->string); if (false === $str->string) { @@ -293,7 +293,7 @@ public function splice(string $replacement, int $start = 0, int $length = null): public function split(string $delimiter, int $limit = null, int $flags = null): array { - if (1 > $limit = $limit ?? \PHP_INT_MAX) { + if (1 > $limit = $limit ?? 2147483647) { throw new InvalidArgumentException('Split limit must be a positive integer.'); } From f9ed6940fdc8f22fc6e00b29ab8f90b31a26022f Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Wed, 7 Oct 2020 14:58:11 +0200 Subject: [PATCH 040/156] Remove "version" from composer.json files, use "branch-version" instead --- .appveyor.yml | 3 ++- .github/build-packages.php | 7 +++---- .travis.yml | 14 +++++++------- composer.json | 4 +++- src/Symfony/Bridge/Doctrine/composer.json | 4 +++- src/Symfony/Bridge/Monolog/composer.json | 4 +++- src/Symfony/Bridge/PhpUnit/composer.json | 4 ++-- src/Symfony/Bridge/ProxyManager/composer.json | 4 +++- src/Symfony/Bridge/Twig/composer.json | 4 +++- src/Symfony/Bundle/DebugBundle/composer.json | 4 +++- src/Symfony/Bundle/FrameworkBundle/composer.json | 4 +++- src/Symfony/Bundle/SecurityBundle/composer.json | 4 +++- src/Symfony/Bundle/TwigBundle/composer.json | 4 +++- src/Symfony/Bundle/WebProfilerBundle/composer.json | 4 +++- src/Symfony/Bundle/WebServerBundle/composer.json | 4 +++- src/Symfony/Component/Asset/composer.json | 4 +++- src/Symfony/Component/BrowserKit/composer.json | 4 +++- src/Symfony/Component/Cache/composer.json | 4 +++- src/Symfony/Component/ClassLoader/composer.json | 4 +++- src/Symfony/Component/Config/composer.json | 4 +++- src/Symfony/Component/Console/composer.json | 4 +++- src/Symfony/Component/CssSelector/composer.json | 4 +++- src/Symfony/Component/Debug/composer.json | 4 +++- .../Component/DependencyInjection/composer.json | 4 +++- src/Symfony/Component/DomCrawler/composer.json | 4 +++- src/Symfony/Component/Dotenv/composer.json | 4 +++- .../Component/EventDispatcher/composer.json | 4 +++- .../Component/ExpressionLanguage/composer.json | 4 +++- src/Symfony/Component/Filesystem/composer.json | 4 +++- src/Symfony/Component/Finder/composer.json | 4 +++- src/Symfony/Component/Form/composer.json | 4 +++- src/Symfony/Component/HttpFoundation/composer.json | 4 +++- src/Symfony/Component/HttpKernel/composer.json | 4 +++- src/Symfony/Component/Inflector/composer.json | 4 +++- src/Symfony/Component/Intl/composer.json | 4 +++- src/Symfony/Component/Ldap/composer.json | 4 +++- src/Symfony/Component/Lock/composer.json | 4 +++- .../Component/OptionsResolver/composer.json | 4 +++- src/Symfony/Component/Process/composer.json | 4 +++- src/Symfony/Component/PropertyAccess/composer.json | 4 +++- src/Symfony/Component/PropertyInfo/composer.json | 4 +++- src/Symfony/Component/Routing/composer.json | 4 +++- src/Symfony/Component/Security/Core/composer.json | 4 +++- src/Symfony/Component/Security/Csrf/composer.json | 4 +++- src/Symfony/Component/Security/Guard/composer.json | 4 +++- src/Symfony/Component/Security/Http/composer.json | 4 +++- src/Symfony/Component/Security/composer.json | 4 +++- src/Symfony/Component/Serializer/composer.json | 4 +++- src/Symfony/Component/Stopwatch/composer.json | 4 +++- src/Symfony/Component/Templating/composer.json | 4 +++- src/Symfony/Component/Translation/composer.json | 4 +++- src/Symfony/Component/Validator/composer.json | 4 +++- src/Symfony/Component/VarDumper/composer.json | 4 +++- src/Symfony/Component/WebLink/composer.json | 4 +++- src/Symfony/Component/Workflow/composer.json | 4 +++- src/Symfony/Component/Yaml/composer.json | 4 +++- 56 files changed, 170 insertions(+), 66 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 3f379ce4173b2..f9a43d84d65bf 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -53,10 +53,11 @@ install: - IF NOT EXIST composer.phar (appveyor DownloadFile https://github.com/composer/composer/releases/download/1.9.0/composer.phar) - php composer.phar self-update - copy /Y .github\composer-config.json %APPDATA%\Composer\config.json - - php composer.phar global require --no-progress --no-scripts --no-plugins symfony/flex dev-master + - php composer.phar global require --no-progress --no-scripts --no-plugins symfony/flex - git config --global user.email "" - git config --global user.name "Symfony" - php .github/build-packages.php "HEAD^" src\Symfony\Bridge\PhpUnit + - SET COMPOSER_ROOT_VERSION=%APPVEYOR_REPO_BRANCH%.x-dev - php composer.phar config platform.php 5.5.9 - php composer.phar update --no-progress --no-suggest --ansi - php phpunit install diff --git a/.github/build-packages.php b/.github/build-packages.php index eb5cc6757e87c..982f74aebeab3 100644 --- a/.github/build-packages.php +++ b/.github/build-packages.php @@ -50,10 +50,11 @@ passthru("cd $dir && git init && git add . && git commit -q -m - && git archive -o package.tar HEAD && rm .git/ -Rf"); } - if (!isset($package->version)) { - echo "Missing \"version\" in composer.json.\n"; + if (!isset($package->extra->{'branch-version'})) { + echo "Missing \"branch-version\" in composer.json's \"extra\".\n"; exit(1); } + $package->version = substr_replace($package->extra->{'branch-version'}, '.x-dev', -4); $package->dist['type'] = 'tar'; $package->dist['url'] = 'file://'.str_replace(DIRECTORY_SEPARATOR, '/', dirname(__DIR__))."/$dir/package.tar"; @@ -62,8 +63,6 @@ $versions = @file_get_contents('https://repo.packagist.org/p/'.$package->name.'.json') ?: sprintf('{"packages":{"%s":{"%s":%s}}}', $package->name, $package->version, file_get_contents($dir.'/composer.json')); $versions = json_decode($versions)->packages->{$package->name}; - unset($versions->{'dev-master'}); - foreach ($versions as $v => $package) { $packages[$package->name] += array($v => $package); } diff --git a/.travis.yml b/.travis.yml index ab57c5518ce1b..b66019bf58655 100644 --- a/.travis.yml +++ b/.travis.yml @@ -228,7 +228,7 @@ install: git fetch --depth=2 origin refs/pull/$SYMFONY_PHPUNIT_BRIDGE_PR/head git rm -rq src/Symfony/Bridge/PhpUnit git checkout -q FETCH_HEAD -- src/Symfony/Bridge/PhpUnit - export SYMFONY_VERSION=$(cat src/Symfony/Bridge/PhpUnit/composer.json | grep '^ *"version": *"[1-9]' | grep -o '[0-9.]*[0-9]') + export SYMFONY_VERSION=$(cat src/Symfony/Bridge/PhpUnit/composer.json | grep '^ *"branch-version": *"[1-9]' | grep -o '[0-9.]*') sed -i 's/"symfony\/phpunit-bridge": ".*"/"symfony\/phpunit-bridge": "'$SYMFONY_VERSION'.x@dev"/' composer.json rm -rf .phpunit fi @@ -254,7 +254,7 @@ install: fi - | - # For the .x branch, when deps=high, the version before .x is checked out and tested with the locally patched components + # For the feature-branch, when deps=high, the version before it is checked out and tested with the locally patched components if [[ $deps = high && $TRAVIS_BRANCH = *.x ]]; then export FLIP='🙃' export SYMFONY_VERSION=$(git ls-remote --heads | grep -o '/[1-9].*' | tail -n 1 | sed s/.//) && @@ -262,11 +262,11 @@ install: git checkout -m FETCH_HEAD && export COMPONENTS=$(find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist -printf '%h\n' | sort) else - export SYMFONY_VERSION=$(cat composer.json | grep '^ *"version". *"[1-9]' | grep -o '[0-9.]*[0-9]') + export SYMFONY_VERSION=$(cat composer.json | grep '^ *"branch-version": *"[1-9]' | grep -o '[0-9.]*') fi - | - # Skip the phpunit-bridge on bugfix-only branches when $deps is empty + # Skip the phpunit-bridge on bugfix-branches when $deps is empty if [[ ! $deps && ! $TRAVIS_BRANCH = *.x ]]; then export COMPONENTS=$(find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist -not -wholename '*/Bridge/PhpUnit/*' -printf '%h\n' | sort) fi @@ -285,11 +285,11 @@ install: else export SYMFONY_REQUIRE=">=$SYMFONY_VERSION" fi - composer global require --no-progress --no-scripts --no-plugins symfony/flex dev-master + composer global require --no-progress --no-scripts --no-plugins symfony/flex - | # Legacy tests are skipped when deps=high and when the current branch version has not the same major version number as the next one - [[ $deps = high && ${SYMFONY_VERSION%.*} != $(git show $(git ls-remote --heads | grep -FA1 /$SYMFONY_VERSION | tail -n 1):composer.json | grep '^ *"version". *"[1-9]' | grep -o '[0-9]*' | head -n 1) ]] && export LEGACY=,legacy + [[ $deps = high && ${SYMFONY_VERSION%.*} != $(git show $(git ls-remote --heads | grep -FA1 /$SYMFONY_VERSION | tail -n 1):composer.json | grep '^ *"branch-version": *"[1-9]' | grep -o '[0-9]*' | head -n 1) ]] && export LEGACY=,legacy export COMPOSER_ROOT_VERSION=$SYMFONY_VERSION.x-dev if [[ $deps ]]; then mv composer.json.phpunit composer.json; fi @@ -312,7 +312,7 @@ install: fi tfold 'composer update' $COMPOSER_UP if [[ $TRAVIS_PHP_VERSION = 5.* ]]; then - tfold 'phpunit install' 'composer global remove symfony/flex && ./phpunit install && composer global require --no-progress --no-scripts --no-plugins symfony/flex dev-master' + tfold 'phpunit install' 'composer global remove symfony/flex && ./phpunit install && composer global require --no-progress --no-scripts --no-plugins symfony/flex' else tfold 'phpunit install' ./phpunit install fi diff --git a/composer.json b/composer.json index c4ea5408e4729..3704300e89815 100644 --- a/composer.json +++ b/composer.json @@ -134,5 +134,7 @@ "files": [ "src/Symfony/Component/VarDumper/Resources/functions/dump.php" ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Bridge/Doctrine/composer.json b/src/Symfony/Bridge/Doctrine/composer.json index 97078c4b037b4..7eb365ab12810 100644 --- a/src/Symfony/Bridge/Doctrine/composer.json +++ b/src/Symfony/Bridge/Doctrine/composer.json @@ -57,5 +57,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Bridge/Monolog/composer.json b/src/Symfony/Bridge/Monolog/composer.json index 4b4c63b691a14..d2504d6183d6e 100644 --- a/src/Symfony/Bridge/Monolog/composer.json +++ b/src/Symfony/Bridge/Monolog/composer.json @@ -43,5 +43,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Bridge/PhpUnit/composer.json b/src/Symfony/Bridge/PhpUnit/composer.json index f797578bb3288..643f01816dd88 100644 --- a/src/Symfony/Bridge/PhpUnit/composer.json +++ b/src/Symfony/Bridge/PhpUnit/composer.json @@ -38,10 +38,10 @@ ], "minimum-stability": "dev", "extra": { + "branch-version": "3.4-dev", "thanks": { "name": "phpunit/phpunit", "url": "https://github.com/sebastianbergmann/phpunit" } - }, - "version": "3.4.x-dev" + } } diff --git a/src/Symfony/Bridge/ProxyManager/composer.json b/src/Symfony/Bridge/ProxyManager/composer.json index fb8be1edec9eb..1b0864bbb88e5 100644 --- a/src/Symfony/Bridge/ProxyManager/composer.json +++ b/src/Symfony/Bridge/ProxyManager/composer.json @@ -30,5 +30,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Bridge/Twig/composer.json b/src/Symfony/Bridge/Twig/composer.json index c661c947a2b4f..e421b3443aea7 100644 --- a/src/Symfony/Bridge/Twig/composer.json +++ b/src/Symfony/Bridge/Twig/composer.json @@ -67,5 +67,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Bundle/DebugBundle/composer.json b/src/Symfony/Bundle/DebugBundle/composer.json index 7f67ccf169b85..8e0334e75cc49 100644 --- a/src/Symfony/Bundle/DebugBundle/composer.json +++ b/src/Symfony/Bundle/DebugBundle/composer.json @@ -41,5 +41,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Bundle/FrameworkBundle/composer.json b/src/Symfony/Bundle/FrameworkBundle/composer.json index 060849fdb340f..6eec5d9104521 100644 --- a/src/Symfony/Bundle/FrameworkBundle/composer.json +++ b/src/Symfony/Bundle/FrameworkBundle/composer.json @@ -91,5 +91,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Bundle/SecurityBundle/composer.json b/src/Symfony/Bundle/SecurityBundle/composer.json index ad524906239bb..41d0fd6b9f484 100644 --- a/src/Symfony/Bundle/SecurityBundle/composer.json +++ b/src/Symfony/Bundle/SecurityBundle/composer.json @@ -62,5 +62,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Bundle/TwigBundle/composer.json b/src/Symfony/Bundle/TwigBundle/composer.json index 3498946daadc4..24f2216747c54 100644 --- a/src/Symfony/Bundle/TwigBundle/composer.json +++ b/src/Symfony/Bundle/TwigBundle/composer.json @@ -51,5 +51,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Bundle/WebProfilerBundle/composer.json b/src/Symfony/Bundle/WebProfilerBundle/composer.json index 81da6b217b23a..83aa3afffc414 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/composer.json +++ b/src/Symfony/Bundle/WebProfilerBundle/composer.json @@ -45,5 +45,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Bundle/WebServerBundle/composer.json b/src/Symfony/Bundle/WebServerBundle/composer.json index d6f22240170e7..983876f5d9bf8 100644 --- a/src/Symfony/Bundle/WebServerBundle/composer.json +++ b/src/Symfony/Bundle/WebServerBundle/composer.json @@ -35,5 +35,7 @@ "symfony/expression-language": "For using the filter option of the log server." }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Asset/composer.json b/src/Symfony/Component/Asset/composer.json index 394c5792da411..6556fab00f628 100644 --- a/src/Symfony/Component/Asset/composer.json +++ b/src/Symfony/Component/Asset/composer.json @@ -32,5 +32,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/BrowserKit/composer.json b/src/Symfony/Component/BrowserKit/composer.json index 5c65eb6a71a96..01a8ac60a39df 100644 --- a/src/Symfony/Component/BrowserKit/composer.json +++ b/src/Symfony/Component/BrowserKit/composer.json @@ -33,5 +33,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Cache/composer.json b/src/Symfony/Component/Cache/composer.json index 474d67232fefb..4381305c3374e 100644 --- a/src/Symfony/Component/Cache/composer.json +++ b/src/Symfony/Component/Cache/composer.json @@ -42,5 +42,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/ClassLoader/composer.json b/src/Symfony/Component/ClassLoader/composer.json index f291e200a41f5..bf00a95ac585b 100644 --- a/src/Symfony/Component/ClassLoader/composer.json +++ b/src/Symfony/Component/ClassLoader/composer.json @@ -32,5 +32,7 @@ "/Tests/" ] }, - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Config/composer.json b/src/Symfony/Component/Config/composer.json index 02c990204c283..9c261c0821ea5 100644 --- a/src/Symfony/Component/Config/composer.json +++ b/src/Symfony/Component/Config/composer.json @@ -40,5 +40,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Console/composer.json b/src/Symfony/Component/Console/composer.json index 9135a767a1397..bb8be863e4d8e 100644 --- a/src/Symfony/Component/Console/composer.json +++ b/src/Symfony/Component/Console/composer.json @@ -48,5 +48,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/CssSelector/composer.json b/src/Symfony/Component/CssSelector/composer.json index 603db8c9b59e7..51eac6c10b072 100644 --- a/src/Symfony/Component/CssSelector/composer.json +++ b/src/Symfony/Component/CssSelector/composer.json @@ -29,5 +29,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Debug/composer.json b/src/Symfony/Component/Debug/composer.json index b9d87042ff8a3..a8bc2d0b5252f 100644 --- a/src/Symfony/Component/Debug/composer.json +++ b/src/Symfony/Component/Debug/composer.json @@ -32,5 +32,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/DependencyInjection/composer.json b/src/Symfony/Component/DependencyInjection/composer.json index 904983daafc34..4b98cd5bd982e 100644 --- a/src/Symfony/Component/DependencyInjection/composer.json +++ b/src/Symfony/Component/DependencyInjection/composer.json @@ -47,5 +47,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/DomCrawler/composer.json b/src/Symfony/Component/DomCrawler/composer.json index 6a5cb973b394d..e9e04c16c42fc 100644 --- a/src/Symfony/Component/DomCrawler/composer.json +++ b/src/Symfony/Component/DomCrawler/composer.json @@ -33,5 +33,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Dotenv/composer.json b/src/Symfony/Component/Dotenv/composer.json index fec7f35ce8e09..222c78020be90 100644 --- a/src/Symfony/Component/Dotenv/composer.json +++ b/src/Symfony/Component/Dotenv/composer.json @@ -28,5 +28,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/EventDispatcher/composer.json b/src/Symfony/Component/EventDispatcher/composer.json index 6f0c13ba92133..7932f33fa3fae 100644 --- a/src/Symfony/Component/EventDispatcher/composer.json +++ b/src/Symfony/Component/EventDispatcher/composer.json @@ -40,5 +40,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/ExpressionLanguage/composer.json b/src/Symfony/Component/ExpressionLanguage/composer.json index becba884dfd12..996581fdfc62b 100644 --- a/src/Symfony/Component/ExpressionLanguage/composer.json +++ b/src/Symfony/Component/ExpressionLanguage/composer.json @@ -27,5 +27,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Filesystem/composer.json b/src/Symfony/Component/Filesystem/composer.json index a5dde06150710..fd4471b585b40 100644 --- a/src/Symfony/Component/Filesystem/composer.json +++ b/src/Symfony/Component/Filesystem/composer.json @@ -26,5 +26,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Finder/composer.json b/src/Symfony/Component/Finder/composer.json index d0820916eb1a0..b4f30342a071a 100644 --- a/src/Symfony/Component/Finder/composer.json +++ b/src/Symfony/Component/Finder/composer.json @@ -25,5 +25,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Form/composer.json b/src/Symfony/Component/Form/composer.json index 7bfe4ddf9eb58..9823a93857ca4 100644 --- a/src/Symfony/Component/Form/composer.json +++ b/src/Symfony/Component/Form/composer.json @@ -58,5 +58,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/HttpFoundation/composer.json b/src/Symfony/Component/HttpFoundation/composer.json index 4abed072251ff..cf00ad225fe0b 100644 --- a/src/Symfony/Component/HttpFoundation/composer.json +++ b/src/Symfony/Component/HttpFoundation/composer.json @@ -30,5 +30,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/HttpKernel/composer.json b/src/Symfony/Component/HttpKernel/composer.json index a2961007d719e..388fff70d0df4 100644 --- a/src/Symfony/Component/HttpKernel/composer.json +++ b/src/Symfony/Component/HttpKernel/composer.json @@ -66,5 +66,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Inflector/composer.json b/src/Symfony/Component/Inflector/composer.json index e282009f7d37a..05dedaa814a2d 100644 --- a/src/Symfony/Component/Inflector/composer.json +++ b/src/Symfony/Component/Inflector/composer.json @@ -33,5 +33,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Intl/composer.json b/src/Symfony/Component/Intl/composer.json index 2adf30c513a85..9f08c69990460 100644 --- a/src/Symfony/Component/Intl/composer.json +++ b/src/Symfony/Component/Intl/composer.json @@ -41,5 +41,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Ldap/composer.json b/src/Symfony/Component/Ldap/composer.json index 9e1f5f5057249..68a6d66037d8e 100644 --- a/src/Symfony/Component/Ldap/composer.json +++ b/src/Symfony/Component/Ldap/composer.json @@ -28,5 +28,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Lock/composer.json b/src/Symfony/Component/Lock/composer.json index b155099334ece..fe32debbff24a 100644 --- a/src/Symfony/Component/Lock/composer.json +++ b/src/Symfony/Component/Lock/composer.json @@ -30,5 +30,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/OptionsResolver/composer.json b/src/Symfony/Component/OptionsResolver/composer.json index 1f3df00ad7ddb..20ab8140f8a47 100644 --- a/src/Symfony/Component/OptionsResolver/composer.json +++ b/src/Symfony/Component/OptionsResolver/composer.json @@ -25,5 +25,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Process/composer.json b/src/Symfony/Component/Process/composer.json index c6367ccd007e7..50ed1367bfcda 100644 --- a/src/Symfony/Component/Process/composer.json +++ b/src/Symfony/Component/Process/composer.json @@ -25,5 +25,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/PropertyAccess/composer.json b/src/Symfony/Component/PropertyAccess/composer.json index 7f8eb025cbfae..32187ec9a03a7 100644 --- a/src/Symfony/Component/PropertyAccess/composer.json +++ b/src/Symfony/Component/PropertyAccess/composer.json @@ -33,5 +33,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/PropertyInfo/composer.json b/src/Symfony/Component/PropertyInfo/composer.json index a01cada9f42da..e0c169541d701 100644 --- a/src/Symfony/Component/PropertyInfo/composer.json +++ b/src/Symfony/Component/PropertyInfo/composer.json @@ -51,5 +51,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Routing/composer.json b/src/Symfony/Component/Routing/composer.json index 55da0f7ee9f14..9ec630bcc6037 100644 --- a/src/Symfony/Component/Routing/composer.json +++ b/src/Symfony/Component/Routing/composer.json @@ -46,5 +46,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Security/Core/composer.json b/src/Symfony/Component/Security/Core/composer.json index 715d37472ad86..56d8fcd562035 100644 --- a/src/Symfony/Component/Security/Core/composer.json +++ b/src/Symfony/Component/Security/Core/composer.json @@ -43,5 +43,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Security/Csrf/composer.json b/src/Symfony/Component/Security/Csrf/composer.json index 06e3b2429910d..ff6a2e9e74a27 100644 --- a/src/Symfony/Component/Security/Csrf/composer.json +++ b/src/Symfony/Component/Security/Csrf/composer.json @@ -37,5 +37,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Security/Guard/composer.json b/src/Symfony/Component/Security/Guard/composer.json index d1803d3eb4218..c13058e832e47 100644 --- a/src/Symfony/Component/Security/Guard/composer.json +++ b/src/Symfony/Component/Security/Guard/composer.json @@ -30,5 +30,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Security/Http/composer.json b/src/Symfony/Component/Security/Http/composer.json index 9147501ad88b1..ae1a7276b67d3 100644 --- a/src/Symfony/Component/Security/Http/composer.json +++ b/src/Symfony/Component/Security/Http/composer.json @@ -44,5 +44,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Security/composer.json b/src/Symfony/Component/Security/composer.json index 0dc7e59554b0e..090e746a5cba3 100644 --- a/src/Symfony/Component/Security/composer.json +++ b/src/Symfony/Component/Security/composer.json @@ -59,5 +59,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Serializer/composer.json b/src/Symfony/Component/Serializer/composer.json index d7f69a916df8f..18db4da89cee8 100644 --- a/src/Symfony/Component/Serializer/composer.json +++ b/src/Symfony/Component/Serializer/composer.json @@ -55,5 +55,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Stopwatch/composer.json b/src/Symfony/Component/Stopwatch/composer.json index 99e415cdf8e24..0cc121a4ec50b 100644 --- a/src/Symfony/Component/Stopwatch/composer.json +++ b/src/Symfony/Component/Stopwatch/composer.json @@ -25,5 +25,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Templating/composer.json b/src/Symfony/Component/Templating/composer.json index f497bd42edf64..0a03d103febd6 100644 --- a/src/Symfony/Component/Templating/composer.json +++ b/src/Symfony/Component/Templating/composer.json @@ -32,5 +32,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Translation/composer.json b/src/Symfony/Component/Translation/composer.json index fbe802520f052..d23aebd961e14 100644 --- a/src/Symfony/Component/Translation/composer.json +++ b/src/Symfony/Component/Translation/composer.json @@ -46,5 +46,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Validator/composer.json b/src/Symfony/Component/Validator/composer.json index 200f41296821d..75956097281da 100644 --- a/src/Symfony/Component/Validator/composer.json +++ b/src/Symfony/Component/Validator/composer.json @@ -62,5 +62,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/VarDumper/composer.json b/src/Symfony/Component/VarDumper/composer.json index ae38ce5ed785e..286f90af1c37c 100644 --- a/src/Symfony/Component/VarDumper/composer.json +++ b/src/Symfony/Component/VarDumper/composer.json @@ -39,5 +39,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/WebLink/composer.json b/src/Symfony/Component/WebLink/composer.json index fbd30d1c833dd..125dae573e4b2 100644 --- a/src/Symfony/Component/WebLink/composer.json +++ b/src/Symfony/Component/WebLink/composer.json @@ -35,5 +35,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Workflow/composer.json b/src/Symfony/Component/Workflow/composer.json index f77b2719fad40..80c88dfa5c218 100644 --- a/src/Symfony/Component/Workflow/composer.json +++ b/src/Symfony/Component/Workflow/composer.json @@ -35,5 +35,7 @@ "psr-4": { "Symfony\\Component\\Workflow\\": "" } }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } diff --git a/src/Symfony/Component/Yaml/composer.json b/src/Symfony/Component/Yaml/composer.json index 6da8cf38608f9..4f74a6f00345d 100644 --- a/src/Symfony/Component/Yaml/composer.json +++ b/src/Symfony/Component/Yaml/composer.json @@ -35,5 +35,7 @@ ] }, "minimum-stability": "dev", - "version": "3.4.x-dev" + "extra": { + "branch-version": "3.4-dev" + } } From 1db73dfe02601894f5a00eb9ce20b488d07a27a2 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 13 Oct 2020 14:45:49 +0200 Subject: [PATCH 041/156] Fix merge --- .appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.appveyor.yml b/.appveyor.yml index 53cd5736befd3..a41268c50a683 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -49,7 +49,7 @@ install: - php composer.phar global require --no-progress --no-scripts --no-plugins symfony/flex - git config --global user.email "" - git config --global user.name "Symfony" - - php .github/build-packages.php "HEAD^" src\Symfony\Bridge\PhpUnit + - php .github/build-packages.php "HEAD^" src\Symfony\Bridge\PhpUnit src\Symfony\Contracts - SET COMPOSER_ROOT_VERSION=%APPVEYOR_REPO_BRANCH%.x-dev - php composer.phar update --no-progress --no-suggest --ansi - php phpunit install From 44a7e3e920fce011d306062ffad4b48e16d54e21 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 13 Oct 2020 15:20:16 +0200 Subject: [PATCH 042/156] Fix branch-version --- composer.json | 2 +- src/Symfony/Bridge/Doctrine/composer.json | 2 +- src/Symfony/Bridge/Monolog/composer.json | 2 +- src/Symfony/Bridge/PhpUnit/composer.json | 2 +- src/Symfony/Bridge/ProxyManager/composer.json | 2 +- src/Symfony/Bridge/Twig/composer.json | 2 +- src/Symfony/Bundle/DebugBundle/composer.json | 2 +- src/Symfony/Bundle/FrameworkBundle/composer.json | 2 +- src/Symfony/Bundle/SecurityBundle/composer.json | 2 +- src/Symfony/Bundle/TwigBundle/composer.json | 2 +- src/Symfony/Bundle/WebProfilerBundle/composer.json | 2 +- src/Symfony/Bundle/WebServerBundle/composer.json | 2 +- src/Symfony/Component/Asset/composer.json | 2 +- src/Symfony/Component/BrowserKit/composer.json | 2 +- src/Symfony/Component/Cache/composer.json | 2 +- src/Symfony/Component/ClassLoader/composer.json | 2 +- src/Symfony/Component/Config/composer.json | 2 +- src/Symfony/Component/Console/composer.json | 2 +- src/Symfony/Component/CssSelector/composer.json | 2 +- src/Symfony/Component/Debug/composer.json | 2 +- src/Symfony/Component/DependencyInjection/composer.json | 2 +- src/Symfony/Component/DomCrawler/composer.json | 2 +- src/Symfony/Component/Dotenv/composer.json | 2 +- src/Symfony/Component/EventDispatcher/composer.json | 2 +- src/Symfony/Component/ExpressionLanguage/composer.json | 2 +- src/Symfony/Component/Filesystem/composer.json | 2 +- src/Symfony/Component/Finder/composer.json | 2 +- src/Symfony/Component/Form/composer.json | 2 +- src/Symfony/Component/HttpFoundation/composer.json | 2 +- src/Symfony/Component/HttpKernel/composer.json | 2 +- src/Symfony/Component/Inflector/composer.json | 2 +- src/Symfony/Component/Intl/composer.json | 2 +- src/Symfony/Component/Ldap/composer.json | 2 +- src/Symfony/Component/Lock/composer.json | 2 +- src/Symfony/Component/OptionsResolver/composer.json | 2 +- src/Symfony/Component/Process/composer.json | 2 +- src/Symfony/Component/PropertyAccess/composer.json | 2 +- src/Symfony/Component/PropertyInfo/composer.json | 2 +- src/Symfony/Component/Routing/composer.json | 2 +- src/Symfony/Component/Security/Core/composer.json | 2 +- src/Symfony/Component/Security/Csrf/composer.json | 2 +- src/Symfony/Component/Security/Guard/composer.json | 2 +- src/Symfony/Component/Security/Http/composer.json | 2 +- src/Symfony/Component/Security/composer.json | 2 +- src/Symfony/Component/Serializer/composer.json | 2 +- src/Symfony/Component/Stopwatch/composer.json | 2 +- src/Symfony/Component/Templating/composer.json | 2 +- src/Symfony/Component/Translation/composer.json | 2 +- src/Symfony/Component/Validator/composer.json | 2 +- src/Symfony/Component/VarDumper/composer.json | 2 +- src/Symfony/Component/WebLink/composer.json | 2 +- src/Symfony/Component/Workflow/composer.json | 2 +- src/Symfony/Component/Yaml/composer.json | 2 +- 53 files changed, 53 insertions(+), 53 deletions(-) diff --git a/composer.json b/composer.json index 3704300e89815..8fa2384bd6b39 100644 --- a/composer.json +++ b/composer.json @@ -135,6 +135,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Bridge/Doctrine/composer.json b/src/Symfony/Bridge/Doctrine/composer.json index 7eb365ab12810..0aa807111843e 100644 --- a/src/Symfony/Bridge/Doctrine/composer.json +++ b/src/Symfony/Bridge/Doctrine/composer.json @@ -58,6 +58,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Bridge/Monolog/composer.json b/src/Symfony/Bridge/Monolog/composer.json index d2504d6183d6e..d17f61b5c078a 100644 --- a/src/Symfony/Bridge/Monolog/composer.json +++ b/src/Symfony/Bridge/Monolog/composer.json @@ -44,6 +44,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Bridge/PhpUnit/composer.json b/src/Symfony/Bridge/PhpUnit/composer.json index 643f01816dd88..a9154a6e91ffd 100644 --- a/src/Symfony/Bridge/PhpUnit/composer.json +++ b/src/Symfony/Bridge/PhpUnit/composer.json @@ -38,7 +38,7 @@ ], "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev", + "branch-version": "3.4", "thanks": { "name": "phpunit/phpunit", "url": "https://github.com/sebastianbergmann/phpunit" diff --git a/src/Symfony/Bridge/ProxyManager/composer.json b/src/Symfony/Bridge/ProxyManager/composer.json index 1b0864bbb88e5..1c86bdec95078 100644 --- a/src/Symfony/Bridge/ProxyManager/composer.json +++ b/src/Symfony/Bridge/ProxyManager/composer.json @@ -31,6 +31,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Bridge/Twig/composer.json b/src/Symfony/Bridge/Twig/composer.json index e421b3443aea7..17ee70aba70b6 100644 --- a/src/Symfony/Bridge/Twig/composer.json +++ b/src/Symfony/Bridge/Twig/composer.json @@ -68,6 +68,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Bundle/DebugBundle/composer.json b/src/Symfony/Bundle/DebugBundle/composer.json index 8e0334e75cc49..177831731cd7c 100644 --- a/src/Symfony/Bundle/DebugBundle/composer.json +++ b/src/Symfony/Bundle/DebugBundle/composer.json @@ -42,6 +42,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Bundle/FrameworkBundle/composer.json b/src/Symfony/Bundle/FrameworkBundle/composer.json index 6eec5d9104521..69e1737a65050 100644 --- a/src/Symfony/Bundle/FrameworkBundle/composer.json +++ b/src/Symfony/Bundle/FrameworkBundle/composer.json @@ -92,6 +92,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Bundle/SecurityBundle/composer.json b/src/Symfony/Bundle/SecurityBundle/composer.json index 41d0fd6b9f484..03ae6297cbf0d 100644 --- a/src/Symfony/Bundle/SecurityBundle/composer.json +++ b/src/Symfony/Bundle/SecurityBundle/composer.json @@ -63,6 +63,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Bundle/TwigBundle/composer.json b/src/Symfony/Bundle/TwigBundle/composer.json index 24f2216747c54..6ad8667faad8a 100644 --- a/src/Symfony/Bundle/TwigBundle/composer.json +++ b/src/Symfony/Bundle/TwigBundle/composer.json @@ -52,6 +52,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Bundle/WebProfilerBundle/composer.json b/src/Symfony/Bundle/WebProfilerBundle/composer.json index 83aa3afffc414..6a6bdc9cd24c1 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/composer.json +++ b/src/Symfony/Bundle/WebProfilerBundle/composer.json @@ -46,6 +46,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Bundle/WebServerBundle/composer.json b/src/Symfony/Bundle/WebServerBundle/composer.json index 983876f5d9bf8..573adc58e4128 100644 --- a/src/Symfony/Bundle/WebServerBundle/composer.json +++ b/src/Symfony/Bundle/WebServerBundle/composer.json @@ -36,6 +36,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Asset/composer.json b/src/Symfony/Component/Asset/composer.json index 6556fab00f628..430630f5c251f 100644 --- a/src/Symfony/Component/Asset/composer.json +++ b/src/Symfony/Component/Asset/composer.json @@ -33,6 +33,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/BrowserKit/composer.json b/src/Symfony/Component/BrowserKit/composer.json index 01a8ac60a39df..70b1c127eb7ea 100644 --- a/src/Symfony/Component/BrowserKit/composer.json +++ b/src/Symfony/Component/BrowserKit/composer.json @@ -34,6 +34,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Cache/composer.json b/src/Symfony/Component/Cache/composer.json index 4381305c3374e..6a03c7d08f4c9 100644 --- a/src/Symfony/Component/Cache/composer.json +++ b/src/Symfony/Component/Cache/composer.json @@ -43,6 +43,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/ClassLoader/composer.json b/src/Symfony/Component/ClassLoader/composer.json index bf00a95ac585b..ffab1952a7303 100644 --- a/src/Symfony/Component/ClassLoader/composer.json +++ b/src/Symfony/Component/ClassLoader/composer.json @@ -33,6 +33,6 @@ ] }, "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Config/composer.json b/src/Symfony/Component/Config/composer.json index 9c261c0821ea5..43858bcb2bfb9 100644 --- a/src/Symfony/Component/Config/composer.json +++ b/src/Symfony/Component/Config/composer.json @@ -41,6 +41,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Console/composer.json b/src/Symfony/Component/Console/composer.json index bb8be863e4d8e..06b0b147124ad 100644 --- a/src/Symfony/Component/Console/composer.json +++ b/src/Symfony/Component/Console/composer.json @@ -49,6 +49,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/CssSelector/composer.json b/src/Symfony/Component/CssSelector/composer.json index 51eac6c10b072..5497961c195de 100644 --- a/src/Symfony/Component/CssSelector/composer.json +++ b/src/Symfony/Component/CssSelector/composer.json @@ -30,6 +30,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Debug/composer.json b/src/Symfony/Component/Debug/composer.json index a8bc2d0b5252f..dd6a99b8c29f7 100644 --- a/src/Symfony/Component/Debug/composer.json +++ b/src/Symfony/Component/Debug/composer.json @@ -33,6 +33,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/DependencyInjection/composer.json b/src/Symfony/Component/DependencyInjection/composer.json index 4b98cd5bd982e..e5f130ea3d561 100644 --- a/src/Symfony/Component/DependencyInjection/composer.json +++ b/src/Symfony/Component/DependencyInjection/composer.json @@ -48,6 +48,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/DomCrawler/composer.json b/src/Symfony/Component/DomCrawler/composer.json index e9e04c16c42fc..72e4a7729319e 100644 --- a/src/Symfony/Component/DomCrawler/composer.json +++ b/src/Symfony/Component/DomCrawler/composer.json @@ -34,6 +34,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Dotenv/composer.json b/src/Symfony/Component/Dotenv/composer.json index 222c78020be90..9179325e4d127 100644 --- a/src/Symfony/Component/Dotenv/composer.json +++ b/src/Symfony/Component/Dotenv/composer.json @@ -29,6 +29,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/EventDispatcher/composer.json b/src/Symfony/Component/EventDispatcher/composer.json index 7932f33fa3fae..2c7bd90d0bda1 100644 --- a/src/Symfony/Component/EventDispatcher/composer.json +++ b/src/Symfony/Component/EventDispatcher/composer.json @@ -41,6 +41,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/ExpressionLanguage/composer.json b/src/Symfony/Component/ExpressionLanguage/composer.json index 996581fdfc62b..3bb1c3d48e88a 100644 --- a/src/Symfony/Component/ExpressionLanguage/composer.json +++ b/src/Symfony/Component/ExpressionLanguage/composer.json @@ -28,6 +28,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Filesystem/composer.json b/src/Symfony/Component/Filesystem/composer.json index fd4471b585b40..abea2324f1c8c 100644 --- a/src/Symfony/Component/Filesystem/composer.json +++ b/src/Symfony/Component/Filesystem/composer.json @@ -27,6 +27,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Finder/composer.json b/src/Symfony/Component/Finder/composer.json index b4f30342a071a..066fa34bedb4c 100644 --- a/src/Symfony/Component/Finder/composer.json +++ b/src/Symfony/Component/Finder/composer.json @@ -26,6 +26,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Form/composer.json b/src/Symfony/Component/Form/composer.json index 9823a93857ca4..5df6f2f33e303 100644 --- a/src/Symfony/Component/Form/composer.json +++ b/src/Symfony/Component/Form/composer.json @@ -59,6 +59,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/HttpFoundation/composer.json b/src/Symfony/Component/HttpFoundation/composer.json index cf00ad225fe0b..adf40e95fa224 100644 --- a/src/Symfony/Component/HttpFoundation/composer.json +++ b/src/Symfony/Component/HttpFoundation/composer.json @@ -31,6 +31,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/HttpKernel/composer.json b/src/Symfony/Component/HttpKernel/composer.json index 388fff70d0df4..94e77c6b36be6 100644 --- a/src/Symfony/Component/HttpKernel/composer.json +++ b/src/Symfony/Component/HttpKernel/composer.json @@ -67,6 +67,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Inflector/composer.json b/src/Symfony/Component/Inflector/composer.json index 05dedaa814a2d..4f9092712ce6a 100644 --- a/src/Symfony/Component/Inflector/composer.json +++ b/src/Symfony/Component/Inflector/composer.json @@ -34,6 +34,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Intl/composer.json b/src/Symfony/Component/Intl/composer.json index 9f08c69990460..9eb80925a360e 100644 --- a/src/Symfony/Component/Intl/composer.json +++ b/src/Symfony/Component/Intl/composer.json @@ -42,6 +42,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Ldap/composer.json b/src/Symfony/Component/Ldap/composer.json index 68a6d66037d8e..dacc28d73ced8 100644 --- a/src/Symfony/Component/Ldap/composer.json +++ b/src/Symfony/Component/Ldap/composer.json @@ -29,6 +29,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Lock/composer.json b/src/Symfony/Component/Lock/composer.json index fe32debbff24a..c9ef82c06593b 100644 --- a/src/Symfony/Component/Lock/composer.json +++ b/src/Symfony/Component/Lock/composer.json @@ -31,6 +31,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/OptionsResolver/composer.json b/src/Symfony/Component/OptionsResolver/composer.json index 20ab8140f8a47..365ad20e4750f 100644 --- a/src/Symfony/Component/OptionsResolver/composer.json +++ b/src/Symfony/Component/OptionsResolver/composer.json @@ -26,6 +26,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Process/composer.json b/src/Symfony/Component/Process/composer.json index 50ed1367bfcda..cfc0b82fe61f7 100644 --- a/src/Symfony/Component/Process/composer.json +++ b/src/Symfony/Component/Process/composer.json @@ -26,6 +26,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/PropertyAccess/composer.json b/src/Symfony/Component/PropertyAccess/composer.json index 32187ec9a03a7..8950cdab0dd3a 100644 --- a/src/Symfony/Component/PropertyAccess/composer.json +++ b/src/Symfony/Component/PropertyAccess/composer.json @@ -34,6 +34,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/PropertyInfo/composer.json b/src/Symfony/Component/PropertyInfo/composer.json index e0c169541d701..6757add10d78a 100644 --- a/src/Symfony/Component/PropertyInfo/composer.json +++ b/src/Symfony/Component/PropertyInfo/composer.json @@ -52,6 +52,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Routing/composer.json b/src/Symfony/Component/Routing/composer.json index 9ec630bcc6037..5eb4372289165 100644 --- a/src/Symfony/Component/Routing/composer.json +++ b/src/Symfony/Component/Routing/composer.json @@ -47,6 +47,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Security/Core/composer.json b/src/Symfony/Component/Security/Core/composer.json index 56d8fcd562035..76883926dbd4e 100644 --- a/src/Symfony/Component/Security/Core/composer.json +++ b/src/Symfony/Component/Security/Core/composer.json @@ -44,6 +44,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Security/Csrf/composer.json b/src/Symfony/Component/Security/Csrf/composer.json index ff6a2e9e74a27..a816ac49391df 100644 --- a/src/Symfony/Component/Security/Csrf/composer.json +++ b/src/Symfony/Component/Security/Csrf/composer.json @@ -38,6 +38,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Security/Guard/composer.json b/src/Symfony/Component/Security/Guard/composer.json index c13058e832e47..32b0395a4b651 100644 --- a/src/Symfony/Component/Security/Guard/composer.json +++ b/src/Symfony/Component/Security/Guard/composer.json @@ -31,6 +31,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Security/Http/composer.json b/src/Symfony/Component/Security/Http/composer.json index ae1a7276b67d3..1af37b88b961c 100644 --- a/src/Symfony/Component/Security/Http/composer.json +++ b/src/Symfony/Component/Security/Http/composer.json @@ -45,6 +45,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Security/composer.json b/src/Symfony/Component/Security/composer.json index 090e746a5cba3..f715c29322012 100644 --- a/src/Symfony/Component/Security/composer.json +++ b/src/Symfony/Component/Security/composer.json @@ -60,6 +60,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Serializer/composer.json b/src/Symfony/Component/Serializer/composer.json index 18db4da89cee8..9f766f5ebf0a3 100644 --- a/src/Symfony/Component/Serializer/composer.json +++ b/src/Symfony/Component/Serializer/composer.json @@ -56,6 +56,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Stopwatch/composer.json b/src/Symfony/Component/Stopwatch/composer.json index 0cc121a4ec50b..2dcd1db02210d 100644 --- a/src/Symfony/Component/Stopwatch/composer.json +++ b/src/Symfony/Component/Stopwatch/composer.json @@ -26,6 +26,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Templating/composer.json b/src/Symfony/Component/Templating/composer.json index 0a03d103febd6..c5f4715a0a85b 100644 --- a/src/Symfony/Component/Templating/composer.json +++ b/src/Symfony/Component/Templating/composer.json @@ -33,6 +33,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Translation/composer.json b/src/Symfony/Component/Translation/composer.json index d23aebd961e14..2255a6a755ed7 100644 --- a/src/Symfony/Component/Translation/composer.json +++ b/src/Symfony/Component/Translation/composer.json @@ -47,6 +47,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Validator/composer.json b/src/Symfony/Component/Validator/composer.json index 75956097281da..841798089631d 100644 --- a/src/Symfony/Component/Validator/composer.json +++ b/src/Symfony/Component/Validator/composer.json @@ -63,6 +63,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/VarDumper/composer.json b/src/Symfony/Component/VarDumper/composer.json index 286f90af1c37c..2a2ff2d89f9ce 100644 --- a/src/Symfony/Component/VarDumper/composer.json +++ b/src/Symfony/Component/VarDumper/composer.json @@ -40,6 +40,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/WebLink/composer.json b/src/Symfony/Component/WebLink/composer.json index 125dae573e4b2..381e83fbf490a 100644 --- a/src/Symfony/Component/WebLink/composer.json +++ b/src/Symfony/Component/WebLink/composer.json @@ -36,6 +36,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Workflow/composer.json b/src/Symfony/Component/Workflow/composer.json index 80c88dfa5c218..4c1e255e05c1d 100644 --- a/src/Symfony/Component/Workflow/composer.json +++ b/src/Symfony/Component/Workflow/composer.json @@ -36,6 +36,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Yaml/composer.json b/src/Symfony/Component/Yaml/composer.json index 4f74a6f00345d..cccdfcb37b4d2 100644 --- a/src/Symfony/Component/Yaml/composer.json +++ b/src/Symfony/Component/Yaml/composer.json @@ -36,6 +36,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "3.4-dev" + "branch-version": "3.4" } } From 84887f20e668c67d3c86aae34bd5776294ddc8cf Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 13 Oct 2020 15:23:55 +0200 Subject: [PATCH 043/156] Fix .github/build-packages.php --- .github/build-packages.php | 2 +- .travis.yml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/build-packages.php b/.github/build-packages.php index 982f74aebeab3..8216f4d5124d6 100644 --- a/.github/build-packages.php +++ b/.github/build-packages.php @@ -54,7 +54,7 @@ echo "Missing \"branch-version\" in composer.json's \"extra\".\n"; exit(1); } - $package->version = substr_replace($package->extra->{'branch-version'}, '.x-dev', -4); + $package->version = $package->extra->{'branch-version'}.'.x-dev'; $package->dist['type'] = 'tar'; $package->dist['url'] = 'file://'.str_replace(DIRECTORY_SEPARATOR, '/', dirname(__DIR__))."/$dir/package.tar"; diff --git a/.travis.yml b/.travis.yml index efaed3e2772ff..6765f45f3dd00 100644 --- a/.travis.yml +++ b/.travis.yml @@ -228,7 +228,7 @@ install: git fetch --depth=2 origin refs/pull/$SYMFONY_PHPUNIT_BRIDGE_PR/head git rm -rq src/Symfony/Bridge/PhpUnit git checkout -q FETCH_HEAD -- src/Symfony/Bridge/PhpUnit - export SYMFONY_VERSION=$(cat src/Symfony/Bridge/PhpUnit/composer.json | grep '^ *"branch-version": *"[1-9]' | grep -o '[0-9.]*') + export SYMFONY_VERSION=$(cat src/Symfony/Bridge/PhpUnit/composer.json | grep '^ *"branch-version". *"[1-9]' | grep -o '[0-9.]*') sed -i 's/"symfony\/phpunit-bridge": ".*"/"symfony\/phpunit-bridge": "'$SYMFONY_VERSION'.x@dev"/' composer.json rm -rf .phpunit fi @@ -262,7 +262,7 @@ install: git checkout -m FETCH_HEAD && export COMPONENTS=$(find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist -printf '%h\n' | sort) else - export SYMFONY_VERSION=$(cat composer.json | grep '^ *"branch-version": *"[1-9]' | grep -o '[0-9.]*') + export SYMFONY_VERSION=$(cat composer.json | grep '^ *"branch-version". *"[1-9]' | grep -o '[0-9.]*') fi - | @@ -289,7 +289,7 @@ install: - | # Legacy tests are skipped when deps=high and when the current branch version has not the same major version number as the next one - [[ $deps = high && ${SYMFONY_VERSION%.*} != $(git show $(git ls-remote --heads | grep -FA1 /$SYMFONY_VERSION | tail -n 1):composer.json | grep '^ *"branch-version": *"[1-9]' | grep -o '[0-9]*' | head -n 1) ]] && export LEGACY=,legacy + [[ $deps = high && ${SYMFONY_VERSION%.*} != $(git show $(git ls-remote --heads | grep -FA1 /$SYMFONY_VERSION | tail -n 1):composer.json | grep '^ *"branch-version". *"[1-9]' | grep -o '[0-9]*' | head -n 1) ]] && export LEGACY=,legacy export COMPOSER_ROOT_VERSION=$SYMFONY_VERSION.x-dev if [[ $deps ]]; then mv composer.json.phpunit composer.json; fi From af8a21f0af9056ca624c0b3c9c783de3ae1ad722 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 13 Oct 2020 15:45:14 +0200 Subject: [PATCH 044/156] Fix tests on github actions --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a6cb491a5dde2..9a962f23b33e6 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -57,7 +57,7 @@ jobs: - name: Configure composer run: | ([ -d ~/.composer ] || mkdir ~/.composer) && cp .github/composer-config.json ~/.composer/config.json - SYMFONY_VERSION=$(cat composer.json | grep '^ *\"version\". *\"[1-9]' | grep -o '[0-9.]*[0-9]') + SYMFONY_VERSION=$(cat composer.json | grep '^ *\"branch-version\". *\"[1-9]' | grep -o '[0-9.]*') echo "::set-env name=SYMFONY_VERSION::$SYMFONY_VERSION" echo "::set-env name=COMPOSER_ROOT_VERSION::$SYMFONY_VERSION.x-dev" From 1c8fff18f9ee979cd4eb32e8a8b782258f31d34b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Deruss=C3=A9?= Date: Tue, 13 Oct 2020 17:26:48 +0200 Subject: [PATCH 045/156] Remove content-type check on toArray methods --- src/Symfony/Component/HttpClient/Response/ResponseTrait.php | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/Symfony/Component/HttpClient/Response/ResponseTrait.php b/src/Symfony/Component/HttpClient/Response/ResponseTrait.php index 4a3dfce062e7b..d6ddae6def910 100644 --- a/src/Symfony/Component/HttpClient/Response/ResponseTrait.php +++ b/src/Symfony/Component/HttpClient/Response/ResponseTrait.php @@ -143,12 +143,6 @@ public function toArray(bool $throw = true): array return $this->jsonData; } - $contentType = $this->headers['content-type'][0] ?? 'application/json'; - - if (!preg_match('/\bjson\b/i', $contentType)) { - throw new JsonException(sprintf('Response content-type is "%s" while a JSON-compatible one was expected for "%s".', $contentType, $this->getInfo('url'))); - } - try { $content = json_decode($content, true, 512, \JSON_BIGINT_AS_STRING | (\PHP_VERSION_ID >= 70300 ? \JSON_THROW_ON_ERROR : 0)); } catch (\JsonException $e) { From 91122492e8786417878b53401d57526f89f2cf45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Deruss=C3=A9?= Date: Tue, 13 Oct 2020 22:48:16 +0200 Subject: [PATCH 046/156] Fix tests --- .../HttpClient/Tests/Response/MockResponseTest.php | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/Symfony/Component/HttpClient/Tests/Response/MockResponseTest.php b/src/Symfony/Component/HttpClient/Tests/Response/MockResponseTest.php index a531da353597d..b4a4a22083eb7 100644 --- a/src/Symfony/Component/HttpClient/Tests/Response/MockResponseTest.php +++ b/src/Symfony/Component/HttpClient/Tests/Response/MockResponseTest.php @@ -41,12 +41,6 @@ public function toArrayErrors() 'message' => 'Response body is empty.', ]; - yield [ - 'content' => '{}', - 'responseHeaders' => ['content-type' => 'plain/text'], - 'message' => 'Response content-type is "plain/text" while a JSON-compatible one was expected for "https://example.com/file.json".', - ]; - yield [ 'content' => 'not json', 'responseHeaders' => [], From efef41faa17509a21fd10d3220ce0d205aedb35c Mon Sep 17 00:00:00 2001 From: Nyholm Date: Wed, 14 Oct 2020 09:00:24 +0200 Subject: [PATCH 047/156] [CI] Silence errors when remove file/dir on test tearDown() --- src/Symfony/Bridge/Twig/Tests/Command/LintCommandTest.php | 2 +- .../FrameworkBundle/Tests/Command/YamlLintCommandTest.php | 4 ++-- src/Symfony/Component/Config/Tests/ConfigCacheTest.php | 2 +- .../Config/Tests/Resource/FileExistenceResourceTest.php | 2 +- .../Component/Config/Tests/Resource/FileResourceTest.php | 6 ++---- .../Config/Tests/ResourceCheckerConfigCacheTest.php | 2 +- .../Tests/Config/AutowireServiceResourceTest.php | 6 ++---- src/Symfony/Component/HttpFoundation/Tests/FileBagTest.php | 4 ++-- .../Tests/Session/Storage/MockFileSessionStorageTest.php | 2 +- .../Tests/Session/Storage/NativeSessionStorageTest.php | 2 +- .../Tests/Session/Storage/PhpBridgeSessionStorageTest.php | 2 +- .../Validator/Tests/Constraints/FileValidatorTest.php | 2 +- .../Component/Yaml/Tests/Command/LintCommandTest.php | 4 ++-- 13 files changed, 18 insertions(+), 22 deletions(-) diff --git a/src/Symfony/Bridge/Twig/Tests/Command/LintCommandTest.php b/src/Symfony/Bridge/Twig/Tests/Command/LintCommandTest.php index 166f1d9c446b2..f03e87a4a8100 100644 --- a/src/Symfony/Bridge/Twig/Tests/Command/LintCommandTest.php +++ b/src/Symfony/Bridge/Twig/Tests/Command/LintCommandTest.php @@ -120,7 +120,7 @@ protected function tearDown() { foreach ($this->files as $file) { if (file_exists($file)) { - unlink($file); + @unlink($file); } } } diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Command/YamlLintCommandTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/Command/YamlLintCommandTest.php index ba883543cadb0..3c88dc0a6637d 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/Command/YamlLintCommandTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Command/YamlLintCommandTest.php @@ -174,9 +174,9 @@ protected function tearDown() { foreach ($this->files as $file) { if (file_exists($file)) { - unlink($file); + @unlink($file); } } - rmdir(sys_get_temp_dir().'/yml-lint-test'); + @rmdir(sys_get_temp_dir().'/yml-lint-test'); } } diff --git a/src/Symfony/Component/Config/Tests/ConfigCacheTest.php b/src/Symfony/Component/Config/Tests/ConfigCacheTest.php index d0b70899b513a..95a5881733967 100644 --- a/src/Symfony/Component/Config/Tests/ConfigCacheTest.php +++ b/src/Symfony/Component/Config/Tests/ConfigCacheTest.php @@ -30,7 +30,7 @@ protected function tearDown() foreach ($files as $file) { if (file_exists($file)) { - unlink($file); + @unlink($file); } } } diff --git a/src/Symfony/Component/Config/Tests/Resource/FileExistenceResourceTest.php b/src/Symfony/Component/Config/Tests/Resource/FileExistenceResourceTest.php index 433f65e8203db..ff7fc7b5a3a12 100644 --- a/src/Symfony/Component/Config/Tests/Resource/FileExistenceResourceTest.php +++ b/src/Symfony/Component/Config/Tests/Resource/FileExistenceResourceTest.php @@ -30,7 +30,7 @@ protected function setUp() protected function tearDown() { if (file_exists($this->file)) { - unlink($this->file); + @unlink($this->file); } } diff --git a/src/Symfony/Component/Config/Tests/Resource/FileResourceTest.php b/src/Symfony/Component/Config/Tests/Resource/FileResourceTest.php index 5b789700ad8c9..a84faa956cb22 100644 --- a/src/Symfony/Component/Config/Tests/Resource/FileResourceTest.php +++ b/src/Symfony/Component/Config/Tests/Resource/FileResourceTest.php @@ -30,11 +30,9 @@ protected function setUp() protected function tearDown() { - if (!file_exists($this->file)) { - return; + if (file_exists($this->file)) { + @unlink($this->file); } - - unlink($this->file); } public function testGetResource() diff --git a/src/Symfony/Component/Config/Tests/ResourceCheckerConfigCacheTest.php b/src/Symfony/Component/Config/Tests/ResourceCheckerConfigCacheTest.php index a2c2eeb811b20..9be53196f4c5a 100644 --- a/src/Symfony/Component/Config/Tests/ResourceCheckerConfigCacheTest.php +++ b/src/Symfony/Component/Config/Tests/ResourceCheckerConfigCacheTest.php @@ -31,7 +31,7 @@ protected function tearDown() foreach ($files as $file) { if (file_exists($file)) { - unlink($file); + @unlink($file); } } } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Config/AutowireServiceResourceTest.php b/src/Symfony/Component/DependencyInjection/Tests/Config/AutowireServiceResourceTest.php index 990a9ad6639b3..325155076286e 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Config/AutowireServiceResourceTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Config/AutowireServiceResourceTest.php @@ -103,11 +103,9 @@ public function testNotFreshIfClassNotFound() protected function tearDown() { - if (!file_exists($this->file)) { - return; + if (file_exists($this->file)) { + @unlink($this->file); } - - unlink($this->file); } private function getStaleFileTime() diff --git a/src/Symfony/Component/HttpFoundation/Tests/FileBagTest.php b/src/Symfony/Component/HttpFoundation/Tests/FileBagTest.php index 8eaf168a2d686..5415dfb078d82 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/FileBagTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/FileBagTest.php @@ -165,9 +165,9 @@ protected function setUp() protected function tearDown() { foreach (glob(sys_get_temp_dir().'/form_test/*') as $file) { - unlink($file); + @unlink($file); } - rmdir(sys_get_temp_dir().'/form_test'); + @rmdir(sys_get_temp_dir().'/form_test'); } } diff --git a/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockFileSessionStorageTest.php b/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockFileSessionStorageTest.php index d6bd1823f4a71..73d154587a5ed 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockFileSessionStorageTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockFileSessionStorageTest.php @@ -43,7 +43,7 @@ protected function tearDown() { array_map('unlink', glob($this->sessionDir.'/*')); if (is_dir($this->sessionDir)) { - rmdir($this->sessionDir); + @rmdir($this->sessionDir); } $this->sessionDir = null; $this->storage = null; diff --git a/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php b/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php index 7cfcd223e0323..d86f56ebda092 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php @@ -47,7 +47,7 @@ protected function tearDown() session_write_close(); array_map('unlink', glob($this->savePath.'/*')); if (is_dir($this->savePath)) { - rmdir($this->savePath); + @rmdir($this->savePath); } $this->savePath = null; diff --git a/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/PhpBridgeSessionStorageTest.php b/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/PhpBridgeSessionStorageTest.php index 700764840d75e..e60b91b13cbc9 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/PhpBridgeSessionStorageTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/PhpBridgeSessionStorageTest.php @@ -43,7 +43,7 @@ protected function tearDown() session_write_close(); array_map('unlink', glob($this->savePath.'/*')); if (is_dir($this->savePath)) { - rmdir($this->savePath); + @rmdir($this->savePath); } $this->savePath = null; diff --git a/src/Symfony/Component/Validator/Tests/Constraints/FileValidatorTest.php b/src/Symfony/Component/Validator/Tests/Constraints/FileValidatorTest.php index ae2f2b53a8d78..89a9941182eca 100644 --- a/src/Symfony/Component/Validator/Tests/Constraints/FileValidatorTest.php +++ b/src/Symfony/Component/Validator/Tests/Constraints/FileValidatorTest.php @@ -45,7 +45,7 @@ protected function tearDown() } if (file_exists($this->path)) { - unlink($this->path); + @unlink($this->path); } $this->path = null; diff --git a/src/Symfony/Component/Yaml/Tests/Command/LintCommandTest.php b/src/Symfony/Component/Yaml/Tests/Command/LintCommandTest.php index d19185f16615a..98c63b627cf33 100644 --- a/src/Symfony/Component/Yaml/Tests/Command/LintCommandTest.php +++ b/src/Symfony/Component/Yaml/Tests/Command/LintCommandTest.php @@ -123,11 +123,11 @@ protected function tearDown() { foreach ($this->files as $file) { if (file_exists($file)) { - unlink($file); + @unlink($file); } } - rmdir(sys_get_temp_dir().'/framework-yml-lint-test'); + @rmdir(sys_get_temp_dir().'/framework-yml-lint-test'); } } From 55ad70225a819fa1f2d09c1d4aa77a28b0a6e749 Mon Sep 17 00:00:00 2001 From: Nyholm Date: Tue, 13 Oct 2020 18:10:46 +0200 Subject: [PATCH 048/156] [Lock] Reset Key lifetime time before we acquire it --- src/Symfony/Component/Lock/Lock.php | 1 + src/Symfony/Component/Lock/Tests/LockTest.php | 47 +++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/src/Symfony/Component/Lock/Lock.php b/src/Symfony/Component/Lock/Lock.php index 41af54727a6c8..127110055073a 100644 --- a/src/Symfony/Component/Lock/Lock.php +++ b/src/Symfony/Component/Lock/Lock.php @@ -67,6 +67,7 @@ public function __destruct() */ public function acquire($blocking = false): bool { + $this->key->resetLifetime(); try { if ($blocking) { if (!$this->store instanceof StoreInterface && !$this->store instanceof BlockingStoreInterface) { diff --git a/src/Symfony/Component/Lock/Tests/LockTest.php b/src/Symfony/Component/Lock/Tests/LockTest.php index d31a6d58aaf6d..acf0a33977fb6 100644 --- a/src/Symfony/Component/Lock/Tests/LockTest.php +++ b/src/Symfony/Component/Lock/Tests/LockTest.php @@ -18,6 +18,7 @@ use Symfony\Component\Lock\Key; use Symfony\Component\Lock\Lock; use Symfony\Component\Lock\PersistingStoreInterface; +use Symfony\Component\Lock\Store\ExpiringStoreTrait; use Symfony\Component\Lock\StoreInterface; /** @@ -392,4 +393,50 @@ public function provideExpiredDates() yield [[0.1], false]; yield [[-0.1, null], false]; } + + /** + * @group time-sensitive + */ + public function testAcquireTwiceWithExpiration() + { + $key = new Key(uniqid(__METHOD__, true)); + $store = new class() implements PersistingStoreInterface { + use ExpiringStoreTrait; + private $keys = []; + private $initialTtl = 30; + + public function save(Key $key) + { + $key->reduceLifetime($this->initialTtl); + $this->keys[spl_object_hash($key)] = $key; + $this->checkNotExpired($key); + + return true; + } + + public function delete(Key $key) + { + unset($this->keys[spl_object_hash($key)]); + } + + public function exists(Key $key) + { + return isset($this->keys[spl_object_hash($key)]); + } + + public function putOffExpiration(Key $key, $ttl) + { + $key->reduceLifetime($ttl); + $this->checkNotExpired($key); + } + }; + $ttl = 1; + $lock = new Lock($key, $store, $ttl); + + $this->assertTrue($lock->acquire()); + $lock->release(); + sleep($ttl + 1); + $this->assertTrue($lock->acquire()); + $lock->release(); + } } From 047ce05f6b4fd3631d29adad549f283f2484e9de Mon Sep 17 00:00:00 2001 From: Thomas P Date: Wed, 14 Oct 2020 09:37:02 +0200 Subject: [PATCH 049/156] Fix tests typo --- .../EventListener/StopWorkerOnRestartSignalListenerTest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Messenger/Tests/EventListener/StopWorkerOnRestartSignalListenerTest.php b/src/Symfony/Component/Messenger/Tests/EventListener/StopWorkerOnRestartSignalListenerTest.php index 3536a1bbbe9e0..a9b01fbe9dddd 100644 --- a/src/Symfony/Component/Messenger/Tests/EventListener/StopWorkerOnRestartSignalListenerTest.php +++ b/src/Symfony/Component/Messenger/Tests/EventListener/StopWorkerOnRestartSignalListenerTest.php @@ -30,7 +30,7 @@ public function testWorkerStopsWhenMemoryLimitExceeded(?int $lastRestartTimeOffs { $cachePool = $this->createMock(CacheItemPoolInterface::class); $cacheItem = $this->createMock(CacheItemInterface::class); - $cacheItem->expects($this->once())->method('isHIt')->willReturn(true); + $cacheItem->expects($this->once())->method('isHit')->willReturn(true); $cacheItem->expects($this->once())->method('get')->willReturn(null === $lastRestartTimeOffset ? null : time() + $lastRestartTimeOffset); $cachePool->expects($this->once())->method('getItem')->willReturn($cacheItem); @@ -54,7 +54,7 @@ public function testWorkerDoesNotStopIfRestartNotInCache() { $cachePool = $this->createMock(CacheItemPoolInterface::class); $cacheItem = $this->createMock(CacheItemInterface::class); - $cacheItem->expects($this->once())->method('isHIt')->willReturn(false); + $cacheItem->expects($this->once())->method('isHit')->willReturn(false); $cacheItem->expects($this->never())->method('get'); $cachePool->expects($this->once())->method('getItem')->willReturn($cacheItem); From 0c08432a3dfb355ca573ec871f203c377d38b892 Mon Sep 17 00:00:00 2001 From: Nyholm Date: Tue, 13 Oct 2020 21:49:43 +0200 Subject: [PATCH 050/156] [CI] Fixed build on AppVeyor --- src/Symfony/Bridge/Twig/Tests/Command/LintCommandTest.php | 2 +- .../FrameworkBundle/Tests/Command/XliffLintCommandTest.php | 4 ++-- .../FrameworkBundle/Tests/Command/YamlLintCommandTest.php | 4 ++-- src/Symfony/Component/Config/Tests/ConfigCacheTest.php | 2 +- .../Config/Tests/Resource/FileExistenceResourceTest.php | 2 +- .../Component/Config/Tests/Resource/FileResourceTest.php | 6 ++---- .../Config/Tests/ResourceCheckerConfigCacheTest.php | 2 +- src/Symfony/Component/HttpFoundation/Tests/FileBagTest.php | 4 ++-- .../Tests/Session/Storage/MockFileSessionStorageTest.php | 2 +- .../Tests/Session/Storage/NativeSessionStorageTest.php | 2 +- .../Tests/Session/Storage/PhpBridgeSessionStorageTest.php | 2 +- .../Doctrine/Tests/Transport/DoctrineIntegrationTest.php | 2 +- src/Symfony/Component/Routing/Tests/RouterTest.php | 2 +- .../Translation/Tests/Command/XliffLintCommandTest.php | 4 ++-- .../Validator/Tests/Constraints/FileValidatorTest.php | 2 +- .../Component/Yaml/Tests/Command/LintCommandTest.php | 4 ++-- 16 files changed, 22 insertions(+), 24 deletions(-) diff --git a/src/Symfony/Bridge/Twig/Tests/Command/LintCommandTest.php b/src/Symfony/Bridge/Twig/Tests/Command/LintCommandTest.php index f2789542ff551..09e8352faeccf 100644 --- a/src/Symfony/Bridge/Twig/Tests/Command/LintCommandTest.php +++ b/src/Symfony/Bridge/Twig/Tests/Command/LintCommandTest.php @@ -142,7 +142,7 @@ protected function tearDown(): void { foreach ($this->files as $file) { if (file_exists($file)) { - unlink($file); + @unlink($file); } } } diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Command/XliffLintCommandTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/Command/XliffLintCommandTest.php index 7d6783d9352c0..9d786f2935776 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/Command/XliffLintCommandTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Command/XliffLintCommandTest.php @@ -121,9 +121,9 @@ protected function tearDown(): void { foreach ($this->files as $file) { if (file_exists($file)) { - unlink($file); + @unlink($file); } } - rmdir(sys_get_temp_dir().'/xliff-lint-test'); + @rmdir(sys_get_temp_dir().'/xliff-lint-test'); } } diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Command/YamlLintCommandTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/Command/YamlLintCommandTest.php index af81f335e3cdb..29947983f42af 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/Command/YamlLintCommandTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Command/YamlLintCommandTest.php @@ -168,9 +168,9 @@ protected function tearDown(): void { foreach ($this->files as $file) { if (file_exists($file)) { - unlink($file); + @unlink($file); } } - rmdir(sys_get_temp_dir().'/yml-lint-test'); + @rmdir(sys_get_temp_dir().'/yml-lint-test'); } } diff --git a/src/Symfony/Component/Config/Tests/ConfigCacheTest.php b/src/Symfony/Component/Config/Tests/ConfigCacheTest.php index 946c66fd1d83d..cfb2403a82a6c 100644 --- a/src/Symfony/Component/Config/Tests/ConfigCacheTest.php +++ b/src/Symfony/Component/Config/Tests/ConfigCacheTest.php @@ -30,7 +30,7 @@ protected function tearDown(): void foreach ($files as $file) { if (file_exists($file)) { - unlink($file); + @unlink($file); } } } diff --git a/src/Symfony/Component/Config/Tests/Resource/FileExistenceResourceTest.php b/src/Symfony/Component/Config/Tests/Resource/FileExistenceResourceTest.php index 6b43a58bdabbb..c450ff172c0ad 100644 --- a/src/Symfony/Component/Config/Tests/Resource/FileExistenceResourceTest.php +++ b/src/Symfony/Component/Config/Tests/Resource/FileExistenceResourceTest.php @@ -30,7 +30,7 @@ protected function setUp(): void protected function tearDown(): void { if (file_exists($this->file)) { - unlink($this->file); + @unlink($this->file); } } diff --git a/src/Symfony/Component/Config/Tests/Resource/FileResourceTest.php b/src/Symfony/Component/Config/Tests/Resource/FileResourceTest.php index e3a45566c2617..9b619a0fe6630 100644 --- a/src/Symfony/Component/Config/Tests/Resource/FileResourceTest.php +++ b/src/Symfony/Component/Config/Tests/Resource/FileResourceTest.php @@ -30,11 +30,9 @@ protected function setUp(): void protected function tearDown(): void { - if (!file_exists($this->file)) { - return; + if (file_exists($this->file)) { + @unlink($this->file); } - - unlink($this->file); } public function testGetResource() diff --git a/src/Symfony/Component/Config/Tests/ResourceCheckerConfigCacheTest.php b/src/Symfony/Component/Config/Tests/ResourceCheckerConfigCacheTest.php index a7498760a8a3e..8e0a2b32ba069 100644 --- a/src/Symfony/Component/Config/Tests/ResourceCheckerConfigCacheTest.php +++ b/src/Symfony/Component/Config/Tests/ResourceCheckerConfigCacheTest.php @@ -31,7 +31,7 @@ protected function tearDown(): void foreach ($files as $file) { if (file_exists($file)) { - unlink($file); + @unlink($file); } } } diff --git a/src/Symfony/Component/HttpFoundation/Tests/FileBagTest.php b/src/Symfony/Component/HttpFoundation/Tests/FileBagTest.php index ec6ae402481fa..69983ede49c58 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/FileBagTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/FileBagTest.php @@ -168,9 +168,9 @@ protected function setUp(): void protected function tearDown(): void { foreach (glob(sys_get_temp_dir().'/form_test/*') as $file) { - unlink($file); + @unlink($file); } - rmdir(sys_get_temp_dir().'/form_test'); + @rmdir(sys_get_temp_dir().'/form_test'); } } diff --git a/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockFileSessionStorageTest.php b/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockFileSessionStorageTest.php index 9eb8e89b1af3f..2ca81fed8f70a 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockFileSessionStorageTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockFileSessionStorageTest.php @@ -43,7 +43,7 @@ protected function tearDown(): void { array_map('unlink', glob($this->sessionDir.'/*')); if (is_dir($this->sessionDir)) { - rmdir($this->sessionDir); + @rmdir($this->sessionDir); } $this->sessionDir = null; $this->storage = null; diff --git a/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php b/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php index 4f7b37b1f3040..709bef36b9e58 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php @@ -47,7 +47,7 @@ protected function tearDown(): void session_write_close(); array_map('unlink', glob($this->savePath.'/*')); if (is_dir($this->savePath)) { - rmdir($this->savePath); + @rmdir($this->savePath); } $this->savePath = null; diff --git a/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/PhpBridgeSessionStorageTest.php b/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/PhpBridgeSessionStorageTest.php index 472456b7204f2..c0c667545243b 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/PhpBridgeSessionStorageTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/PhpBridgeSessionStorageTest.php @@ -43,7 +43,7 @@ protected function tearDown(): void session_write_close(); array_map('unlink', glob($this->savePath.'/*')); if (is_dir($this->savePath)) { - rmdir($this->savePath); + @rmdir($this->savePath); } $this->savePath = null; diff --git a/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineIntegrationTest.php b/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineIntegrationTest.php index 106a05b5b6767..e9bdee862ebe7 100644 --- a/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineIntegrationTest.php +++ b/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineIntegrationTest.php @@ -50,7 +50,7 @@ protected function tearDown(): void { $this->driverConnection->close(); if (file_exists($this->sqliteFile)) { - unlink($this->sqliteFile); + @unlink($this->sqliteFile); } } diff --git a/src/Symfony/Component/Routing/Tests/RouterTest.php b/src/Symfony/Component/Routing/Tests/RouterTest.php index 3c07802f0025c..2568bcd7b51cc 100644 --- a/src/Symfony/Component/Routing/Tests/RouterTest.php +++ b/src/Symfony/Component/Routing/Tests/RouterTest.php @@ -36,7 +36,7 @@ protected function tearDown(): void { if (is_dir($this->cacheDir)) { array_map('unlink', glob($this->cacheDir.\DIRECTORY_SEPARATOR.'*')); - rmdir($this->cacheDir); + @rmdir($this->cacheDir); } $this->loader = null; diff --git a/src/Symfony/Component/Translation/Tests/Command/XliffLintCommandTest.php b/src/Symfony/Component/Translation/Tests/Command/XliffLintCommandTest.php index 272ee15adc198..d9801a8fa14f0 100644 --- a/src/Symfony/Component/Translation/Tests/Command/XliffLintCommandTest.php +++ b/src/Symfony/Component/Translation/Tests/Command/XliffLintCommandTest.php @@ -179,10 +179,10 @@ protected function tearDown(): void { foreach ($this->files as $file) { if (file_exists($file)) { - unlink($file); + @unlink($file); } } - rmdir(sys_get_temp_dir().'/translation-xliff-lint-test'); + @rmdir(sys_get_temp_dir().'/translation-xliff-lint-test'); } public function provideStrictFilenames() diff --git a/src/Symfony/Component/Validator/Tests/Constraints/FileValidatorTest.php b/src/Symfony/Component/Validator/Tests/Constraints/FileValidatorTest.php index f517baea8736a..ee0798f611dc6 100644 --- a/src/Symfony/Component/Validator/Tests/Constraints/FileValidatorTest.php +++ b/src/Symfony/Component/Validator/Tests/Constraints/FileValidatorTest.php @@ -45,7 +45,7 @@ protected function tearDown(): void } if (file_exists($this->path)) { - unlink($this->path); + @unlink($this->path); } $this->path = null; diff --git a/src/Symfony/Component/Yaml/Tests/Command/LintCommandTest.php b/src/Symfony/Component/Yaml/Tests/Command/LintCommandTest.php index 0727b863536e9..32dd30d495a84 100644 --- a/src/Symfony/Component/Yaml/Tests/Command/LintCommandTest.php +++ b/src/Symfony/Component/Yaml/Tests/Command/LintCommandTest.php @@ -129,11 +129,11 @@ protected function tearDown(): void { foreach ($this->files as $file) { if (file_exists($file)) { - unlink($file); + @unlink($file); } } - rmdir(sys_get_temp_dir().'/framework-yml-lint-test'); + @rmdir(sys_get_temp_dir().'/framework-yml-lint-test'); } } From 5dec141afb114c96c0348c775d5f1ca7684afa43 Mon Sep 17 00:00:00 2001 From: Nyholm Date: Tue, 13 Oct 2020 20:28:45 +0200 Subject: [PATCH 051/156] [Messenger] Fixed typos in Connection --- .../Messenger/Bridge/Amqp/Transport/Connection.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/Messenger/Bridge/Amqp/Transport/Connection.php b/src/Symfony/Component/Messenger/Bridge/Amqp/Transport/Connection.php index 1789e89b7ac8a..adf26446ade9e 100644 --- a/src/Symfony/Component/Messenger/Bridge/Amqp/Transport/Connection.php +++ b/src/Symfony/Component/Messenger/Bridge/Amqp/Transport/Connection.php @@ -123,8 +123,8 @@ public function __construct(array $connectionOptions, array $exchangeOptions, ar * * host: Hostname of the AMQP service * * port: Port of the AMQP service * * vhost: Virtual Host to use with the AMQP service - * * user: Username to use to connect the the AMQP service - * * password: Password to use the connect to the AMQP service + * * user: Username to use to connect the AMQP service + * * password: Password to use to connect to the AMQP service * * read_timeout: Timeout in for income activity. Note: 0 or greater seconds. May be fractional. * * write_timeout: Timeout in for outcome activity. Note: 0 or greater seconds. May be fractional. * * connect_timeout: Connection timeout. Note: 0 or greater seconds. May be fractional. @@ -155,8 +155,8 @@ public function __construct(array $connectionOptions, array $exchangeOptions, ar * which means heartbeats checked only during blocking calls. * * TLS support (see https://www.rabbitmq.com/ssl.html for details): - * * cacert: Path to the CA cert file in PEM format.. - * * cert: Path to the client certificate in PEM foramt. + * * cacert: Path to the CA cert file in PEM format. + * * cert: Path to the client certificate in PEM format. * * key: Path to the client key in PEM format. * * verify: Enable or disable peer verification. If peer verification is enabled then the common name in the * server certificate must match the server name. Peer verification is enabled by default. From ad8de57b91c7076bbcde9f6f9acc4b82c78f252c Mon Sep 17 00:00:00 2001 From: Nyholm Date: Wed, 14 Oct 2020 13:43:26 +0200 Subject: [PATCH 052/156] [Cache] Make Redis initializers static --- src/Symfony/Component/Cache/Traits/RedisTrait.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Cache/Traits/RedisTrait.php b/src/Symfony/Component/Cache/Traits/RedisTrait.php index 72c18bf3c2498..103c320f73b88 100644 --- a/src/Symfony/Component/Cache/Traits/RedisTrait.php +++ b/src/Symfony/Component/Cache/Traits/RedisTrait.php @@ -174,7 +174,7 @@ public static function createConnection($dsn, array $options = []) $connect = $params['persistent'] || $params['persistent_id'] ? 'pconnect' : 'connect'; $redis = new $class(); - $initializer = function ($redis) use ($connect, $params, $dsn, $auth, $hosts) { + $initializer = static function ($redis) use ($connect, $params, $dsn, $auth, $hosts) { try { @$redis->{$connect}($hosts[0]['host'] ?? $hosts[0]['path'], $hosts[0]['port'] ?? null, $params['timeout'], (string) $params['persistent_id'], $params['retry_interval']); @@ -226,7 +226,7 @@ public static function createConnection($dsn, array $options = []) $redis->setOption(\Redis::OPT_TCP_KEEPALIVE, $params['tcp_keepalive']); } } elseif (is_a($class, \RedisCluster::class, true)) { - $initializer = function () use ($class, $params, $dsn, $hosts) { + $initializer = static function () use ($class, $params, $dsn, $hosts) { foreach ($hosts as $i => $host) { $hosts[$i] = 'tcp' === $host['scheme'] ? $host['host'].':'.$host['port'] : $host['path']; } From 969f3c217b06aaba1d658d053c4b7954efc90ac8 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Wed, 14 Oct 2020 17:23:35 +0200 Subject: [PATCH 053/156] [Contracts] add branch-aliases for dev-main --- src/Symfony/Contracts/Cache/composer.json | 5 ++++- src/Symfony/Contracts/EventDispatcher/composer.json | 5 ++++- src/Symfony/Contracts/HttpClient/composer.json | 5 ++++- src/Symfony/Contracts/Service/composer.json | 5 ++++- src/Symfony/Contracts/Translation/composer.json | 5 ++++- src/Symfony/Contracts/composer.json | 5 ++++- 6 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/Symfony/Contracts/Cache/composer.json b/src/Symfony/Contracts/Cache/composer.json index a8783d1be4cb2..ce40614881bad 100644 --- a/src/Symfony/Contracts/Cache/composer.json +++ b/src/Symfony/Contracts/Cache/composer.json @@ -33,6 +33,9 @@ } }, "extra": { - "branch-version": "1.1" + "branch-version": "1.1", + "branch-alias": { + "dev-main": "1.1-dev" + } } } diff --git a/src/Symfony/Contracts/EventDispatcher/composer.json b/src/Symfony/Contracts/EventDispatcher/composer.json index 83799d9af5036..35258e78b76b9 100644 --- a/src/Symfony/Contracts/EventDispatcher/composer.json +++ b/src/Symfony/Contracts/EventDispatcher/composer.json @@ -33,6 +33,9 @@ } }, "extra": { - "branch-version": "1.1" + "branch-version": "1.1", + "branch-alias": { + "dev-main": "1.1-dev" + } } } diff --git a/src/Symfony/Contracts/HttpClient/composer.json b/src/Symfony/Contracts/HttpClient/composer.json index 0d69861346ef8..f4bcfb2a36116 100644 --- a/src/Symfony/Contracts/HttpClient/composer.json +++ b/src/Symfony/Contracts/HttpClient/composer.json @@ -32,6 +32,9 @@ } }, "extra": { - "branch-version": "1.1" + "branch-version": "1.1", + "branch-alias": { + "dev-main": "1.1-dev" + } } } diff --git a/src/Symfony/Contracts/Service/composer.json b/src/Symfony/Contracts/Service/composer.json index 19eac7434cdd2..4f24e1e03d66b 100644 --- a/src/Symfony/Contracts/Service/composer.json +++ b/src/Symfony/Contracts/Service/composer.json @@ -33,6 +33,9 @@ } }, "extra": { - "branch-version": "1.1" + "branch-version": "1.1", + "branch-alias": { + "dev-main": "1.1-dev" + } } } diff --git a/src/Symfony/Contracts/Translation/composer.json b/src/Symfony/Contracts/Translation/composer.json index 50e74ce3c236d..2b4ddbb38606d 100644 --- a/src/Symfony/Contracts/Translation/composer.json +++ b/src/Symfony/Contracts/Translation/composer.json @@ -32,6 +32,9 @@ } }, "extra": { - "branch-version": "1.1" + "branch-version": "1.1", + "branch-alias": { + "dev-main": "1.1-dev" + } } } diff --git a/src/Symfony/Contracts/composer.json b/src/Symfony/Contracts/composer.json index 9da4d9e71c21d..ec475e2670d86 100644 --- a/src/Symfony/Contracts/composer.json +++ b/src/Symfony/Contracts/composer.json @@ -46,6 +46,9 @@ }, "minimum-stability": "dev", "extra": { - "branch-version": "1.1" + "branch-version": "1.1", + "branch-alias": { + "dev-main": "1.1-dev" + } } } From 681804ba1ab71e59009c3bb0acee2a69e405f20b Mon Sep 17 00:00:00 2001 From: Norman Soetbeer Date: Sun, 11 Oct 2020 13:23:06 +0200 Subject: [PATCH 054/156] [HttpFoundation] Fix Range Requests --- .../HttpFoundation/BinaryFileResponse.php | 43 ++++++++++--------- .../Tests/BinaryFileResponseTest.php | 25 ++++++++++- 2 files changed, 47 insertions(+), 21 deletions(-) diff --git a/src/Symfony/Component/HttpFoundation/BinaryFileResponse.php b/src/Symfony/Component/HttpFoundation/BinaryFileResponse.php index c2f66d6952ab2..0a43b8ac71c3f 100644 --- a/src/Symfony/Component/HttpFoundation/BinaryFileResponse.php +++ b/src/Symfony/Component/HttpFoundation/BinaryFileResponse.php @@ -239,33 +239,36 @@ public function prepare(Request $request) $this->headers->set($type, $path); $this->maxlen = 0; } - } elseif ($request->headers->has('Range')) { + } elseif ($request->headers->has('Range') && $request->isMethod('GET')) { // Process the range headers. if (!$request->headers->has('If-Range') || $this->hasValidIfRangeHeader($request->headers->get('If-Range'))) { $range = $request->headers->get('Range'); - list($start, $end) = explode('-', substr($range, 6), 2) + [0]; + if (0 === strpos($range, 'bytes=')) { + list($start, $end) = explode('-', substr($range, 6), 2) + [0]; - $end = ('' === $end) ? $fileSize - 1 : (int) $end; + $end = ('' === $end) ? $fileSize - 1 : (int) $end; - if ('' === $start) { - $start = $fileSize - $end; - $end = $fileSize - 1; - } else { - $start = (int) $start; - } + if ('' === $start) { + $start = $fileSize - $end; + $end = $fileSize - 1; + } else { + $start = (int) $start; + } - if ($start <= $end) { - if ($start < 0 || $end > $fileSize - 1) { - $this->setStatusCode(416); - $this->headers->set('Content-Range', sprintf('bytes */%s', $fileSize)); - } elseif (0 !== $start || $end !== $fileSize - 1) { - $this->maxlen = $end < $fileSize ? $end - $start + 1 : -1; - $this->offset = $start; - - $this->setStatusCode(206); - $this->headers->set('Content-Range', sprintf('bytes %s-%s/%s', $start, $end, $fileSize)); - $this->headers->set('Content-Length', $end - $start + 1); + if ($start <= $end) { + $end = min($end, $fileSize - 1); + if ($start < 0 || $start > $end) { + $this->setStatusCode(416); + $this->headers->set('Content-Range', sprintf('bytes */%s', $fileSize)); + } elseif ($end - $start < $fileSize - 1) { + $this->maxlen = $end < $fileSize ? $end - $start + 1 : -1; + $this->offset = $start; + + $this->setStatusCode(206); + $this->headers->set('Content-Range', sprintf('bytes %s-%s/%s', $start, $end, $fileSize)); + $this->headers->set('Content-Length', $end - $start + 1); + } } } } diff --git a/src/Symfony/Component/HttpFoundation/Tests/BinaryFileResponseTest.php b/src/Symfony/Component/HttpFoundation/Tests/BinaryFileResponseTest.php index 31916fc7d6876..38cc84420c5b5 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/BinaryFileResponseTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/BinaryFileResponseTest.php @@ -149,6 +149,7 @@ public function provideRanges() ['bytes=30-', 30, 5, 'bytes 30-34/35'], ['bytes=30-30', 30, 1, 'bytes 30-30/35'], ['bytes=30-34', 30, 5, 'bytes 30-34/35'], + ['bytes=30-40', 30, 5, 'bytes 30-34/35'], ]; } @@ -203,9 +204,31 @@ public function provideFullFileRanges() // Syntactical invalid range-request should also return the full resource ['bytes=20-10'], ['bytes=50-40'], + // range units other than bytes must be ignored + ['unknown=10-20'], ]; } + public function testRangeOnPostMethod() + { + $request = Request::create('/', 'POST'); + $request->headers->set('Range', 'bytes=10-20'); + $response = BinaryFileResponse::create(__DIR__.'/File/Fixtures/test.gif', 200, ['Content-Type' => 'application/octet-stream']); + + $file = fopen(__DIR__.'/File/Fixtures/test.gif', 'r'); + $data = fread($file, 35); + fclose($file); + + $this->expectOutputString($data); + $response = clone $response; + $response->prepare($request); + $response->sendContent(); + + $this->assertSame(200, $response->getStatusCode()); + $this->assertSame('35', $response->headers->get('Content-Length')); + $this->assertNull($response->headers->get('Content-Range')); + } + public function testUnpreparedResponseSendsFullFile() { $response = BinaryFileResponse::create(__DIR__.'/File/Fixtures/test.gif', 200); @@ -242,7 +265,7 @@ public function provideInvalidRanges() { return [ ['bytes=-40'], - ['bytes=30-40'], + ['bytes=40-50'], ]; } From 08c080600acfc642819abc3d6a83071eb9ff2c88 Mon Sep 17 00:00:00 2001 From: Wouter de Jong Date: Wed, 14 Oct 2020 21:52:57 +0200 Subject: [PATCH 055/156] Add wouterj as codeowner for Security related packages --- .github/CODEOWNERS | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 6a9ac46efac81..84d3d21e303bd 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -35,6 +35,11 @@ /src/Symfony/Bridge/Doctrine/PropertyInfo/ @dunglas # Serializer /src/Symfony/Component/Serializer/ @dunglas +# Security +/src/Symfony/Bridge/Doctrine/Security/ @wouterj +/src/Symfony/Bundle/SecurityBundle/ @wouterj +/src/Symfony/Component/Security/ @wouterj +/src/Symfony/Component/Ldap/Security/ @wouterj # TwigBundle /src/Symfony/Bundle/TwigBundle/ErrorRenderer/TwigHtmlErrorRenderer.php @yceruto # WebLink From a2ab55407bf8c16540f55dd5c021014282b531b3 Mon Sep 17 00:00:00 2001 From: Robin Chalas Date: Thu, 15 Oct 2020 00:44:23 +0200 Subject: [PATCH 056/156] Add myself to CODEOWNERS for Security and Console --- .github/CODEOWNERS | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 84d3d21e303bd..37b2dbfcdc0e6 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,4 +1,5 @@ # Console +/src/Symfony/Component/Console/ @chalasr /src/Symfony/Component/Console/Logger/ConsoleLogger.php @dunglas # DependencyInjection /src/Symfony/Component/DependencyInjection/Compiler/AutowirePass.php @dunglas @@ -36,10 +37,10 @@ # Serializer /src/Symfony/Component/Serializer/ @dunglas # Security -/src/Symfony/Bridge/Doctrine/Security/ @wouterj -/src/Symfony/Bundle/SecurityBundle/ @wouterj -/src/Symfony/Component/Security/ @wouterj -/src/Symfony/Component/Ldap/Security/ @wouterj +/src/Symfony/Bridge/Doctrine/Security/ @wouterj @chalasr +/src/Symfony/Bundle/SecurityBundle/ @wouterj @chalasr +/src/Symfony/Component/Security/ @wouterj @chalasr +/src/Symfony/Component/Ldap/Security/ @wouterj @chalasr # TwigBundle /src/Symfony/Bundle/TwigBundle/ErrorRenderer/TwigHtmlErrorRenderer.php @yceruto # WebLink From 4a63308fb356bdcc9820e12698cc1e9c78fc140b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Deruss=C3=A9?= Date: Thu, 15 Oct 2020 01:12:09 +0200 Subject: [PATCH 057/156] Add missing use statement --- .../FrameworkBundle/DependencyInjection/FrameworkExtension.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index cfb5d0728a4dc..60302152b10e7 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -74,6 +74,7 @@ use Symfony\Component\Lock\LockInterface; use Symfony\Component\Lock\PersistingStoreInterface; use Symfony\Component\Lock\Store\StoreFactory; +use Symfony\Component\Lock\StoreInterface; use Symfony\Component\Mailer\Bridge\Amazon\Transport\SesTransportFactory; use Symfony\Component\Mailer\Bridge\Google\Transport\GmailTransportFactory; use Symfony\Component\Mailer\Bridge\Mailchimp\Transport\MandrillTransportFactory; From 394a69485602203467a6e94e66f536e48ab4127f Mon Sep 17 00:00:00 2001 From: Maxime Aknin Date: Thu, 15 Oct 2020 10:23:16 +0200 Subject: [PATCH 058/156] Fix Reflection file name with eval()\'d code remove eval()\'d code from lineage --- src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php index 1d4017f4c22e2..8605d755b31c6 100644 --- a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php +++ b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php @@ -374,6 +374,9 @@ private function collectLineage($class, array &$lineage) return; } $file = $r->getFileName(); + if (') : eval()\'d code' === substr($file, -17)) { + $file = substr($file, 0, strrpos($file, '(', -17)); + } if (!$file || $this->doExport($file) === $exportedFile = $this->export($file)) { return; } From d019d3822015ccdc1dd3508c435d87ec12246455 Mon Sep 17 00:00:00 2001 From: Matthew Smeets Date: Thu, 15 Oct 2020 20:55:38 +0200 Subject: [PATCH 059/156] Reference the correct interface in the RegistryInterface deprecation in upgrade notes --- UPGRADE-4.4.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/UPGRADE-4.4.md b/UPGRADE-4.4.md index bcdee9ca1311f..2e81075a42180 100644 --- a/UPGRADE-4.4.md +++ b/UPGRADE-4.4.md @@ -64,7 +64,7 @@ DoctrineBridge injected instead. * Deprecated passing an `IdReader` to the `DoctrineChoiceLoader` when the query cannot be optimized with single id field. * Deprecated not passing an `IdReader` to the `DoctrineChoiceLoader` when the query can be optimized with single id field. - * Deprecated `RegistryInterface`, use `Doctrine\Common\Persistence\ManagerRegistry`. + * Deprecated `RegistryInterface`, use `Doctrine\Persistence\ManagerRegistry`. * Added a new `getMetadataDriverClass` method to replace class parameters in `AbstractDoctrineExtension`. This method will be abstract in Symfony 5 and must be declared in extending classes. From 5e1ac09de930ae5129c47be83506332f951c4ac1 Mon Sep 17 00:00:00 2001 From: Yonel Ceruto Date: Wed, 14 Oct 2020 19:12:27 -0400 Subject: [PATCH 060/156] Add myself to CODEOWNERS for Form, OptionsResolver and TwigBundle --- .github/CODEOWNERS | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 37b2dbfcdc0e6..0870dcfdd5cc4 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -3,8 +3,8 @@ /src/Symfony/Component/Console/Logger/ConsoleLogger.php @dunglas # DependencyInjection /src/Symfony/Component/DependencyInjection/Compiler/AutowirePass.php @dunglas -# ErrorRenderer -/src/Symfony/Component/ErrorRenderer/* @yceruto +# ErrorHandler +/src/Symfony/Component/ErrorHandler/ @yceruto # Form /src/Symfony/Bridge/Twig/Extension/FormExtension.php @xabbuh /src/Symfony/Bridge/Twig/Form/ @xabbuh @@ -21,7 +21,7 @@ /src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/FormPassTest.php @xabbuh /src/Symfony/Bundle/FrameworkBundle/Tests/Templating/Helper/FormHelperTableLayoutTest.php @xabbuh /src/Symfony/Bundle/FrameworkBundle/Tests/Templating/Helper/FormHelperDivLayoutTest.php @xabbuh -/src/Symfony/Component/Form/ @xabbuh +/src/Symfony/Component/Form/ @xabbuh @yceruto # HttpKernel /src/Symfony/Component/HttpKernel/Log/Logger.php @dunglas # LDAP @@ -31,6 +31,8 @@ # Messenger /src/Symfony/Bridge/Doctrine/Messenger/ @sroze /src/Symfony/Component/Messenger/ @sroze +# OptionsResolver +/src/Symfony/Component/OptionsResolver/ @yceruto # PropertyInfo /src/Symfony/Component/PropertyInfo/ @dunglas /src/Symfony/Bridge/Doctrine/PropertyInfo/ @dunglas @@ -42,7 +44,7 @@ /src/Symfony/Component/Security/ @wouterj @chalasr /src/Symfony/Component/Ldap/Security/ @wouterj @chalasr # TwigBundle -/src/Symfony/Bundle/TwigBundle/ErrorRenderer/TwigHtmlErrorRenderer.php @yceruto +/src/Symfony/Bundle/TwigBundle/ @yceruto # WebLink /src/Symfony/Component/WebLink/ @dunglas # Workflow From 2ee24a0592633188b22e160660c51fa3737ae27b Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Fri, 16 Oct 2020 10:33:02 +0200 Subject: [PATCH 061/156] do not translate null placeholders or titles --- .../Bridge/Twig/Resources/views/Form/form_div_layout.html.twig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig b/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig index cee716eb47b33..362e27ce954ed 100644 --- a/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig +++ b/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig @@ -399,7 +399,7 @@ {%- for attrname, attrvalue in attr -%} {{- " " -}} {%- if attrname in ['placeholder', 'title'] -%} - {{- attrname }}="{{ translation_domain is same as(false) ? attrvalue : attrvalue|trans({}, translation_domain) }}" + {{- attrname }}="{{ translation_domain is same as(false) or attrvalue is null ? attrvalue : attrvalue|trans({}, translation_domain) }}" {%- elseif attrvalue is same as(true) -%} {{- attrname }}="{{ attrname }}" {%- elseif attrvalue is not same as(false) -%} From af1a6208ec3f2dae1319dea1ac7047aa328d3c2a Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Fri, 16 Oct 2020 16:03:05 +0200 Subject: [PATCH 062/156] indexBy does not refer to attributes, but to column names --- .../Doctrine/PropertyInfo/DoctrineExtractor.php | 13 ++----------- .../Tests/PropertyInfo/Fixtures/DoctrineDummy.php | 2 +- .../PropertyInfo/Fixtures/DoctrineRelation.php | 2 +- 3 files changed, 4 insertions(+), 13 deletions(-) diff --git a/src/Symfony/Bridge/Doctrine/PropertyInfo/DoctrineExtractor.php b/src/Symfony/Bridge/Doctrine/PropertyInfo/DoctrineExtractor.php index bafd97a50c963..0cfdc8768c9fe 100644 --- a/src/Symfony/Bridge/Doctrine/PropertyInfo/DoctrineExtractor.php +++ b/src/Symfony/Bridge/Doctrine/PropertyInfo/DoctrineExtractor.php @@ -110,19 +110,10 @@ public function getTypes($class, $property, array $context = []) $associationMapping = $metadata->getAssociationMapping($property); if (isset($associationMapping['indexBy'])) { - $indexProperty = $associationMapping['indexBy']; + $indexColumn = $associationMapping['indexBy']; /** @var ClassMetadataInfo $subMetadata */ $subMetadata = $this->classMetadataFactory->getMetadataFor($associationMapping['targetEntity']); - $typeOfField = $subMetadata->getTypeOfField($indexProperty); - - if (null === $typeOfField) { - $associationMapping = $subMetadata->getAssociationMapping($indexProperty); - - /** @var ClassMetadataInfo $subMetadata */ - $indexProperty = $subMetadata->getSingleAssociationReferencedJoinColumnName($indexProperty); - $subMetadata = $this->classMetadataFactory->getMetadataFor($associationMapping['targetEntity']); - $typeOfField = $subMetadata->getTypeOfField($indexProperty); - } + $typeOfField = $subMetadata->getTypeOfField($subMetadata->getFieldForColumn($indexColumn)); if (!$collectionKeyType = $this->getPhpType($typeOfField)) { return null; diff --git a/src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/Fixtures/DoctrineDummy.php b/src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/Fixtures/DoctrineDummy.php index 81264fad27c5f..568efce33d382 100644 --- a/src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/Fixtures/DoctrineDummy.php +++ b/src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/Fixtures/DoctrineDummy.php @@ -42,7 +42,7 @@ class DoctrineDummy public $bar; /** - * @ManyToMany(targetEntity="DoctrineRelation", indexBy="rguid") + * @ManyToMany(targetEntity="DoctrineRelation", indexBy="rguid_column") */ protected $indexedBar; diff --git a/src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/Fixtures/DoctrineRelation.php b/src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/Fixtures/DoctrineRelation.php index 5730cf81dd493..e480ca9d777ba 100644 --- a/src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/Fixtures/DoctrineRelation.php +++ b/src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/Fixtures/DoctrineRelation.php @@ -30,7 +30,7 @@ class DoctrineRelation public $id; /** - * @Column(type="guid") + * @Column(type="guid", name="rguid_column") */ protected $rguid; From fb305160cacc1e778b41c99e092d42d47925d253 Mon Sep 17 00:00:00 2001 From: Jason Tan Date: Fri, 16 Oct 2020 10:46:58 -0500 Subject: [PATCH 063/156] [WebProfilerBundle] Hide debug toolbar in print view --- .../WebProfilerBundle/Resources/views/Profiler/toolbar.css.twig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar.css.twig b/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar.css.twig index 4012625e85d15..cf406339fe942 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar.css.twig +++ b/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar.css.twig @@ -565,6 +565,6 @@ div.sf-toolbar .sf-toolbar-block a:hover { /***** Media query print: Do not print the Toolbar. *****/ @media print { .sf-toolbar { - display: none; + display: none !important; } } From 5d9d62cf4c65d7c18d353ed7b4d9acfa7b6c4219 Mon Sep 17 00:00:00 2001 From: "Alexander M. Turek" Date: Sat, 17 Oct 2020 12:36:42 +0200 Subject: [PATCH 064/156] Bump APCu to 5.1.19 on Travis. --- .travis.yml | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6765f45f3dd00..71c306e3786b9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -142,23 +142,6 @@ before_install: } export -f tpecl - install_apcu_dev () { - local ref=$1 - local INI=$2 - - wget https://github.com/krakjoe/apcu/archive/${ref}.zip - unzip ${ref}.zip - cd apcu-${ref} - phpize - ./configure - make - mv modules/apcu.so $(php -r "echo ini_get('extension_dir');") - echo 'extension = apcu.so' >> $INI - cd .. - rm -rf apcu-${ref} ${ref}.zip - } - export -f install_apcu_dev - - | # Install sigchild-enabled PHP to test the Process component on the lowest PHP matrix line if [[ ! $deps && $TRAVIS_PHP_VERSION = ${MIN_PHP%.*} && ! -d php-$MIN_PHP/sapi ]]; then @@ -200,11 +183,11 @@ before_install: [[ -e $ext_cache ]] || (tfold ext.symfony_debug "cd src/Symfony/Component/Debug/Resources/ext && phpize && ./configure && make && mv modules/symfony_debug.so $ext_cache && phpize --clean") echo extension = $ext_cache >> $INI elif [[ $PHP = 7.* ]]; then - tfold ext.apcu tpecl apcu-5.1.17 apcu.so $INI + tfold ext.apcu tpecl apcu-5.1.19 apcu.so $INI tfold ext.mongodb tpecl mongodb-1.6.0 mongodb.so $INI elif [[ $PHP = nightly ]]; then tfold ext.memcached tpecl memcached-3.1.5 memcached.so $INI - tfold ext.apcu install_apcu_dev 9c36db45100d4d27ec33072f4be90f1f5a0108b7 $INI + tfold ext.apcu tpecl apcu-5.1.19 apcu.so $INI fi done From 1058e19ab4bbb8cbfb549a550938e36ae5d8b34a Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Sat, 17 Oct 2020 18:04:15 +0200 Subject: [PATCH 065/156] Bump igbinary to v3.1.6 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 887adc809cc3f..df62dcc4fac8e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -183,7 +183,7 @@ before_install: tfold ext.redis tpecl redis-5.2.2 redis.so $INI "no" fi - tfold ext.igbinary tpecl igbinary-3.1.5 igbinary.so $INI + tfold ext.igbinary tpecl igbinary-3.1.6 igbinary.so $INI done - | # List all php extensions with versions From c4cc4a338b9e754fb5c079bbbd17b9895c832f4e Mon Sep 17 00:00:00 2001 From: Robin Chalas Date: Sun, 18 Oct 2020 02:10:46 +0200 Subject: [PATCH 066/156] [Messenger][Doctrine] Avoid early db access for pgsql detection --- .../Bridge/Doctrine/Transport/DoctrineTransportFactory.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/DoctrineTransportFactory.php b/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/DoctrineTransportFactory.php index 224d8bafad75f..27759ec3b03a4 100644 --- a/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/DoctrineTransportFactory.php +++ b/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/DoctrineTransportFactory.php @@ -11,6 +11,7 @@ namespace Symfony\Component\Messenger\Bridge\Doctrine\Transport; +use Doctrine\DBAL\Driver\AbstractPostgreSQLDriver; use Doctrine\Persistence\ConnectionRegistry; use Symfony\Bridge\Doctrine\RegistryInterface; use Symfony\Component\Messenger\Exception\TransportException; @@ -47,7 +48,7 @@ public function createTransport(string $dsn, array $options, SerializerInterface throw new TransportException(sprintf('Could not find Doctrine connection from Messenger DSN "%s".', $dsn), 0, $e); } - if ($useNotify && ($wrappedConnection = $driverConnection->getWrappedConnection()) && method_exists($wrappedConnection, 'pgsqlGetNotify')) { + if ($useNotify && $driverConnection->getDriver() instanceof AbstractPostgreSQLDriver) { $connection = new PostgreSqlConnection($configuration, $driverConnection); } else { $connection = new Connection($configuration, $driverConnection); From 43c05774ac344eb7556fad085fc7905605843bbe Mon Sep 17 00:00:00 2001 From: Dieter Date: Sat, 17 Oct 2020 20:52:38 +0200 Subject: [PATCH 067/156] Allow setting AMQP option "login" --- .../Component/Messenger/Bridge/Amqp/Transport/Connection.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Messenger/Bridge/Amqp/Transport/Connection.php b/src/Symfony/Component/Messenger/Bridge/Amqp/Transport/Connection.php index adf26446ade9e..ac5c999303f17 100644 --- a/src/Symfony/Component/Messenger/Bridge/Amqp/Transport/Connection.php +++ b/src/Symfony/Component/Messenger/Bridge/Amqp/Transport/Connection.php @@ -37,6 +37,7 @@ class Connection 'port', 'vhost', 'user', + 'login', 'password', 'queues', 'exchange', @@ -123,7 +124,7 @@ public function __construct(array $connectionOptions, array $exchangeOptions, ar * * host: Hostname of the AMQP service * * port: Port of the AMQP service * * vhost: Virtual Host to use with the AMQP service - * * user: Username to use to connect the AMQP service + * * user|login: Username to use to connect the AMQP service * * password: Password to use to connect to the AMQP service * * read_timeout: Timeout in for income activity. Note: 0 or greater seconds. May be fractional. * * write_timeout: Timeout in for outcome activity. Note: 0 or greater seconds. May be fractional. From e3489d9b58b1e683a34b8e45d02e4c54e171094e Mon Sep 17 00:00:00 2001 From: "Alexander M. Turek" Date: Sun, 18 Oct 2020 13:29:30 +0200 Subject: [PATCH 068/156] Stop using set-env in GitHub actions. --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9a962f23b33e6..8146c127ec1aa 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -58,8 +58,8 @@ jobs: run: | ([ -d ~/.composer ] || mkdir ~/.composer) && cp .github/composer-config.json ~/.composer/config.json SYMFONY_VERSION=$(cat composer.json | grep '^ *\"branch-version\". *\"[1-9]' | grep -o '[0-9.]*') - echo "::set-env name=SYMFONY_VERSION::$SYMFONY_VERSION" - echo "::set-env name=COMPOSER_ROOT_VERSION::$SYMFONY_VERSION.x-dev" + echo "SYMFONY_VERSION=$SYMFONY_VERSION" >> $GITHUB_ENV + echo "COMPOSER_ROOT_VERSION=$SYMFONY_VERSION.x-dev" >> $GITHUB_ENV - name: Determine composer cache directory id: composer-cache From f4a99b236170495f362ff6601652ba2a65a023cb Mon Sep 17 00:00:00 2001 From: "Alexander M. Turek" Date: Mon, 19 Oct 2020 23:16:40 +0200 Subject: [PATCH 069/156] Don't skip Doctrine tests on php 8. --- .../Bridge/Doctrine/Tests/Form/Type/EntityTypeTest.php | 7 ------- .../Security/RememberMe/DoctrineTokenProviderTest.php | 7 ------- .../Tests/Security/User/EntityUserProviderTest.php | 7 ------- .../Validator/Constraints/UniqueEntityValidatorTest.php | 7 ------- .../SecurityBundle/Tests/Functional/SetAclCommandTest.php | 7 ------- .../Component/Cache/Tests/Adapter/PdoDbalAdapterTest.php | 5 ----- .../Component/Cache/Tests/Simple/PdoDbalCacheTest.php | 5 ----- 7 files changed, 45 deletions(-) diff --git a/src/Symfony/Bridge/Doctrine/Tests/Form/Type/EntityTypeTest.php b/src/Symfony/Bridge/Doctrine/Tests/Form/Type/EntityTypeTest.php index 1d382a95aa65c..8475cff456afa 100644 --- a/src/Symfony/Bridge/Doctrine/Tests/Form/Type/EntityTypeTest.php +++ b/src/Symfony/Bridge/Doctrine/Tests/Form/Type/EntityTypeTest.php @@ -61,13 +61,6 @@ class EntityTypeTest extends BaseTypeTest protected static $supportedFeatureSetVersion = 304; - public static function setUpBeforeClass() - { - if (\PHP_VERSION_ID >= 80000) { - self::markTestSkipped('Doctrine DBAL 2.x is incompatible with PHP 8.'); - } - } - protected function setUp() { $this->em = DoctrineTestHelper::createTestEntityManager(); diff --git a/src/Symfony/Bridge/Doctrine/Tests/Security/RememberMe/DoctrineTokenProviderTest.php b/src/Symfony/Bridge/Doctrine/Tests/Security/RememberMe/DoctrineTokenProviderTest.php index 73588ce2bba50..6e406b06b76af 100644 --- a/src/Symfony/Bridge/Doctrine/Tests/Security/RememberMe/DoctrineTokenProviderTest.php +++ b/src/Symfony/Bridge/Doctrine/Tests/Security/RememberMe/DoctrineTokenProviderTest.php @@ -13,13 +13,6 @@ */ class DoctrineTokenProviderTest extends TestCase { - public static function setUpBeforeClass() - { - if (\PHP_VERSION_ID >= 80000) { - self::markTestSkipped('Doctrine DBAL 2.x is incompatible with PHP 8.'); - } - } - public function testCreateNewToken() { $provider = $this->bootstrapProvider(); diff --git a/src/Symfony/Bridge/Doctrine/Tests/Security/User/EntityUserProviderTest.php b/src/Symfony/Bridge/Doctrine/Tests/Security/User/EntityUserProviderTest.php index e43940d85c32d..8916f8fb929e0 100644 --- a/src/Symfony/Bridge/Doctrine/Tests/Security/User/EntityUserProviderTest.php +++ b/src/Symfony/Bridge/Doctrine/Tests/Security/User/EntityUserProviderTest.php @@ -23,13 +23,6 @@ class EntityUserProviderTest extends TestCase { - public static function setUpBeforeClass() - { - if (\PHP_VERSION_ID >= 80000) { - self::markTestSkipped('Doctrine DBAL 2.x is incompatible with PHP 8.'); - } - } - public function testRefreshUserGetsUserByPrimaryKey() { $em = DoctrineTestHelper::createTestEntityManager(); diff --git a/src/Symfony/Bridge/Doctrine/Tests/Validator/Constraints/UniqueEntityValidatorTest.php b/src/Symfony/Bridge/Doctrine/Tests/Validator/Constraints/UniqueEntityValidatorTest.php index ba772e58fd047..77d15999905ba 100644 --- a/src/Symfony/Bridge/Doctrine/Tests/Validator/Constraints/UniqueEntityValidatorTest.php +++ b/src/Symfony/Bridge/Doctrine/Tests/Validator/Constraints/UniqueEntityValidatorTest.php @@ -63,13 +63,6 @@ class UniqueEntityValidatorTest extends ConstraintValidatorTestCase protected $repositoryFactory; - public static function setUpBeforeClass() - { - if (\PHP_VERSION_ID >= 80000) { - self::markTestSkipped('Doctrine DBAL 2.x is incompatible with PHP 8.'); - } - } - protected function setUp() { $this->repositoryFactory = new TestRepositoryFactory(); diff --git a/src/Symfony/Bundle/SecurityBundle/Tests/Functional/SetAclCommandTest.php b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/SetAclCommandTest.php index 892a51f9bd27c..8eb70c09c1ed7 100644 --- a/src/Symfony/Bundle/SecurityBundle/Tests/Functional/SetAclCommandTest.php +++ b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/SetAclCommandTest.php @@ -40,13 +40,6 @@ class SetAclCommandTest extends AbstractWebTestCase const OBJECT_CLASS = 'Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\AclBundle\Entity\Car'; const SECURITY_CLASS = 'Symfony\Component\Security\Core\User\User'; - public static function setUpBeforeClass() - { - if (\PHP_VERSION_ID >= 80000) { - self::markTestSkipped('Doctrine DBAL 2.x is incompatible with PHP 8.'); - } - } - public function testSetAclUser() { $objectId = 1; diff --git a/src/Symfony/Component/Cache/Tests/Adapter/PdoDbalAdapterTest.php b/src/Symfony/Component/Cache/Tests/Adapter/PdoDbalAdapterTest.php index 351972da48691..aa53958cfab32 100644 --- a/src/Symfony/Component/Cache/Tests/Adapter/PdoDbalAdapterTest.php +++ b/src/Symfony/Component/Cache/Tests/Adapter/PdoDbalAdapterTest.php @@ -12,7 +12,6 @@ namespace Symfony\Component\Cache\Tests\Adapter; use Doctrine\DBAL\DriverManager; -use Doctrine\DBAL\Version; use Symfony\Component\Cache\Adapter\PdoAdapter; use Symfony\Component\Cache\Tests\Traits\PdoPruneableTrait; @@ -31,10 +30,6 @@ public static function setUpBeforeClass() self::markTestSkipped('Extension pdo_sqlite required.'); } - if (\PHP_VERSION_ID >= 80000 && class_exists(Version::class)) { - self::markTestSkipped('Doctrine DBAL 2.x is incompatible with PHP 8.'); - } - self::$dbFile = tempnam(sys_get_temp_dir(), 'sf_sqlite_cache'); $pool = new PdoAdapter(DriverManager::getConnection(['driver' => 'pdo_sqlite', 'path' => self::$dbFile])); diff --git a/src/Symfony/Component/Cache/Tests/Simple/PdoDbalCacheTest.php b/src/Symfony/Component/Cache/Tests/Simple/PdoDbalCacheTest.php index 79fd97a752a2e..4da2b603cf88f 100644 --- a/src/Symfony/Component/Cache/Tests/Simple/PdoDbalCacheTest.php +++ b/src/Symfony/Component/Cache/Tests/Simple/PdoDbalCacheTest.php @@ -12,7 +12,6 @@ namespace Symfony\Component\Cache\Tests\Simple; use Doctrine\DBAL\DriverManager; -use Doctrine\DBAL\Version; use Symfony\Component\Cache\Simple\PdoCache; use Symfony\Component\Cache\Tests\Traits\PdoPruneableTrait; @@ -31,10 +30,6 @@ public static function setUpBeforeClass() self::markTestSkipped('Extension pdo_sqlite required.'); } - if (\PHP_VERSION_ID >= 80000 && class_exists(Version::class)) { - self::markTestSkipped('Doctrine DBAL 2.x is incompatible with PHP 8.'); - } - self::$dbFile = tempnam(sys_get_temp_dir(), 'sf_sqlite_cache'); $pool = new PdoCache(DriverManager::getConnection(['driver' => 'pdo_sqlite', 'path' => self::$dbFile])); From c65c6ea75de5e950970d8f8ed4981db9f728800a Mon Sep 17 00:00:00 2001 From: "Alexander M. Turek" Date: Tue, 20 Oct 2020 00:13:18 +0200 Subject: [PATCH 070/156] Don't skip Doctrine tests on php 8. --- .../Component/Cache/Tests/Adapter/PdoAdapterTest.php | 5 ----- .../Component/Lock/Tests/Store/PdoDbalStoreTest.php | 5 ----- src/Symfony/Component/Lock/Tests/Store/PdoStoreTest.php | 5 ----- .../Tests/Transport/Doctrine/DoctrineIntegrationTest.php | 8 -------- 4 files changed, 23 deletions(-) diff --git a/src/Symfony/Component/Cache/Tests/Adapter/PdoAdapterTest.php b/src/Symfony/Component/Cache/Tests/Adapter/PdoAdapterTest.php index 9056c848718bb..dbd93bdd71f03 100644 --- a/src/Symfony/Component/Cache/Tests/Adapter/PdoAdapterTest.php +++ b/src/Symfony/Component/Cache/Tests/Adapter/PdoAdapterTest.php @@ -11,7 +11,6 @@ namespace Symfony\Component\Cache\Tests\Adapter; -use Doctrine\DBAL\Version; use Psr\Cache\CacheItemPoolInterface; use Symfony\Component\Cache\Adapter\PdoAdapter; use Symfony\Component\Cache\Tests\Traits\PdoPruneableTrait; @@ -31,10 +30,6 @@ public static function setUpBeforeClass(): void self::markTestSkipped('Extension pdo_sqlite required.'); } - if (\PHP_VERSION_ID >= 80000 && class_exists(Version::class)) { - self::markTestSkipped('Doctrine DBAL 2.x is incompatible with PHP 8.'); - } - self::$dbFile = tempnam(sys_get_temp_dir(), 'sf_sqlite_cache'); $pool = new PdoAdapter('sqlite:'.self::$dbFile); diff --git a/src/Symfony/Component/Lock/Tests/Store/PdoDbalStoreTest.php b/src/Symfony/Component/Lock/Tests/Store/PdoDbalStoreTest.php index 829e8ec9f7616..264c99829c98f 100644 --- a/src/Symfony/Component/Lock/Tests/Store/PdoDbalStoreTest.php +++ b/src/Symfony/Component/Lock/Tests/Store/PdoDbalStoreTest.php @@ -12,7 +12,6 @@ namespace Symfony\Component\Lock\Tests\Store; use Doctrine\DBAL\DriverManager; -use Doctrine\DBAL\Version; use Symfony\Component\Lock\PersistingStoreInterface; use Symfony\Component\Lock\Store\PdoStore; @@ -31,10 +30,6 @@ public static function setUpBeforeClass(): void { self::$dbFile = tempnam(sys_get_temp_dir(), 'sf_sqlite_lock'); - if (\PHP_VERSION_ID >= 80000 && class_exists(Version::class)) { - self::markTestSkipped('Doctrine DBAL 2.x is incompatible with PHP 8.'); - } - $store = new PdoStore(DriverManager::getConnection(['driver' => 'pdo_sqlite', 'path' => self::$dbFile])); $store->createTable(); } diff --git a/src/Symfony/Component/Lock/Tests/Store/PdoStoreTest.php b/src/Symfony/Component/Lock/Tests/Store/PdoStoreTest.php index f694363045300..800397d153d19 100644 --- a/src/Symfony/Component/Lock/Tests/Store/PdoStoreTest.php +++ b/src/Symfony/Component/Lock/Tests/Store/PdoStoreTest.php @@ -11,7 +11,6 @@ namespace Symfony\Component\Lock\Tests\Store; -use Doctrine\DBAL\Version; use Symfony\Component\Lock\Key; use Symfony\Component\Lock\PersistingStoreInterface; use Symfony\Component\Lock\Store\PdoStore; @@ -31,10 +30,6 @@ public static function setUpBeforeClass(): void { self::$dbFile = tempnam(sys_get_temp_dir(), 'sf_sqlite_lock'); - if (\PHP_VERSION_ID >= 80000 && class_exists(Version::class)) { - self::markTestSkipped('Doctrine DBAL 2.x is incompatible with PHP 8.'); - } - $store = new PdoStore('sqlite:'.self::$dbFile); $store->createTable(); } diff --git a/src/Symfony/Component/Messenger/Tests/Transport/Doctrine/DoctrineIntegrationTest.php b/src/Symfony/Component/Messenger/Tests/Transport/Doctrine/DoctrineIntegrationTest.php index b0f8e8f91140a..e88e00364701f 100644 --- a/src/Symfony/Component/Messenger/Tests/Transport/Doctrine/DoctrineIntegrationTest.php +++ b/src/Symfony/Component/Messenger/Tests/Transport/Doctrine/DoctrineIntegrationTest.php @@ -14,7 +14,6 @@ use Doctrine\DBAL\Driver\Result as DriverResult; use Doctrine\DBAL\DriverManager; use Doctrine\DBAL\Result; -use Doctrine\DBAL\Version; use PHPUnit\Framework\TestCase; use Symfony\Component\Messenger\Tests\Fixtures\DummyMessage; use Symfony\Component\Messenger\Transport\Doctrine\Connection; @@ -31,13 +30,6 @@ class DoctrineIntegrationTest extends TestCase /** @var string */ private $sqliteFile; - public static function setUpBeforeClass(): void - { - if (\PHP_VERSION_ID >= 80000 && class_exists(Version::class)) { - self::markTestSkipped('Doctrine DBAL 2.x is incompatible with PHP 8.'); - } - } - protected function setUp(): void { $this->sqliteFile = sys_get_temp_dir().'/symfony.messenger.sqlite'; From 697fe21f24554cc5159b3c12c1fd13030bba3f8f Mon Sep 17 00:00:00 2001 From: Wouter de Jong Date: Sun, 18 Oct 2020 13:23:08 +0200 Subject: [PATCH 071/156] Added dutch translations for new invalid messages --- .../Resources/translations/validators.nl.xlf | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.nl.xlf b/src/Symfony/Component/Form/Resources/translations/validators.nl.xlf index 3d737d79c1d56..7aa56ebf1bda4 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.nl.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.nl.xlf @@ -14,6 +14,126 @@ The CSRF token is invalid. Please try to resubmit the form. De CSRF-token is ongeldig. Probeer het formulier opnieuw te versturen. + + This value is not a valid HTML5 color. + Dit is geen geldige HTML5 kleur. + + + Please enter a valid birthdate. + Vul een geldige geboortedatum in. + + + The selected choice is invalid. + Deze keuze is ongeldig. + + + The collection is invalid. + Deze collectie is ongeldig. + + + Please select a valid color. + Kies een geldige kleur. + + + Please select a valid country. + Kies een geldige landnaam. + + + Please select a valid currency. + Kies een geldige valuta. + + + Please choose a valid date interval. + Kies een geldig tijdinterval. + + + Please enter a valid date and time. + Vul een geldige datum en tijd in. + + + Please enter a valid date. + Vul een geldige datum in. + + + Please select a valid file. + Kies een geldig bestand. + + + The hidden field is invalid. + Het verborgen veld is incorrect. + + + Please enter an integer. + Vul een geldig getal in. + + + Please select a valid language. + Kies een geldige taal. + + + Please select a valid locale. + Kies een geldige locale. + + + Please enter a valid money amount. + Vul een geldig bedrag in. + + + Please enter a number. + Vul een geldig getal in. + + + The password is invalid. + Het wachtwoord is incorrect. + + + Please enter a percentage value. + Vul een geldig percentage in. + + + The values do not match. + De waardes komen niet overeen. + + + Please enter a valid time. + Vul een geldige tijd in. + + + Please select a valid timezone. + Vul een geldige tijdzone in. + + + Please enter a valid URL. + Vul een geldige URL in. + + + Please enter a valid search term. + Vul een geldige zoekterm in. + + + Please provide a valid phone number. + Vul een geldig telefoonnummer in. + + + The checkbox has an invalid value. + De checkbox heeft een incorrecte waarde. + + + Please enter a valid email address. + Vul een geldig e-mailadres in. + + + Please select a valid option. + Kies een geldige optie. + + + Please select a valid range. + Kies een geldig bereik. + + + Please enter a valid week. + Vul een geldige week in. + From 280a27fc1624e2da35aca23cfd406e069c9e8b66 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Tue, 20 Oct 2020 08:12:11 +0200 Subject: [PATCH 072/156] [Form] Sync translations --- .../Resources/translations/validators.en.xlf | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.en.xlf b/src/Symfony/Component/Form/Resources/translations/validators.en.xlf index 97ed83fd47425..e556c40b647f6 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.en.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.en.xlf @@ -114,6 +114,26 @@ Please provide a valid phone number. Please provide a valid phone number. + + The checkbox has an invalid value. + The checkbox has an invalid value. + + + Please enter a valid email address. + Please enter a valid email address. + + + Please select a valid option. + Please select a valid option. + + + Please select a valid range. + Please select a valid range. + + + Please enter a valid week. + Please enter a valid week. + From 143f82ef8e802c0f09622e09f58f5ff7508c1dd5 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Tue, 20 Oct 2020 14:40:03 +0200 Subject: [PATCH 073/156] forward the caught exception --- src/Symfony/Component/PropertyAccess/PropertyAccessor.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/PropertyAccess/PropertyAccessor.php b/src/Symfony/Component/PropertyAccess/PropertyAccessor.php index cdf61947f4552..c0fb4d7beed37 100644 --- a/src/Symfony/Component/PropertyAccess/PropertyAccessor.php +++ b/src/Symfony/Component/PropertyAccess/PropertyAccessor.php @@ -115,7 +115,7 @@ public function setValue(&$objectOrArray, $propertyPath, $value) return; } catch (\TypeError $e) { - self::throwInvalidArgumentException($e->getMessage(), $e->getTrace(), 0, $propertyPath); + self::throwInvalidArgumentException($e->getMessage(), $e->getTrace(), 0, $propertyPath, $e); // It wasn't thrown in this class so rethrow it throw $e; } From 3f320c8d5168466ac12d66923df7d21ff0a16e76 Mon Sep 17 00:00:00 2001 From: Alexander Schranz Date: Tue, 20 Oct 2020 14:41:53 +0200 Subject: [PATCH 074/156] Refractor AbstractBrowserTest to assertSame --- .../BrowserKit/Tests/AbstractBrowserTest.php | 184 +++++++++--------- 1 file changed, 92 insertions(+), 92 deletions(-) diff --git a/src/Symfony/Component/BrowserKit/Tests/AbstractBrowserTest.php b/src/Symfony/Component/BrowserKit/Tests/AbstractBrowserTest.php index 25e76cb80168f..ca3d18a9536b5 100644 --- a/src/Symfony/Component/BrowserKit/Tests/AbstractBrowserTest.php +++ b/src/Symfony/Component/BrowserKit/Tests/AbstractBrowserTest.php @@ -68,7 +68,7 @@ public function testXmlHttpRequest() { $client = $this->getBrowser(); $client->xmlHttpRequest('GET', 'http://example.com/', [], [], [], null, true); - $this->assertEquals($client->getRequest()->getServer()['HTTP_X_REQUESTED_WITH'], 'XMLHttpRequest'); + $this->assertSame('XMLHttpRequest', $client->getRequest()->getServer()['HTTP_X_REQUESTED_WITH']); $this->assertFalse($client->getServerParameter('HTTP_X_REQUESTED_WITH', false)); } @@ -77,9 +77,9 @@ public function testGetRequestWithIpAsHttpHost() $client = $this->getBrowser(); $client->request('GET', 'https://example.com/foo', [], [], ['HTTP_HOST' => '127.0.0.1']); - $this->assertEquals('https://example.com/foo', $client->getRequest()->getUri()); + $this->assertSame('https://example.com/foo', $client->getRequest()->getUri()); $headers = $client->getRequest()->getServer(); - $this->assertEquals('127.0.0.1', $headers['HTTP_HOST']); + $this->assertSame('127.0.0.1', $headers['HTTP_HOST']); } public function testGetResponse() @@ -88,7 +88,7 @@ public function testGetResponse() $client->setNextResponse(new Response('foo')); $client->request('GET', 'http://example.com/'); - $this->assertEquals('foo', $client->getResponse()->getContent(), '->getCrawler() returns the Response of the last request'); + $this->assertSame('foo', $client->getResponse()->getContent(), '->getCrawler() returns the Response of the last request'); $this->assertInstanceOf('Symfony\Component\BrowserKit\Response', $client->getResponse(), '->getCrawler() returns the Response of the last request'); } @@ -118,7 +118,7 @@ public function testGetContent() $client = $this->getBrowser(); $client->request('POST', 'http://example.com/jsonrpc', [], [], [], $json); - $this->assertEquals($json, $client->getRequest()->getContent()); + $this->assertSame($json, $client->getRequest()->getContent()); } public function testGetCrawler() @@ -145,12 +145,12 @@ public function testRequestHttpHeaders() $client = $this->getBrowser(); $client->request('GET', '/'); $headers = $client->getRequest()->getServer(); - $this->assertEquals('localhost', $headers['HTTP_HOST'], '->request() sets the HTTP_HOST header'); + $this->assertSame('localhost', $headers['HTTP_HOST'], '->request() sets the HTTP_HOST header'); $client = $this->getBrowser(); $client->request('GET', 'http://www.example.com'); $headers = $client->getRequest()->getServer(); - $this->assertEquals('www.example.com', $headers['HTTP_HOST'], '->request() sets the HTTP_HOST header'); + $this->assertSame('www.example.com', $headers['HTTP_HOST'], '->request() sets the HTTP_HOST header'); $client->request('GET', 'https://www.example.com'); $headers = $client->getRequest()->getServer(); @@ -159,66 +159,66 @@ public function testRequestHttpHeaders() $client = $this->getBrowser(); $client->request('GET', 'http://www.example.com:8080'); $headers = $client->getRequest()->getServer(); - $this->assertEquals('www.example.com:8080', $headers['HTTP_HOST'], '->request() sets the HTTP_HOST header with port'); + $this->assertSame('www.example.com:8080', $headers['HTTP_HOST'], '->request() sets the HTTP_HOST header with port'); } public function testRequestURIConversion() { $client = $this->getBrowser(); $client->request('GET', '/foo'); - $this->assertEquals('http://localhost/foo', $client->getRequest()->getUri(), '->request() converts the URI to an absolute one'); + $this->assertSame('http://localhost/foo', $client->getRequest()->getUri(), '->request() converts the URI to an absolute one'); $client = $this->getBrowser(); $client->request('GET', 'http://www.example.com'); - $this->assertEquals('http://www.example.com', $client->getRequest()->getUri(), '->request() does not change absolute URIs'); + $this->assertSame('http://www.example.com', $client->getRequest()->getUri(), '->request() does not change absolute URIs'); $client = $this->getBrowser(); $client->request('GET', 'http://www.example.com/'); $client->request('GET', '/foo'); - $this->assertEquals('http://www.example.com/foo', $client->getRequest()->getUri(), '->request() uses the previous request for relative URLs'); + $this->assertSame('http://www.example.com/foo', $client->getRequest()->getUri(), '->request() uses the previous request for relative URLs'); $client = $this->getBrowser(); $client->request('GET', 'http://www.example.com/foo'); $client->request('GET', '#'); - $this->assertEquals('http://www.example.com/foo#', $client->getRequest()->getUri(), '->request() uses the previous request for #'); + $this->assertSame('http://www.example.com/foo#', $client->getRequest()->getUri(), '->request() uses the previous request for #'); $client->request('GET', '#'); - $this->assertEquals('http://www.example.com/foo#', $client->getRequest()->getUri(), '->request() uses the previous request for #'); + $this->assertSame('http://www.example.com/foo#', $client->getRequest()->getUri(), '->request() uses the previous request for #'); $client->request('GET', '#foo'); - $this->assertEquals('http://www.example.com/foo#foo', $client->getRequest()->getUri(), '->request() uses the previous request for #'); + $this->assertSame('http://www.example.com/foo#foo', $client->getRequest()->getUri(), '->request() uses the previous request for #'); $client = $this->getBrowser(); $client->request('GET', 'http://www.example.com/foo/'); $client->request('GET', 'bar'); - $this->assertEquals('http://www.example.com/foo/bar', $client->getRequest()->getUri(), '->request() uses the previous request for relative URLs'); + $this->assertSame('http://www.example.com/foo/bar', $client->getRequest()->getUri(), '->request() uses the previous request for relative URLs'); $client = $this->getBrowser(); $client->request('GET', 'http://www.example.com/foo/foobar'); $client->request('GET', 'bar'); - $this->assertEquals('http://www.example.com/foo/bar', $client->getRequest()->getUri(), '->request() uses the previous request for relative URLs'); + $this->assertSame('http://www.example.com/foo/bar', $client->getRequest()->getUri(), '->request() uses the previous request for relative URLs'); $client = $this->getBrowser(); $client->request('GET', 'http://www.example.com/foo/'); $client->request('GET', 'http'); - $this->assertEquals('http://www.example.com/foo/http', $client->getRequest()->getUri(), '->request() uses the previous request for relative URLs'); + $this->assertSame('http://www.example.com/foo/http', $client->getRequest()->getUri(), '->request() uses the previous request for relative URLs'); $client = $this->getBrowser(); $client->request('GET', 'http://www.example.com/foo'); $client->request('GET', 'http/bar'); - $this->assertEquals('http://www.example.com/http/bar', $client->getRequest()->getUri(), '->request() uses the previous request for relative URLs'); + $this->assertSame('http://www.example.com/http/bar', $client->getRequest()->getUri(), '->request() uses the previous request for relative URLs'); $client = $this->getBrowser(); $client->request('GET', 'http://www.example.com/'); $client->request('GET', 'http'); - $this->assertEquals('http://www.example.com/http', $client->getRequest()->getUri(), '->request() uses the previous request for relative URLs'); + $this->assertSame('http://www.example.com/http', $client->getRequest()->getUri(), '->request() uses the previous request for relative URLs'); $client = $this->getBrowser(); $client->request('GET', 'http://www.example.com/foo'); $client->request('GET', '?'); - $this->assertEquals('http://www.example.com/foo?', $client->getRequest()->getUri(), '->request() uses the previous request for ?'); + $this->assertSame('http://www.example.com/foo?', $client->getRequest()->getUri(), '->request() uses the previous request for ?'); $client->request('GET', '?'); - $this->assertEquals('http://www.example.com/foo?', $client->getRequest()->getUri(), '->request() uses the previous request for ?'); + $this->assertSame('http://www.example.com/foo?', $client->getRequest()->getUri(), '->request() uses the previous request for ?'); $client->request('GET', '?foo=bar'); - $this->assertEquals('http://www.example.com/foo?foo=bar', $client->getRequest()->getUri(), '->request() uses the previous request for ?'); + $this->assertSame('http://www.example.com/foo?foo=bar', $client->getRequest()->getUri(), '->request() uses the previous request for ?'); } public function testRequestReferer() @@ -227,7 +227,7 @@ public function testRequestReferer() $client->request('GET', 'http://www.example.com/foo/foobar'); $client->request('GET', 'bar'); $server = $client->getRequest()->getServer(); - $this->assertEquals('http://www.example.com/foo/foobar', $server['HTTP_REFERER'], '->request() sets the referer'); + $this->assertSame('http://www.example.com/foo/foobar', $server['HTTP_REFERER'], '->request() sets the referer'); } public function testRequestRefererCanBeOverridden() @@ -236,7 +236,7 @@ public function testRequestRefererCanBeOverridden() $client->request('GET', 'http://www.example.com/foo/foobar'); $client->request('GET', 'bar', [], [], ['HTTP_REFERER' => 'xyz']); $server = $client->getRequest()->getServer(); - $this->assertEquals('xyz', $server['HTTP_REFERER'], '->request() allows referer to be overridden'); + $this->assertSame('xyz', $server['HTTP_REFERER'], '->request() allows referer to be overridden'); } public function testRequestHistory() @@ -245,8 +245,8 @@ public function testRequestHistory() $client->request('GET', 'http://www.example.com/foo/foobar'); $client->request('GET', 'bar'); - $this->assertEquals('http://www.example.com/foo/bar', $client->getHistory()->current()->getUri(), '->request() updates the History'); - $this->assertEquals('http://www.example.com/foo/foobar', $client->getHistory()->back()->getUri(), '->request() updates the History'); + $this->assertSame('http://www.example.com/foo/bar', $client->getHistory()->current()->getUri(), '->request() updates the History'); + $this->assertSame('http://www.example.com/foo/foobar', $client->getHistory()->back()->getUri(), '->request() updates the History'); } public function testRequestCookies() @@ -254,10 +254,10 @@ public function testRequestCookies() $client = $this->getBrowser(); $client->setNextResponse(new Response('foo', 200, ['Set-Cookie' => 'foo=bar'])); $client->request('GET', 'http://www.example.com/foo/foobar'); - $this->assertEquals(['foo' => 'bar'], $client->getCookieJar()->allValues('http://www.example.com/foo/foobar'), '->request() updates the CookieJar'); + $this->assertSame(['foo' => 'bar'], $client->getCookieJar()->allValues('http://www.example.com/foo/foobar'), '->request() updates the CookieJar'); $client->request('GET', 'bar'); - $this->assertEquals(['foo' => 'bar'], $client->getCookieJar()->allValues('http://www.example.com/foo/foobar'), '->request() updates the CookieJar'); + $this->assertSame(['foo' => 'bar'], $client->getCookieJar()->allValues('http://www.example.com/foo/foobar'), '->request() updates the CookieJar'); } public function testRequestSecureCookies() @@ -277,7 +277,7 @@ public function testClick() $client->click($crawler->filter('a')->link()); - $this->assertEquals('http://www.example.com/foo', $client->getRequest()->getUri(), '->click() clicks on links'); + $this->assertSame('http://www.example.com/foo', $client->getRequest()->getUri(), '->click() clicks on links'); } public function testClickLink() @@ -287,7 +287,7 @@ public function testClickLink() $client->request('GET', 'http://www.example.com/foo/foobar'); $client->clickLink('foo'); - $this->assertEquals('http://www.example.com/foo', $client->getRequest()->getUri(), '->click() clicks on links'); + $this->assertSame('http://www.example.com/foo', $client->getRequest()->getUri(), '->click() clicks on links'); } public function testClickLinkNotFound() @@ -312,7 +312,7 @@ public function testClickForm() $client->click($crawler->filter('input')->form()); - $this->assertEquals('http://www.example.com/foo', $client->getRequest()->getUri(), '->click() Form submit forms'); + $this->assertSame('http://www.example.com/foo', $client->getRequest()->getUri(), '->click() Form submit forms'); } public function testSubmit() @@ -323,7 +323,7 @@ public function testSubmit() $client->submit($crawler->filter('input')->form()); - $this->assertEquals('http://www.example.com/foo', $client->getRequest()->getUri(), '->submit() submit forms'); + $this->assertSame('http://www.example.com/foo', $client->getRequest()->getUri(), '->submit() submit forms'); } public function testSubmitForm() @@ -339,11 +339,11 @@ public function testSubmitForm() 'HTTP_USER_AGENT' => 'Symfony User Agent', ]); - $this->assertEquals('http://www.example.com/foo', $client->getRequest()->getUri(), '->submitForm() submit forms'); - $this->assertEquals('PUT', $client->getRequest()->getMethod(), '->submitForm() allows to change the method'); - $this->assertEquals('new username', $client->getRequest()->getParameters()['username'], '->submitForm() allows to override the form values'); - $this->assertEquals('new password', $client->getRequest()->getParameters()['password'], '->submitForm() allows to override the form values'); - $this->assertEquals('Symfony User Agent', $client->getRequest()->getServer()['HTTP_USER_AGENT'], '->submitForm() allows to change the $_SERVER parameters'); + $this->assertSame('http://www.example.com/foo', $client->getRequest()->getUri(), '->submitForm() submit forms'); + $this->assertSame('PUT', $client->getRequest()->getMethod(), '->submitForm() allows to change the method'); + $this->assertSame('new username', $client->getRequest()->getParameters()['username'], '->submitForm() allows to override the form values'); + $this->assertSame('new password', $client->getRequest()->getParameters()['password'], '->submitForm() allows to override the form values'); + $this->assertSame('Symfony User Agent', $client->getRequest()->getServer()['HTTP_USER_AGENT'], '->submitForm() allows to change the $_SERVER parameters'); } public function testSubmitFormNotFound() @@ -371,19 +371,19 @@ public function testSubmitPreserveAuth() $server = $client->getRequest()->getServer(); $this->assertArrayHasKey('PHP_AUTH_USER', $server); - $this->assertEquals('foo', $server['PHP_AUTH_USER']); + $this->assertSame('foo', $server['PHP_AUTH_USER']); $this->assertArrayHasKey('PHP_AUTH_PW', $server); - $this->assertEquals('bar', $server['PHP_AUTH_PW']); + $this->assertSame('bar', $server['PHP_AUTH_PW']); $client->submit($crawler->filter('input')->form()); - $this->assertEquals('http://www.example.com/foo', $client->getRequest()->getUri(), '->submit() submit forms'); + $this->assertSame('http://www.example.com/foo', $client->getRequest()->getUri(), '->submit() submit forms'); $server = $client->getRequest()->getServer(); $this->assertArrayHasKey('PHP_AUTH_USER', $server); - $this->assertEquals('foo', $server['PHP_AUTH_USER']); + $this->assertSame('foo', $server['PHP_AUTH_USER']); $this->assertArrayHasKey('PHP_AUTH_PW', $server); - $this->assertEquals('bar', $server['PHP_AUTH_PW']); + $this->assertSame('bar', $server['PHP_AUTH_PW']); } public function testSubmitPassthrewHeaders() @@ -397,7 +397,7 @@ public function testSubmitPassthrewHeaders() $server = $client->getRequest()->getServer(); $this->assertArrayHasKey('Accept-Language', $server); - $this->assertEquals('de', $server['Accept-Language']); + $this->assertSame('de', $server['Accept-Language']); } public function testFollowRedirect() @@ -417,19 +417,19 @@ public function testFollowRedirect() $client->request('GET', 'http://www.example.com/foo/foobar'); $client->followRedirect(); - $this->assertEquals('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() follows a redirect if any'); + $this->assertSame('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() follows a redirect if any'); $client = $this->getBrowser(); $client->setNextResponse(new Response('', 302, ['Location' => 'http://www.example.com/redirected'])); $client->request('GET', 'http://www.example.com/foo/foobar'); - $this->assertEquals('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() automatically follows redirects if followRedirects is true'); + $this->assertSame('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() automatically follows redirects if followRedirects is true'); $client = $this->getBrowser(); $client->setNextResponse(new Response('', 201, ['Location' => 'http://www.example.com/redirected'])); $client->request('GET', 'http://www.example.com/foo/foobar'); - $this->assertEquals('http://www.example.com/foo/foobar', $client->getRequest()->getUri(), '->followRedirect() does not follow redirect if HTTP Code is not 30x'); + $this->assertSame('http://www.example.com/foo/foobar', $client->getRequest()->getUri(), '->followRedirect() does not follow redirect if HTTP Code is not 30x'); $client = $this->getBrowser(); $client->setNextResponse(new Response('', 201, ['Location' => 'http://www.example.com/redirected'])); @@ -449,12 +449,12 @@ public function testFollowRelativeRedirect() $client = $this->getBrowser(); $client->setNextResponse(new Response('', 302, ['Location' => '/redirected'])); $client->request('GET', 'http://www.example.com/foo/foobar'); - $this->assertEquals('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() follows a redirect if any'); + $this->assertSame('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() follows a redirect if any'); $client = $this->getBrowser(); $client->setNextResponse(new Response('', 302, ['Location' => '/redirected:1234'])); $client->request('GET', 'http://www.example.com/foo/foobar'); - $this->assertEquals('http://www.example.com/redirected:1234', $client->getRequest()->getUri(), '->followRedirect() follows relative urls'); + $this->assertSame('http://www.example.com/redirected:1234', $client->getRequest()->getUri(), '->followRedirect() follows relative urls'); } public function testFollowRedirectWithMaxRedirects() @@ -463,7 +463,7 @@ public function testFollowRedirectWithMaxRedirects() $client->setMaxRedirects(1); $client->setNextResponse(new Response('', 302, ['Location' => 'http://www.example.com/redirected'])); $client->request('GET', 'http://www.example.com/foo/foobar'); - $this->assertEquals('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() follows a redirect if any'); + $this->assertSame('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() follows a redirect if any'); $client->setNextResponse(new Response('', 302, ['Location' => 'http://www.example.com/redirected2'])); try { @@ -475,25 +475,25 @@ public function testFollowRedirectWithMaxRedirects() $client->setNextResponse(new Response('', 302, ['Location' => 'http://www.example.com/redirected'])); $client->request('GET', 'http://www.example.com/foo/foobar'); - $this->assertEquals('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() follows a redirect if any'); + $this->assertSame('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() follows a redirect if any'); $client->setNextResponse(new Response('', 302, ['Location' => '/redirected'])); $client->request('GET', 'http://www.example.com/foo/foobar'); - $this->assertEquals('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() follows relative URLs'); + $this->assertSame('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() follows relative URLs'); $client = $this->getBrowser(); $client->setNextResponse(new Response('', 302, ['Location' => '//www.example.org/'])); $client->request('GET', 'https://www.example.com/'); - $this->assertEquals('https://www.example.org/', $client->getRequest()->getUri(), '->followRedirect() follows protocol-relative URLs'); + $this->assertSame('https://www.example.org/', $client->getRequest()->getUri(), '->followRedirect() follows protocol-relative URLs'); $client = $this->getBrowser(); $client->setNextResponse(new Response('', 302, ['Location' => 'http://www.example.com/redirected'])); $client->request('POST', 'http://www.example.com/foo/foobar', ['name' => 'bar']); - $this->assertEquals('GET', $client->getRequest()->getMethod(), '->followRedirect() uses a GET for 302'); - $this->assertEquals([], $client->getRequest()->getParameters(), '->followRedirect() does not submit parameters when changing the method'); + $this->assertSame('GET', $client->getRequest()->getMethod(), '->followRedirect() uses a GET for 302'); + $this->assertSame([], $client->getRequest()->getParameters(), '->followRedirect() does not submit parameters when changing the method'); } public function testFollowRedirectWithCookies() @@ -505,9 +505,9 @@ public function testFollowRedirectWithCookies() 'Set-Cookie' => 'foo=bar', ])); $client->request('GET', 'http://www.example.com/'); - $this->assertEquals([], $client->getRequest()->getCookies()); + $this->assertSame([], $client->getRequest()->getCookies()); $client->followRedirect(); - $this->assertEquals(['foo' => 'bar'], $client->getRequest()->getCookies()); + $this->assertSame(['foo' => 'bar'], $client->getRequest()->getCookies()); } public function testFollowRedirectWithHeaders() @@ -566,9 +566,9 @@ public function testIsFollowingRedirects() public function testGetMaxRedirects() { $client = $this->getBrowser(); - $this->assertEquals(-1, $client->getMaxRedirects(), '->getMaxRedirects() returns default value'); + $this->assertSame(-1, $client->getMaxRedirects(), '->getMaxRedirects() returns default value'); $client->setMaxRedirects(3); - $this->assertEquals(3, $client->getMaxRedirects(), '->getMaxRedirects() returns assigned value'); + $this->assertSame(3, $client->getMaxRedirects(), '->getMaxRedirects() returns assigned value'); } public function testFollowRedirectWithPostMethod() @@ -583,12 +583,12 @@ public function testFollowRedirectWithPostMethod() $client->setNextResponse(new Response('', 307, ['Location' => 'http://www.example.com/redirected'])); $client->request('POST', 'http://www.example.com/foo/foobar', $parameters, $files, $server, $content); - $this->assertEquals('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() follows a redirect with POST method'); + $this->assertSame('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() follows a redirect with POST method'); $this->assertArrayHasKey('foo', $client->getRequest()->getParameters(), '->followRedirect() keeps parameters with POST method'); $this->assertArrayHasKey('myfile.foo', $client->getRequest()->getFiles(), '->followRedirect() keeps files with POST method'); $this->assertArrayHasKey('X_TEST_FOO', $client->getRequest()->getServer(), '->followRedirect() keeps $_SERVER with POST method'); - $this->assertEquals($content, $client->getRequest()->getContent(), '->followRedirect() keeps content with POST method'); - $this->assertEquals('POST', $client->getRequest()->getMethod(), '->followRedirect() keeps request method'); + $this->assertSame($content, $client->getRequest()->getContent(), '->followRedirect() keeps content with POST method'); + $this->assertSame('POST', $client->getRequest()->getMethod(), '->followRedirect() keeps request method'); } public function testFollowRedirectDropPostMethod() @@ -604,12 +604,12 @@ public function testFollowRedirectDropPostMethod() $client->setNextResponse(new Response('', $code, ['Location' => 'http://www.example.com/redirected'])); $client->request('POST', 'http://www.example.com/foo/foobar', $parameters, $files, $server, $content); - $this->assertEquals('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() follows a redirect with POST method on response code: '.$code.'.'); + $this->assertSame('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() follows a redirect with POST method on response code: '.$code.'.'); $this->assertEmpty($client->getRequest()->getParameters(), '->followRedirect() drops parameters with POST method on response code: '.$code.'.'); $this->assertEmpty($client->getRequest()->getFiles(), '->followRedirect() drops files with POST method on response code: '.$code.'.'); $this->assertArrayHasKey('X_TEST_FOO', $client->getRequest()->getServer(), '->followRedirect() keeps $_SERVER with POST method on response code: '.$code.'.'); $this->assertEmpty($client->getRequest()->getContent(), '->followRedirect() drops content with POST method on response code: '.$code.'.'); - $this->assertEquals('GET', $client->getRequest()->getMethod(), '->followRedirect() drops request method to GET on response code: '.$code.'.'); + $this->assertSame('GET', $client->getRequest()->getMethod(), '->followRedirect() drops request method to GET on response code: '.$code.'.'); } } @@ -622,7 +622,7 @@ public function testFollowMetaRefresh(string $content, string $expectedEndingUrl $client->followMetaRefresh($followMetaRefresh); $client->setNextResponse(new Response($content)); $client->request('GET', 'http://www.example.com/foo/foobar'); - $this->assertEquals($expectedEndingUrl, $client->getRequest()->getUri()); + $this->assertSame($expectedEndingUrl, $client->getRequest()->getUri()); } public function getTestsForMetaRefresh() @@ -659,11 +659,11 @@ public function testBack() $client->request('GET', 'http://www.example.com/foo'); $client->back(); - $this->assertEquals('http://www.example.com/foo/foobar', $client->getRequest()->getUri(), '->back() goes back in the history'); + $this->assertSame('http://www.example.com/foo/foobar', $client->getRequest()->getUri(), '->back() goes back in the history'); $this->assertArrayHasKey('foo', $client->getRequest()->getParameters(), '->back() keeps parameters'); $this->assertArrayHasKey('myfile.foo', $client->getRequest()->getFiles(), '->back() keeps files'); $this->assertArrayHasKey('X_TEST_FOO', $client->getRequest()->getServer(), '->back() keeps $_SERVER'); - $this->assertEquals($content, $client->getRequest()->getContent(), '->back() keeps content'); + $this->assertSame($content, $client->getRequest()->getContent(), '->back() keeps content'); } public function testForward() @@ -680,11 +680,11 @@ public function testForward() $client->back(); $client->forward(); - $this->assertEquals('http://www.example.com/foo', $client->getRequest()->getUri(), '->forward() goes forward in the history'); + $this->assertSame('http://www.example.com/foo', $client->getRequest()->getUri(), '->forward() goes forward in the history'); $this->assertArrayHasKey('foo', $client->getRequest()->getParameters(), '->forward() keeps parameters'); $this->assertArrayHasKey('myfile.foo', $client->getRequest()->getFiles(), '->forward() keeps files'); $this->assertArrayHasKey('X_TEST_FOO', $client->getRequest()->getServer(), '->forward() keeps $_SERVER'); - $this->assertEquals($content, $client->getRequest()->getContent(), '->forward() keeps content'); + $this->assertSame($content, $client->getRequest()->getContent(), '->forward() keeps content'); } public function testBackAndFrowardWithRedirects() @@ -695,15 +695,15 @@ public function testBackAndFrowardWithRedirects() $client->setNextResponse(new Response('', 301, ['Location' => 'http://www.example.com/redirected'])); $client->request('GET', 'http://www.example.com/bar'); - $this->assertEquals('http://www.example.com/redirected', $client->getRequest()->getUri(), 'client followed redirect'); + $this->assertSame('http://www.example.com/redirected', $client->getRequest()->getUri(), 'client followed redirect'); $client->back(); - $this->assertEquals('http://www.example.com/foo', $client->getRequest()->getUri(), '->back() goes back in the history skipping redirects'); + $this->assertSame('http://www.example.com/foo', $client->getRequest()->getUri(), '->back() goes back in the history skipping redirects'); $client->forward(); - $this->assertEquals('http://www.example.com/redirected', $client->getRequest()->getUri(), '->forward() goes forward in the history skipping redirects'); + $this->assertSame('http://www.example.com/redirected', $client->getRequest()->getUri(), '->forward() goes forward in the history skipping redirects'); } public function testReload() @@ -718,11 +718,11 @@ public function testReload() $client->request('GET', 'http://www.example.com/foo/foobar', $parameters, $files, $server, $content); $client->reload(); - $this->assertEquals('http://www.example.com/foo/foobar', $client->getRequest()->getUri(), '->reload() reloads the current page'); + $this->assertSame('http://www.example.com/foo/foobar', $client->getRequest()->getUri(), '->reload() reloads the current page'); $this->assertArrayHasKey('foo', $client->getRequest()->getParameters(), '->reload() keeps parameters'); $this->assertArrayHasKey('myfile.foo', $client->getRequest()->getFiles(), '->reload() keeps files'); $this->assertArrayHasKey('X_TEST_FOO', $client->getRequest()->getServer(), '->reload() keeps $_SERVER'); - $this->assertEquals($content, $client->getRequest()->getContent(), '->reload() keeps content'); + $this->assertSame($content, $client->getRequest()->getContent(), '->reload() keeps content'); } public function testRestart() @@ -732,7 +732,7 @@ public function testRestart() $client->restart(); $this->assertTrue($client->getHistory()->isEmpty(), '->restart() clears the history'); - $this->assertEquals([], $client->getCookieJar()->all(), '->restart() clears the cookies'); + $this->assertSame([], $client->getCookieJar()->all(), '->restart() clears the cookies'); } /** @@ -745,7 +745,7 @@ public function testInsulatedRequests() $client->setNextScript("new Symfony\Component\BrowserKit\Response('foobar')"); $client->request('GET', 'http://www.example.com/foo/foobar'); - $this->assertEquals('foobar', $client->getResponse()->getContent(), '->insulate() process the request in a forked process'); + $this->assertSame('foobar', $client->getResponse()->getContent(), '->insulate() process the request in a forked process'); $client->setNextScript("new Symfony\Component\BrowserKit\Response('foobar)"); @@ -760,31 +760,31 @@ public function testInsulatedRequests() public function testGetServerParameter() { $client = $this->getBrowser(); - $this->assertEquals('', $client->getServerParameter('HTTP_HOST')); - $this->assertEquals('Symfony BrowserKit', $client->getServerParameter('HTTP_USER_AGENT')); - $this->assertEquals('testvalue', $client->getServerParameter('testkey', 'testvalue')); + $this->assertSame('', $client->getServerParameter('HTTP_HOST')); + $this->assertSame('Symfony BrowserKit', $client->getServerParameter('HTTP_USER_AGENT')); + $this->assertSame('testvalue', $client->getServerParameter('testkey', 'testvalue')); } public function testSetServerParameter() { $client = $this->getBrowser(); - $this->assertEquals('', $client->getServerParameter('HTTP_HOST')); - $this->assertEquals('Symfony BrowserKit', $client->getServerParameter('HTTP_USER_AGENT')); + $this->assertSame('', $client->getServerParameter('HTTP_HOST')); + $this->assertSame('Symfony BrowserKit', $client->getServerParameter('HTTP_USER_AGENT')); $client->setServerParameter('HTTP_HOST', 'testhost'); - $this->assertEquals('testhost', $client->getServerParameter('HTTP_HOST')); + $this->assertSame('testhost', $client->getServerParameter('HTTP_HOST')); $client->setServerParameter('HTTP_USER_AGENT', 'testua'); - $this->assertEquals('testua', $client->getServerParameter('HTTP_USER_AGENT')); + $this->assertSame('testua', $client->getServerParameter('HTTP_USER_AGENT')); } public function testSetServerParameterInRequest() { $client = $this->getBrowser(); - $this->assertEquals('', $client->getServerParameter('HTTP_HOST')); - $this->assertEquals('Symfony BrowserKit', $client->getServerParameter('HTTP_USER_AGENT')); + $this->assertSame('', $client->getServerParameter('HTTP_HOST')); + $this->assertSame('Symfony BrowserKit', $client->getServerParameter('HTTP_USER_AGENT')); $client->request('GET', 'https://www.example.com/https/www.example.com', [], [], [ 'HTTP_HOST' => 'testhost', @@ -793,21 +793,21 @@ public function testSetServerParameterInRequest() 'NEW_SERVER_KEY' => 'new-server-key-value', ]); - $this->assertEquals('', $client->getServerParameter('HTTP_HOST')); - $this->assertEquals('Symfony BrowserKit', $client->getServerParameter('HTTP_USER_AGENT')); + $this->assertSame('', $client->getServerParameter('HTTP_HOST')); + $this->assertSame('Symfony BrowserKit', $client->getServerParameter('HTTP_USER_AGENT')); - $this->assertEquals('https://www.example.com/https/www.example.com', $client->getRequest()->getUri()); + $this->assertSame('https://www.example.com/https/www.example.com', $client->getRequest()->getUri()); $server = $client->getRequest()->getServer(); $this->assertArrayHasKey('HTTP_USER_AGENT', $server); - $this->assertEquals('testua', $server['HTTP_USER_AGENT']); + $this->assertSame('testua', $server['HTTP_USER_AGENT']); $this->assertArrayHasKey('HTTP_HOST', $server); - $this->assertEquals('testhost', $server['HTTP_HOST']); + $this->assertSame('testhost', $server['HTTP_HOST']); $this->assertArrayHasKey('NEW_SERVER_KEY', $server); - $this->assertEquals('new-server-key-value', $server['NEW_SERVER_KEY']); + $this->assertSame('new-server-key-value', $server['NEW_SERVER_KEY']); $this->assertArrayHasKey('HTTPS', $server); $this->assertTrue($server['HTTPS']); @@ -821,13 +821,13 @@ public function testRequestWithRelativeUri() 'HTTP_HOST' => 'testhost', 'HTTPS' => true, ]); - $this->assertEquals('https://testhost/', $client->getRequest()->getUri()); + $this->assertSame('https://testhost/', $client->getRequest()->getUri()); $client->request('GET', 'https://www.example.com/', [], [], [ 'HTTP_HOST' => 'testhost', 'HTTPS' => false, ]); - $this->assertEquals('https://www.example.com/', $client->getRequest()->getUri()); + $this->assertSame('https://www.example.com/', $client->getRequest()->getUri()); } public function testInternalRequest() From fa265c2ee404aecc8914c2afbd64cad2a533e52b Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Tue, 20 Oct 2020 15:38:40 +0200 Subject: [PATCH 075/156] skip Vulcain-based tests if the binary cannot be executed --- .../Component/HttpClient/Tests/CurlHttpClientTest.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Symfony/Component/HttpClient/Tests/CurlHttpClientTest.php b/src/Symfony/Component/HttpClient/Tests/CurlHttpClientTest.php index 6793818d55008..269705a3f4b9b 100644 --- a/src/Symfony/Component/HttpClient/Tests/CurlHttpClientTest.php +++ b/src/Symfony/Component/HttpClient/Tests/CurlHttpClientTest.php @@ -169,6 +169,14 @@ private function getVulcainClient(): CurlHttpClient sleep('\\' === \DIRECTORY_SEPARATOR ? 10 : 1); if (!$process->isRunning()) { + if ('\\' !== \DIRECTORY_SEPARATOR && 127 === $process->getExitCode()) { + $this->markTestSkipped('vulcain binary is missing'); + } + + if ('\\' !== \DIRECTORY_SEPARATOR && 126 === $process->getExitCode()) { + $this->markTestSkipped('vulcain binary is not executable'); + } + throw new ProcessFailedException($process); } From 53434c2becac0aef61c5f7265834c0fb0582ea61 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Tue, 20 Oct 2020 15:07:20 +0200 Subject: [PATCH 076/156] fix APCu installation for the nightly build job --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 254d3c600e3f5..648e955995da8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -157,15 +157,14 @@ before_install: fi if [[ $PHP = nightly ]]; then tfold ext.memcached tpecl memcached-3.1.5 memcached.so $INI - tfold ext.apcu install_apcu_dev 9c36db45100d4d27ec33072f4be90f1f5a0108b7 $INI else - tfold ext.apcu tpecl apcu-5.1.19 apcu.so $INI tfold ext.mongodb tpecl mongodb-1.6.16 mongodb.so $INI tfold ext.zookeeper tpecl zookeeper-0.7.2 zookeeper.so $INI tfold ext.amqp tpecl amqp-1.10.2 amqp.so $INI tfold ext.redis tpecl redis-5.2.2 redis.so $INI "no" fi + tfold ext.apcu tpecl apcu-5.1.19 apcu.so $INI tfold ext.igbinary tpecl igbinary-3.1.6 igbinary.so $INI done - | From 1cde6ca03fcef0e9087131deb5631fe16ca5fac3 Mon Sep 17 00:00:00 2001 From: Nyholm Date: Tue, 20 Oct 2020 23:27:26 +0200 Subject: [PATCH 077/156] [Filesystem] Check if failed unlink was caused by permission denied --- .../Component/Filesystem/Filesystem.php | 2 +- .../Filesystem/Tests/FilesystemTest.php | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Filesystem/Filesystem.php b/src/Symfony/Component/Filesystem/Filesystem.php index a6e8715256be6..96b2e96009f43 100644 --- a/src/Symfony/Component/Filesystem/Filesystem.php +++ b/src/Symfony/Component/Filesystem/Filesystem.php @@ -179,7 +179,7 @@ public function remove($files) if (!self::box('rmdir', $file) && file_exists($file)) { throw new IOException(sprintf('Failed to remove directory "%s": ', $file).self::$lastError); } - } elseif (!self::box('unlink', $file) && file_exists($file)) { + } elseif (!self::box('unlink', $file) && (false !== strpos(self::$lastError, 'Permission denied') || file_exists($file))) { throw new IOException(sprintf('Failed to remove file "%s": ', $file).self::$lastError); } } diff --git a/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php b/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php index 14837152b3a10..b157cc4ed3e74 100644 --- a/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php +++ b/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php @@ -11,6 +11,8 @@ namespace Symfony\Component\Filesystem\Tests; +use Symfony\Component\Filesystem\Exception\IOException; + /** * Test class for Filesystem. */ @@ -334,6 +336,28 @@ public function testRemoveIgnoresNonExistingFiles() $this->assertFileDoesNotExist($basePath.'dir'); } + public function testRemoveThrowsExceptionOnPermissionDenied() + { + $this->markAsSkippedIfChmodIsMissing(); + + $basePath = $this->workspace.\DIRECTORY_SEPARATOR.'dir_permissions'; + mkdir($basePath); + $file = $basePath.\DIRECTORY_SEPARATOR.'file'; + touch($file); + chmod($basePath, 0400); + + try { + $this->filesystem->remove($file); + $this->fail('Filesystem::remove() should throw an exception'); + } catch (IOException $e) { + $this->assertStringContainsString('Failed to remove file "'.$file.'"', $e->getMessage()); + $this->assertStringContainsString('Permission denied', $e->getMessage()); + } finally { + // Make sure we can clean up this file + chmod($basePath, 0777); + } + } + public function testRemoveCleansInvalidLinks() { $this->markAsSkippedIfSymlinkIsMissing(); From 17e016779867de45b342cacb31499bd6f81b01b5 Mon Sep 17 00:00:00 2001 From: Nyholm Date: Mon, 19 Oct 2020 21:33:09 +0200 Subject: [PATCH 078/156] [Cache] Use correct expiry in ChainAdapter --- .../Component/Cache/Adapter/ChainAdapter.php | 4 +- .../Cache/Tests/Adapter/ChainAdapterTest.php | 49 +++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Cache/Adapter/ChainAdapter.php b/src/Symfony/Component/Cache/Adapter/ChainAdapter.php index 5973b3d562602..4c086c3d55c74 100644 --- a/src/Symfony/Component/Cache/Adapter/ChainAdapter.php +++ b/src/Symfony/Component/Cache/Adapter/ChainAdapter.php @@ -73,7 +73,9 @@ static function ($sourceItem, $item, $sourceMetadata = null) use ($defaultLifeti $item->isHit = $sourceItem->isHit; $item->metadata = $item->newMetadata = $sourceItem->metadata = $sourceMetadata; - if (0 < $defaultLifetime) { + if (isset($item->metadata[CacheItem::METADATA_EXPIRY])) { + $item->expiresAt(\DateTime::createFromFormat('U.u', $item->metadata[CacheItem::METADATA_EXPIRY])); + } elseif (0 < $defaultLifetime) { $item->expiresAfter($defaultLifetime); } diff --git a/src/Symfony/Component/Cache/Tests/Adapter/ChainAdapterTest.php b/src/Symfony/Component/Cache/Tests/Adapter/ChainAdapterTest.php index 53295a1eef0e5..b2905297ebe7d 100644 --- a/src/Symfony/Component/Cache/Tests/Adapter/ChainAdapterTest.php +++ b/src/Symfony/Component/Cache/Tests/Adapter/ChainAdapterTest.php @@ -16,8 +16,10 @@ use Symfony\Component\Cache\Adapter\ArrayAdapter; use Symfony\Component\Cache\Adapter\ChainAdapter; use Symfony\Component\Cache\Adapter\FilesystemAdapter; +use Symfony\Component\Cache\CacheItem; use Symfony\Component\Cache\Tests\Fixtures\ExternalAdapter; use Symfony\Component\Cache\Tests\Fixtures\PrunableAdapter; +use Symfony\Contracts\Cache\ItemInterface; /** * @author Kévin Dunglas @@ -34,6 +36,11 @@ public function createCachePool(int $defaultLifetime = 0, string $testMethod = n return new ChainAdapter([new ArrayAdapter($defaultLifetime), new ExternalAdapter($defaultLifetime), new FilesystemAdapter('', $defaultLifetime)], $defaultLifetime); } + public static function tearDownAfterClass(): void + { + FilesystemAdapterTest::rmdir(sys_get_temp_dir().'/symfony-cache'); + } + public function testEmptyAdaptersException() { $this->expectException('Symfony\Component\Cache\Exception\InvalidArgumentException'); @@ -187,6 +194,48 @@ public function testMultipleCachesExpirationWhenCommonTtlIsSet() $this->assertFalse($item->isHit()); } + public function testExpirationOnAllAdapters() + { + if (isset($this->skippedTests[__FUNCTION__])) { + $this->markTestSkipped($this->skippedTests[__FUNCTION__]); + } + + $itemValidator = function (CacheItem $item) { + $refl = new \ReflectionObject($item); + $propExpiry = $refl->getProperty('expiry'); + $propExpiry->setAccessible(true); + $expiry = $propExpiry->getValue($item); + $this->assertGreaterThan(10, $expiry - time(), 'Item should be saved with the given ttl, not the default for the adapter.'); + + return true; + }; + + $adapter1 = $this->getMockBuilder(FilesystemAdapter::class) + ->setConstructorArgs(['', 2]) + ->setMethods(['save']) + ->getMock(); + $adapter1->expects($this->once()) + ->method('save') + ->with($this->callback($itemValidator)) + ->willReturn(true); + + $adapter2 = $this->getMockBuilder(FilesystemAdapter::class) + ->setConstructorArgs(['', 4]) + ->setMethods(['save']) + ->getMock(); + $adapter2->expects($this->once()) + ->method('save') + ->with($this->callback($itemValidator)) + ->willReturn(true); + + $cache = new ChainAdapter([$adapter1, $adapter2], 6); + $cache->get('test_key', function (ItemInterface $item) { + $item->expiresAfter(15); + + return 'chain'; + }); + } + private function getPruneableMock(): AdapterInterface { $pruneable = $this->createMock(PrunableAdapter::class); From d31ac74c03ca9a538853f96396781002f04ac815 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Wed, 21 Oct 2020 15:57:03 +0200 Subject: [PATCH 079/156] [String] fix slicing in UnicodeString --- .../String/Tests/AbstractAsciiTestCase.php | 31 +++++++++++++++++++ .../Component/String/UnicodeString.php | 12 ++++--- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/String/Tests/AbstractAsciiTestCase.php b/src/Symfony/Component/String/Tests/AbstractAsciiTestCase.php index 44f14c18af3a2..d752ea41eb608 100644 --- a/src/Symfony/Component/String/Tests/AbstractAsciiTestCase.php +++ b/src/Symfony/Component/String/Tests/AbstractAsciiTestCase.php @@ -597,6 +597,37 @@ public static function provideSlice() ['awesome', 'Symfony is awesome', 11, 7], ['awesome', 'Symfony is awesome', -7, null], ['awe', 'Symfony is awesome', -7, -4], + ['S', 'Symfony is awesome', -42, 1], + ['', 'Symfony is awesome', 42, 1], + ['', 'Symfony is awesome', 0, -42], + ]; + } + + /** + * @dataProvider provideSplice + */ + public function testSplice(string $expected, int $start, int $length = null) + { + $this->assertEquals( + static::createFromString($expected), + static::createFromString('Symfony is awesome')->splice('X', $start, $length) + ); + } + + public static function provideSplice() + { + return [ + ['X is awesome', 0, 7], + ['SymfonyXis awesome', 7, 1], + ['Symfony X awesome', 8, 2], + ['Symfony X', 8, null], + ['Symfony isXawesome', 10, 1], + ['Symfony is X', 11, 7], + ['Symfony is X', -7, null], + ['Symfony is Xsome', -7, -4], + ['Xymfony is awesome', -42, 1], + ['Symfony is awesomeX', 42, 1], + ['XSymfony is awesome', 0, -42], ]; } diff --git a/src/Symfony/Component/String/UnicodeString.php b/src/Symfony/Component/String/UnicodeString.php index 16945b70a4407..2db507d7bbf0e 100644 --- a/src/Symfony/Component/String/UnicodeString.php +++ b/src/Symfony/Component/String/UnicodeString.php @@ -267,11 +267,11 @@ public function replaceMatches(string $fromRegexp, $to): AbstractString public function slice(int $start = 0, int $length = null): AbstractString { $str = clone $this; - try { - $str->string = (string) grapheme_substr($this->string, $start, $length ?? 2147483647); - } catch (\ValueError $e) { - $str->string = ''; + + if (\PHP_VERSION_ID < 80000 && 0 > $start && grapheme_strlen($this->string) < -$start) { + $start = 0; } + $str->string = (string) grapheme_substr($this->string, $start, $length ?? 2147483647); return $str; } @@ -279,6 +279,10 @@ public function slice(int $start = 0, int $length = null): AbstractString public function splice(string $replacement, int $start = 0, int $length = null): AbstractString { $str = clone $this; + + if (\PHP_VERSION_ID < 80000 && 0 > $start && grapheme_strlen($this->string) < -$start) { + $start = 0; + } $start = $start ? \strlen(grapheme_substr($this->string, 0, $start)) : 0; $length = $length ? \strlen(grapheme_substr($this->string, $start, $length ?? 2147483647)) : $length; $str->string = substr_replace($this->string, $replacement, $start, $length ?? 2147483647); From ced43e1ec20d26c11ad3ca96f239e21bcc8a80a4 Mon Sep 17 00:00:00 2001 From: Marcin Michalski Date: Thu, 22 Oct 2020 07:16:57 +0200 Subject: [PATCH 080/156] [Validator] Add missing romanian translations --- .../Resources/translations/validators.ro.xlf | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.ro.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.ro.xlf index 26b069ab02774..2f7660ea08e17 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.ro.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.ro.xlf @@ -334,6 +334,58 @@ This value should be valid JSON. Această valoare trebuie să fie un JSON valid. + + This collection should contain only unique elements. + Acest set ar trebui să conțină numai elemente unice. + + + This value should be positive. + Această valoare ar trebui să fie pozitivă. + + + This value should be either positive or zero. + Această valoare trebuie să fie pozitivă sau zero. + + + This value should be negative. + Această valoare ar trebui să fie negativă. + + + This value should be either negative or zero. + Această valoare trebuie să fie negativă sau zero. + + + This value is not a valid timezone. + Această valoare nu este un fus orar valid. + + + This password has been leaked in a data breach, it must not be used. Please use another password. + Această parolă a fost compromisă și nu poate fi utilizată. Vă rugăm să utilizați o altă parolă. + + + This value should be between {{ min }} and {{ max }}. + Această valoare trebuie să fie între {{ min }} și {{ max }}. + + + This value is not a valid hostname. + Această valoare nu este un numele gazdei valid. + + + The number of elements in this collection should be a multiple of {{ compared_value }}. + Numărul de elemente din această colecție ar trebui să fie un multiplu al {{ compared_value }}. + + + This value should satisfy at least one of the following constraints: + Această valoare trebuie să îndeplinească cel puțin una dintre următoarele reguli: + + + Each element of this collection should satisfy its own set of constraints. + Fiecare element din acest set ar trebui să îndeplinească propriul set de reguli. + + + This value is not a valid International Securities Identification Number (ISIN). + Această valoare nu este un număr internațional de identificare (ISIN) valabil. + From 52e7d78dcabdb3f4e5def5c5bc240fe8ded4b55f Mon Sep 17 00:00:00 2001 From: Andreas Braun Date: Thu, 22 Oct 2020 13:20:03 +0200 Subject: [PATCH 081/156] Add missing exporter function for PHPUnit 7 --- .../Bridge/PhpUnit/Legacy/ConstraintTraitForV7.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV7.php b/src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV7.php index 48c79a76dd0cf..9877049153d00 100644 --- a/src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV7.php +++ b/src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV7.php @@ -11,6 +11,8 @@ namespace Symfony\Bridge\PhpUnit\Legacy; +use SebastianBergmann\Exporter\Exporter; + /** * @internal */ @@ -31,6 +33,15 @@ protected function additionalFailureDescription($other): string return $this->doAdditionalFailureDescription($other); } + protected function exporter(): Exporter + { + if (null !== $this->exporter) { + $this->exporter = new Exporter(); + } + + return $this->exporter; + } + protected function failureDescription($other): string { return $this->doFailureDescription($other); From 22a2740888ba3f7942573bd2e5106c2a5d064215 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Thu, 22 Oct 2020 13:57:57 +0200 Subject: [PATCH 082/156] [String] fix before/after[Last]() returning the empty string instead of the original one on non-match --- .../Component/String/AbstractString.php | 4 -- .../String/Tests/AbstractAsciiTestCase.php | 48 +++++++++---------- .../String/Tests/AbstractUnicodeTestCase.php | 10 ++-- .../String/Tests/UnicodeStringTest.php | 12 ++--- 4 files changed, 35 insertions(+), 39 deletions(-) diff --git a/src/Symfony/Component/String/AbstractString.php b/src/Symfony/Component/String/AbstractString.php index c87f1506fb6f8..d3d95d40a4670 100644 --- a/src/Symfony/Component/String/AbstractString.php +++ b/src/Symfony/Component/String/AbstractString.php @@ -98,7 +98,6 @@ public static function wrap(array $values): array public function after($needle, bool $includeNeedle = false, int $offset = 0): self { $str = clone $this; - $str->string = ''; $i = \PHP_INT_MAX; foreach ((array) $needle as $n) { @@ -130,7 +129,6 @@ public function after($needle, bool $includeNeedle = false, int $offset = 0): se public function afterLast($needle, bool $includeNeedle = false, int $offset = 0): self { $str = clone $this; - $str->string = ''; $i = null; foreach ((array) $needle as $n) { @@ -167,7 +165,6 @@ abstract public function append(string ...$suffix): self; public function before($needle, bool $includeNeedle = false, int $offset = 0): self { $str = clone $this; - $str->string = ''; $i = \PHP_INT_MAX; foreach ((array) $needle as $n) { @@ -199,7 +196,6 @@ public function before($needle, bool $includeNeedle = false, int $offset = 0): s public function beforeLast($needle, bool $includeNeedle = false, int $offset = 0): self { $str = clone $this; - $str->string = ''; $i = null; foreach ((array) $needle as $n) { diff --git a/src/Symfony/Component/String/Tests/AbstractAsciiTestCase.php b/src/Symfony/Component/String/Tests/AbstractAsciiTestCase.php index 44f14c18af3a2..7dbef2a87d530 100644 --- a/src/Symfony/Component/String/Tests/AbstractAsciiTestCase.php +++ b/src/Symfony/Component/String/Tests/AbstractAsciiTestCase.php @@ -766,12 +766,12 @@ public function testBeforeAfter(string $expected, string $needle, string $origin public static function provideBeforeAfter() { return [ - ['', '', 'hello world', 0, true], - ['', '', 'hello world', 0, false], - ['', 'w', 'hello World', 0, true], - ['', 'w', 'hello World', 0, false], - ['', 'o', 'hello world', 10, true], - ['', 'o', 'hello world', 10, false], + ['hello world', '', 'hello world', 0, true], + ['hello world', '', 'hello world', 0, false], + ['hello World', 'w', 'hello World', 0, true], + ['hello World', 'w', 'hello World', 0, false], + ['hello world', 'o', 'hello world', 10, true], + ['hello world', 'o', 'hello world', 10, false], ['hello ', 'w', 'hello world', 0, true], ['world', 'w', 'hello world', 0, false], ['hello W', 'O', 'hello WORLD', 0, true], @@ -794,12 +794,12 @@ public function testBeforeAfterIgnoreCase(string $expected, string $needle, stri public static function provideBeforeAfterIgnoreCase() { return [ - ['', '', 'hello world', 0, true], - ['', '', 'hello world', 0, false], - ['', 'foo', 'hello world', 0, true], - ['', 'foo', 'hello world', 0, false], - ['', 'o', 'hello world', 10, true], - ['', 'o', 'hello world', 10, false], + ['hello world', '', 'hello world', 0, true], + ['hello world', '', 'hello world', 0, false], + ['hello world', 'foo', 'hello world', 0, true], + ['hello world', 'foo', 'hello world', 0, false], + ['hello world', 'o', 'hello world', 10, true], + ['hello world', 'o', 'hello world', 10, false], ['hello ', 'w', 'hello world', 0, true], ['world', 'w', 'hello world', 0, false], ['hello ', 'W', 'hello world', 0, true], @@ -822,12 +822,12 @@ public function testBeforeAfterLast(string $expected, string $needle, string $or public static function provideBeforeAfterLast() { return [ - ['', '', 'hello world', 0, true], - ['', '', 'hello world', 0, false], - ['', 'L', 'hello world', 0, true], - ['', 'L', 'hello world', 0, false], - ['', 'o', 'hello world', 10, true], - ['', 'o', 'hello world', 10, false], + ['hello world', '', 'hello world', 0, true], + ['hello world', '', 'hello world', 0, false], + ['hello world', 'L', 'hello world', 0, true], + ['hello world', 'L', 'hello world', 0, false], + ['hello world', 'o', 'hello world', 10, true], + ['hello world', 'o', 'hello world', 10, false], ['hello wor', 'l', 'hello world', 0, true], ['ld', 'l', 'hello world', 0, false], ['hello w', 'o', 'hello world', 0, true], @@ -851,12 +851,12 @@ public function testBeforeAfterLastIgnoreCase(string $expected, string $needle, public static function provideBeforeAfterLastIgnoreCase() { return [ - ['', '', 'hello world', 0, true], - ['', '', 'hello world', 0, false], - ['', 'FOO', 'hello world', 0, true], - ['', 'FOO', 'hello world', 0, false], - ['', 'o', 'hello world', 10, true], - ['', 'o', 'hello world', 10, false], + ['hello world', '', 'hello world', 0, true], + ['hello world', '', 'hello world', 0, false], + ['hello world', 'FOO', 'hello world', 0, true], + ['hello world', 'FOO', 'hello world', 0, false], + ['hello world', 'o', 'hello world', 10, true], + ['hello world', 'o', 'hello world', 10, false], ['hello wor', 'l', 'hello world', 0, true], ['ld', 'l', 'hello world', 0, false], ['hello wor', 'L', 'hello world', 0, true], diff --git a/src/Symfony/Component/String/Tests/AbstractUnicodeTestCase.php b/src/Symfony/Component/String/Tests/AbstractUnicodeTestCase.php index 84e64b02e9f6a..c0a3452f78923 100644 --- a/src/Symfony/Component/String/Tests/AbstractUnicodeTestCase.php +++ b/src/Symfony/Component/String/Tests/AbstractUnicodeTestCase.php @@ -396,8 +396,8 @@ public static function provideBeforeAfterIgnoreCase(): array ['dé', 'jÀ', 'déjàdéjà', 0, true], ['éjàdéjà', 'é', 'déjàdéjà', 0, false], ['d', 'é', 'déjàdéjà', 0, true], - ['', 'Ç', 'déjàdéjà', 0, false], - ['', 'Ç', 'déjàdéjà', 0, true], + ['déjàdéjà', 'Ç', 'déjàdéjà', 0, false], + ['déjàdéjà', 'Ç', 'déjàdéjà', 0, true], ] ); } @@ -407,8 +407,8 @@ public static function provideBeforeAfterLast(): array return array_merge( parent::provideBeforeAfterLast(), [ - ['', 'Ç', 'déjàdéjà', 0, false], - ['', 'Ç', 'déjàdéjà', 0, true], + ['déjàdéjà', 'Ç', 'déjàdéjà', 0, false], + ['déjàdéjà', 'Ç', 'déjàdéjà', 0, true], ['éjà', 'é', 'déjàdéjà', 0, false], ['déjàd', 'é', 'déjàdéjà', 0, true], ] @@ -420,7 +420,7 @@ public static function provideBeforeAfterLastIgnoreCase(): array return array_merge( parent::provideBeforeAfterLastIgnoreCase(), [ - ['', 'Ç', 'déjàdéjà', 0, false], + ['déjàdéjà', 'Ç', 'déjàdéjà', 0, false], ['éjà', 'é', 'déjàdéjà', 0, false], ['éjà', 'É', 'déjàdéjà', 0, false], ] diff --git a/src/Symfony/Component/String/Tests/UnicodeStringTest.php b/src/Symfony/Component/String/Tests/UnicodeStringTest.php index 5f3321d6da1c0..bcf3e2ecd441a 100644 --- a/src/Symfony/Component/String/Tests/UnicodeStringTest.php +++ b/src/Symfony/Component/String/Tests/UnicodeStringTest.php @@ -186,8 +186,8 @@ public static function provideBeforeAfterIgnoreCase(): array return array_merge( parent::provideBeforeAfterIgnoreCase(), [ - ['', 'छेछे', 'दछेच्नुअ', 0, false], - ['', 'छेछे', 'दछेच्नुअ', 0, true], + ['दछेच्नुअ', 'छेछे', 'दछेच्नुअ', 0, false], + ['दछेच्नुअ', 'छेछे', 'दछेच्नुअ', 0, true], ['छेच्नुअ', 'छे', 'दछेच्नुअ', 0, false], ['द', 'छे', 'दछेच्नुअ', 0, true], ] @@ -199,8 +199,8 @@ public static function provideBeforeAfterLast(): array return array_merge( parent::provideBeforeAfterLast(), [ - ['', 'छेछे', 'दछेच्नुअ-दछेच्नु-अदछेच्नु', 0, false], - ['', 'छेछे', 'दछेच्नुअ-दछेच्नु-अदछेच्नु', 0, true], + ['दछेच्नुअ-दछेच्नु-अदछेच्नु', 'छेछे', 'दछेच्नुअ-दछेच्नु-अदछेच्नु', 0, false], + ['दछेच्नुअ-दछेच्नु-अदछेच्नु', 'छेछे', 'दछेच्नुअ-दछेच्नु-अदछेच्नु', 0, true], ['-दछेच्नु', '-द', 'दछेच्नुअ-दछेच्नु-अद-दछेच्नु', 0, false], ['दछेच्नुअ-दछेच्नु-अद', '-द', 'दछेच्नुअ-दछेच्नु-अद-दछेच्नु', 0, true], ] @@ -212,8 +212,8 @@ public static function provideBeforeAfterLastIgnoreCase(): array return array_merge( parent::provideBeforeAfterLastIgnoreCase(), [ - ['', 'छेछे', 'दछेच्नुअ-दछेच्नु-अदछेच्नु', 0, false], - ['', 'छेछे', 'दछेच्नुअ-दछेच्नु-अदछेच्नु', 0, true], + ['दछेच्नुअ-दछेच्नु-अदछेच्नु', 'छेछे', 'दछेच्नुअ-दछेच्नु-अदछेच्नु', 0, false], + ['दछेच्नुअ-दछेच्नु-अदछेच्नु', 'छेछे', 'दछेच्नुअ-दछेच्नु-अदछेच्नु', 0, true], ['-दछेच्नु', '-द', 'दछेच्नुअ-दछेच्नु-अद-दछेच्नु', 0, false], ['दछेच्नुअ-दछेच्नु-अद', '-द', 'दछेच्नुअ-दछेच्नु-अद-दछेच्नु', 0, true], ] From 8a49a263a2d77607a05eac9501751fd2e856af27 Mon Sep 17 00:00:00 2001 From: Andreas Braun Date: Thu, 22 Oct 2020 13:32:31 +0200 Subject: [PATCH 083/156] Add expectDeprecation, expectNotice, expectWarning, and expectError to TestCase polyfill --- .../PhpUnit/Legacy/PolyfillTestCaseTrait.php | 98 ++++++++++++++++++- 1 file changed, 95 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Bridge/PhpUnit/Legacy/PolyfillTestCaseTrait.php b/src/Symfony/Bridge/PhpUnit/Legacy/PolyfillTestCaseTrait.php index cb3fbf44903bd..ad2150436833d 100644 --- a/src/Symfony/Bridge/PhpUnit/Legacy/PolyfillTestCaseTrait.php +++ b/src/Symfony/Bridge/PhpUnit/Legacy/PolyfillTestCaseTrait.php @@ -11,6 +11,9 @@ namespace Symfony\Bridge\PhpUnit\Legacy; +use PHPUnit\Framework\Error\Error; +use PHPUnit\Framework\Error\Notice; +use PHPUnit\Framework\Error\Warning; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; @@ -66,9 +69,7 @@ protected function createPartialMock($originalClassName, array $methods) */ public function expectException($exception) { - $property = new \ReflectionProperty(TestCase::class, 'expectedException'); - $property->setAccessible(true); - $property->setValue($this, $exception); + $this->doExpectException($exception); } /** @@ -116,4 +117,95 @@ public function expectExceptionMessageRegExp($messageRegExp) $property->setAccessible(true); $property->setValue($this, $messageRegExp); } + + /** + * @return void + */ + public function expectNotice() + { + $this->doExpectException(Notice::class); + } + + /** + * @param string $message + * + * @return void + */ + public function expectNoticeMessage($message) + { + $this->expectExceptionMessage($message); + } + + /** + * @param string $regularExpression + * + * @return void + */ + public function expectNoticeMessageMatches($regularExpression) + { + $this->expectExceptionMessageMatches($regularExpression); + } + + /** + * @return void + */ + public function expectWarning() + { + $this->doExpectException(Warning::class); + } + + /** + * @param string $message + * + * @return void + */ + public function expectWarningMessage($message) + { + $this->expectExceptionMessage($message); + } + + /** + * @param string $regularExpression + * + * @return void + */ + public function expectWarningMessageMatches($regularExpression) + { + $this->expectExceptionMessageMatches($regularExpression); + } + + /** + * @return void + */ + public function expectError() + { + $this->doExpectException(Error::class); + } + + /** + * @param string $message + * + * @return void + */ + public function expectErrorMessage($message) + { + $this->expectExceptionMessage($message); + } + + /** + * @param string $regularExpression + * + * @return void + */ + public function expectErrorMessageMatches($regularExpression) + { + $this->expectExceptionMessageMatches($regularExpression); + } + + private function doExpectException($exception) + { + $property = new \ReflectionProperty(TestCase::class, 'expectedException'); + $property->setAccessible(true); + $property->setValue($this, $exception); + } } From f79ad8000950bad771376d36c583da10909e6466 Mon Sep 17 00:00:00 2001 From: Andreas Braun Date: Thu, 22 Oct 2020 14:14:44 +0200 Subject: [PATCH 084/156] Support PHPUnit 8 and PHPUnit 9 in constraint compatibility trait --- .../Bridge/PhpUnit/ConstraintTrait.php | 12 +++- .../PhpUnit/Legacy/ConstraintLogicTrait.php | 62 +++++++++++++++++++ .../PhpUnit/Legacy/ConstraintTraitForV6.php | 27 ++++++++ .../PhpUnit/Legacy/ConstraintTraitForV7.php | 35 +++-------- .../PhpUnit/Legacy/ConstraintTraitForV8.php | 53 ++++++++++++++++ .../PhpUnit/Legacy/ConstraintTraitForV9.php | 50 +++++++++++++++ 6 files changed, 213 insertions(+), 26 deletions(-) create mode 100644 src/Symfony/Bridge/PhpUnit/Legacy/ConstraintLogicTrait.php create mode 100644 src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV8.php create mode 100644 src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV9.php diff --git a/src/Symfony/Bridge/PhpUnit/ConstraintTrait.php b/src/Symfony/Bridge/PhpUnit/ConstraintTrait.php index 64b24ee166858..446dbf2f4fe03 100644 --- a/src/Symfony/Bridge/PhpUnit/ConstraintTrait.php +++ b/src/Symfony/Bridge/PhpUnit/ConstraintTrait.php @@ -20,9 +20,19 @@ trait ConstraintTrait { use Legacy\ConstraintTraitForV6; } -} else { +} elseif ($r->getProperty('exporter')->isProtected()) { trait ConstraintTrait { use Legacy\ConstraintTraitForV7; } +} elseif (\PHP_VERSION < 70100 || !$r->getMethod('evaluate')->hasReturnType()) { + trait ConstraintTrait + { + use Legacy\ConstraintTraitForV8; + } +} else { + trait ConstraintTrait + { + use Legacy\ConstraintTraitForV9; + } } diff --git a/src/Symfony/Bridge/PhpUnit/Legacy/ConstraintLogicTrait.php b/src/Symfony/Bridge/PhpUnit/Legacy/ConstraintLogicTrait.php new file mode 100644 index 0000000000000..e124358c4f724 --- /dev/null +++ b/src/Symfony/Bridge/PhpUnit/Legacy/ConstraintLogicTrait.php @@ -0,0 +1,62 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Bridge\PhpUnit\Legacy; + +/** + * @internal + */ +trait ConstraintLogicTrait +{ + private function doEvaluate($other, $description, $returnResult) + { + $success = false; + + if ($this->matches($other)) { + $success = true; + } + + if ($returnResult) { + return $success; + } + + if (!$success) { + $this->fail($other, $description); + } + + return null; + } + + private function doAdditionalFailureDescription($other): string + { + return ''; + } + + private function doCount(): int + { + return 1; + } + + private function doFailureDescription($other): string + { + return $this->exporter()->export($other).' '.$this->toString(); + } + + private function doMatches($other): bool + { + return false; + } + + private function doToString(): string + { + return ''; + } +} diff --git a/src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV6.php b/src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV6.php index 71b7c3c39d738..53819e4b3c4d7 100644 --- a/src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV6.php +++ b/src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV6.php @@ -18,6 +18,14 @@ */ trait ConstraintTraitForV6 { + /** + * @return bool|null + */ + public function evaluate($other, $description = '', $returnResult = false) + { + return $this->doEvaluate($other, $description, $returnResult); + } + /** * @return int */ @@ -86,6 +94,25 @@ private function doCount() return 1; } + private function doEvaluate($other, $description, $returnResult) + { + $success = false; + + if ($this->matches($other)) { + $success = true; + } + + if ($returnResult) { + return $success; + } + + if (!$success) { + $this->fail($other, $description); + } + + return null; + } + private function doFailureDescription($other) { return $this->exporter()->export($other).' '.$this->toString(); diff --git a/src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV7.php b/src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV7.php index 48c79a76dd0cf..f915d763befe1 100644 --- a/src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV7.php +++ b/src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV7.php @@ -16,6 +16,16 @@ */ trait ConstraintTraitForV7 { + use ConstraintLogicTrait; + + /** + * @return bool|null + */ + public function evaluate($other, $description = '', $returnResult = false) + { + return $this->doEvaluate($other, $description, $returnResult); + } + public function count(): int { return $this->doCount(); @@ -40,29 +50,4 @@ protected function matches($other): bool { return $this->doMatches($other); } - - private function doAdditionalFailureDescription($other): string - { - return ''; - } - - private function doCount(): int - { - return 1; - } - - private function doFailureDescription($other): string - { - return $this->exporter()->export($other).' '.$this->toString(); - } - - private function doMatches($other): bool - { - return false; - } - - private function doToString(): string - { - return ''; - } } diff --git a/src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV8.php b/src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV8.php new file mode 100644 index 0000000000000..d31cc1215877b --- /dev/null +++ b/src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV8.php @@ -0,0 +1,53 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Bridge\PhpUnit\Legacy; + +/** + * @internal + */ +trait ConstraintTraitForV8 +{ + use ConstraintLogicTrait; + + /** + * @return bool|null + */ + public function evaluate($other, $description = '', $returnResult = false) + { + return $this->doEvaluate($other, $description, $returnResult); + } + + public function count(): int + { + return $this->doCount(); + } + + public function toString(): string + { + return $this->doToString(); + } + + protected function additionalFailureDescription($other): string + { + return $this->doAdditionalFailureDescription($other); + } + + protected function failureDescription($other): string + { + return $this->doFailureDescription($other); + } + + protected function matches($other): bool + { + return $this->doMatches($other); + } +} diff --git a/src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV9.php b/src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV9.php new file mode 100644 index 0000000000000..66da873e4243e --- /dev/null +++ b/src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV9.php @@ -0,0 +1,50 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Bridge\PhpUnit\Legacy; + +/** + * @internal + */ +trait ConstraintTraitForV9 +{ + use ConstraintLogicTrait; + + public function evaluate($other, string $description = '', bool $returnResult = false): ?bool + { + return $this->doEvaluate($other, $description, $returnResult); + } + + public function count(): int + { + return $this->doCount(); + } + + public function toString(): string + { + return $this->doToString(); + } + + protected function additionalFailureDescription($other): string + { + return $this->doAdditionalFailureDescription($other); + } + + protected function failureDescription($other): string + { + return $this->doFailureDescription($other); + } + + protected function matches($other): bool + { + return $this->doMatches($other); + } +} From 713c2623e5a35a52f56a918177de7c69e76f6908 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Thu, 22 Oct 2020 20:37:20 +0200 Subject: [PATCH 085/156] [TwigBridge] Remove "transchoice" from the code base --- .../TranslationDefaultDomainNodeVisitor.php | 17 +++++++---------- .../Twig/NodeVisitor/TranslationNodeVisitor.php | 10 ---------- .../Bridge/Twig/UndefinedCallableHandler.php | 1 - 3 files changed, 7 insertions(+), 21 deletions(-) diff --git a/src/Symfony/Bridge/Twig/NodeVisitor/TranslationDefaultDomainNodeVisitor.php b/src/Symfony/Bridge/Twig/NodeVisitor/TranslationDefaultDomainNodeVisitor.php index 55bc3ae9a8959..213365ed9f1ef 100644 --- a/src/Symfony/Bridge/Twig/NodeVisitor/TranslationDefaultDomainNodeVisitor.php +++ b/src/Symfony/Bridge/Twig/NodeVisitor/TranslationDefaultDomainNodeVisitor.php @@ -64,21 +64,18 @@ protected function doEnterNode(Node $node, Environment $env): Node return $node; } - if ($node instanceof FilterExpression && \in_array($node->getNode('filter')->getAttribute('value'), ['trans', 'transchoice'])) { + if ($node instanceof FilterExpression && 'trans' === $node->getNode('filter')->getAttribute('value')) { $arguments = $node->getNode('arguments'); - $ind = 'trans' === $node->getNode('filter')->getAttribute('value') ? 1 : 2; if ($this->isNamedArguments($arguments)) { - if (!$arguments->hasNode('domain') && !$arguments->hasNode($ind)) { + if (!$arguments->hasNode('domain') && !$arguments->hasNode(1)) { $arguments->setNode('domain', $this->scope->get('domain')); } - } else { - if (!$arguments->hasNode($ind)) { - if (!$arguments->hasNode($ind - 1)) { - $arguments->setNode($ind - 1, new ArrayExpression([], $node->getTemplateLine())); - } - - $arguments->setNode($ind, $this->scope->get('domain')); + } elseif (!$arguments->hasNode(1)) { + if (!$arguments->hasNode(0)) { + $arguments->setNode(0, new ArrayExpression([], $node->getTemplateLine())); } + + $arguments->setNode(1, $this->scope->get('domain')); } } elseif ($node instanceof TransNode) { if (!$node->hasNode('domain')) { diff --git a/src/Symfony/Bridge/Twig/NodeVisitor/TranslationNodeVisitor.php b/src/Symfony/Bridge/Twig/NodeVisitor/TranslationNodeVisitor.php index 89a15cd622c5d..3d5edb4ae1994 100644 --- a/src/Symfony/Bridge/Twig/NodeVisitor/TranslationNodeVisitor.php +++ b/src/Symfony/Bridge/Twig/NodeVisitor/TranslationNodeVisitor.php @@ -66,16 +66,6 @@ protected function doEnterNode(Node $node, Environment $env): Node $node->getNode('node')->getAttribute('value'), $this->getReadDomainFromArguments($node->getNode('arguments'), 1), ]; - } elseif ( - $node instanceof FilterExpression && - 'transchoice' === $node->getNode('filter')->getAttribute('value') && - $node->getNode('node') instanceof ConstantExpression - ) { - // extract constant nodes with a trans filter - $this->messages[] = [ - $node->getNode('node')->getAttribute('value'), - $this->getReadDomainFromArguments($node->getNode('arguments'), 2), - ]; } elseif ($node instanceof TransNode) { // extract trans nodes $this->messages[] = [ diff --git a/src/Symfony/Bridge/Twig/UndefinedCallableHandler.php b/src/Symfony/Bridge/Twig/UndefinedCallableHandler.php index fa3049d3dd7c2..a058acb40af28 100644 --- a/src/Symfony/Bridge/Twig/UndefinedCallableHandler.php +++ b/src/Symfony/Bridge/Twig/UndefinedCallableHandler.php @@ -22,7 +22,6 @@ class UndefinedCallableHandler private static $filterComponents = [ 'humanize' => 'form', 'trans' => 'translation', - 'transchoice' => 'translation', 'yaml_encode' => 'yaml', 'yaml_dump' => 'yaml', ]; From 02a8ca39f4d238860dd320ae80b7603c968dd1df Mon Sep 17 00:00:00 2001 From: Jos Elstgeest Date: Thu, 22 Oct 2020 22:50:11 +0200 Subject: [PATCH 086/156] add missing dutch translations --- .../Resources/translations/validators.nl.xlf | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.nl.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.nl.xlf index 3b2eb4131bd3a..c1a4c13dafa1f 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.nl.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.nl.xlf @@ -366,6 +366,26 @@ This value should be between {{ min }} and {{ max }}. Deze waarde moet zich tussen {{ min }} en {{ max }} bevinden. + + This value is not a valid hostname. + Deze waarde is geen geldige hostnaam. + + + The number of elements in this collection should be a multiple of {{ compared_value }}. + Het aantal elementen van deze collectie moet een veelvoud zijn van {{ compared_value }}. + + + This value should satisfy at least one of the following constraints: + Deze waarde moet voldoen aan tenminste een van de volgende voorwaarden: + + + Each element of this collection should satisfy its own set of constraints. + Elk element van deze collectie moet voldoen aan zijn eigen set voorwaarden. + + + This value is not a valid International Securities Identification Number (ISIN). + Deze waarde is geen geldig International Securities Identification Number (ISIN). + From 97b4306c3037b2bcdf8b6c829d602f6dfc173551 Mon Sep 17 00:00:00 2001 From: Marcin Kruk Date: Wed, 21 Oct 2020 20:47:39 +0000 Subject: [PATCH 087/156] [Serializer] fix decoding float XML attributes starting with 0 --- .../Component/Serializer/Encoder/XmlEncoder.php | 2 +- .../Serializer/Tests/Encoder/XmlEncoderTest.php | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/Serializer/Encoder/XmlEncoder.php b/src/Symfony/Component/Serializer/Encoder/XmlEncoder.php index 1cf8ee126fb0e..6d256ff2eac2d 100644 --- a/src/Symfony/Component/Serializer/Encoder/XmlEncoder.php +++ b/src/Symfony/Component/Serializer/Encoder/XmlEncoder.php @@ -304,7 +304,7 @@ private function parseXmlAttributes(\DOMNode $node, array $context = []) $typeCastAttributes = $this->resolveXmlTypeCastAttributes($context); foreach ($node->attributes as $attr) { - if (!is_numeric($attr->nodeValue) || !$typeCastAttributes || (isset($attr->nodeValue[1]) && '0' === $attr->nodeValue[0])) { + if (!is_numeric($attr->nodeValue) || !$typeCastAttributes || (isset($attr->nodeValue[1]) && '0' === $attr->nodeValue[0] && '.' !== $attr->nodeValue[1])) { $data['@'.$attr->nodeName] = $attr->nodeValue; continue; diff --git a/src/Symfony/Component/Serializer/Tests/Encoder/XmlEncoderTest.php b/src/Symfony/Component/Serializer/Tests/Encoder/XmlEncoderTest.php index 94f2e6c18a6ad..c9b2de2e83316 100644 --- a/src/Symfony/Component/Serializer/Tests/Encoder/XmlEncoderTest.php +++ b/src/Symfony/Component/Serializer/Tests/Encoder/XmlEncoderTest.php @@ -268,10 +268,10 @@ public function testDecodeFloatAttribute() { $source = << -Name +Name XML; - $this->assertSame(['@index' => -12.11, '#' => 'Name'], $this->encoder->decode($source, 'xml')); + $this->assertSame(['@index' => 12.11, '#' => 'Name'], $this->encoder->decode($source, 'xml')); } public function testDecodeNegativeFloatAttribute() @@ -284,6 +284,16 @@ public function testDecodeNegativeFloatAttribute() $this->assertSame(['@index' => -12.11, '#' => 'Name'], $this->encoder->decode($source, 'xml')); } + public function testDecodeFloatAttributeWithZeroWholeNumber() + { + $source = << +Name +XML; + + $this->assertSame(['@index' => 0.123, '#' => 'Name'], $this->encoder->decode($source, 'xml')); + } + public function testNoTypeCastAttribute() { $source = << Date: Fri, 23 Oct 2020 19:10:28 +0200 Subject: [PATCH 088/156] [DependencyInjection] Preload classes with union types correctly. --- .github/patch-types.php | 1 + .../DependencyInjection/Dumper/Preloader.php | 2 +- .../Tests/Dumper/PreloaderTest.php | 53 +++++++++++++++++++ .../Tests/Fixtures/Preload/A.php | 16 ++++++ .../Tests/Fixtures/Preload/B.php | 16 ++++++ .../Tests/Fixtures/Preload/C.php | 16 ++++++ .../Tests/Fixtures/Preload/D.php | 16 ++++++ .../Tests/Fixtures/Preload/Dummy.php | 30 +++++++++++ .../Tests/Fixtures/Preload/E.php | 16 ++++++ .../Tests/Fixtures/Preload/UnionDummy.php | 21 ++++++++ 10 files changed, 186 insertions(+), 1 deletion(-) create mode 100644 src/Symfony/Component/DependencyInjection/Tests/Dumper/PreloaderTest.php create mode 100644 src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/A.php create mode 100644 src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/B.php create mode 100644 src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/C.php create mode 100644 src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/D.php create mode 100644 src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/Dummy.php create mode 100644 src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/E.php create mode 100644 src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/UnionDummy.php diff --git a/.github/patch-types.php b/.github/patch-types.php index 5c68a66c89c79..46c6980dab4a2 100644 --- a/.github/patch-types.php +++ b/.github/patch-types.php @@ -33,6 +33,7 @@ case false !== strpos($file, '/src/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/autowiring_classes.php'): case false !== strpos($file, '/src/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/uniontype_classes.php'): case false !== strpos($file, '/src/Symfony/Component/DependencyInjection/Tests/Fixtures/ParentNotExists.php'): + case false !== strpos($file, '/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/'): case false !== strpos($file, '/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Prototype/BadClasses/MissingParent.php'): case false !== strpos($file, '/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/'): case false !== strpos($file, '/src/Symfony/Component/ErrorHandler/Tests/Fixtures/'): diff --git a/src/Symfony/Component/DependencyInjection/Dumper/Preloader.php b/src/Symfony/Component/DependencyInjection/Dumper/Preloader.php index fb39645022edf..1e0b6919fd1fe 100644 --- a/src/Symfony/Component/DependencyInjection/Dumper/Preloader.php +++ b/src/Symfony/Component/DependencyInjection/Dumper/Preloader.php @@ -94,7 +94,7 @@ private static function doPreload(string $class, array &$preloaded): void private static function preloadType(?\ReflectionType $t, array &$preloaded): void { - if (!$t || $t->isBuiltin()) { + if (!$t) { return; } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Dumper/PreloaderTest.php b/src/Symfony/Component/DependencyInjection/Tests/Dumper/PreloaderTest.php new file mode 100644 index 0000000000000..a9b3242031537 --- /dev/null +++ b/src/Symfony/Component/DependencyInjection/Tests/Dumper/PreloaderTest.php @@ -0,0 +1,53 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\DependencyInjection\Tests\Dumper; + +use PHPUnit\Framework\TestCase; +use Symfony\Component\DependencyInjection\Dumper\Preloader; + +class PreloaderTest extends TestCase +{ + /** + * @requires PHP 7.4 + */ + public function testPreload() + { + $r = new \ReflectionMethod(Preloader::class, 'doPreload'); + $r->setAccessible(true); + + $preloaded = []; + + $r->invokeArgs(null, ['Symfony\Component\DependencyInjection\Tests\Fixtures\Preload\Dummy', &$preloaded]); + + self::assertTrue(class_exists('Symfony\Component\DependencyInjection\Tests\Fixtures\Preload\Dummy', false)); + self::assertTrue(class_exists('Symfony\Component\DependencyInjection\Tests\Fixtures\Preload\A', false)); + self::assertTrue(class_exists('Symfony\Component\DependencyInjection\Tests\Fixtures\Preload\B', false)); + self::assertTrue(class_exists('Symfony\Component\DependencyInjection\Tests\Fixtures\Preload\C', false)); + } + + /** + * @requires PHP 8 + */ + public function testPreloadUnion() + { + $r = new \ReflectionMethod(Preloader::class, 'doPreload'); + $r->setAccessible(true); + + $preloaded = []; + + $r->invokeArgs(null, ['Symfony\Component\DependencyInjection\Tests\Fixtures\Preload\UnionDummy', &$preloaded]); + + self::assertTrue(class_exists('Symfony\Component\DependencyInjection\Tests\Fixtures\Preload\UnionDummy', false)); + self::assertTrue(class_exists('Symfony\Component\DependencyInjection\Tests\Fixtures\Preload\D', false)); + self::assertTrue(class_exists('Symfony\Component\DependencyInjection\Tests\Fixtures\Preload\E', false)); + } +} diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/A.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/A.php new file mode 100644 index 0000000000000..2802a577e85b1 --- /dev/null +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/A.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\DependencyInjection\Tests\Fixtures\Preload; + +final class A +{ +} diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/B.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/B.php new file mode 100644 index 0000000000000..66dda101ce436 --- /dev/null +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/B.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\DependencyInjection\Tests\Fixtures\Preload; + +final class B +{ +} diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/C.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/C.php new file mode 100644 index 0000000000000..331e9fed19c95 --- /dev/null +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/C.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\DependencyInjection\Tests\Fixtures\Preload; + +final class C +{ +} diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/D.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/D.php new file mode 100644 index 0000000000000..52e10e918149b --- /dev/null +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/D.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\DependencyInjection\Tests\Fixtures\Preload; + +final class D +{ +} diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/Dummy.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/Dummy.php new file mode 100644 index 0000000000000..35d61be5a573c --- /dev/null +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/Dummy.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\DependencyInjection\Tests\Fixtures\Preload; + +final class Dummy +{ + public A $a; + + public function doSomething(B $b): ?C + { + return null; + } + + public function noTypes($foo) + { + } + + public function builtinTypes(int $foo): ?string + { + } +} diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/E.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/E.php new file mode 100644 index 0000000000000..b4ec3b2734c57 --- /dev/null +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/E.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\DependencyInjection\Tests\Fixtures\Preload; + +final class E +{ +} diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/UnionDummy.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/UnionDummy.php new file mode 100644 index 0000000000000..24b709b0a2d69 --- /dev/null +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/UnionDummy.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\DependencyInjection\Tests\Fixtures\Preload; + +final class UnionDummy +{ + public D|E $de; + + public function builtinTypes(int|float $foo): string|\Stringable|null + { + } +} From f3976ee5d86e1ce7ba12fc4c3c09393368367511 Mon Sep 17 00:00:00 2001 From: Nyholm Date: Sat, 24 Oct 2020 10:20:26 +0200 Subject: [PATCH 089/156] [PHPUnitBridge] Silence errors from mkdir() --- .../PhpUnit/Tests/DeprecationErrorHandler/DeprecationTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationTest.php b/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationTest.php index 403d23cdd5505..5c2f28264037b 100644 --- a/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationTest.php +++ b/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationTest.php @@ -41,7 +41,7 @@ private static function getVendorDir() } self::$vendorDir = $vendorDir; - mkdir($vendorDir.'/myfakevendor/myfakepackage2'); + @mkdir($vendorDir.'/myfakevendor/myfakepackage2'); touch($vendorDir.'/myfakevendor/myfakepackage1/MyFakeFile1.php'); touch($vendorDir.'/myfakevendor/myfakepackage1/MyFakeFile2.php'); touch($vendorDir.'/myfakevendor/myfakepackage2/MyFakeFile.php'); From ac2059426795739365fc39e906bf1e4f0e1c353c Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Tue, 20 Oct 2020 15:00:49 +0200 Subject: [PATCH 090/156] [HttpClient] relax auth bearer format requirements --- src/Symfony/Component/HttpClient/HttpClientTrait.php | 9 +++++++-- .../Component/HttpClient/Tests/HttpClientTraitTest.php | 4 ++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/HttpClient/HttpClientTrait.php b/src/Symfony/Component/HttpClient/HttpClientTrait.php index 26318309f0fc2..2431e806b033d 100644 --- a/src/Symfony/Component/HttpClient/HttpClientTrait.php +++ b/src/Symfony/Component/HttpClient/HttpClientTrait.php @@ -110,8 +110,13 @@ private static function prepareRequest(?string $method, ?string $url, array $opt throw new InvalidArgumentException(sprintf('Option "auth_basic" must be string or an array, "%s" given.', \gettype($options['auth_basic']))); } - if (isset($options['auth_bearer']) && (!\is_string($options['auth_bearer']) || !preg_match('{^[-._=:~+/0-9a-zA-Z]++$}', $options['auth_bearer']))) { - throw new InvalidArgumentException(sprintf('Option "auth_bearer" must be a string containing only characters from the base 64 alphabet, '.(\is_string($options['auth_bearer']) ? 'invalid string given.' : '"%s" given.'), \gettype($options['auth_bearer']))); + if (isset($options['auth_bearer'])) { + if (!\is_string($options['auth_bearer'])) { + throw new InvalidArgumentException(sprintf('Option "auth_bearer" must be a string, "%s" given.', \gettype($options['auth_bearer']))); + } + if (preg_match('{[^\x21-\x7E]}', $options['auth_bearer'])) { + throw new InvalidArgumentException('Invalid character found in option "auth_bearer": '.json_encode($options['auth_bearer']).'.'); + } } if (isset($options['auth_basic'], $options['auth_bearer'])) { diff --git a/src/Symfony/Component/HttpClient/Tests/HttpClientTraitTest.php b/src/Symfony/Component/HttpClient/Tests/HttpClientTraitTest.php index 477c33d924293..bce71ce823211 100644 --- a/src/Symfony/Component/HttpClient/Tests/HttpClientTraitTest.php +++ b/src/Symfony/Component/HttpClient/Tests/HttpClientTraitTest.php @@ -179,14 +179,14 @@ public function testAuthBearerOption() public function testInvalidAuthBearerOption() { $this->expectException('Symfony\Component\HttpClient\Exception\InvalidArgumentException'); - $this->expectExceptionMessage('Option "auth_bearer" must be a string containing only characters from the base 64 alphabet, "object" given.'); + $this->expectExceptionMessage('Option "auth_bearer" must be a string, "object" given.'); self::prepareRequest('POST', 'http://example.com', ['auth_bearer' => new \stdClass()], HttpClientInterface::OPTIONS_DEFAULTS); } public function testInvalidAuthBearerValue() { $this->expectException('Symfony\Component\HttpClient\Exception\InvalidArgumentException'); - $this->expectExceptionMessage('Option "auth_bearer" must be a string containing only characters from the base 64 alphabet, invalid string given.'); + $this->expectExceptionMessage('Invalid character found in option "auth_bearer": "a\nb".'); self::prepareRequest('POST', 'http://example.com', ['auth_bearer' => "a\nb"], HttpClientInterface::OPTIONS_DEFAULTS); } From f8fe4bf9f5c8203a70a2251510cafee66255c881 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Sat, 24 Oct 2020 12:23:57 +0200 Subject: [PATCH 091/156] Remove branch-version (keep them for contracts only) --- .appveyor.yml | 2 +- .github/build-packages.php | 9 +++------ .travis.yml | 13 ++++++------- composer.json | 5 +---- src/Symfony/Bridge/Doctrine/composer.json | 5 +---- src/Symfony/Bridge/Monolog/composer.json | 5 +---- src/Symfony/Bridge/PhpUnit/composer.json | 1 - src/Symfony/Bridge/ProxyManager/composer.json | 5 +---- src/Symfony/Bridge/Twig/composer.json | 5 +---- src/Symfony/Bundle/DebugBundle/composer.json | 5 +---- src/Symfony/Bundle/FrameworkBundle/composer.json | 5 +---- src/Symfony/Bundle/SecurityBundle/composer.json | 5 +---- src/Symfony/Bundle/TwigBundle/composer.json | 5 +---- src/Symfony/Bundle/WebProfilerBundle/composer.json | 5 +---- src/Symfony/Bundle/WebServerBundle/composer.json | 5 +---- src/Symfony/Component/Asset/composer.json | 5 +---- src/Symfony/Component/BrowserKit/composer.json | 5 +---- src/Symfony/Component/Cache/composer.json | 5 +---- src/Symfony/Component/ClassLoader/composer.json | 3 --- src/Symfony/Component/Config/composer.json | 5 +---- src/Symfony/Component/Console/composer.json | 5 +---- src/Symfony/Component/CssSelector/composer.json | 5 +---- src/Symfony/Component/Debug/composer.json | 5 +---- .../Component/DependencyInjection/composer.json | 5 +---- src/Symfony/Component/DomCrawler/composer.json | 5 +---- src/Symfony/Component/Dotenv/composer.json | 5 +---- src/Symfony/Component/EventDispatcher/composer.json | 5 +---- .../Component/ExpressionLanguage/composer.json | 5 +---- src/Symfony/Component/Filesystem/composer.json | 5 +---- src/Symfony/Component/Finder/composer.json | 5 +---- src/Symfony/Component/Form/composer.json | 5 +---- src/Symfony/Component/HttpFoundation/composer.json | 5 +---- src/Symfony/Component/HttpKernel/composer.json | 5 +---- src/Symfony/Component/Inflector/composer.json | 5 +---- src/Symfony/Component/Intl/composer.json | 5 +---- src/Symfony/Component/Ldap/composer.json | 5 +---- src/Symfony/Component/Lock/composer.json | 5 +---- src/Symfony/Component/OptionsResolver/composer.json | 5 +---- src/Symfony/Component/Process/composer.json | 5 +---- src/Symfony/Component/PropertyAccess/composer.json | 5 +---- src/Symfony/Component/PropertyInfo/composer.json | 5 +---- src/Symfony/Component/Routing/composer.json | 5 +---- src/Symfony/Component/Security/Core/composer.json | 5 +---- src/Symfony/Component/Security/Csrf/composer.json | 5 +---- src/Symfony/Component/Security/Guard/composer.json | 5 +---- src/Symfony/Component/Security/Http/composer.json | 5 +---- src/Symfony/Component/Security/composer.json | 5 +---- src/Symfony/Component/Serializer/composer.json | 5 +---- src/Symfony/Component/Stopwatch/composer.json | 5 +---- src/Symfony/Component/Templating/composer.json | 5 +---- src/Symfony/Component/Translation/composer.json | 5 +---- src/Symfony/Component/Validator/composer.json | 5 +---- src/Symfony/Component/VarDumper/composer.json | 5 +---- src/Symfony/Component/WebLink/composer.json | 5 +---- src/Symfony/Component/Workflow/composer.json | 5 +---- src/Symfony/Component/Yaml/composer.json | 5 +---- 56 files changed, 61 insertions(+), 222 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index f9a43d84d65bf..1c1a693e12f36 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -56,7 +56,7 @@ install: - php composer.phar global require --no-progress --no-scripts --no-plugins symfony/flex - git config --global user.email "" - git config --global user.name "Symfony" - - php .github/build-packages.php "HEAD^" src\Symfony\Bridge\PhpUnit + - php .github/build-packages.php "HEAD^" %APPVEYOR_REPO_BRANCH% src\Symfony\Bridge\PhpUnit - SET COMPOSER_ROOT_VERSION=%APPVEYOR_REPO_BRANCH%.x-dev - php composer.phar config platform.php 5.5.9 - php composer.phar update --no-progress --no-suggest --ansi diff --git a/.github/build-packages.php b/.github/build-packages.php index 8216f4d5124d6..13978ab4e6d93 100644 --- a/.github/build-packages.php +++ b/.github/build-packages.php @@ -1,7 +1,7 @@ $_SERVER['argc']) { - echo "Usage: branch dir1 dir2 ... dirN\n"; + echo "Usage: branch version dir1 dir2 ... dirN\n"; exit(1); } chdir(dirname(__DIR__)); @@ -14,6 +14,7 @@ $dirs = $_SERVER['argv']; array_shift($dirs); $mergeBase = trim(shell_exec(sprintf('git merge-base "%s" HEAD', array_shift($dirs)))); +$version = array_shift($dirs); $packages = array(); $flags = JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE; @@ -50,11 +51,7 @@ passthru("cd $dir && git init && git add . && git commit -q -m - && git archive -o package.tar HEAD && rm .git/ -Rf"); } - if (!isset($package->extra->{'branch-version'})) { - echo "Missing \"branch-version\" in composer.json's \"extra\".\n"; - exit(1); - } - $package->version = $package->extra->{'branch-version'}.'.x-dev'; + $package->version = (isset($package->extra->{'branch-version'}) ? $package->extra->{'branch-version'} : $version).'.x-dev'; $package->dist['type'] = 'tar'; $package->dist['url'] = 'file://'.str_replace(DIRECTORY_SEPARATOR, '/', dirname(__DIR__))."/$dir/package.tar"; diff --git a/.travis.yml b/.travis.yml index 71c306e3786b9..823b815c17c19 100644 --- a/.travis.yml +++ b/.travis.yml @@ -85,7 +85,6 @@ before_install: $HOME/.phpenv/versions/7.1/bin/php $HOME/.phpenv/versions/7.1/bin/composer $* } export -f composer - ~/.phpenv/versions/7.1/bin/composer self-update fi nanoseconds () { @@ -211,7 +210,7 @@ install: git fetch --depth=2 origin refs/pull/$SYMFONY_PHPUNIT_BRIDGE_PR/head git rm -rq src/Symfony/Bridge/PhpUnit git checkout -q FETCH_HEAD -- src/Symfony/Bridge/PhpUnit - export SYMFONY_VERSION=$(cat src/Symfony/Bridge/PhpUnit/composer.json | grep '^ *"branch-version". *"[1-9]' | grep -o '[0-9.]*') + export SYMFONY_VERSION=$(curl -s https://api.github.com/repos/symfony/symfony/pulls/$SYMFONY_PHPUNIT_BRIDGE_PR | jq -r .base.ref) sed -i 's/"symfony\/phpunit-bridge": ".*"/"symfony\/phpunit-bridge": "'$SYMFONY_VERSION'.x@dev"/' composer.json rm -rf .phpunit fi @@ -222,12 +221,12 @@ install: git config --global user.name "Symfony" if [[ ! $deps ]]; then - php .github/build-packages.php HEAD^ src/Symfony/Bridge/PhpUnit + php .github/build-packages.php HEAD^ $TRAVIS_BRANCH src/Symfony/Bridge/PhpUnit else export SYMFONY_DEPRECATIONS_HELPER=weak && cp composer.json composer.json.orig && echo -e '{\n"require":{'"$(grep phpunit-bridge composer.json)"'"php":"*"},"minimum-stability":"dev"}' > composer.json && - php .github/build-packages.php HEAD^ $(find src/Symfony -mindepth 2 -type f -name composer.json -printf '%h\n' | sort) && + php .github/build-packages.php HEAD^ $TRAVIS_BRANCH $(find src/Symfony -mindepth 2 -type f -name composer.json -printf '%h\n' | sort) && mv composer.json composer.json.phpunit && mv composer.json.orig composer.json fi @@ -240,12 +239,12 @@ install: # For the feature-branch, when deps=high, the version before it is checked out and tested with the locally patched components if [[ $deps = high && $TRAVIS_BRANCH = *.x ]]; then export FLIP='🙃' - export SYMFONY_VERSION=$(git ls-remote --heads | grep -o '/[1-9].*' | tail -n 1 | sed s/.//) && + export SYMFONY_VERSION=$(git ls-remote -q --heads | grep -o '/[1-9]\.[0-9].*' | tail -n 1 | sed s/.//) && git fetch --depth=2 origin $SYMFONY_VERSION && git checkout -m FETCH_HEAD && export COMPONENTS=$(find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist -printf '%h\n' | sort) else - export SYMFONY_VERSION=$(cat composer.json | grep '^ *"branch-version". *"[1-9]' | grep -o '[0-9.]*') + export SYMFONY_VERSION=$TRAVIS_BRANCH fi - | @@ -272,7 +271,7 @@ install: - | # Legacy tests are skipped when deps=high and when the current branch version has not the same major version number as the next one - [[ $deps = high && ${SYMFONY_VERSION%.*} != $(git show $(git ls-remote --heads | grep -FA1 /$SYMFONY_VERSION | tail -n 1):composer.json | grep '^ *"branch-version". *"[1-9]' | grep -o '[0-9]*' | head -n 1) ]] && export LEGACY=,legacy + [[ $deps = high && ${SYMFONY_VERSION%.*} != $(git ls-remote -q --heads | cut -f2 | grep -FA1 /$SYMFONY_VERSION | tail -n 1 | grep -o '[0-9]*') ]] && export LEGACY=,legacy export COMPOSER_ROOT_VERSION=$SYMFONY_VERSION.x-dev if [[ $deps ]]; then mv composer.json.phpunit composer.json; fi diff --git a/composer.json b/composer.json index 8fa2384bd6b39..0f0c8b48bcce2 100644 --- a/composer.json +++ b/composer.json @@ -133,8 +133,5 @@ "autoload-dev": { "files": [ "src/Symfony/Component/VarDumper/Resources/functions/dump.php" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Bridge/Doctrine/composer.json b/src/Symfony/Bridge/Doctrine/composer.json index 0aa807111843e..de304ddddba4f 100644 --- a/src/Symfony/Bridge/Doctrine/composer.json +++ b/src/Symfony/Bridge/Doctrine/composer.json @@ -56,8 +56,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Bridge/Monolog/composer.json b/src/Symfony/Bridge/Monolog/composer.json index d17f61b5c078a..d76e263d1711c 100644 --- a/src/Symfony/Bridge/Monolog/composer.json +++ b/src/Symfony/Bridge/Monolog/composer.json @@ -42,8 +42,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Bridge/PhpUnit/composer.json b/src/Symfony/Bridge/PhpUnit/composer.json index a9154a6e91ffd..3a3fbbdc15e3e 100644 --- a/src/Symfony/Bridge/PhpUnit/composer.json +++ b/src/Symfony/Bridge/PhpUnit/composer.json @@ -38,7 +38,6 @@ ], "minimum-stability": "dev", "extra": { - "branch-version": "3.4", "thanks": { "name": "phpunit/phpunit", "url": "https://github.com/sebastianbergmann/phpunit" diff --git a/src/Symfony/Bridge/ProxyManager/composer.json b/src/Symfony/Bridge/ProxyManager/composer.json index 1c86bdec95078..09c390db09030 100644 --- a/src/Symfony/Bridge/ProxyManager/composer.json +++ b/src/Symfony/Bridge/ProxyManager/composer.json @@ -29,8 +29,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Bridge/Twig/composer.json b/src/Symfony/Bridge/Twig/composer.json index 17ee70aba70b6..f61e4018eb9a8 100644 --- a/src/Symfony/Bridge/Twig/composer.json +++ b/src/Symfony/Bridge/Twig/composer.json @@ -66,8 +66,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Bundle/DebugBundle/composer.json b/src/Symfony/Bundle/DebugBundle/composer.json index 177831731cd7c..cbdb1be64e419 100644 --- a/src/Symfony/Bundle/DebugBundle/composer.json +++ b/src/Symfony/Bundle/DebugBundle/composer.json @@ -40,8 +40,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Bundle/FrameworkBundle/composer.json b/src/Symfony/Bundle/FrameworkBundle/composer.json index 69e1737a65050..824bc8f07a503 100644 --- a/src/Symfony/Bundle/FrameworkBundle/composer.json +++ b/src/Symfony/Bundle/FrameworkBundle/composer.json @@ -90,8 +90,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Bundle/SecurityBundle/composer.json b/src/Symfony/Bundle/SecurityBundle/composer.json index 03ae6297cbf0d..01d49e222e282 100644 --- a/src/Symfony/Bundle/SecurityBundle/composer.json +++ b/src/Symfony/Bundle/SecurityBundle/composer.json @@ -61,8 +61,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Bundle/TwigBundle/composer.json b/src/Symfony/Bundle/TwigBundle/composer.json index 6ad8667faad8a..16c0888ef013c 100644 --- a/src/Symfony/Bundle/TwigBundle/composer.json +++ b/src/Symfony/Bundle/TwigBundle/composer.json @@ -50,8 +50,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Bundle/WebProfilerBundle/composer.json b/src/Symfony/Bundle/WebProfilerBundle/composer.json index 6a6bdc9cd24c1..e956f6f42e68c 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/composer.json +++ b/src/Symfony/Bundle/WebProfilerBundle/composer.json @@ -44,8 +44,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Bundle/WebServerBundle/composer.json b/src/Symfony/Bundle/WebServerBundle/composer.json index 573adc58e4128..8f2b7225d1b48 100644 --- a/src/Symfony/Bundle/WebServerBundle/composer.json +++ b/src/Symfony/Bundle/WebServerBundle/composer.json @@ -34,8 +34,5 @@ "symfony/monolog-bridge": "For using the log server.", "symfony/expression-language": "For using the filter option of the log server." }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Asset/composer.json b/src/Symfony/Component/Asset/composer.json index 430630f5c251f..0554c780704e8 100644 --- a/src/Symfony/Component/Asset/composer.json +++ b/src/Symfony/Component/Asset/composer.json @@ -31,8 +31,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/BrowserKit/composer.json b/src/Symfony/Component/BrowserKit/composer.json index 70b1c127eb7ea..25b06b18b5a03 100644 --- a/src/Symfony/Component/BrowserKit/composer.json +++ b/src/Symfony/Component/BrowserKit/composer.json @@ -32,8 +32,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Cache/composer.json b/src/Symfony/Component/Cache/composer.json index 6a03c7d08f4c9..f412e4f170687 100644 --- a/src/Symfony/Component/Cache/composer.json +++ b/src/Symfony/Component/Cache/composer.json @@ -41,8 +41,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/ClassLoader/composer.json b/src/Symfony/Component/ClassLoader/composer.json index ffab1952a7303..667df14d18002 100644 --- a/src/Symfony/Component/ClassLoader/composer.json +++ b/src/Symfony/Component/ClassLoader/composer.json @@ -31,8 +31,5 @@ "exclude-from-classmap": [ "/Tests/" ] - }, - "extra": { - "branch-version": "3.4" } } diff --git a/src/Symfony/Component/Config/composer.json b/src/Symfony/Component/Config/composer.json index 43858bcb2bfb9..5088bdd832a84 100644 --- a/src/Symfony/Component/Config/composer.json +++ b/src/Symfony/Component/Config/composer.json @@ -39,8 +39,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Console/composer.json b/src/Symfony/Component/Console/composer.json index 06b0b147124ad..298b99b66aba4 100644 --- a/src/Symfony/Component/Console/composer.json +++ b/src/Symfony/Component/Console/composer.json @@ -47,8 +47,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/CssSelector/composer.json b/src/Symfony/Component/CssSelector/composer.json index 5497961c195de..435063fd42dc4 100644 --- a/src/Symfony/Component/CssSelector/composer.json +++ b/src/Symfony/Component/CssSelector/composer.json @@ -28,8 +28,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Debug/composer.json b/src/Symfony/Component/Debug/composer.json index dd6a99b8c29f7..223d2bab36b49 100644 --- a/src/Symfony/Component/Debug/composer.json +++ b/src/Symfony/Component/Debug/composer.json @@ -31,8 +31,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/DependencyInjection/composer.json b/src/Symfony/Component/DependencyInjection/composer.json index e5f130ea3d561..eee41ce0221ca 100644 --- a/src/Symfony/Component/DependencyInjection/composer.json +++ b/src/Symfony/Component/DependencyInjection/composer.json @@ -46,8 +46,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/DomCrawler/composer.json b/src/Symfony/Component/DomCrawler/composer.json index 72e4a7729319e..b4b17fc59bc23 100644 --- a/src/Symfony/Component/DomCrawler/composer.json +++ b/src/Symfony/Component/DomCrawler/composer.json @@ -32,8 +32,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Dotenv/composer.json b/src/Symfony/Component/Dotenv/composer.json index 9179325e4d127..be720a08edc4c 100644 --- a/src/Symfony/Component/Dotenv/composer.json +++ b/src/Symfony/Component/Dotenv/composer.json @@ -27,8 +27,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/EventDispatcher/composer.json b/src/Symfony/Component/EventDispatcher/composer.json index 2c7bd90d0bda1..408022f6bf3e4 100644 --- a/src/Symfony/Component/EventDispatcher/composer.json +++ b/src/Symfony/Component/EventDispatcher/composer.json @@ -39,8 +39,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/ExpressionLanguage/composer.json b/src/Symfony/Component/ExpressionLanguage/composer.json index 3bb1c3d48e88a..5d5825b9af85c 100644 --- a/src/Symfony/Component/ExpressionLanguage/composer.json +++ b/src/Symfony/Component/ExpressionLanguage/composer.json @@ -26,8 +26,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Filesystem/composer.json b/src/Symfony/Component/Filesystem/composer.json index abea2324f1c8c..ee48b0b2385c0 100644 --- a/src/Symfony/Component/Filesystem/composer.json +++ b/src/Symfony/Component/Filesystem/composer.json @@ -25,8 +25,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Finder/composer.json b/src/Symfony/Component/Finder/composer.json index 066fa34bedb4c..b0895524be520 100644 --- a/src/Symfony/Component/Finder/composer.json +++ b/src/Symfony/Component/Finder/composer.json @@ -24,8 +24,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Form/composer.json b/src/Symfony/Component/Form/composer.json index 5df6f2f33e303..945c76e46feee 100644 --- a/src/Symfony/Component/Form/composer.json +++ b/src/Symfony/Component/Form/composer.json @@ -57,8 +57,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/HttpFoundation/composer.json b/src/Symfony/Component/HttpFoundation/composer.json index adf40e95fa224..2f5ad1a31c99d 100644 --- a/src/Symfony/Component/HttpFoundation/composer.json +++ b/src/Symfony/Component/HttpFoundation/composer.json @@ -29,8 +29,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/HttpKernel/composer.json b/src/Symfony/Component/HttpKernel/composer.json index 94e77c6b36be6..06a67607ec917 100644 --- a/src/Symfony/Component/HttpKernel/composer.json +++ b/src/Symfony/Component/HttpKernel/composer.json @@ -65,8 +65,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Inflector/composer.json b/src/Symfony/Component/Inflector/composer.json index 4f9092712ce6a..db5d31dca211b 100644 --- a/src/Symfony/Component/Inflector/composer.json +++ b/src/Symfony/Component/Inflector/composer.json @@ -32,8 +32,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Intl/composer.json b/src/Symfony/Component/Intl/composer.json index 9eb80925a360e..640a8d7f599f7 100644 --- a/src/Symfony/Component/Intl/composer.json +++ b/src/Symfony/Component/Intl/composer.json @@ -40,8 +40,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Ldap/composer.json b/src/Symfony/Component/Ldap/composer.json index dacc28d73ced8..a61b57db7ce89 100644 --- a/src/Symfony/Component/Ldap/composer.json +++ b/src/Symfony/Component/Ldap/composer.json @@ -27,8 +27,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Lock/composer.json b/src/Symfony/Component/Lock/composer.json index c9ef82c06593b..5de7d680f2f65 100644 --- a/src/Symfony/Component/Lock/composer.json +++ b/src/Symfony/Component/Lock/composer.json @@ -29,8 +29,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/OptionsResolver/composer.json b/src/Symfony/Component/OptionsResolver/composer.json index 365ad20e4750f..0f7e1fd38e997 100644 --- a/src/Symfony/Component/OptionsResolver/composer.json +++ b/src/Symfony/Component/OptionsResolver/composer.json @@ -24,8 +24,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Process/composer.json b/src/Symfony/Component/Process/composer.json index cfc0b82fe61f7..f88f521410330 100644 --- a/src/Symfony/Component/Process/composer.json +++ b/src/Symfony/Component/Process/composer.json @@ -24,8 +24,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/PropertyAccess/composer.json b/src/Symfony/Component/PropertyAccess/composer.json index 8950cdab0dd3a..825ef62b8e3e3 100644 --- a/src/Symfony/Component/PropertyAccess/composer.json +++ b/src/Symfony/Component/PropertyAccess/composer.json @@ -32,8 +32,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/PropertyInfo/composer.json b/src/Symfony/Component/PropertyInfo/composer.json index 6757add10d78a..972e58cb7e5fe 100644 --- a/src/Symfony/Component/PropertyInfo/composer.json +++ b/src/Symfony/Component/PropertyInfo/composer.json @@ -50,8 +50,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Routing/composer.json b/src/Symfony/Component/Routing/composer.json index 5eb4372289165..2c686ba739fcf 100644 --- a/src/Symfony/Component/Routing/composer.json +++ b/src/Symfony/Component/Routing/composer.json @@ -45,8 +45,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Security/Core/composer.json b/src/Symfony/Component/Security/Core/composer.json index 76883926dbd4e..608e99c19eab2 100644 --- a/src/Symfony/Component/Security/Core/composer.json +++ b/src/Symfony/Component/Security/Core/composer.json @@ -42,8 +42,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Security/Csrf/composer.json b/src/Symfony/Component/Security/Csrf/composer.json index a816ac49391df..a76561510d51c 100644 --- a/src/Symfony/Component/Security/Csrf/composer.json +++ b/src/Symfony/Component/Security/Csrf/composer.json @@ -36,8 +36,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Security/Guard/composer.json b/src/Symfony/Component/Security/Guard/composer.json index 32b0395a4b651..69fc3601b0bdf 100644 --- a/src/Symfony/Component/Security/Guard/composer.json +++ b/src/Symfony/Component/Security/Guard/composer.json @@ -29,8 +29,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Security/Http/composer.json b/src/Symfony/Component/Security/Http/composer.json index 1af37b88b961c..7db0b20a69197 100644 --- a/src/Symfony/Component/Security/Http/composer.json +++ b/src/Symfony/Component/Security/Http/composer.json @@ -43,8 +43,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Security/composer.json b/src/Symfony/Component/Security/composer.json index f715c29322012..8f5b26db57873 100644 --- a/src/Symfony/Component/Security/composer.json +++ b/src/Symfony/Component/Security/composer.json @@ -58,8 +58,5 @@ "/Http/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Serializer/composer.json b/src/Symfony/Component/Serializer/composer.json index 9f766f5ebf0a3..c6154343a9ebe 100644 --- a/src/Symfony/Component/Serializer/composer.json +++ b/src/Symfony/Component/Serializer/composer.json @@ -54,8 +54,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Stopwatch/composer.json b/src/Symfony/Component/Stopwatch/composer.json index 2dcd1db02210d..9fdd55e917a5a 100644 --- a/src/Symfony/Component/Stopwatch/composer.json +++ b/src/Symfony/Component/Stopwatch/composer.json @@ -24,8 +24,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Templating/composer.json b/src/Symfony/Component/Templating/composer.json index c5f4715a0a85b..17540fdc1af5d 100644 --- a/src/Symfony/Component/Templating/composer.json +++ b/src/Symfony/Component/Templating/composer.json @@ -31,8 +31,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Translation/composer.json b/src/Symfony/Component/Translation/composer.json index 2255a6a755ed7..115d0795066e4 100644 --- a/src/Symfony/Component/Translation/composer.json +++ b/src/Symfony/Component/Translation/composer.json @@ -45,8 +45,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Validator/composer.json b/src/Symfony/Component/Validator/composer.json index 841798089631d..0050343fa9544 100644 --- a/src/Symfony/Component/Validator/composer.json +++ b/src/Symfony/Component/Validator/composer.json @@ -61,8 +61,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/VarDumper/composer.json b/src/Symfony/Component/VarDumper/composer.json index 2a2ff2d89f9ce..9f2352ee2569c 100644 --- a/src/Symfony/Component/VarDumper/composer.json +++ b/src/Symfony/Component/VarDumper/composer.json @@ -38,8 +38,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/WebLink/composer.json b/src/Symfony/Component/WebLink/composer.json index 381e83fbf490a..19d9960133053 100644 --- a/src/Symfony/Component/WebLink/composer.json +++ b/src/Symfony/Component/WebLink/composer.json @@ -34,8 +34,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Workflow/composer.json b/src/Symfony/Component/Workflow/composer.json index 4c1e255e05c1d..510d19f86240c 100644 --- a/src/Symfony/Component/Workflow/composer.json +++ b/src/Symfony/Component/Workflow/composer.json @@ -34,8 +34,5 @@ "autoload": { "psr-4": { "Symfony\\Component\\Workflow\\": "" } }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } diff --git a/src/Symfony/Component/Yaml/composer.json b/src/Symfony/Component/Yaml/composer.json index cccdfcb37b4d2..b2f0286e0eab9 100644 --- a/src/Symfony/Component/Yaml/composer.json +++ b/src/Symfony/Component/Yaml/composer.json @@ -34,8 +34,5 @@ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-version": "3.4" - } + "minimum-stability": "dev" } From 2c4dff8461f0265528c8082b73ee20089e7ae4bb Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Sat, 24 Oct 2020 13:56:22 +0200 Subject: [PATCH 092/156] fix merge --- src/Symfony/Bridge/PhpUnit/composer.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Symfony/Bridge/PhpUnit/composer.json b/src/Symfony/Bridge/PhpUnit/composer.json index 951684acb302e..85318fe178e58 100644 --- a/src/Symfony/Bridge/PhpUnit/composer.json +++ b/src/Symfony/Bridge/PhpUnit/composer.json @@ -37,6 +37,7 @@ "bin/simple-phpunit" ], "minimum-stability": "dev", + "extra": { "thanks": { "name": "phpunit/phpunit", "url": "https://github.com/sebastianbergmann/phpunit" From 60e969e01eb2307cf581c78b070e41cc2a14ce46 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Sat, 24 Oct 2020 14:03:25 +0200 Subject: [PATCH 093/156] fix merge --- src/Symfony/Component/Notifier/composer.json | 4 ---- src/Symfony/Component/Yaml/composer.json | 4 ---- 2 files changed, 8 deletions(-) diff --git a/src/Symfony/Component/Notifier/composer.json b/src/Symfony/Component/Notifier/composer.json index 4a5cb199aa4bc..f56ff3d662053 100644 --- a/src/Symfony/Component/Notifier/composer.json +++ b/src/Symfony/Component/Notifier/composer.json @@ -28,9 +28,5 @@ "/Tests/" ] }, -<<<<<<< HEAD:src/Symfony/Component/Notifier/composer.json "minimum-stability": "dev" -======= - "minimum-stability": "dev" ->>>>>>> 4.4:src/Symfony/Component/Debug/composer.json } diff --git a/src/Symfony/Component/Yaml/composer.json b/src/Symfony/Component/Yaml/composer.json index 79d5f92a94eab..a8b8134bcfa44 100644 --- a/src/Symfony/Component/Yaml/composer.json +++ b/src/Symfony/Component/Yaml/composer.json @@ -35,12 +35,8 @@ "/Tests/" ] }, -<<<<<<< HEAD "bin": [ "Resources/bin/yaml-lint" ], "minimum-stability": "dev" -======= - "minimum-stability": "dev" ->>>>>>> 4.4 } From 9f322091c8cd35b706b80ee9ab871bb23aa320b7 Mon Sep 17 00:00:00 2001 From: "Alexander M. Turek" Date: Sat, 24 Oct 2020 14:31:07 +0200 Subject: [PATCH 094/156] Bump default PHPUnit version for PHP 8 to 9.4. --- src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php b/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php index 00c99a18ecad7..08be74fc721a8 100644 --- a/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php +++ b/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php @@ -95,7 +95,7 @@ if (\PHP_VERSION_ID >= 80000) { // PHP 8 requires PHPUnit 9.3+ - $PHPUNIT_VERSION = $getEnvVar('SYMFONY_PHPUNIT_VERSION', '9.3'); + $PHPUNIT_VERSION = $getEnvVar('SYMFONY_PHPUNIT_VERSION', '9.4'); } elseif (\PHP_VERSION_ID >= 70200) { // PHPUnit 8 requires PHP 7.2+ $PHPUNIT_VERSION = $getEnvVar('SYMFONY_PHPUNIT_VERSION', '8.3'); @@ -196,7 +196,7 @@ 'requires' => ['php' => '*'], ]; - $stableVersions = array_filter($info['versions'], function($v) { + $stableVersions = array_filter($info['versions'], function ($v) { return !preg_match('/-dev$|^dev-/', $v); }); From 008f2da03167fb256056549b3d8c994535bb8c17 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Sat, 24 Oct 2020 14:44:01 +0200 Subject: [PATCH 095/156] Put branch-version in the source for CI --- .appveyor.yml | 18 +++++++++++------- .travis.yml | 16 +++++++++------- composer.json | 5 ++++- 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 1c1a693e12f36..86ed50c856b37 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -10,7 +10,6 @@ init: - SET PATH=c:\php;%PATH% - SET COMPOSER_NO_INTERACTION=1 - SET SYMFONY_DEPRECATIONS_HELPER=strict - - SET "SYMFONY_REQUIRE=>=3.4" - SET ANSICON=121x90 (121x90) - SET SYMFONY_PHPUNIT_VERSION=4.8 - SET SYMFONY_PHPUNIT_DISABLE_RESULT_CACHE=1 @@ -49,18 +48,23 @@ install: - echo curl.cainfo=c:\php\cacert.pem >> php.ini-max - copy /Y php.ini-min php.ini - echo extension=php_openssl.dll >> php.ini + - echo extension=php_curl.dll >> php.ini + - echo curl.cainfo=c:\php\cacert.pem >> php.ini - cd c:\projects\symfony - - IF NOT EXIST composer.phar (appveyor DownloadFile https://github.com/composer/composer/releases/download/1.9.0/composer.phar) - - php composer.phar self-update + - IF NOT EXIST composer.phar (appveyor DownloadFile https://github.com/composer/composer/releases/download/2.0.0/composer.phar) + - php composer.phar self-update --2 - copy /Y .github\composer-config.json %APPDATA%\Composer\config.json - php composer.phar global require --no-progress --no-scripts --no-plugins symfony/flex - git config --global user.email "" - git config --global user.name "Symfony" - - php .github/build-packages.php "HEAD^" %APPVEYOR_REPO_BRANCH% src\Symfony\Bridge\PhpUnit - - SET COMPOSER_ROOT_VERSION=%APPVEYOR_REPO_BRANCH%.x-dev - - php composer.phar config platform.php 5.5.9 - - php composer.phar update --no-progress --no-suggest --ansi + - FOR /F "tokens=* USEBACKQ" %%F IN (`bash -c "grep branch-version composer.json | grep -o '[0-9.]*'"`) DO (SET SYMFONY_VERSION=%%F) + - php .github/build-packages.php "HEAD^" %SYMFONY_VERSION% src\Symfony\Bridge\PhpUnit + - SET "SYMFONY_REQUIRE=>=%SYMFONY_VERSION%" + - SET COMPOSER_ROOT_VERSION=%SYMFONY_VERSION%.x-dev + - php composer.phar config --global platform.php 5.5.9 + - php composer.phar update --no-progress --ansi - php phpunit install + - break > .phpunit/phpunit-4.8-0/vendor/composer/platform_check.php test_script: - SET X=0 diff --git a/.travis.yml b/.travis.yml index 823b815c17c19..2675fe5f9c2bb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -75,8 +75,8 @@ before_install: cp .github/composer-config.json ~/.composer/config.json export PHPUNIT=$(readlink -f ./phpunit) export PHPUNIT_X="$PHPUNIT --exclude-group tty,benchmark,intl-data" - export COMPOSER_UP='composer update --no-progress --no-suggest --ansi' - export COMPONENTS=$(find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist -printf '%h\n' | sort) + export COMPOSER_UP='composer update --no-progress --ansi' + export COMPONENTS=$(find src/Symfony -mindepth 2 -type f -name phpunit.xml.dist -printf '%h\n' | sort) find ~/.phpenv -name xdebug.ini -delete if [[ $TRAVIS_PHP_VERSION = 5.* ]]; then @@ -220,13 +220,15 @@ install: git config --global user.email "" git config --global user.name "Symfony" + export SYMFONY_VERSION=$(grep branch-version composer.json | grep -o '[0-9.]*') + if [[ ! $deps ]]; then - php .github/build-packages.php HEAD^ $TRAVIS_BRANCH src/Symfony/Bridge/PhpUnit + php .github/build-packages.php HEAD^ $SYMFONY_VERSION src/Symfony/Bridge/PhpUnit else export SYMFONY_DEPRECATIONS_HELPER=weak && cp composer.json composer.json.orig && echo -e '{\n"require":{'"$(grep phpunit-bridge composer.json)"'"php":"*"},"minimum-stability":"dev"}' > composer.json && - php .github/build-packages.php HEAD^ $TRAVIS_BRANCH $(find src/Symfony -mindepth 2 -type f -name composer.json -printf '%h\n' | sort) && + php .github/build-packages.php HEAD^ $SYMFONY_VERSION $(find src/Symfony -mindepth 2 -type f -name composer.json -printf '%h\n' | sort) && mv composer.json composer.json.phpunit && mv composer.json.orig composer.json fi @@ -242,9 +244,7 @@ install: export SYMFONY_VERSION=$(git ls-remote -q --heads | grep -o '/[1-9]\.[0-9].*' | tail -n 1 | sed s/.//) && git fetch --depth=2 origin $SYMFONY_VERSION && git checkout -m FETCH_HEAD && - export COMPONENTS=$(find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist -printf '%h\n' | sort) - else - export SYMFONY_VERSION=$TRAVIS_BRANCH + export COMPONENTS=$(find src/Symfony -mindepth 2 -type f -name phpunit.xml.dist -printf '%h\n' | sort) fi - | @@ -289,6 +289,7 @@ install: return fi phpenv global ${PHP/hhvm*/hhvm} + rm vendor/composer/package-versions-deprecated -Rf if [[ $PHP = 7.* ]]; then ([[ $deps ]] && cd src/Symfony/Component/HttpFoundation; composer config platform.ext-mongodb 1.6.0; composer require --dev --no-update mongodb/mongodb ~1.5.0) fi @@ -311,6 +312,7 @@ install: tfold src/Symfony/Component/Console.tty $PHPUNIT src/Symfony/Component/Console --group tty if [[ $PHP = ${MIN_PHP%.*} ]]; then export PHP=$MIN_PHP + echo '' > vendor/composer/platform_check.php echo -e "1\\n0" | xargs -I{} bash -c "tfold src/Symfony/Component/Process.sigchild{} SYMFONY_DEPRECATIONS_HELPER=weak ENHANCE_SIGCHLD={} php-$MIN_PHP/sapi/cli/php .phpunit/phpunit-4.8-1/phpunit --colors=always src/Symfony/Component/Process/" fi fi diff --git a/composer.json b/composer.json index 0f0c8b48bcce2..8fa2384bd6b39 100644 --- a/composer.json +++ b/composer.json @@ -133,5 +133,8 @@ "autoload-dev": { "files": [ "src/Symfony/Component/VarDumper/Resources/functions/dump.php" ] }, - "minimum-stability": "dev" + "minimum-stability": "dev", + "extra": { + "branch-version": "3.4" + } } From 46b0d66470aa828b121e670d56a169d15a31a5d9 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Sat, 24 Oct 2020 14:44:01 +0200 Subject: [PATCH 096/156] Disable platform checks --- .github/workflows/tests.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9b06d7e55531b..1c5e5e7000cbc 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -52,13 +52,11 @@ jobs: extensions: "memcached,redis,xsl" ini-values: "memory_limit=-1" php-version: "${{ matrix.php }}" - tools: flex - name: Configure composer run: | ([ -d ~/.composer ] || mkdir ~/.composer) && cp .github/composer-config.json ~/.composer/config.json - BRANCH_REF=${GITHUB_BASE_REF:-$GITHUB_REF} - echo "COMPOSER_ROOT_VERSION=${BRANCH_REF:11}.x-dev" >> $GITHUB_ENV + echo "COMPOSER_ROOT_VERSION=$(grep branch-version composer.json | grep -o '[0-9.]*').x-dev" >> $GITHUB_ENV - name: Determine composer cache directory id: composer-cache @@ -93,6 +91,7 @@ jobs: if: matrix.php == '7.4' run: | [ -d .phpunit ] && mv .phpunit .phpunit.bak + echo '' > vendor/composer/platform_check.php 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 /usr/local/bin/vulcain:/usr/local/bin/vulcain -w /app php:7.4-alpine ./phpunit src/Symfony/Component/HttpClient/Tests/CurlHttpClientTest.php --filter testHttp2Push sudo rm -rf .phpunit From e17797c8e48e94200c07306f28e08fb296d65f37 Mon Sep 17 00:00:00 2001 From: Nyholm Date: Sat, 24 Oct 2020 23:50:04 +0200 Subject: [PATCH 097/156] [Cache] Fixed broken test --- src/Symfony/Component/Cache/Tests/Adapter/ChainAdapterTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Cache/Tests/Adapter/ChainAdapterTest.php b/src/Symfony/Component/Cache/Tests/Adapter/ChainAdapterTest.php index b2905297ebe7d..36bf3c4a39f5b 100644 --- a/src/Symfony/Component/Cache/Tests/Adapter/ChainAdapterTest.php +++ b/src/Symfony/Component/Cache/Tests/Adapter/ChainAdapterTest.php @@ -38,7 +38,7 @@ public function createCachePool(int $defaultLifetime = 0, string $testMethod = n public static function tearDownAfterClass(): void { - FilesystemAdapterTest::rmdir(sys_get_temp_dir().'/symfony-cache'); + (new Filesystem())->remove(sys_get_temp_dir().'/symfony-cache'); } public function testEmptyAdaptersException() From 23fa42267ed7c73cd9efa9f1aa50b798656b72ff Mon Sep 17 00:00:00 2001 From: Marcin Michalski Date: Sun, 25 Oct 2020 11:11:03 +0100 Subject: [PATCH 098/156] [Security] Add missing polish translations --- .../Security/Core/Resources/translations/security.pl.xlf | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.pl.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.pl.xlf index 8d563d21206a9..2a24524b92665 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.pl.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.pl.xlf @@ -66,6 +66,14 @@ Account is locked. Konto jest zablokowane. + + Too many failed login attempts, please try again later. + Zbyt dużo nieudanych prób logowania, proszę spróbować ponownie później. + + + Invalid or expired login link. + Nieprawidłowy lub wygasły link logowania. + From ec3b0edc1f4414f27c3eaf0379fd2f7470929d40 Mon Sep 17 00:00:00 2001 From: Marcin Michalski Date: Sun, 25 Oct 2020 11:59:05 +0100 Subject: [PATCH 099/156] [Form] Add missing polish translations --- .../Resources/translations/validators.pl.xlf | 122 +++++++++++++++++- 1 file changed, 121 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.pl.xlf b/src/Symfony/Component/Form/Resources/translations/validators.pl.xlf index 64def2a69135c..d553f2a179a97 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.pl.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.pl.xlf @@ -14,6 +14,126 @@ The CSRF token is invalid. Please try to resubmit the form. Token CSRF jest nieprawidłowy. Proszę spróbować wysłać formularz ponownie. + + This value is not a valid HTML5 color. + Ta wartość nie jest prawidłowym kolorem HTML5. + + + Please enter a valid birthdate. + Proszę wprowadzić prawidłową datę urodzenia. + + + The selected choice is invalid. + Wybrana wartość jest nieprawidłowa. + + + The collection is invalid. + Zbiór jest nieprawidłowy. + + + Please select a valid color. + Proszę wybrać prawidłowy kolor. + + + Please select a valid country. + Proszę wybrać prawidłowy kraj. + + + Please select a valid currency. + Proszę wybrać prawidłową walutę. + + + Please choose a valid date interval. + Proszę wybrać prawidłowy przedział czasowy. + + + Please enter a valid date and time. + Proszę wprowadzić prawidłową datę i czas. + + + Please enter a valid date. + Proszę wprowadzić prawidłową datę. + + + Please select a valid file. + Proszę wybrać prawidłowy plik. + + + The hidden field is invalid. + Ukryte pole jest nieprawidłowe. + + + Please enter an integer. + Proszę wprowadzić liczbę całkowitą. + + + Please select a valid language. + Proszę wybrać prawidłowy język. + + + Please select a valid locale. + Proszę wybrać prawidłową lokalizację. + + + Please enter a valid money amount. + Proszę wybrać prawidłową ilość pieniędzy. + + + Please enter a number. + Proszę wprowadzić liczbę. + + + The password is invalid. + Hasło jest nieprawidłowe. + + + Please enter a percentage value. + Proszę wprowadzić wartość procentową. + + + The values do not match. + Wartości się nie zgadzają. + + + Please enter a valid time. + Proszę wprowadzić prawidłowy czas. + + + Please select a valid timezone. + Proszę wybrać prawidłową strefę czasową. + + + Please enter a valid URL. + Proszę wprowadzić prawidłowy adres URL. + + + Please enter a valid search term. + Proszę wprowadzić prawidłowy termin wyszukiwania. + + + Please provide a valid phone number. + Proszę wprowadzić prawidłowy numer telefonu. + + + The checkbox has an invalid value. + Pole wyboru posiada nieprawidłową wartość. + + + Please enter a valid email address. + Proszę wprowadzić prawidłowy adres email. + + + Please select a valid option. + Proszę wybrać prawidłową opcję. + + + Please select a valid range. + Proszę wybrać prawidłowy zakres. + + + Please enter a valid week. + Proszę wybrać prawidłowy tydzień. + - \ No newline at end of file + From 3d7863f5b5bb9e1835094eaeda0a8ad0ea9f646e Mon Sep 17 00:00:00 2001 From: "Alexander M. Turek" Date: Sun, 25 Oct 2020 12:33:47 +0100 Subject: [PATCH 100/156] [Security] Synchronized translations with 5.x. --- .../Security/Core/Resources/translations/security.en.xlf | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.en.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.en.xlf index 3640698ce9fb3..dcc2f85efb6d6 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.en.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.en.xlf @@ -66,6 +66,14 @@ Account is locked. Account is locked. + + Too many failed login attempts, please try again later. + Too many failed login attempts, please try again later. + + + Invalid or expired login link. + Invalid or expired login link. + From 54140d45fb869953c4ffee0e4b6c6dd09891d0e6 Mon Sep 17 00:00:00 2001 From: "Alexander M. Turek" Date: Sun, 25 Oct 2020 13:07:34 +0100 Subject: [PATCH 101/156] [Security] Added missing German translations. --- .../Security/Core/Resources/translations/security.de.xlf | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.de.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.de.xlf index e5946ed4aa42d..c1adba7fd1f12 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.de.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.de.xlf @@ -66,6 +66,14 @@ Account is locked. Der Account ist gesperrt. + + Too many failed login attempts, please try again later. + Zu viele fehlgeschlagene Anmeldeversuche, bitte versuchen Sie es später noch einmal. + + + Invalid or expired login link. + Ungültiger oder abgelaufener Anmelde-Link. + From 00023a6ab82d7e99a1a5512af0dab0422a1e5473 Mon Sep 17 00:00:00 2001 From: "Alexander M. Turek" Date: Sun, 25 Oct 2020 12:18:37 +0100 Subject: [PATCH 102/156] [Form] Added missing German translations. --- .../Resources/translations/validators.de.xlf | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.de.xlf b/src/Symfony/Component/Form/Resources/translations/validators.de.xlf index fe4353120d256..bc8e46d1ec089 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.de.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.de.xlf @@ -18,6 +18,122 @@ This value is not a valid HTML5 color. Dieser Wert ist keine gültige HTML5 Farbe. + + Please enter a valid birthdate. + Bitte geben Sie ein gültiges Geburtsdatum ein. + + + The selected choice is invalid. + Die Auswahl ist ungültig. + + + The collection is invalid. + Diese Gruppe von Feldern ist ungültig. + + + Please select a valid color. + Bitte geben Sie eine gültige Farbe ein. + + + Please select a valid country. + Bitte wählen Sie ein gültiges Land aus. + + + Please select a valid currency. + Bitte wählen Sie eine gültige Währung aus. + + + Please choose a valid date interval. + Bitte wählen Sie ein gültiges Datumsintervall. + + + Please enter a valid date and time. + Bitte geben Sie ein gültiges Datum samt Uhrzeit ein. + + + Please enter a valid date. + Bitte geben Sie ein gültiges Datum ein. + + + Please select a valid file. + Bitte wählen Sie eine gültige Datei. + + + The hidden field is invalid. + Das versteckte Feld ist ungültig. + + + Please enter an integer. + Bitte geben Sie eine ganze Zahl ein. + + + Please select a valid language. + Bitte wählen Sie eine gültige Sprache. + + + Please select a valid locale. + Bitte wählen Sie eine gültige Locale-Einstellung aus. + + + Please enter a valid money amount. + Bitte geben Sie einen gültigen Geldbetrag ein. + + + Please enter a number. + Bitte geben Sie eine gültige Zahl ein. + + + The password is invalid. + Das Kennwort ist ungültig. + + + Please enter a percentage value. + Bitte geben Sie einen gültigen Prozentwert ein. + + + The values do not match. + Die Werte stimmen nicht überein. + + + Please enter a valid time. + Bitte geben Sie eine gültige Uhrzeit ein. + + + Please select a valid timezone. + Bitte wählen Sie eine gültige Zeitzone. + + + Please enter a valid URL. + Bitte geben Sie eine gültige URL ein. + + + Please enter a valid search term. + Bitte geben Sie einen gültigen Suchbegriff ein. + + + Please provide a valid phone number. + Bitte geben Sie eine gültige Telefonnummer ein. + + + The checkbox has an invalid value. + Das Kontrollkästchen hat einen ungültigen Wert. + + + Please enter a valid email address. + Bitte geben Sie eine gültige E-Mail-Adresse ein. + + + Please select a valid option. + Bitte wählen Sie eine gültige Option. + + + Please select a valid range. + Bitte wählen Sie einen gültigen Bereich. + + + Please enter a valid week. + Bitte geben Sie eine gültige Woche ein. + From 85adad52c438a3ec221be91229a277cd5f667970 Mon Sep 17 00:00:00 2001 From: Zairig Imad Date: Sun, 25 Oct 2020 13:59:08 +0100 Subject: [PATCH 103/156] Update Security Frensh Translations --- .../Security/Core/Resources/translations/security.fr.xlf | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.fr.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.fr.xlf index 5a77c6e9ff795..49f4a0f07482b 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.fr.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.fr.xlf @@ -66,6 +66,14 @@ Account is locked. Le compte est bloqué. + + Too many failed login attempts, please try again later. + Plusieurs tentatives de connexion ont échoué, veuillez réessayer plus tard. + + + Invalid or expired login link. + Lien de connexion invalide ou expiré. + From 7d25a46b3bea52832f2a40fd0cf4ea5fc3796a4d Mon Sep 17 00:00:00 2001 From: Aerendir Date: Sun, 25 Oct 2020 16:26:49 +0100 Subject: [PATCH 104/156] Closes #38747: Add italian translations. --- .../Resources/translations/validators.it.xlf | 124 +++++++++++++++++- .../Resources/translations/security.it.xlf | 8 ++ 2 files changed, 130 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.it.xlf b/src/Symfony/Component/Form/Resources/translations/validators.it.xlf index aa15264d9faad..8e4665ce1daf5 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.it.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.it.xlf @@ -8,11 +8,131 @@ The uploaded file was too large. Please try to upload a smaller file. - Il file caricato è troppo grande. Per favore caricare un file più piccolo. + Il file caricato è troppo grande. Per favore, carica un file più piccolo. The CSRF token is invalid. Please try to resubmit the form. - Il token CSRF non è valido. Provare a reinviare il form. + Il token CSRF non è valido. Prova a reinviare il form. + + + This value is not a valid HTML5 color. + Il valore non è un colore HTML5 valido. + + + Please enter a valid birthdate. + Per favore, inserisci una data di compleanno valida. + + + The selected choice is invalid. + La scelta selezionata non è valida. + + + The collection is invalid. + La collezione non è valida. + + + Please select a valid color. + Per favore, seleziona un colore valido. + + + Please select a valid country. + Per favore, seleziona un paese valido. + + + Please select a valid currency. + Per favore, seleziona una valuta valida. + + + Please choose a valid date interval. + Per favore, scegli a valid date interval. + + + Please enter a valid date and time. + Per favore, inserisci a valid date and time. + + + Please enter a valid date. + Per favore, inserisci a valid date. + + + Please select a valid file. + Per favore, seleziona un file valido. + + + The hidden field is invalid. + Il campo nascosto non è valido. + + + Please enter an integer. + Per favore, inserisci un numero intero. + + + Please select a valid language. + Per favore, seleziona una lingua valida. + + + Please select a valid locale. + Per favore, seleziona una lingua valida. + + + Please enter a valid money amount. + Per favore, inserisci un importo valido. + + + Please enter a number. + Per favore, inserisci un numero. + + + The password is invalid. + La password non è valida. + + + Please enter a percentage value. + Per favore, inserisci un valore percentuale. + + + The values do not match. + I valori non corrispondono. + + + Please enter a valid time. + Per favore, inserisci un orario valido. + + + Please select a valid timezone. + Per favore, seleziona un fuso orario valido. + + + Please enter a valid URL. + Per favore, inserisci un URL valido. + + + Please enter a valid search term. + Per favore, inserisci un termine di ricerca valido. + + + Please provide a valid phone number. + Per favore, indica un numero di telefono valido. + + + The checkbox has an invalid value. + La casella di selezione non ha un valore valido. + + + Please enter a valid email address. + Per favore, indica un indirizzo email valido. + + + Please select a valid option. + Per favore, seleziona un'opzione valida. + + + Please select a valid range. + Per favore, seleziona un intervallo valido. + + + Please enter a valid week. + Per favore, inserisci una settimana valida. diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.it.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.it.xlf index 75d81cc8d9312..d4a90b09351e6 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.it.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.it.xlf @@ -66,6 +66,14 @@ Account is locked. L'account è bloccato. + + Too many failed login attempts, please try again later. + Troppi tentaivi di login falliti. Riprova tra un po'. + + + Invalid or expired login link. + Link di login scaduto o non valido. + From a9d6549ce96cefcc71a842c48f53964f745f73bc Mon Sep 17 00:00:00 2001 From: Krasimir Bosilkov Date: Sun, 25 Oct 2020 18:37:37 +0200 Subject: [PATCH 105/156] [Validator] Missing Bulgarian translations #38730 --- .../Resources/translations/validators.bg.xlf | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.bg.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.bg.xlf index 1db88086cf528..8a4b0d606af66 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.bg.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.bg.xlf @@ -334,6 +334,58 @@ This value should be valid JSON. Стойността трябва да е валиден JSON. + + This collection should contain only unique elements. + Колекцията трябва да съдържа само уникални елементи. + + + This value should be positive. + Стойността трябва да бъде положително число. + + + This value should be either positive or zero. + Стойността трябва бъде положително число или нула. + + + This value should be negative. + Стойността трябва да бъде отрицателно число. + + + This value should be either negative or zero. + Стойността трябва да бъде отрицателно число или нула. + + + This value is not a valid timezone. + Стойността не е валидна часова зона. + + + This password has been leaked in a data breach, it must not be used. Please use another password. + Тази парола е компрометирана, не трябва да бъде използвана. Моля използвайте друга парола. + + + This value should be between {{ min }} and {{ max }}. + Стойността трябва да бъде между {{ min }} и {{ max }}. + + + This value is not a valid hostname. + Стойността не е валиден hostname. + + + The number of elements in this collection should be a multiple of {{ compared_value }}. + Броят на елементите в тази колекция трябва да бъде кратен на {{ compared_value }}. + + + This value should satisfy at least one of the following constraints: + Стойността трябва да отговаря на поне едно от следните ограничения: + + + Each element of this collection should satisfy its own set of constraints. + Всеки елемент от тази колекция трябва да отговаря на собствения си набор от ограничения. + + + This value is not a valid International Securities Identification Number (ISIN). + Стойността не е валиден Международен идентификационен номер на ценни книжа (ISIN). + From fd7060d21ab58581cb8653e1c0fc38568f8d9a5b Mon Sep 17 00:00:00 2001 From: Krasimir Bosilkov Date: Sun, 25 Oct 2020 18:45:33 +0200 Subject: [PATCH 106/156] [Security] Missing Bulgarian translations #38730 --- .../Security/Core/Resources/translations/security.bg.xlf | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.bg.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.bg.xlf index 06692ea66a843..bb8447c778e6e 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.bg.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.bg.xlf @@ -66,6 +66,14 @@ Account is locked. Акаунта е заключен. + + Too many failed login attempts, please try again later. + Твърде много грешни опити за вход, моля опитайте по-късно. + + + Invalid or expired login link. + Невалиден или изтекъл линк за вход. + From 01cb45462c9ff505d0b1079fd0e38ef9aad94a16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Holeczy?= Date: Sun, 25 Oct 2020 17:46:46 +0100 Subject: [PATCH 107/156] [Security] Add missing czech translations --- .../Security/Core/Resources/translations/security.cs.xlf | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.cs.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.cs.xlf index bd146c68049cb..fb66401c50937 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.cs.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.cs.xlf @@ -66,6 +66,14 @@ Account is locked. Účet je zablokovaný. + + Too many failed login attempts, please try again later. + Příliš mnoho nepovedených pokusů přihlášení. Zkuste to prosím později. + + + Invalid or expired login link. + Neplatný nebo expirovaný odkaz na přihlášení. + From 05be7b2f1cd85e0765e6212c81888197a35ec7dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Holeczy?= Date: Sun, 25 Oct 2020 17:47:52 +0100 Subject: [PATCH 108/156] [Form] Add missing czech translations --- .../Resources/translations/validators.cs.xlf | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.cs.xlf b/src/Symfony/Component/Form/Resources/translations/validators.cs.xlf index 44d597db980ec..3c4052b1ca496 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.cs.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.cs.xlf @@ -18,6 +18,122 @@ This value is not a valid HTML5 color. Tato hodnota není platná HTML5 barva. + + Please enter a valid birthdate. + Prosím zadejte platný datum narození. + + + The selected choice is invalid. + Vybraná možnost není platná. + + + The collection is invalid. + Kolekce není platná. + + + Please select a valid color. + Prosím vyberte platnou barvu. + + + Please select a valid country. + Prosím vyberte platnou zemi. + + + Please select a valid currency. + Prosím vyberte platnou měnu. + + + Please choose a valid date interval. + Prosím vyberte platné rozpětí dat. + + + Please enter a valid date and time. + Prosím zadejte platný datum a čas. + + + Please enter a valid date. + Prosím zadejte platný datum. + + + Please select a valid file. + Prosím vyberte platný soubor. + + + The hidden field is invalid. + Skryté pole není platné. + + + Please enter an integer. + Prosím zadejte číslo. + + + Please select a valid language. + Prosím zadejte platný jazyk. + + + Please select a valid locale. + Prosím zadejte platný jazyk. + + + Please enter a valid money amount. + Prosím zadejte platnou částku. + + + Please enter a number. + Prosím zadejte číslo. + + + The password is invalid. + Heslo není platné. + + + Please enter a percentage value. + Prosím zadejte procentuální hodnotu. + + + The values do not match. + Hodnoty se neshodují. + + + Please enter a valid time. + Prosím zadejte platný čas. + + + Please select a valid timezone. + Prosím vyberte platné časové pásmo. + + + Please enter a valid URL. + Prosím zadejte platnou URL. + + + Please enter a valid search term. + Prosím zadejte platný výraz k vyhledání. + + + Please provide a valid phone number. + Prosím zadejte platné telefonní číslo. + + + The checkbox has an invalid value. + Zaškrtávací políčko má neplatnou hodnotu. + + + Please enter a valid email address. + Prosím zadejte platnou emailovou adresu. + + + Please select a valid option. + Prosím vyberte platnou možnost. + + + Please select a valid range. + Prosím vyberte platný rozsah. + + + Please enter a valid week. + Prosím zadejte platný týden. + From eaff84418f185700d03da568faf80421269c53d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Holeczy?= Date: Sun, 25 Oct 2020 17:48:25 +0100 Subject: [PATCH 109/156] [Validator] Add missing czech translations --- .../Validator/Resources/translations/validators.cs.xlf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.cs.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.cs.xlf index ce32f1368de64..0cf53015addb6 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.cs.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.cs.xlf @@ -382,6 +382,10 @@ Each element of this collection should satisfy its own set of constraints. Každý prvek v této kolekci musí splňovat svá vlastní omezení. + + This value is not a valid International Securities Identification Number (ISIN). + Tato hodnota není platné mezinárodní identifikační číslo cenného papíru (ISIN). + From 8b307e644affbdfd3eaf02e41d8006fe31136b95 Mon Sep 17 00:00:00 2001 From: Tavo Nieves J Date: Sun, 25 Oct 2020 12:09:02 -0500 Subject: [PATCH 110/156] [Security] Added missing Spanish translations. --- .../Security/Core/Resources/translations/security.es.xlf | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.es.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.es.xlf index 00cefbb2dad67..43cb00b28a7dc 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.es.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.es.xlf @@ -66,6 +66,14 @@ Account is locked. La cuenta está bloqueada. + + Too many failed login attempts, please try again later. + Demasiados intentos fallidos de inicio de sesión, inténtelo de nuevo más tarde. + + + Invalid or expired login link. + Enlace de inicio de sesión inválido o expirado. + From 26f3963bb2a9571352a36859afe2de0dbd323579 Mon Sep 17 00:00:00 2001 From: Tavo Nieves J Date: Sun, 25 Oct 2020 12:27:57 -0500 Subject: [PATCH 111/156] [Validator] Added missing Spanish translations. --- .../Validator/Resources/translations/validators.es.xlf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.es.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.es.xlf index 57b07b2b5546a..2c586ca4a2571 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.es.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.es.xlf @@ -382,6 +382,10 @@ Each element of this collection should satisfy its own set of constraints. Cada elemento de esta colección debería satisfacer su propio conjunto de restricciones. + + This value is not a valid International Securities Identification Number (ISIN). + Este valor no es un número de identificación internacional de valores (ISIN) válido. + From 65db8d08c8aa40ddd7468920a239c04adcceb35a Mon Sep 17 00:00:00 2001 From: tarlepp Date: Sun, 25 Oct 2020 18:43:27 +0200 Subject: [PATCH 112/156] Added missing `security.fi.xlf` translation file --- .../Resources/translations/security.fi.xlf | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 src/Symfony/Component/Security/Core/Resources/translations/security.fi.xlf diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.fi.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.fi.xlf new file mode 100644 index 0000000000000..d5358a6c1700c --- /dev/null +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.fi.xlf @@ -0,0 +1,79 @@ + + + + + + An authentication exception occurred. + Autentikointi poikkeus tapahtui. + + + Authentication credentials could not be found. + Autentikoinnin tunnistetietoja ei löydetty. + + + Authentication request could not be processed due to a system problem. + Autentikointipyyntöä ei voitu käsitellä järjestelmäongelman vuoksi. + + + Invalid credentials. + Virheelliset tunnistetiedot. + + + Cookie has already been used by someone else. + Eväste on jo jonkin muun käytössä. + + + Not privileged to request the resource. + Ei oikeutta resurssiin. + + + Invalid CSRF token. + Virheellinen CSRF tunnus. + + + Digest nonce has expired. + Digest nonce on vanhentunut. + + + No authentication provider found to support the authentication token. + Autentikointi tunnukselle ei löydetty tuettua autentikointi tarjoajaa. + + + No session available, it either timed out or cookies are not enabled. + Sessio ei ole saatavilla, se on joko vanhentunut tai evästeet eivät ole käytössä. + + + No token could be found. + Tunnusta ei löytynyt. + + + Username could not be found. + Käyttäjätunnusta ei löydetty. + + + Account has expired. + Tili on vanhentunut. + + + Credentials have expired. + Tunnistetiedot ovat vanhentuneet. + + + Account is disabled. + Tili on poistettu käytöstä. + + + Account is locked. + Tili on lukittu. + + + Too many failed login attempts, please try again later. + Liian monta epäonnistunutta kirjautumisyritystä, yritä myöhemmin uudelleen. + + + Invalid or expired login link. + Virheellinen tai vanhentunut kirjautumislinkki. + + + + From e6219e4796336b2865d43aa87cc865cc08aa761f Mon Sep 17 00:00:00 2001 From: Zairig Imad Date: Sun, 25 Oct 2020 14:08:13 +0100 Subject: [PATCH 113/156] Update Security Arabic Translations --- .../Security/Core/Resources/translations/security.ar.xlf | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.ar.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.ar.xlf index fd18ee6ad9faf..a4e01a8f7b6b9 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.ar.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.ar.xlf @@ -66,6 +66,14 @@ Account is locked. الحساب مغلق. + + Too many failed login attempts, please try again later. + عدد كبير جدا من محاولات الدخول الفاشلة، يرجى المحاولة مرة أخرى في وقت لاحق. + + + Invalid or expired login link. + رابط تسجيل الدخول غير صالح أو منتهي الصلاحية. + From b36068ff8ab2e3dd1a89efed510922c8603e88b6 Mon Sep 17 00:00:00 2001 From: Zairig Imad Date: Sun, 25 Oct 2020 14:44:30 +0100 Subject: [PATCH 114/156] Update Arabic Form Translations --- .../Resources/translations/validators.ar.xlf | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.ar.xlf b/src/Symfony/Component/Form/Resources/translations/validators.ar.xlf index 990b039d63d4c..e30daaf1dff5d 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.ar.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.ar.xlf @@ -14,6 +14,126 @@ The CSRF token is invalid. Please try to resubmit the form. قيمة رمز الموقع غير صحيحة. من فضلك اعد ارسال النموذج. + + This value is not a valid HTML5 color. + هذه القيمة ليست لون HTML5 صالحًا. + + + Please enter a valid birthdate. + الرجاء ادخال تاريخ ميلاد صالح. + + + The selected choice is invalid. + الاختيار المحدد غير صالح. + + + The collection is invalid. + المجموعة غير صالحة. + + + Please select a valid color. + الرجاء اختيار لون صالح. + + + Please select a valid country. + الرجاء اختيار بلد صالح. + + + Please select a valid currency. + الرجاء اختيار عملة صالحة. + + + Please choose a valid date interval. + الرجاء اختيار فاصل زمني صالح. + + + Please enter a valid date and time. + الرجاء إدخال تاريخ ووقت صالحين. + + + Please enter a valid date. + الرجاء إدخال تاريخ صالح. + + + Please select a valid file. + الرجاء اختيار ملف صالح. + + + The hidden field is invalid. + الحقل المخفي غير صالح. + + + Please enter an integer. + الرجاء إدخال عدد صحيح. + + + Please select a valid language. + الرجاء اختيار لغة صالحة. + + + Please select a valid locale. + الرجاء اختيار لغة صالحة. + + + Please enter a valid money amount. + الرجاء إدخال مبلغ مالي صالح. + + + Please enter a number. + الرجاء إدخال رقم. + + + The password is invalid. + كلمة المرور غير صحيحة. + + + Please enter a percentage value. + الرجاء إدخال قيمة النسبة المئوية. + + + The values do not match. + القيم لا تتطابق. + + + Please enter a valid time. + الرجاء إدخال وقت صالح. + + + Please select a valid timezone. + الرجاء تحديد منطقة زمنية صالحة. + + + Please enter a valid URL. + أدخل عنوان الرابط صحيح من فضلك. + + + Please enter a valid search term. + الرجاء إدخال مصطلح البحث ساري المفعول. + + + Please provide a valid phone number. + يرجى تقديم رقم هاتف صالح. + + + The checkbox has an invalid value. + خانة الاختيار لها قيمة غير صالحة. + + + Please enter a valid email address. + رجاء قم بإدخال بريد الكتروني صحيح + + + Please select a valid option. + الرجاء تحديد خيار صالح. + + + Please select a valid range. + يرجى تحديد نطاق صالح. + + + Please enter a valid week. + الرجاء إدخال أسبوع صالح. + From 8c5d26fcb2bd52d6c92c1206dd980bb8c75f0d56 Mon Sep 17 00:00:00 2001 From: Krasimir Bosilkov Date: Sun, 25 Oct 2020 18:42:28 +0200 Subject: [PATCH 115/156] [Form] Missing Bulgarian translations --- .../Resources/translations/validators.bg.xlf | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.bg.xlf b/src/Symfony/Component/Form/Resources/translations/validators.bg.xlf index 5c768c305f9ee..32fa9433108c1 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.bg.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.bg.xlf @@ -14,6 +14,126 @@ The CSRF token is invalid. Please try to resubmit the form. Невалиден CSRF токен. Моля, опитайте да изпратите формата отново. + + This value is not a valid HTML5 color. + Стойността не е валиден HTML5 цвят. + + + Please enter a valid birthdate. + Моля въведете валидна дата на раждане. + + + The selected choice is invalid. + Избраните стойности не са валидни. + + + The collection is invalid. + Колекцията не е валидна. + + + Please select a valid color. + Моля изберете валиден цвят. + + + Please select a valid country. + Моля изберете валидна държава. + + + Please select a valid currency. + Моля изберете валидна валута. + + + Please choose a valid date interval. + Моля изберете валиден интервал от дати. + + + Please enter a valid date and time. + Моля въведете валидни дата и час. + + + Please enter a valid date. + Моля въведете валидна дата. + + + Please select a valid file. + Моля изберете валиден файл. + + + The hidden field is invalid. + Скритото поле е невалидно. + + + Please enter an integer. + Моля попълнете цяло число. + + + Please select a valid language. + Моля изберете валиден език. + + + Please select a valid locale. + Моля изберете валиден език. + + + Please enter a valid money amount. + Моля въведете валидна парична сума. + + + Please enter a number. + Моля въведете число. + + + The password is invalid. + Паролата е невалидна. + + + Please enter a percentage value. + Моля въведете процентна стойност. + + + The values do not match. + Стойностите не съвпадат. + + + Please enter a valid time. + Моля въведете валидно време. + + + Please select a valid timezone. + Моля изберете валидна часова зона. + + + Please enter a valid URL. + Моля въведете валиден URL. + + + Please enter a valid search term. + Моля въведете валидно търсене. + + + Please provide a valid phone number. + Моля осигурете валиден телефонен номер. + + + The checkbox has an invalid value. + Отметката има невалидна стойност. + + + Please enter a valid email address. + Моля въведете валидна ел. поща. + + + Please select a valid option. + Моля изберете валидна опция. + + + Please select a valid range. + Моля изберете валиден обхват. + + + Please enter a valid week. + Моля въведете валидна седмица. + From ac0e25e885b348e4d57d558ee548af61a195e628 Mon Sep 17 00:00:00 2001 From: Nyholm Date: Sun, 25 Oct 2020 18:31:25 +0100 Subject: [PATCH 116/156] [Cache] Fixed tests.. again --- src/Symfony/Component/Cache/Tests/Adapter/ChainAdapterTest.php | 1 + src/Symfony/Component/Cache/composer.json | 1 + 2 files changed, 2 insertions(+) diff --git a/src/Symfony/Component/Cache/Tests/Adapter/ChainAdapterTest.php b/src/Symfony/Component/Cache/Tests/Adapter/ChainAdapterTest.php index 36bf3c4a39f5b..909b5f87ceabd 100644 --- a/src/Symfony/Component/Cache/Tests/Adapter/ChainAdapterTest.php +++ b/src/Symfony/Component/Cache/Tests/Adapter/ChainAdapterTest.php @@ -19,6 +19,7 @@ use Symfony\Component\Cache\CacheItem; use Symfony\Component\Cache\Tests\Fixtures\ExternalAdapter; use Symfony\Component\Cache\Tests\Fixtures\PrunableAdapter; +use Symfony\Component\Filesystem\Filesystem; use Symfony\Contracts\Cache\ItemInterface; /** diff --git a/src/Symfony/Component/Cache/composer.json b/src/Symfony/Component/Cache/composer.json index b004154cd4ca8..49f634b372959 100644 --- a/src/Symfony/Component/Cache/composer.json +++ b/src/Symfony/Component/Cache/composer.json @@ -36,6 +36,7 @@ "psr/simple-cache": "^1.0", "symfony/config": "^4.2|^5.0", "symfony/dependency-injection": "^3.4|^4.1|^5.0", + "symfony/filesystem": "^4.4|^5.0", "symfony/var-dumper": "^4.4|^5.0" }, "conflict": { From 6289b271aad9935f9f58d476cb02917a5097c361 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Sch=C3=A4dlich?= Date: Sun, 25 Oct 2020 18:23:35 +0100 Subject: [PATCH 117/156] Add missing vietnamese translations --- .../Resources/translations/validators.vi.xlf | 20 +++++++++++++++++++ .../Resources/translations/security.vi.xlf | 8 ++++++++ 2 files changed, 28 insertions(+) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.vi.xlf b/src/Symfony/Component/Form/Resources/translations/validators.vi.xlf index 4d060fbe0d96e..6a8f2bd862c9d 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.vi.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.vi.xlf @@ -114,6 +114,26 @@ Please provide a valid phone number. Vui lòng cung cấp số điện thoại hợp lệ. + + The checkbox has an invalid value. + Hộp kiểm có một giá trị không hợp lệ. + + + Please enter a valid email address. + Vui lòng nhập địa chỉ email hợp lệ. + + + Please select a valid option. + Vui lòng chọn một phương án hợp lệ. + + + Please select a valid range. + Vui lòng nhập một phạm vi hợp lệ. + + + Please enter a valid week. + Vui lòng nhập một tuần hợp lệ. + diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.vi.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.vi.xlf index 93723bb43ecea..6cda1572e4e3b 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.vi.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.vi.xlf @@ -66,6 +66,14 @@ Account is locked. Tài khoản bị khóa. + + Too many failed login attempts, please try again later. + Đăng nhập sai quá nhiều lần, vui lòng thử lại lần nữa. + + + Invalid or expired login link. + Liên kết đăng nhập không hợp lệ hoặc quá hạn. + From 7f2b13bcb3b0e1a31c42757c426a13167be9c18b Mon Sep 17 00:00:00 2001 From: Andrew M-Y Date: Sun, 25 Oct 2020 21:00:32 +0200 Subject: [PATCH 118/156] [Security] Add missing Latvian translations --- .../Core/Resources/translations/security.lv.xlf | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.lv.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.lv.xlf index 33c48c617461c..05967eaf61c28 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.lv.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.lv.xlf @@ -66,6 +66,14 @@ Account is locked. Konts ir slēgts. + + Too many failed login attempts, please try again later. + Pārāk daudz atteiktu ieejas mēģinājumu, lūdzu, mēģiniet vēlreiz vēlāk. + + + Invalid or expired login link. + Ieejas saite ir nederīga vai arī tai ir beidzies derīguma termiņš. + - \ No newline at end of file + From b452e18ebc2a14be264472d50510bb18e760a18d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Deruss=C3=A9?= Date: Sun, 25 Oct 2020 19:00:57 +0100 Subject: [PATCH 119/156] Fix transient tests --- .../Component/Cache/Tests/Adapter/AdapterTestCase.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Symfony/Component/Cache/Tests/Adapter/AdapterTestCase.php b/src/Symfony/Component/Cache/Tests/Adapter/AdapterTestCase.php index 05b863d1ac110..57c355eaa43a6 100644 --- a/src/Symfony/Component/Cache/Tests/Adapter/AdapterTestCase.php +++ b/src/Symfony/Component/Cache/Tests/Adapter/AdapterTestCase.php @@ -116,11 +116,11 @@ public function testGetMetadata() $item = $cache->getItem('foo'); - $expected = [ - CacheItem::METADATA_EXPIRY => 9.5 + time(), - CacheItem::METADATA_CTIME => 1000, - ]; - $this->assertEqualsWithDelta($expected, $item->getMetadata(), .6, 'Item metadata should embed expiry and ctime.'); + $metadata = $item->getMetadata(); + $this->assertArrayHasKey(CacheItem::METADATA_CTIME, $metadata); + $this->assertEqualsWithDelta(1000, $metadata[CacheItem::METADATA_CTIME], 6); + $this->assertArrayHasKey(CacheItem::METADATA_EXPIRY, $metadata); + $this->assertEqualsWithDelta(9.5 + time(), $metadata[CacheItem::METADATA_EXPIRY], 0.6); } public function testDefaultLifeTime() From 871c983164f9aff8d05a3b6ae132681fe2c0d4f0 Mon Sep 17 00:00:00 2001 From: Andrew M-Y Date: Sun, 25 Oct 2020 20:47:41 +0200 Subject: [PATCH 120/156] [Form] Add missing Latvian translations --- .../Resources/translations/validators.lv.xlf | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.lv.xlf b/src/Symfony/Component/Form/Resources/translations/validators.lv.xlf index 9cdfb2cd4864f..e7c90c793ede1 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.lv.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.lv.xlf @@ -14,6 +14,126 @@ The CSRF token is invalid. Please try to resubmit the form. Dotais CSRF talons nav derīgs. Lūdzu mēģiniet vēlreiz iesniegt veidlapu. + + This value is not a valid HTML5 color. + Šī vertība nav derīga HTML5 krāsa. + + + Please enter a valid birthdate. + Lūdzu, ievadiet derīgu dzimšanas datumu. + + + The selected choice is invalid. + Iezīmētā izvēle nav derīga. + + + The collection is invalid. + Kolekcija nav derīga. + + + Please select a valid color. + Lūdzu, izvēlieties derīgu krāsu. + + + Please select a valid country. + Lūdzu, izvēlieties derīgu valsti. + + + Please select a valid currency. + Lūdzu, izvēlieties derīgu valūtu. + + + Please choose a valid date interval. + Lūdzu, izvēlieties derīgu datumu intervālu. + + + Please enter a valid date and time. + Lūdzu, ievadiet derīgu datumu un laiku. + + + Please enter a valid date. + Lūdzu, ievadiet derīgu datumu. + + + Please select a valid file. + Lūdzu, izvēlieties derīgu failu. + + + The hidden field is invalid. + Slēptā lauka vērtība ir nederīga. + + + Please enter an integer. + Lūdzu, ievadiet veselu skaitli. + + + Please select a valid language. + Lūdzu, izvēlieties derīgu valodu. + + + Please select a valid locale. + Lūdzu, izvēlieties derīgu lokalizāciju. + + + Please enter a valid money amount. + Lūdzu, ievadiet derīgu naudas lielumu. + + + Please enter a number. + Lūdzu, ievadiet skaitli. + + + The password is invalid. + Parole ir nederīga. + + + Please enter a percentage value. + Lūdzu, ievadiet procentuālo lielumu. + + + The values do not match. + Vērtības nesakrīt. + + + Please enter a valid time. + Lūdzu, ievadiet derīgu laiku. + + + Please select a valid timezone. + Lūdzu, izvēlieties derīgu laika zonu. + + + Please enter a valid URL. + Lūdzu, ievadiet derīgu URL. + + + Please enter a valid search term. + Lūdzu, ievadiet derīgu meklēšanas nosacījumu. + + + Please provide a valid phone number. + Lūdzu, ievadiet derīgu tālruņa numuru. + + + The checkbox has an invalid value. + Izvēles rūtiņai ir nederīga vērtība. + + + Please enter a valid email address. + Lūdzu, ievadiet derīgu e-pasta adresi. + + + Please select a valid option. + Lūdzu, izvēlieties derīgu opciju. + + + Please select a valid range. + Lūdzu, izvēlieties derīgu diapazonu. + + + Please enter a valid week. + Lūdzu, ievadiet derīgu nedeļu. + From 4924b38d3a69d67dd6725347fcfa143bdf22cdb4 Mon Sep 17 00:00:00 2001 From: Andrew M-Y Date: Sun, 25 Oct 2020 21:13:39 +0200 Subject: [PATCH 121/156] [Validator] Add missing Latvian translations --- .../Resources/translations/validators.lv.xlf | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.lv.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.lv.xlf index 4c0e192521d27..d70ffbc722d51 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.lv.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.lv.xlf @@ -334,6 +334,58 @@ This value should be valid JSON. Šai vērtībai jābūt derīgam JSON. + + This collection should contain only unique elements. + Šai kolekcijai jāsatur tikai derīgi elementi. + + + This value should be positive. + Šai vērtībāi jābūt pozitīvai. + + + This value should be either positive or zero. + Šai vērtībāi jābūt pozitīvai vai vienādai ar nulli. + + + This value should be negative. + Šai vērtībāi jābūt negatīvai. + + + This value should be either negative or zero. + Šai vērtībāi jābūt negatīvai vai vienādai ar nulli. + + + This value is not a valid timezone. + Šī vērtība nav derīga laika zona. + + + This password has been leaked in a data breach, it must not be used. Please use another password. + Šī parole tika publicēta datu noplūdē, viņu nedrīkst izmantot. Lūdzu, izvēlieties citu paroli. + + + This value should be between {{ min }} and {{ max }}. + Šai vērtībai jābūt starp {{ min }} un {{ max }}. + + + This value is not a valid hostname. + Šī vērtība nav derīgs tīmekļa servera nosaukums. + + + The number of elements in this collection should be a multiple of {{ compared_value }}. + Elementu skaitam šajā kolekcijā jābūt {{ compared_value }} reizinājumam. + + + This value should satisfy at least one of the following constraints: + Šai vērtībai jāiekļaujas vismaz vienā no sekojošiem ierobežojumiem: + + + Each element of this collection should satisfy its own set of constraints. + Šīs kolekcijas katram elementam jāiekļaujas savā ierobežojumu kopā. + + + This value is not a valid International Securities Identification Number (ISIN). + Šī vērtība nav derīgs starptautiskais vērtspapīru identifikācijas numurs (ISIN). + From 987efdd6205ea203cfa9ef92a88e687f5228f9db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Deruss=C3=A9?= Date: Sun, 25 Oct 2020 21:41:30 +0100 Subject: [PATCH 122/156] Fix transient tests --- .../HttpKernel/Tests/HttpCache/ResponseCacheStrategyTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/HttpKernel/Tests/HttpCache/ResponseCacheStrategyTest.php b/src/Symfony/Component/HttpKernel/Tests/HttpCache/ResponseCacheStrategyTest.php index 22cadf7129528..fd67af368b740 100644 --- a/src/Symfony/Component/HttpKernel/Tests/HttpCache/ResponseCacheStrategyTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/HttpCache/ResponseCacheStrategyTest.php @@ -216,7 +216,7 @@ public function testResponseIsExiprableWhenEmbeddedResponseCombinesExpiryAndVali $cacheStrategy->add($embeddedResponse); $cacheStrategy->update($masterResponse); - $this->assertSame('60', $masterResponse->headers->getCacheControlDirective('s-maxage')); + $this->assertEqualsWithDelta(60, (int) $masterResponse->headers->getCacheControlDirective('s-maxage'), 1); } public function testResponseIsExpirableButNotValidateableWhenMasterResponseCombinesExpirationAndValidation() From fd05fc6afb405e85d97e62f91c75a161c6ce1f72 Mon Sep 17 00:00:00 2001 From: Adiel Cristo Date: Sun, 25 Oct 2020 16:43:12 -0300 Subject: [PATCH 123/156] [Form] [Security] Add missing pt_BR translations --- .../translations/validators.pt_BR.xlf | 20 +++++++++++++++++++ .../Resources/translations/security.pt_BR.xlf | 16 +++++++++++---- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.pt_BR.xlf b/src/Symfony/Component/Form/Resources/translations/validators.pt_BR.xlf index 3e79f391ad1f3..37717fe983dd9 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.pt_BR.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.pt_BR.xlf @@ -114,6 +114,26 @@ Please provide a valid phone number. Por favor, informe um telefone válido. + + The checkbox has an invalid value. + A caixa de seleção possui um valor inválido. + + + Please enter a valid email address. + Por favor, informe um endereço de e-mail válido. + + + Please select a valid option. + Por favor, selecione uma opção válida. + + + Please select a valid range. + Por favor, selecione um intervalo válido. + + + Please enter a valid week. + Por favor, informe uma semana válida. + diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.pt_BR.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.pt_BR.xlf index 61685d9f052ea..1c27248cd8ed0 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.pt_BR.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.pt_BR.xlf @@ -12,7 +12,7 @@ Authentication request could not be processed due to a system problem. - A autenticação não pôde ser concluída devido a um problema no sistema. + A solicitação de autenticação não pôde ser processada devido a um problema no sistema. Invalid credentials. @@ -20,11 +20,11 @@ Cookie has already been used by someone else. - Este cookie já está em uso. + Este cookie já foi usado por outra pessoa. Not privileged to request the resource. - Não possui privilégios o bastante para requisitar este recurso. + Sem privilégio para solicitar o recurso. Invalid CSRF token. @@ -40,7 +40,7 @@ No session available, it either timed out or cookies are not enabled. - Nenhuma sessão disponível, ela expirou ou os cookies estão desativados. + Nenhuma sessão disponível, ela expirou ou os cookies não estão habilitados. No token could be found. @@ -66,6 +66,14 @@ Account is locked. A conta está travada. + + Too many failed login attempts, please try again later. + Muitas tentativas de login malsucedidas, tente novamente mais tarde. + + + Invalid or expired login link. + Link de login inválido ou expirado. + From 6a9e274a1019a9f833be1d56a6004085eed19ea9 Mon Sep 17 00:00:00 2001 From: Dmitriy Mamontov Date: Sun, 25 Oct 2020 23:09:05 +0300 Subject: [PATCH 124/156] Added missing translations for Russian --- .../Resources/translations/validators.ru.xlf | 120 ++++++++++++++++++ .../Resources/translations/security.ru.xlf | 8 ++ .../Resources/translations/validators.ru.xlf | 4 + 3 files changed, 132 insertions(+) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.ru.xlf b/src/Symfony/Component/Form/Resources/translations/validators.ru.xlf index fbbbeb442297c..b11b7cef57a31 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.ru.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.ru.xlf @@ -14,6 +14,126 @@ The CSRF token is invalid. Please try to resubmit the form. CSRF значение недопустимо. Пожалуйста, попробуйте повторить отправку формы. + + This value is not a valid HTML5 color. + Значение не является допустимым HTML5 цветом. + + + Please enter a valid birthdate. + Пожалуйста, введите действительную дату рождения. + + + The selected choice is invalid. + Выбранный вариант недопустим. + + + The collection is invalid. + Коллекция недопустима. + + + Please select a valid color. + Пожалуйста, выберите допустимый цвет. + + + Please select a valid country. + Пожалуйста, выберите действительную страну. + + + Please select a valid currency. + Пожалуйста, выберите действительную валюту. + + + Please choose a valid date interval. + Пожалуйста, выберите действительный период. + + + Please enter a valid date and time. + Пожалуйста, введите действительные дату и время. + + + Please enter a valid date. + Пожалуйста, введите действительную дату. + + + Please select a valid file. + Пожалуйста, выберите допустимый файл. + + + The hidden field is invalid. + Значение скрытого поля недопустимо. + + + Please enter an integer. + Пожалуйста, введите целое число. + + + Please select a valid language. + Пожалуйста, выберите допустимый язык. + + + Please select a valid locale. + Пожалуйста, выберите допустимую локаль. + + + Please enter a valid money amount. + Пожалуйста, введите допустимое количество денег. + + + Please enter a number. + Пожалуйста, введите номер. + + + The password is invalid. + Пароль недействителен. + + + Please enter a percentage value. + Пожалуйста, введите процентное значение. + + + The values do not match. + Значения не совпадают. + + + Please enter a valid time. + Пожалуйста, введите действительное время. + + + Please select a valid timezone. + Пожалуйста, выберите действительный часовой пояс. + + + Please enter a valid URL. + Пожалуйста, введите действительный URL. + + + Please enter a valid search term. + Пожалуйста, введите действительный поисковый запрос. + + + Please provide a valid phone number. + Пожалуйста, введите действительный номер телефона. + + + The checkbox has an invalid value. + Флажок имеет недопустимое значение. + + + Please enter a valid email address. + Пожалуйста, введите допустимый email адрес. + + + Please select a valid option. + Пожалуйста, выберите допустимый вариант. + + + Please select a valid range. + Пожалуйста, выберите допустимый диапазон. + + + Please enter a valid week. + Пожалуйста, введите действительную неделю. + diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.ru.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.ru.xlf index 1964f95e09a64..0468c8373b91a 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.ru.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.ru.xlf @@ -66,6 +66,14 @@ Account is locked. Учетная запись заблокирована. + + Too many failed login attempts, please try again later. + Слишком много неудачных попыток входа, пожалуйста, попробуйте позже. + + + Invalid or expired login link. + Ссылка для входа недействительна или просрочена. + diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.ru.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.ru.xlf index 3c03fd8525cca..516fa2cf2a8bb 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.ru.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.ru.xlf @@ -382,6 +382,10 @@ Each element of this collection should satisfy its own set of constraints. Каждый элемент этой коллекции должен удовлетворять своему собственному набору ограничений. + + This value is not a valid International Securities Identification Number (ISIN). + Значение не является корректным международным идентификационным номером ценных бумаг (ISIN). + From 9376e8778dc0d65d5ff5cb1d7234a019d61c1530 Mon Sep 17 00:00:00 2001 From: Robin Chalas Date: Sun, 25 Oct 2020 23:11:08 +0100 Subject: [PATCH 125/156] [Security] Remove dead references to AnonymousAuthenticator --- .../Security/Http/Authentication/AuthenticatorManager.php | 3 +-- .../Http/Tests/Authentication/AuthenticatorManagerTest.php | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/Security/Http/Authentication/AuthenticatorManager.php b/src/Symfony/Component/Security/Http/Authentication/AuthenticatorManager.php index a9bdf8a36f236..17d2407db6fee 100644 --- a/src/Symfony/Component/Security/Http/Authentication/AuthenticatorManager.php +++ b/src/Symfony/Component/Security/Http/Authentication/AuthenticatorManager.php @@ -129,8 +129,7 @@ private function executeAuthenticators(array $authenticators, Request $request): foreach ($authenticators as $authenticator) { // recheck if the authenticator still supports the listener. supports() is called // eagerly (before token storage is initialized), whereas authenticate() is called - // lazily (after initialization). This is important for e.g. the AnonymousAuthenticator - // as its support is relying on the (initialized) token in the TokenStorage. + // lazily (after initialization). if (false === $authenticator->supports($request)) { if (null !== $this->logger) { $this->logger->debug('Skipping the "{authenticator}" authenticator as it did not support the request.', ['authenticator' => \get_class($authenticator)]); diff --git a/src/Symfony/Component/Security/Http/Tests/Authentication/AuthenticatorManagerTest.php b/src/Symfony/Component/Security/Http/Tests/Authentication/AuthenticatorManagerTest.php index 3469c4813eb14..8c14f31d81ecd 100644 --- a/src/Symfony/Component/Security/Http/Tests/Authentication/AuthenticatorManagerTest.php +++ b/src/Symfony/Component/Security/Http/Tests/Authentication/AuthenticatorManagerTest.php @@ -71,7 +71,7 @@ public function testSupportCheckedUponRequestAuthentication() { // the attribute stores the supported authenticators, returning false now // means support changed between calling supports() and authenticateRequest() - // (which is the case with lazy firewalls and e.g. the AnonymousAuthenticator) + // (which is the case with lazy firewalls) $authenticator = $this->createAuthenticator(false); $this->request->attributes->set('_security_authenticators', [$authenticator]); From 1044b1e85228c25df30377ab1e31e6b454f755ac Mon Sep 17 00:00:00 2001 From: Eric Krona Date: Sun, 25 Oct 2020 22:52:15 +0100 Subject: [PATCH 126/156] Fix #38765 Added missing swedish translations for Form, Security and Validator components Update src/Symfony/Component/Validator/Resources/translations/validators.sv.xlf Co-authored-by: Tobias Nyholm Update src/Symfony/Component/Validator/Resources/translations/validators.sv.xlf Co-authored-by: Tobias Nyholm --- .../Resources/translations/validators.sv.xlf | 120 ++++++++++++++++++ .../Resources/translations/security.sv.xlf | 8 ++ .../Resources/translations/validators.sv.xlf | 21 +++ 3 files changed, 149 insertions(+) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.sv.xlf b/src/Symfony/Component/Form/Resources/translations/validators.sv.xlf index 2a5e57ca81b36..dff88e98f1041 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.sv.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.sv.xlf @@ -14,6 +14,126 @@ The CSRF token is invalid. Please try to resubmit the form. CSRF-elementet är inte giltigt. Försök att skicka formuläret igen. + + This value is not a valid HTML5 color. + Värdet är inte en giltig HTML5-färg. + + + Please enter a valid birthdate. + Ange ett giltigt födelsedatum. + + + The selected choice is invalid. + Det valda alternativet är ogiltigt. + + + The collection is invalid. + Den här samlingen är ogiltig. + + + Please select a valid color. + Välj en giltig färg. + + + Please select a valid country. + Välj ett land. + + + Please select a valid currency. + Välj en valuta. + + + Please choose a valid date interval. + Välj ett giltigt datumintervall. + + + Please enter a valid date and time. + Ange datum och tid. + + + Please enter a valid date. + Ange ett datum. + + + Please select a valid file. + Välj en fil. + + + The hidden field is invalid. + Det dolda fältet är ogiltigt. + + + Please enter an integer. + Ange ett heltal. + + + Please select a valid language. + Välj språk. + + + Please select a valid locale. + Välj plats. + + + Please enter a valid money amount. + Ange en giltig summa pengar. + + + Please enter a number. + Ange en siffra. + + + The password is invalid. + Lösenordet är ogiltigt. + + + Please enter a percentage value. + Ange ett procentuellt värde. + + + The values do not match. + De angivna värdena stämmer inte överens. + + + Please enter a valid time. + Ange en giltig tid. + + + Please select a valid timezone. + Välj tidszon. + + + Please enter a valid URL. + Ange en giltig URL. + + + Please enter a valid search term. + Ange ett giltigt sökbegrepp. + + + Please provide a valid phone number. + Ange ett giltigt telefonnummer. + + + The checkbox has an invalid value. + Kryssrutan har ett ogiltigt värde. + + + Please enter a valid email address. + Ange en giltig e-postadress. + + + Please select a valid option. + Välj ett alternativ. + + + Please select a valid range. + Välj ett intervall. + + + Please enter a valid week. + Ange en vecka. + diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.sv.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.sv.xlf index b5f62092365fa..6e660f79a30dd 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.sv.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.sv.xlf @@ -66,6 +66,14 @@ Account is locked. Kontot är låst. + + Too many failed login attempts, please try again later. + För många misslyckade inloggningsförsök, försök igen senare. + + + Invalid or expired login link. + Ogiltig eller utgången inloggningslänk. + diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.sv.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.sv.xlf index bf7da2f06c907..4f2ae8c78ea12 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.sv.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.sv.xlf @@ -366,6 +366,27 @@ This value should be between {{ min }} and {{ max }}. Detta värde bör ligga mellan {{ min }} och {{ max }}. + + This value is not a valid hostname. + Värdet är inte ett giltigt servernamn. + + + The number of elements in this collection should be a multiple of {{ compared_value }}. + Antalet element i samlingen ska vara en multipel av {{ compared_value }}. + + + This value should satisfy at least one of the following constraints: + Det här värdet skall uppfylla minst ett av följande krav: + + + Each element of this collection should satisfy its own set of constraints. + Varje element i samlingen skall uppfylla sin egen uppsättning av krav. + + + This value is not a valid International Securities Identification Number (ISIN). + Det här värdet är inte ett giltigt "International Securities Identification Number" (ISIN). + + From dd2d320e378d4623919ece34b7f0fc5bbce13abd Mon Sep 17 00:00:00 2001 From: Zairig Imad Date: Sun, 25 Oct 2020 14:26:21 +0100 Subject: [PATCH 127/156] Update French Translations for Validator Component --- .../Resources/translations/validators.fr.xlf | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.fr.xlf b/src/Symfony/Component/Form/Resources/translations/validators.fr.xlf index a32c83fc93026..f40dea752d3dd 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.fr.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.fr.xlf @@ -18,6 +18,122 @@ This value is not a valid HTML5 color. Cette valeur n'est pas une couleur HTML5 valide. + + Please enter a valid birthdate. + Veuillez entrer une date de naissance valide. + + + The selected choice is invalid. + Le choix sélectionné est invalide. + + + The collection is invalid. + La collection est invalide. + + + Please select a valid color. + Veuillez sélectionner une couleur valide. + + + Please select a valid country. + Veuillez sélectionner un pays valide. + + + Please select a valid currency. + Veuillez sélectionner une devise valide. + + + Please choose a valid date interval. + Veuillez choisir un intervalle de dates valide. + + + Please enter a valid date and time. + Veuillez saisir une date et une heure valides. + + + Please enter a valid date. + Veuillez entrer une date valide. + + + Please select a valid file. + Veuillez sélectionner un fichier valide. + + + The hidden field is invalid. + Le champ masqué n'est pas valide. + + + Please enter an integer. + Veuillez saisir un entier. + + + Please select a valid language. + Veuillez sélectionner une langue valide. + + + Please select a valid locale. + Veuillez sélectionner une langue valide. + + + Please enter a valid money amount. + Veuillez saisir un montant valide. + + + Please enter a number. + Veuillez saisir un nombre. + + + The password is invalid. + Le mot de passe est invalide. + + + Please enter a percentage value. + Veuillez saisir un pourcentage valide. + + + The values do not match. + Les valeurs ne correspondent pas. + + + Please enter a valid time. + Veuillez saisir une heure valide. + + + Please select a valid timezone. + Veuillez sélectionner un fuseau horaire valide. + + + Please enter a valid URL. + Veuillez saisir une URL valide. + + + Please enter a valid search term. + Veuillez saisir un terme de recherche valide. + + + Please provide a valid phone number. + Veuillez fournir un numéro de téléphone valide. + + + The checkbox has an invalid value. + La case à cocher a une valeur non valide. + + + Please enter a valid email address. + Veuillez saisir une adresse email valide. + + + Please select a valid option. + Veuillez sélectionner une option valide. + + + Please select a valid range. + Veuillez sélectionner une plage valide. + + + Please enter a valid week. + Veuillez entrer une semaine valide. + From a78b01140e23360cf47804b5df731f21dec8b933 Mon Sep 17 00:00:00 2001 From: Indra Gunawan Date: Mon, 26 Oct 2020 11:50:45 +0700 Subject: [PATCH 128/156] sync id translation --- .../Resources/translations/validators.id.xlf | 120 ++++++++++++++++++ .../Resources/translations/security.id.xlf | 8 ++ .../Resources/translations/validators.id.xlf | 56 ++++++++ 3 files changed, 184 insertions(+) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.id.xlf b/src/Symfony/Component/Form/Resources/translations/validators.id.xlf index b067d98474fac..535f9e6b15860 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.id.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.id.xlf @@ -14,6 +14,126 @@ The CSRF token is invalid. Please try to resubmit the form. CSRF-Token tidak sah. Silahkan coba kirim ulang formulir. + + This value is not a valid HTML5 color. + Nilai ini bukan merupakan HTML5 color yang sah. + + + Please enter a valid birthdate. + Silahkan masukkan tanggal lahir yang sah. + + + The selected choice is invalid. + Pilihan yang dipilih tidak sah. + + + The collection is invalid. + Koleksi tidak sah. + + + Please select a valid color. + Silahkan pilih warna yang sah. + + + Please select a valid country. + Silahkan pilih negara yang sah. + + + Please select a valid currency. + Silahkan pilih mata uang yang sah. + + + Please choose a valid date interval. + Silahkan pilih interval tanggal yang sah. + + + Please enter a valid date and time. + Silahkan masukkan tanggal dan waktu yang sah. + + + Please enter a valid date. + Silahkan masukkan tanggal yang sah. + + + Please select a valid file. + Silahkan pilih berkas yang sah. + + + The hidden field is invalid. + Ruas yang tersembunyi tidak sah. + + + Please enter an integer. + Silahkan masukkan angka. + + + Please select a valid language. + Silahlan pilih bahasa yang sah. + + + Please select a valid locale. + Silahkan pilih local yang sah. + + + Please enter a valid money amount. + Silahkan masukkan nilai uang yang sah. + + + Please enter a number. + Silahkan masukkan sebuah angka + + + The password is invalid. + Kata sandi tidak sah. + + + Please enter a percentage value. + Silahkan masukkan sebuah nilai persentase. + + + The values do not match. + Nilainya tidak cocok. + + + Please enter a valid time. + Silahkan masukkan waktu yang sah. + + + Please select a valid timezone. + Silahkan pilih zona waktu yang sah. + + + Please enter a valid URL. + Silahkan masukkan URL yang sah. + + + Please enter a valid search term. + Silahkan masukkan kata pencarian yang sah. + + + Please provide a valid phone number. + Silahkan sediakan nomor telepon yang sah. + + + The checkbox has an invalid value. + Nilai dari checkbox tidak sah. + + + Please enter a valid email address. + Silahkan masukkan alamat surel yang sah. + + + Please select a valid option. + Silahkan pilih opsi yang sah. + + + Please select a valid range. + Silahkan pilih rentang yang sah. + + + Please enter a valid week. + Silahkan masukkan minggu yang sah. + diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.id.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.id.xlf index ab1153b8a27ff..54c126385886f 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.id.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.id.xlf @@ -66,6 +66,14 @@ Account is locked. Akun terkunci. + + Too many failed login attempts, please try again later. + Terlalu banyak percobaan login yang salah, Silahkan coba lagi nanti. + + + Invalid or expired login link. + Link login salah atau sudah kadaluwarsa. + diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.id.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.id.xlf index bf4b85deefc35..40d07cf57cbb9 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.id.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.id.xlf @@ -330,6 +330,62 @@ This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}. Business Identifier Code (BIC) ini tidak terkait dengan IBAN {{ iban }}. + + This value should be valid JSON. + Nilai ini harus berisi JSON yang sah. + + + This collection should contain only unique elements. + Kumpulan ini harus mengandung elemen yang unik. + + + This value should be positive. + Nilai ini harus positif. + + + This value should be either positive or zero. + Nilai ini harus positif atau nol. + + + This value should be negative. + Nilai ini harus negatif. + + + This value should be either negative or zero. + Nilai ini harus negatif atau nol. + + + This value is not a valid timezone. + Nilai ini harus merupakan zona waktu yang sah. + + + This password has been leaked in a data breach, it must not be used. Please use another password. + Kata sandi ini telah bocor di data breach, harus tidak digunakan kembali. Silahkan gunakan kata sandi yang lain. + + + This value should be between {{ min }} and {{ max }}. + Nilai ini harus berada diantara {{ min }} dan {{ max }}. + + + This value is not a valid hostname. + Nilai ini bukan merupakan hostname yang sah. + + + The number of elements in this collection should be a multiple of {{ compared_value }}. + Angka dari setiap elemen di dalam kumpulan ini harus kelipatan dari {{ compared_value }}. + + + This value should satisfy at least one of the following constraints: + Nilai ini harus memenuhi setidaknya satu dari batasan berikut: + + + Each element of this collection should satisfy its own set of constraints. + Setiap elemen koleksi ini harus memenuhi batasannya sendiri. + + + This value is not a valid International Securities Identification Number (ISIN). + Nilai ini bukan merupakan International Securities Identification Number (ISIN) yang sah. + From c83d8480057e7a2d90f3b75bb82d2b4194b0e998 Mon Sep 17 00:00:00 2001 From: Ippei Sumida Date: Mon, 26 Oct 2020 16:21:26 +0900 Subject: [PATCH 129/156] Add missing translations for Japanese. --- .../Resources/translations/validators.ja.xlf | 120 ++++++++++++++++++ .../Resources/translations/security.ja.xlf | 8 ++ .../Resources/translations/validators.ja.xlf | 12 ++ 3 files changed, 140 insertions(+) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.ja.xlf b/src/Symfony/Component/Form/Resources/translations/validators.ja.xlf index 0db5eddbe68a6..ea2226ce4182f 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.ja.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.ja.xlf @@ -14,6 +14,126 @@ The CSRF token is invalid. Please try to resubmit the form. CSRFトークンが無効です、再送信してください。 + + This value is not a valid HTML5 color. + 有効なHTML5の色ではありません。 + + + Please enter a valid birthdate. + 有効な生年月日を入力してください。 + + + The selected choice is invalid. + 選択した値は無効です。 + + + The collection is invalid. + コレクションは無効です。 + + + Please select a valid color. + 有効な色を選択してください。 + + + Please select a valid country. + 有効な国を選択してください。 + + + Please select a valid currency. + 有効な通貨を選択してください。 + + + Please choose a valid date interval. + 有効な日付間隔を選択してください。 + + + Please enter a valid date and time. + 有効な日時を入力してください。 + + + Please enter a valid date. + 有効な日付を入力してください。 + + + Please select a valid file. + 有効なファイルを選択してください。 + + + The hidden field is invalid. + 隠しフィールドが無効です。 + + + Please enter an integer. + 整数で入力してください。 + + + Please select a valid language. + 有効な言語を選択してください。 + + + Please select a valid locale. + 有効なロケールを選択してください。 + + + Please enter a valid money amount. + 有効な金額を入力してください。 + + + Please enter a number. + 数値で入力してください。 + + + The password is invalid. + パスワードが無効です。 + + + Please enter a percentage value. + パーセント値で入力してください。 + + + The values do not match. + 値が一致しません。 + + + Please enter a valid time. + 有効な時間を入力してください。 + + + Please select a valid timezone. + 有効なタイムゾーンを選択してください。 + + + Please enter a valid URL. + 有効なURLを入力してください。 + + + Please enter a valid search term. + 有効な検索語を入力してください。 + + + Please provide a valid phone number. + 有効な電話番号を入力してください。 + + + The checkbox has an invalid value. + チェックボックスの値が無効です。 + + + Please enter a valid email address. + 有効なメールアドレスを入力してください。 + + + Please select a valid option. + 有効な値を選択してください。 + + + Please select a valid range. + 有効な範囲を選択してください。 + + + Please enter a valid week. + 有効な週を入力してください。 + diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.ja.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.ja.xlf index 6a6b062d946c3..bdbd52fbb0503 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.ja.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.ja.xlf @@ -66,6 +66,14 @@ Account is locked. アカウントはロックされています。 + + Too many failed login attempts, please try again later. + ログイン試行回数を超えました。しばらくして再度お試しください。 + + + Invalid or expired login link. + ログインリンクが有効期限切れ、もしくは無効です。 + diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.ja.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.ja.xlf index 8bff68b1ee90c..1a99117f930ad 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.ja.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.ja.xlf @@ -374,6 +374,18 @@ The number of elements in this collection should be a multiple of {{ compared_value }}. 要素の数は{{ compared_value }}の倍数でなければなりません。 + + This value should satisfy at least one of the following constraints: + 以下の制約のうち少なくとも1つを満たす必要があります: + + + Each element of this collection should satisfy its own set of constraints. + コレクションの各要素は、それぞれの制約を満たす必要があります。 + + + This value is not a valid International Securities Identification Number (ISIN). + この値は有効な国際証券識別番号(ISIN)ではありません。 + From 1d09b490764263ecfcd89d78ccea87a7f4393af4 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Mon, 26 Oct 2020 11:17:41 +0100 Subject: [PATCH 130/156] Disable platform checks --- .appveyor.yml | 1 - .github/composer-config.json | 1 + .travis.yml | 1 - 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 86ed50c856b37..f0865f311d664 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -64,7 +64,6 @@ install: - php composer.phar config --global platform.php 5.5.9 - php composer.phar update --no-progress --ansi - php phpunit install - - break > .phpunit/phpunit-4.8-0/vendor/composer/platform_check.php test_script: - SET X=0 diff --git a/.github/composer-config.json b/.github/composer-config.json index 185292ab21cea..752047dbb681d 100644 --- a/.github/composer-config.json +++ b/.github/composer-config.json @@ -1,5 +1,6 @@ { "config": { + "platform-check": false, "preferred-install": { "symfony/form": "source", "symfony/http-kernel": "source", diff --git a/.travis.yml b/.travis.yml index 2675fe5f9c2bb..f7704d15bb2c0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -312,7 +312,6 @@ install: tfold src/Symfony/Component/Console.tty $PHPUNIT src/Symfony/Component/Console --group tty if [[ $PHP = ${MIN_PHP%.*} ]]; then export PHP=$MIN_PHP - echo '' > vendor/composer/platform_check.php echo -e "1\\n0" | xargs -I{} bash -c "tfold src/Symfony/Component/Process.sigchild{} SYMFONY_DEPRECATIONS_HELPER=weak ENHANCE_SIGCHLD={} php-$MIN_PHP/sapi/cli/php .phpunit/phpunit-4.8-1/phpunit --colors=always src/Symfony/Component/Process/" fi fi From 929bba668ca23921863ff26c66ec53c1c9dbdced Mon Sep 17 00:00:00 2001 From: Tavo Nieves J Date: Sun, 25 Oct 2020 11:46:36 -0500 Subject: [PATCH 131/156] [Form] Added missing Spanish translations. --- .../Resources/translations/validators.es.xlf | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.es.xlf b/src/Symfony/Component/Form/Resources/translations/validators.es.xlf index b609e53e5600a..c143e009e1938 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.es.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.es.xlf @@ -14,6 +14,126 @@ The CSRF token is invalid. Please try to resubmit the form. El token CSRF no es válido. Por favor, pruebe a enviar nuevamente el formulario. + + This value is not a valid HTML5 color. + Este valor no es un color HTML5 válido. + + + Please enter a valid birthdate. + Por favor, ingrese una fecha de cumpleaños válida. + + + The selected choice is invalid. + La opción seleccionada no es válida. + + + The collection is invalid. + La colección no es válida. + + + Please select a valid color. + Por favor, seleccione un color válido. + + + Please select a valid country. + Por favor, seleccione un país válido. + + + Please select a valid currency. + Por favor, seleccione una moneda válida. + + + Please choose a valid date interval. + Por favor, elija un intervalo de fechas válido. + + + Please enter a valid date and time. + Por favor, ingrese una fecha y hora válidas. + + + Please enter a valid date. + Por favor, ingrese una fecha valida. + + + Please select a valid file. + Por favor, seleccione un archivo válido. + + + The hidden field is invalid. + El campo oculto no es válido. + + + Please enter an integer. + Por favor, ingrese un número entero. + + + Please select a valid language. + Por favor, seleccione un idioma válido. + + + Please select a valid locale. + Por favor, seleccione una configuración regional válida. + + + Please enter a valid money amount. + Por favor, ingrese una cantidad de dinero válida. + + + Please enter a number. + Por favor, ingrese un número. + + + The password is invalid. + La contraseña no es válida. + + + Please enter a percentage value. + Por favor, ingrese un valor porcentual. + + + The values do not match. + Los valores no coinciden. + + + Please enter a valid time. + Por favor, ingrese una hora válida. + + + Please select a valid timezone. + Por favor, seleccione una zona horaria válida. + + + Please enter a valid URL. + Por favor, ingrese una URL válida. + + + Please enter a valid search term. + Por favor, ingrese un término de búsqueda válido. + + + Please provide a valid phone number. + Por favor, proporcione un número de teléfono válido. + + + The checkbox has an invalid value. + La casilla de verificación tiene un valor inválido. + + + Please enter a valid email address. + Por favor, ingrese una dirección de correo electrónico válida. + + + Please select a valid option. + Por favor, seleccione una opción válida. + + + Please select a valid range. + Por favor, seleccione un rango válido. + + + Please enter a valid week. + Por favor, ingrese una semana válida. + From 9de3c41cc7b0a265096434734b6fb16365513100 Mon Sep 17 00:00:00 2001 From: Miro Michalicka Date: Mon, 26 Oct 2020 13:51:19 +0100 Subject: [PATCH 132/156] [Security] Add missing Slovak translations. --- .../Security/Core/Resources/translations/security.sk.xlf | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.sk.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.sk.xlf index e6552a6a0914e..ce259df3fdee4 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.sk.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.sk.xlf @@ -66,6 +66,14 @@ Account is locked. Účet je zablokovaný. + + Too many failed login attempts, please try again later. + Príliš mnoho neúspešných pokusov o prihlásenie. Skúste to prosím znovu neskôr. + + + Invalid or expired login link. + Neplatný alebo expirovaný odkaz na prihlásenie. + From 0abc4b30e39786bf9791dbd9da1f12ceb8c12f92 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Mon, 26 Oct 2020 14:10:06 +0100 Subject: [PATCH 133/156] [travis] Use composer 2 --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index f7704d15bb2c0..09cc2c0a62384 100644 --- a/.travis.yml +++ b/.travis.yml @@ -289,6 +289,7 @@ install: return fi phpenv global ${PHP/hhvm*/hhvm} + composer self-update --2 rm vendor/composer/package-versions-deprecated -Rf if [[ $PHP = 7.* ]]; then ([[ $deps ]] && cd src/Symfony/Component/HttpFoundation; composer config platform.ext-mongodb 1.6.0; composer require --dev --no-update mongodb/mongodb ~1.5.0) From 255f1e3478caf9b8e8dfb843e448074bce594949 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Mon, 26 Oct 2020 17:14:25 +0100 Subject: [PATCH 134/156] [travis] Fix location of composer home --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index f7704d15bb2c0..4eb58a90bfb65 100644 --- a/.travis.yml +++ b/.travis.yml @@ -71,8 +71,7 @@ before_install: stty cols 120 mkdir /tmp/slapd slapd -f src/Symfony/Component/Ldap/Tests/Fixtures/conf/slapd.conf -h ldap://localhost:3389 & - [ -d ~/.composer ] || mkdir ~/.composer - cp .github/composer-config.json ~/.composer/config.json + cp .github/composer-config.json "$(composer config home)/config.json" export PHPUNIT=$(readlink -f ./phpunit) export PHPUNIT_X="$PHPUNIT --exclude-group tty,benchmark,intl-data" export COMPOSER_UP='composer update --no-progress --ansi' From db4658e04453c965420fb03d62bba727a16adef4 Mon Sep 17 00:00:00 2001 From: Vitalii Ekert Date: Mon, 26 Oct 2020 20:23:35 +0200 Subject: [PATCH 135/156] [Form] Add missing translations for Ukrainian (uk) --- .../Resources/translations/validators.uk.xlf | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.uk.xlf b/src/Symfony/Component/Form/Resources/translations/validators.uk.xlf index 4c739face54f8..5c2d9f31ab9de 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.uk.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.uk.xlf @@ -14,6 +14,126 @@ The CSRF token is invalid. Please try to resubmit the form. CSRF значення недопустиме. Будь-ласка, спробуйте відправити форму знову. + + This value is not a valid HTML5 color. + Це значення не є допустимим кольором HTML5. + + + Please enter a valid birthdate. + Будь ласка, введіть дійсну дату народження. + + + The selected choice is invalid. + Обраний варіант недійсний. + + + The collection is invalid. + Колекція недійсна. + + + Please select a valid color. + Будь ласка, оберіть дійсний колір. + + + Please select a valid country. + Будь ласка, оберіть дійсну країну. + + + Please select a valid currency. + Будь ласка, оберіть дійсну валюту. + + + Please choose a valid date interval. + Будь ласка, оберіть дійсний інтервал дати. + + + Please enter a valid date and time. + Будь ласка, введіть дійсну дату та час. + + + Please enter a valid date. + Будь ласка, введіть дійсну дату. + + + Please select a valid file. + Будь ласка, оберіть дійсний файл. + + + The hidden field is invalid. + Приховане поле недійсне. + + + Please enter an integer. + Будь ласка, введіть ціле число. + + + Please select a valid language. + Будь ласка, оберіть дійсну мову. + + + Please select a valid locale. + Будь ласка, оберіть дійсну локаль. + + + Please enter a valid money amount. + Будь ласка, введіть дійсну суму грошей. + + + Please enter a number. + Будь ласка, введіть число. + + + The password is invalid. + Пароль недійсний. + + + Please enter a percentage value. + Будь ласка, введіть процентне значення. + + + The values do not match. + Значення не збігаються. + + + Please enter a valid time. + Будь ласка, введіть дійсний час. + + + Please select a valid timezone. + Будь ласка, оберіть дійсний часовий пояс. + + + Please enter a valid URL. + Будь ласка, введіть дійсну URL-адресу. + + + Please enter a valid search term. + Будь ласка, введіть дійсний пошуковий термін. + + + Please provide a valid phone number. + Будь ласка, введіть дійсний номер телефону. + + + The checkbox has an invalid value. + Прапорець має недійсне значення. + + + Please enter a valid email address. + Будь ласка, введіть дійсну адресу електронної пошти. + + + Please select a valid option. + Будь ласка, оберіть дійсний варіант. + + + Please select a valid range. + Будь ласка, оберіть дійсний діапазон. + + + Please enter a valid week. + Будь ласка, введіть дійсний тиждень. + From 969603b9c7d17f8be23229b8e34c86fdba3a4f90 Mon Sep 17 00:00:00 2001 From: Vitalii Ekert Date: Mon, 26 Oct 2020 20:26:01 +0200 Subject: [PATCH 136/156] [Security] Add missing translations for Ukrainian (uk) --- .../Security/Core/Resources/translations/security.uk.xlf | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.uk.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.uk.xlf index 79721212068db..5cf708f967479 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.uk.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.uk.xlf @@ -66,6 +66,14 @@ Account is locked. Обліковий запис заблоковано. + + Too many failed login attempts, please try again later. + Забагато невдалих спроб входу. Будь ласка, спробуйте пізніше. + + + Invalid or expired login link. + Посилання для входу недійсне, або термін його дії закінчився. + From 8aa7b7235eef64abe4fc7e70ec9efa8f37365994 Mon Sep 17 00:00:00 2001 From: Vitalii Ekert Date: Mon, 26 Oct 2020 20:27:17 +0200 Subject: [PATCH 137/156] [Validator] Add missing translations for Ukrainian (uk) --- .../Validator/Resources/translations/validators.uk.xlf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.uk.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.uk.xlf index 688e11fbe929c..7ea908e75706d 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.uk.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.uk.xlf @@ -382,6 +382,10 @@ Each element of this collection should satisfy its own set of constraints. Кожен елемент цієї колекції повинен задовольняти власному набору обмежень. + + This value is not a valid International Securities Identification Number (ISIN). + Це значення не є дійсним міжнародним ідентифікаційним номером цінних паперів (ISIN). + From 6e386e9c4c275ce7b7c8c069e3d9775ce1b5fe2b Mon Sep 17 00:00:00 2001 From: Vitalii Ekert Date: Mon, 26 Oct 2020 20:31:48 +0200 Subject: [PATCH 138/156] [Form] Fix wrong translations for Ukrainian (uk) --- .../Component/Form/Resources/translations/validators.uk.xlf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.uk.xlf b/src/Symfony/Component/Form/Resources/translations/validators.uk.xlf index 4c739face54f8..ad20fcdfd21d2 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.uk.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.uk.xlf @@ -8,11 +8,11 @@ The uploaded file was too large. Please try to upload a smaller file. - Завантажений файл занадто великий. Будь-ласка, спробуйте завантажити файл меншого розміру. + Завантажений файл занадто великий. Будь ласка, спробуйте завантажити файл меншого розміру. The CSRF token is invalid. Please try to resubmit the form. - CSRF значення недопустиме. Будь-ласка, спробуйте відправити форму знову. + CSRF значення недопустиме. Будь ласка, спробуйте відправити форму знову. From d29cd19a3daed9732acb1b90be56bcf2b4347e46 Mon Sep 17 00:00:00 2001 From: Amirreza Shafaat Date: Mon, 26 Oct 2020 20:24:24 +0330 Subject: [PATCH 139/156] [Form, Security, Validator] Add missing Persian translations (fa_IR) --- .../Resources/translations/validators.fa.xlf | 126 +++++++++++++++++- .../Resources/translations/security.fa.xlf | 8 ++ .../Resources/translations/validators.fa.xlf | 56 ++++++++ 3 files changed, 187 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.fa.xlf b/src/Symfony/Component/Form/Resources/translations/validators.fa.xlf index 1c784c24a0e2d..1bbe090f34472 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.fa.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.fa.xlf @@ -4,15 +4,135 @@ This form should not contain extra fields. - این فرم نباید شامل فیلد اضافه ای باشد. + این فرم نباید شامل فیلدهای اضافی باشد. The uploaded file was too large. Please try to upload a smaller file. - فایل بارگذاری شده بسیار بزرگ می باشد. لطفا فایل کوچکتری را بارگذاری نمایید. + فایل بارگذاری‌شده بسیار بزرگ است. لطفاً فایل کوچک‌تری را بارگذاری نمایید. The CSRF token is invalid. Please try to resubmit the form. - توکن CSRF نامعتبر می باشد. لطفا فرم را مجددا ارسال نمایید. + توکن CSRF نامعتبر است. لطفاً فرم را مجدداً ارسال نمایید. + + + This value is not a valid HTML5 color. + این مقدار یک رنگ معتبر HTML5 نیست. + + + Please enter a valid birthdate. + لطفاً یک تاریخ تولد معتبر وارد نمایید. + + + The selected choice is invalid. + گزینه‌ی انتخاب‌شده نامعتبر است + + + The collection is invalid. + این مجموعه نامعتبر است. + + + Please select a valid color. + لطفاً یک رنگ معتبر انتخاب کنید. + + + Please select a valid country. + لطفاً یک کشور معتبر انتخاب کنید. + + + Please select a valid currency. + لطفاً یک واحد پولی معتبر انتخاب کنید. + + + Please choose a valid date interval. + لطفاً یک بازه‌ی زمانی معتبر انتخاب کنید. + + + Please enter a valid date and time. + لطفاً یک تاریخ و زمان معتبر وارد کنید. + + + Please enter a valid date. + لطفاً یک تاریخ معتبر وارد کنید. + + + Please select a valid file. + لطفاً یک فایل معتبر انتخاب کنید. + + + The hidden field is invalid. + فیلد مخفی نامعتبر است. + + + Please enter an integer. + لطفاً یک عدد صحیح وارد کنید. + + + Please select a valid language. + لطفاً یک زبان معتبر انتخاب کنید. + + + Please select a valid locale. + لطفاً یک جغرافیای (locale) معتبر انتخاب کنید. + + + Please enter a valid money amount. + لطفاً یک مقدار پول معتبر وارد کنید. + + + Please enter a number. + لطفاً یک عدد وارد کنید. + + + The password is invalid. + رمزعبور نامعتبر است. + + + Please enter a percentage value. + لطفاً یک درصد معتبر وارد کنید. + + + The values do not match. + مقادیر تطابق ندارند. + + + Please enter a valid time. + لطفاً یک زمان معتبر وارد کنید. + + + Please select a valid timezone. + لطفاً یک منطقه‌زمانی معتبر وارد کنید. + + + Please enter a valid URL. + لطفاً یک URL معتبر وارد کنید. + + + Please enter a valid search term. + لطفاً یک عبارت جستجوی معتبر وارد کنید. + + + Please provide a valid phone number. + لطفاً یک شماره تلفن معتبر وارد کنید. + + + The checkbox has an invalid value. + کادر انتخاب (checkbox) دارای مقداری نامعتبر است. + + + Please enter a valid email address. + لطفاً یک آدرس رایانامه‌ی معتبر وارد کنید. + + + Please select a valid option. + لطفاً یک گزینه‌ی معتبر انتخاب کنید. + + + Please select a valid range. + لطفاً یک محدوده‌ی معتبر انتخاب کنید. + + + Please enter a valid week. + لطفاً یک هفته‌ی معتبر وارد کنید. diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.fa.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.fa.xlf index b461e3fe4da7b..467d481b65e18 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.fa.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.fa.xlf @@ -66,6 +66,14 @@ Account is locked. حساب کاربری قفل گردیده است. + + Too many failed login attempts, please try again later. + تلاش‌های ناموفق زیادی برای ورود صورت گرفته است، لطفاً بعداً دوباره تلاش کنید. + + + Invalid or expired login link. + لینک ورود نامعتبر یا تاریخ‌گذشته است. + diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.fa.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.fa.xlf index c0b42096b5bd7..688f394eab404 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.fa.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.fa.xlf @@ -330,6 +330,62 @@ This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}. این(BIC) با IBAN ارتباطی ندارد. + + This value should be valid JSON. + این مقدار باید یک JSON معتبر باشد. + + + This collection should contain only unique elements. + این مجموعه باید تنها شامل عناصر یکتا باشد. + + + This value should be positive. + این مقدار باید مثبت باشد. + + + This value should be either positive or zero. + این مقدار باید مثبت یا صفر باشد. + + + This value should be negative. + این مقدار باید منفی باشد. + + + This value should be either negative or zero. + این مقدار باید منفی یا صفر باشد. + + + This value is not a valid timezone. + این مقدار یک منطقه‌زمانی (timezone) معتبر نیست. + + + This password has been leaked in a data breach, it must not be used. Please use another password. + این رمزعبور در یک رخنه‌ی اطلاعاتی نشت کرده است. لطفاً از یک رمزعبور دیگر استفاده کنید. + + + This value should be between {{ min }} and {{ max }}. + این مقدار باید بین {{ min }} و {{ max }} باشد + + + This value is not a valid hostname. + این مقدار یک hostname معتبر نیست. + + + The number of elements in this collection should be a multiple of {{ compared_value }}. + تعداد عناصر این مجموعه باید ضریبی از {{ compared_value }} باشد. + + + This value should satisfy at least one of the following constraints: + این مقدار باید حداقل یکی از محدودیت‌های زیر را ارضا کند: + + + Each element of this collection should satisfy its own set of constraints. + هر یک از عناصر این مجموعه باید دسته محدودیت‌های خودش را ارضا کند. + + + This value is not a valid International Securities Identification Number (ISIN). + این مقدار یک شماره شناسایی بین‌المللی اوراق بهادار (ISIN) معتبر نیست. + From 7b91af855a069f240e3f0852ca2cafabec68b0ac Mon Sep 17 00:00:00 2001 From: Miro Michalicka Date: Mon, 26 Oct 2020 14:05:07 +0100 Subject: [PATCH 140/156] [Validator] Add missing Slovak translations. --- .../Resources/translations/validators.sk.xlf | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.sk.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.sk.xlf index a161ddbfe8845..a0c55ea6db146 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.sk.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.sk.xlf @@ -366,6 +366,26 @@ This value should be between {{ min }} and {{ max }}. Táto hodnota by mala byť medzi {{ min }} a {{ max }}. + + This value is not a valid hostname. + Táto hodnota nie je platný hostname. + + + The number of elements in this collection should be a multiple of {{ compared_value }}. + Počet prvkov v tejto kolekcii musí byť násobok {{ compared_value }}. + + + This value should satisfy at least one of the following constraints: + Táto hodnota musí spĺňať aspoň jedno z nasledujúcich obmedzení: + + + Each element of this collection should satisfy its own set of constraints. + Každý prvok v tejto kolekcii musí spĺňať svoje vlastné obmedzenia. + + + This value is not a valid International Securities Identification Number (ISIN). + Táto hodnota nie je platné medzinárodné označenie cenného papiera (ISIN). + From 676b8080a5312bd8296b318e67c1ab6b40315f86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Deruss=C3=A9?= Date: Sun, 25 Oct 2020 20:35:54 +0100 Subject: [PATCH 141/156] Fix transient tests --- .../Tests/Transport/AmqpExt/AmqpExtIntegrationTest.php | 3 +++ .../Component/VarDumper/Tests/Dumper/ServerDumperTest.php | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Messenger/Tests/Transport/AmqpExt/AmqpExtIntegrationTest.php b/src/Symfony/Component/Messenger/Tests/Transport/AmqpExt/AmqpExtIntegrationTest.php index 582b62501f323..b1d1df2fc317a 100644 --- a/src/Symfony/Component/Messenger/Tests/Transport/AmqpExt/AmqpExtIntegrationTest.php +++ b/src/Symfony/Component/Messenger/Tests/Transport/AmqpExt/AmqpExtIntegrationTest.php @@ -161,6 +161,9 @@ public function testItReceivesSignals() $signalTime = microtime(true); $timedOutTime = time() + 10; + // wait for worker started and registered the signal handler + usleep(100 * 1000); // 100ms + // immediately after the process has started "booted", kill it $process->signal(15); diff --git a/src/Symfony/Component/VarDumper/Tests/Dumper/ServerDumperTest.php b/src/Symfony/Component/VarDumper/Tests/Dumper/ServerDumperTest.php index c52ec191d8b87..6999809fa97c6 100644 --- a/src/Symfony/Component/VarDumper/Tests/Dumper/ServerDumperTest.php +++ b/src/Symfony/Component/VarDumper/Tests/Dumper/ServerDumperTest.php @@ -89,6 +89,6 @@ private function getServerProcess(): Process 'VAR_DUMPER_SERVER' => self::VAR_DUMPER_SERVER, ]); - return $process->setTimeout(9); + return $process->setTimeout('\\' === \DIRECTORY_SEPARATOR ? 19 : 9); } } From 7cf4ca6f8398296551065d8ccf328709e18abd0e Mon Sep 17 00:00:00 2001 From: Johan Date: Sun, 25 Oct 2020 20:02:01 +0100 Subject: [PATCH 142/156] 38737 add missing dutch translation --- .../Security/Core/Resources/translations/security.nl.xlf | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.nl.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.nl.xlf index 8969e9ef8ca69..b002c75e6590d 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.nl.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.nl.xlf @@ -66,6 +66,14 @@ Account is locked. Account is geblokkeerd. + + Too many failed login attempts, please try again later. + Te veel onjuiste inlogpogingen, probeer het later nogmaals. + + + Invalid or expired login link. + Ongeldige of verlopen inloglink. + From 8cf60c4ab78e6450af04d92973da2bba83b5db43 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 27 Oct 2020 09:50:57 +0100 Subject: [PATCH 143/156] [ProxyManager] use "composer/package-versions-deprecated" instead of "ocramius/package-versions" --- src/Symfony/Bridge/ProxyManager/composer.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Symfony/Bridge/ProxyManager/composer.json b/src/Symfony/Bridge/ProxyManager/composer.json index 1c33be86ca084..b34def8465dd2 100644 --- a/src/Symfony/Bridge/ProxyManager/composer.json +++ b/src/Symfony/Bridge/ProxyManager/composer.json @@ -17,6 +17,7 @@ ], "require": { "php": ">=7.1.3", + "composer/package-versions-deprecated": "^1.8", "symfony/dependency-injection": "^4.0|^5.0", "ocramius/proxy-manager": "~2.1" }, From 25a7333e62da52ba5ef2f747f7c2a57db448affa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Deruss=C3=A9?= Date: Mon, 26 Oct 2020 15:36:43 +0100 Subject: [PATCH 144/156] Display php info for extra versions in travis --- .travis.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f7704d15bb2c0..be425e45fd54a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -174,6 +174,8 @@ before_install: for PHP in $TRAVIS_PHP_VERSION $php_extra; do export PHP=$PHP phpenv global $PHP + composer self-update + composer self-update --2 INI=~/.phpenv/versions/$PHP/etc/conf.d/travis.ini if [[ $PHP = 5.* ]]; then tfold ext.apcu tpecl apcu-4.0.11 apcu.so $INI @@ -278,7 +280,16 @@ install: - | # phpinfo - php -i + phpinfo() { + phpenv global $1 + php -r 'foreach (get_loaded_extensions() as $extension) echo $extension . " " . phpversion($extension) . PHP_EOL;' + php -i + } + export -f phpinfo + + for PHP in $TRAVIS_PHP_VERSION $php_extra; do + tfold $PHP phpinfo $PHP + done - | run_tests () { From 9facb1a11a2564f04f0ab97bdefb45e67eb02015 Mon Sep 17 00:00:00 2001 From: Ahmed Eben Hassine Date: Mon, 26 Oct 2020 20:40:26 +0100 Subject: [PATCH 145/156] [Form, Security, Validator] Add missing Turkish translations (tr) --- .../Resources/translations/validators.tr.xlf | 120 ++++++++++++++++++ .../Resources/translations/security.tr.xlf | 8 ++ .../Resources/translations/validators.tr.xlf | 56 ++++++++ 3 files changed, 184 insertions(+) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.tr.xlf b/src/Symfony/Component/Form/Resources/translations/validators.tr.xlf index 70e8541ed909c..d1ddc1d0ef33d 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.tr.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.tr.xlf @@ -14,6 +14,126 @@ The CSRF token is invalid. Please try to resubmit the form. CSRF fişi geçersiz. Formu tekrar göndermeyi deneyin. + + This value is not a valid HTML5 color. + Bu değer, geçerli bir HTML5 rengi değil. + + + Please enter a valid birthdate. + Lütfen geçerli bir doğum tarihi girin. + + + The selected choice is invalid. + Seçilen seçim geçersiz. + + + The collection is invalid. + Koleksiyon geçersiz. + + + Please select a valid color. + Lütfen geçerli bir renk seçin. + + + Please select a valid country. + Lütfen geçerli bir ülke seçin. + + + Please select a valid currency. + Lütfen geçerli bir para birimi seçin. + + + Please choose a valid date interval. + Lütfen geçerli bir tarih aralığı seçin. + + + Please enter a valid date and time. + Lütfen geçerli bir tarih ve saat girin. + + + Please enter a valid date. + Lütfen geçerli bir tarih giriniz. + + + Please select a valid file. + Lütfen geçerli bir dosya seçin. + + + The hidden field is invalid. + Gizli alan geçersiz. + + + Please enter an integer. + Lütfen bir tam sayı girin. + + + Please select a valid language. + Lütfen geçerli bir dil seçin. + + + Please select a valid locale. + Lütfen geçerli bir yerel ayar seçin. + + + Please enter a valid money amount. + Lütfen geçerli bir para tutarı girin. + + + Please enter a number. + Lütfen bir numara giriniz. + + + The password is invalid. + Şifre geçersiz. + + + Please enter a percentage value. + Lütfen bir yüzde değeri girin. + + + The values do not match. + Değerler eşleşmiyor. + + + Please enter a valid time. + Lütfen geçerli bir zaman girin. + + + Please select a valid timezone. + Lütfen geçerli bir saat dilimi seçin. + + + Please enter a valid URL. + Lütfen geçerli bir giriniz URL. + + + Please enter a valid search term. + Lütfen geçerli bir arama terimi girin. + + + Please provide a valid phone number. + lütfen geçerli bir telefon numarası sağlayın. + + + The checkbox has an invalid value. + Onay kutusunda geçersiz bir değer var. + + + Please enter a valid email address. + Lütfen geçerli bir e-posta adresi girin. + + + Please select a valid option. + Lütfen geçerli bir seçenek seçin. + + + Please select a valid range. + Lütfen geçerli bir aralık seçin. + + + Please enter a valid week. + Lütfen geçerli bir hafta girin. + diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.tr.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.tr.xlf index 68c44213d18c3..3854590cc1e49 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.tr.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.tr.xlf @@ -66,6 +66,14 @@ Account is locked. Hesap kilitlenmiş. + + Too many failed login attempts, please try again later. + Çok fazla başarısız giriş denemesi, lütfen daha sonra tekrar deneyin. + + + Invalid or expired login link. + Geçersiz veya süresi dolmuş oturum açma bağlantısı. + diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.tr.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.tr.xlf index 76de2214e6bcb..6c39fac818238 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.tr.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.tr.xlf @@ -330,6 +330,62 @@ This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}. Bu İşletme Tanımlayıcı Kodu (BIC), IBAN {{ iban }} ile ilişkili değildir. + + This value should be valid JSON. + Bu değer için geçerli olmalıdır JSON. + + + This collection should contain only unique elements. + Bu grup yalnızca benzersiz öğeler içermelidir. + + + This value should be positive. + Bu değer pozitif olmalı. + + + This value should be either positive or zero. + Bu değer pozitif veya sıfır olmalıdır. + + + This value should be negative. + Bu değer negatif olmalıdır. + + + This value should be either negative or zero. + Bu değer, negatif veya sıfır olmalıdır. + + + This value is not a valid timezone. + Bu değer, geçerli bir saat dilimi değil. + + + This password has been leaked in a data breach, it must not be used. Please use another password. + Bu parola, bir veri ihlali nedeniyle sızdırılmıştır ve kullanılmamalıdır. Lütfen başka bir şifre kullanın. + + + This value should be between {{ min }} and {{ max }}. + Bu değer arasında olmalıdır {{ min }} ve {{ max }}. + + + This value is not a valid hostname. + Bu değer, geçerli bir ana bilgisayar adı değil. + + + The number of elements in this collection should be a multiple of {{ compared_value }}. + Bu gruptaki öğe sayısı birden fazla olmalıdır {{ compared_value }}. + + + This value should satisfy at least one of the following constraints: + Bu değer aşağıdaki kısıtlamalardan birini karşılamalıdır: + + + Each element of this collection should satisfy its own set of constraints. + Bu gruptaki her öğe kendi kısıtlamalarını karşılamalıdır. + + + This value is not a valid International Securities Identification Number (ISIN). + Bu değer geçerli bir Uluslararası Menkul Kıymetler Kimlik Numarası değil (ISIN). + From bde427a3033849b49f0fc5ce5fd360224b7e0347 Mon Sep 17 00:00:00 2001 From: Albion Bame Date: Mon, 26 Oct 2020 20:44:18 +0100 Subject: [PATCH 146/156] [Translation] added missing Albanian translations --- .../Resources/translations/validators.sq.xlf | 139 ++++++++++++++++++ .../Resources/translations/security.sq.xlf | 79 ++++++++++ .../Resources/translations/validators.sq.xlf | 56 +++++++ 3 files changed, 274 insertions(+) create mode 100644 src/Symfony/Component/Form/Resources/translations/validators.sq.xlf create mode 100644 src/Symfony/Component/Security/Core/Resources/translations/security.sq.xlf diff --git a/src/Symfony/Component/Form/Resources/translations/validators.sq.xlf b/src/Symfony/Component/Form/Resources/translations/validators.sq.xlf new file mode 100644 index 0000000000000..3224f6e38ad0a --- /dev/null +++ b/src/Symfony/Component/Form/Resources/translations/validators.sq.xlf @@ -0,0 +1,139 @@ + + + + + + This form should not contain extra fields. + Kjo formë nuk duhet të përmbajë fusha shtesë. + + + The uploaded file was too large. Please try to upload a smaller file. + Skedari i ngarkuar ishte shumë i madh. Ju lutemi provoni të ngarkoni një skedar më të vogël. + + + The CSRF token is invalid. Please try to resubmit the form. + Vlera CSRF është e pavlefshme. Ju lutemi provoni të ridërgoni formën. + + + This value is not a valid HTML5 color. + Kjo vlerë nuk është një ngjyrë e vlefshme HTML5. + + + Please enter a valid birthdate. + Ju lutemi shkruani një datëlindje të vlefshme. + + + The selected choice is invalid. + Opsioni i zgjedhur është i pavlefshëm. + + + The collection is invalid. + Koleksioni është i pavlefshëm. + + + Please select a valid color. + Ju lutemi zgjidhni një ngjyrë të vlefshme. + + + Please select a valid country. + Ju lutemi zgjidhni një shtet të vlefshëm. + + + Please select a valid currency. + Ju lutemi zgjidhni një monedhë të vlefshme. + + + Please choose a valid date interval. + Ju lutemi zgjidhni një interval të vlefshëm të datës. + + + Please enter a valid date and time. + Ju lutemi shkruani një datë dhe orë të vlefshme. + + + Please enter a valid date. + Ju lutemi shkruani një datë të vlefshme. + + + Please select a valid file. + Ju lutemi zgjidhni një skedar të vlefshëm. + + + The hidden field is invalid. + Fusha e fshehur është e pavlefshme. + + + Please enter an integer. + Ju lutemi shkruani një numër të plotë. + + + Please select a valid language. + Please select a valid language. + + + Please select a valid locale. + Ju lutemi zgjidhni një lokale të vlefshme. + + + Please enter a valid money amount. + Ju lutemi shkruani një shumë të vlefshme parash. + + + Please enter a number. + Ju lutemi shkruani një numër. + + + The password is invalid. + Fjalëkalimi është i pavlefshëm. + + + Please enter a percentage value. + Ju lutemi shkruani një vlerë përqindjeje. + + + The values do not match. + Vlerat nuk përputhen. + + + Please enter a valid time. + Ju lutemi shkruani një kohë të vlefshme. + + + Please select a valid timezone. + Ju lutemi zgjidhni një zonë kohore të vlefshme. + + + Please enter a valid URL. + Ju lutemi shkruani një URL të vlefshme. + + + Please enter a valid search term. + Ju lutemi shkruani një term të vlefshëm kërkimi. + + + Please provide a valid phone number. + Ju lutemi jepni një numër telefoni të vlefshëm. + + + The checkbox has an invalid value. + Kutia e zgjedhjes ka një vlerë të pavlefshme. + + + Please enter a valid email address. + Ju lutemi shkruani një adresë të vlefshme emaili. + + + Please select a valid option. + Ju lutemi zgjidhni një opsion të vlefshëm. + + + Please select a valid range. + Ju lutemi zgjidhni një diapazon të vlefshëm. + + + Please enter a valid week. + Ju lutemi shkruani një javë të vlefshme. + + + + diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.sq.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.sq.xlf new file mode 100644 index 0000000000000..4f4bc6d4cbc61 --- /dev/null +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.sq.xlf @@ -0,0 +1,79 @@ + + + + + + An authentication exception occurred. + Ndodhi një problem në autentikim. + + + Authentication credentials could not be found. + Kredencialet e autentikimit nuk mund të gjendeshin. + + + Authentication request could not be processed due to a system problem. + Kërkesa për autentikim nuk mund të përpunohej për shkak të një problemi në sistem. + + + Invalid credentials. + Kredenciale të pavlefshme. + + + Cookie has already been used by someone else. + Cookie është përdorur tashmë nga dikush tjetër. + + + Not privileged to request the resource. + Nuk është i privilegjuar të kërkojë burimin. + + + Invalid CSRF token. + Identifikues i pavlefshëm CSRF. + + + Digest nonce has expired. + Numeri një perdorimësh i verifikimit Digest ka skaduar. + + + No authentication provider found to support the authentication token. + Asnjë ofrues i vërtetimit nuk u gjet që të mbështesë simbolin e vërtetimit. + + + No session available, it either timed out or cookies are not enabled. + Nuk ka asnjë sesion të vlefshëm, i ka skaduar koha ose cookies nuk janë aktivizuar. + + + No token could be found. + Asnjë simbol identifikimi nuk mund të gjendej. + + + Username could not be found. + Emri i përdoruesit nuk mund të gjendej. + + + Account has expired. + Llogaria ka skaduar. + + + Credentials have expired. + Kredencialet kanë skaduar. + + + Account is disabled. + Llogaria është çaktivizuar. + + + Account is locked. + Llogaria është e kyçur. + + + Too many failed login attempts, please try again later. + Shumë përpjekje të dështuara autentikimi, provo përsëri më vonë. + + + Invalid or expired login link. + Link hyrje i pavlefshëm ose i skaduar. + + + + diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.sq.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.sq.xlf index 569ebca47f02e..6c0acb9fdf43f 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.sq.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.sq.xlf @@ -330,6 +330,62 @@ This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}. Ky Kod Identifikues i Biznesit (BIC) nuk është i lidhur me IBAN {{ iban }}. + + This value should be valid JSON. + Kjo vlerë duhet të jetë JSON i vlefshëm. + + + This collection should contain only unique elements. + Ky koleksion duhet të përmbajë vetëm elementë unikë. + + + This value should be positive. + Kjo vlerë duhet të jetë pozitive. + + + This value should be either positive or zero. + Kjo vlerë duhet të jetë pozitive ose zero. + + + This value should be negative. + Kjo vlerë duhet të jetë negative. + + + This value should be either negative or zero. + Kjo vlerë duhet të jetë negative ose zero. + + + This value is not a valid timezone. + Kjo vlerë nuk është një zonë e vlefshme kohore. + + + This password has been leaked in a data breach, it must not be used. Please use another password. + Ky fjalëkalim është zbuluar në një shkelje të të dhënave, nuk duhet të përdoret. Ju lutemi përdorni një fjalëkalim tjetër. + + + This value should be between {{ min }} and {{ max }}. + Kjo vlerë duhet të jetë ndërmjet {{ min }} dhe {{ max }}. + + + This value is not a valid hostname. + Kjo vlerë nuk është një emër i vlefshëm hosti. + + + The number of elements in this collection should be a multiple of {{ compared_value }}. + Numri i elementeve në këtë koleksion duhet të jetë një shumëfish i {{ compared_value }}. + + + This value should satisfy at least one of the following constraints: + Kjo vlerë duhet të plotësojë të paktën njërën nga kufizimet e mëposhtme: + + + Each element of this collection should satisfy its own set of constraints. + Secili element i këtij koleksioni duhet të përmbushë kufizimet e veta. + + + This value is not a valid International Securities Identification Number (ISIN). + Kjo vlerë nuk është një numër i vlefshëm identifikues ndërkombëtar i sigurisë (ISIN). + From b6ae4858b91342f0b3186f0885d60a7540138bf3 Mon Sep 17 00:00:00 2001 From: Randy Geraads Date: Sun, 25 Oct 2020 12:15:32 +0100 Subject: [PATCH 147/156] [DI] Fix Preloader exception when preloading a class with an unknown parent/interface --- .../DependencyInjection/Dumper/Preloader.php | 2 +- .../Tests/Dumper/PreloaderTest.php | 14 ++++++++++++++ .../Fixtures/Preload/DummyWithInterface.php | 16 ++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/DummyWithInterface.php diff --git a/src/Symfony/Component/DependencyInjection/Dumper/Preloader.php b/src/Symfony/Component/DependencyInjection/Dumper/Preloader.php index 1e0b6919fd1fe..125a555fdaf7d 100644 --- a/src/Symfony/Component/DependencyInjection/Dumper/Preloader.php +++ b/src/Symfony/Component/DependencyInjection/Dumper/Preloader.php @@ -87,7 +87,7 @@ private static function doPreload(string $class, array &$preloaded): void self::preloadType($m->getReturnType(), $preloaded); } - } catch (\ReflectionException $e) { + } catch (\Throwable $e) { // ignore missing classes } } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Dumper/PreloaderTest.php b/src/Symfony/Component/DependencyInjection/Tests/Dumper/PreloaderTest.php index a9b3242031537..ff70bb75ea08c 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Dumper/PreloaderTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Dumper/PreloaderTest.php @@ -34,6 +34,20 @@ public function testPreload() self::assertTrue(class_exists('Symfony\Component\DependencyInjection\Tests\Fixtures\Preload\C', false)); } + /** + * @requires PHP 7.4 + */ + public function testPreloadSkipsNonExistingInterface() + { + $r = new \ReflectionMethod(Preloader::class, 'doPreload'); + $r->setAccessible(true); + + $preloaded = []; + + $r->invokeArgs(null, ['Symfony\Component\DependencyInjection\Tests\Fixtures\Preload\DummyWithInterface', &$preloaded]); + self::assertFalse(class_exists('Symfony\Component\DependencyInjection\Tests\Fixtures\Preload\DummyWithInterface', false)); + } + /** * @requires PHP 8 */ diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/DummyWithInterface.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/DummyWithInterface.php new file mode 100644 index 0000000000000..1c1b0d20addd4 --- /dev/null +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Preload/DummyWithInterface.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\DependencyInjection\Tests\Fixtures\Preload; + +final class DummyWithInterface implements \NonExistentDummyInterface +{ +} From 4b36736e91700aa4238920b56af42edbfebe081a Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 27 Oct 2020 11:05:03 +0100 Subject: [PATCH 148/156] minor #38838 [ProxyManager] use "composer/package-versions-deprecated" instead of "ocramius/package-versions" (nicolas-grekas) This PR was merged into the 4.4 branch. Discussion ---------- [ProxyManager] use "composer/package-versions-deprecated" instead of "ocramius/package-versions" | Q | A | ------------- | --- | Branch? | 4.4 | Bug fix? | no | New feature? | no | Deprecations? | no | Tickets | - | License | MIT | Doc PR | - As highlighted by our CI, `ocramius/proxy-manager` cannot be installed on PHP 7.3 using composer 2 because of broken versioning policies: ![image](https://user-images.githubusercontent.com/243674/97278564-37e73080-183a-11eb-885c-7b3cc07c26af.png) Fortunately, the package that causes all this mess (`ocramius/package-versions`) has been forked precisely to work around these broken policies. Requiring this fork allows resolving the dependencies properly. Commits ------- 8cf60c4ab7 [ProxyManager] use "composer/package-versions-deprecated" instead of "ocramius/package-versions" --- src/Symfony/Bridge/ProxyManager/composer.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Symfony/Bridge/ProxyManager/composer.json b/src/Symfony/Bridge/ProxyManager/composer.json index 09c390db09030..492a1e1df6fe1 100644 --- a/src/Symfony/Bridge/ProxyManager/composer.json +++ b/src/Symfony/Bridge/ProxyManager/composer.json @@ -17,6 +17,7 @@ ], "require": { "php": "^5.5.9|>=7.0.8", + "composer/package-versions-deprecated": "^1.8", "symfony/dependency-injection": "~3.4|~4.0", "ocramius/proxy-manager": "~0.4|~1.0|~2.0" }, From de01eeae0337997eec5c45e5452fba763a3d68c3 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 27 Oct 2020 13:25:07 +0100 Subject: [PATCH 149/156] Fix CI --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index dd70410cc0c2c..fa9e74188ca1c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -287,7 +287,7 @@ install: export -f phpinfo for PHP in $TRAVIS_PHP_VERSION $php_extra; do - tfold $PHP phpinfo $PHP + tfold phpinfo phpinfo $PHP done - | @@ -299,7 +299,6 @@ install: return fi phpenv global ${PHP/hhvm*/hhvm} - composer self-update --2 rm vendor/composer/package-versions-deprecated -Rf if [[ $PHP = 7.* ]]; then ([[ $deps ]] && cd src/Symfony/Component/HttpFoundation; composer config platform.ext-mongodb 1.6.0; composer require --dev --no-update mongodb/mongodb ~1.5.0) From 57c986a441661410c4d46b6e4543a342109b9052 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 27 Oct 2020 14:17:00 +0100 Subject: [PATCH 150/156] Fix CI --- .github/patch-types.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/patch-types.php b/.github/patch-types.php index 46c6980dab4a2..311e9e7ee40b4 100644 --- a/.github/patch-types.php +++ b/.github/patch-types.php @@ -5,7 +5,7 @@ exit(1); } -require __DIR__.'/../.phpunit/phpunit-8.3-0/vendor/autoload.php'; +require __DIR__.'/../.phpunit/phpunit/vendor/autoload.php'; file_put_contents(__DIR__.'/../vendor/autoload.php', preg_replace('/^return (Composer.*);/m', <<<'EOTXT' $loader = \1; From 7af4fe989ab2a140f9f81e067164bf4bba43d4ca Mon Sep 17 00:00:00 2001 From: Nyholm Date: Tue, 27 Oct 2020 15:11:24 +0100 Subject: [PATCH 151/156] [Form] Some minor teaks for Swedish --- .../Form/Resources/translations/validators.sv.xlf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.sv.xlf b/src/Symfony/Component/Form/Resources/translations/validators.sv.xlf index dff88e98f1041..43e925628a488 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.sv.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.sv.xlf @@ -48,11 +48,11 @@ Please enter a valid date and time. - Ange datum och tid. + Ange ett giltigt datum och tid. Please enter a valid date. - Ange ett datum. + Ange ett giltigt datum. Please select a valid file. @@ -100,7 +100,7 @@ Please select a valid timezone. - Välj tidszon. + Välj en tidszon. Please enter a valid URL. @@ -132,7 +132,7 @@ Please enter a valid week. - Ange en vecka. + Ange en giltig vecka. From 92e0b3c9b26da40b1aacea26e678a82e9de91ab0 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 27 Oct 2020 14:09:15 +0100 Subject: [PATCH 152/156] Fix CI for 3.4 --- .travis.yml | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/.travis.yml b/.travis.yml index fa9e74188ca1c..8a02ce10d5e13 100644 --- a/.travis.yml +++ b/.travis.yml @@ -78,14 +78,6 @@ before_install: export COMPONENTS=$(find src/Symfony -mindepth 2 -type f -name phpunit.xml.dist -printf '%h\n' | sort) find ~/.phpenv -name xdebug.ini -delete - if [[ $TRAVIS_PHP_VERSION = 5.* ]]; then - composer () { - $HOME/.phpenv/versions/7.1/bin/php $HOME/.phpenv/versions/7.1/bin/composer config platform.php $(echo ' =$SYMFONY_VERSION" fi - composer global require --no-progress --no-scripts --no-plugins symfony/flex + if [[ ! $TRAVIS_PHP_VERSION = 5.* ]]; then + composer global require --no-progress --no-scripts --no-plugins symfony/flex + 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 @@ -304,11 +298,7 @@ install: ([[ $deps ]] && cd src/Symfony/Component/HttpFoundation; composer config platform.ext-mongodb 1.6.0; composer require --dev --no-update mongodb/mongodb ~1.5.0) fi tfold 'composer update' $COMPOSER_UP - if [[ $TRAVIS_PHP_VERSION = 5.* ]]; then - tfold 'phpunit install' 'composer global remove symfony/flex && ./phpunit install && composer global require --no-progress --no-scripts --no-plugins symfony/flex' - else - tfold 'phpunit install' ./phpunit install - fi + tfold 'phpunit install' ./phpunit install if [[ $deps = high ]]; then echo "$COMPONENTS" | parallel --gnu "tfold {} 'cd {} && $COMPOSER_UP && $PHPUNIT_X$LEGACY'" elif [[ $deps = low ]]; then From 952df248d02d9005907430bee885b777154e7f40 Mon Sep 17 00:00:00 2001 From: fd6130 Date: Wed, 28 Oct 2020 01:54:07 +0800 Subject: [PATCH 153/156] Missing translations for Chinese (zh_CN) #38732 --- .../translations/validators.zh_CN.xlf | 120 ++++++++++++++++++ .../Resources/translations/security.zh_CN.xlf | 8 ++ .../translations/validators.zh_CN.xlf | 52 ++++++++ 3 files changed, 180 insertions(+) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.zh_CN.xlf b/src/Symfony/Component/Form/Resources/translations/validators.zh_CN.xlf index 8bdf7fb5ca0bc..3106db2bd97b7 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.zh_CN.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.zh_CN.xlf @@ -14,6 +14,126 @@ The CSRF token is invalid. Please try to resubmit the form. CSRF 验证符无效, 请重新提交. + + This value is not a valid HTML5 color. + 该数值不是个有效的 HTML5 颜色。 + + + Please enter a valid birthdate. + 请输入有效的生日日期。 + + + The selected choice is invalid. + 所选的选项无效。 + + + The collection is invalid. + 集合无效。 + + + Please select a valid color. + 请选择有效的颜色。 + + + Please select a valid country. + 请选择有效的国家。 + + + Please select a valid currency. + 请选择有效的货币。 + + + Please choose a valid date interval. + 请选择有效的日期间隔。 + + + Please enter a valid date and time. + 请输入有效的日期与时间。 + + + Please enter a valid date. + 请输入有效的日期。 + + + Please select a valid file. + 请选择有效的文件。 + + + The hidden field is invalid. + 隐藏字段无效。 + + + Please enter an integer. + 请输入整数。 + + + Please select a valid language. + 请选择有效的语言。 + + + Please select a valid locale. + 请选择有效的语言环境。 + + + Please enter a valid money amount. + 请输入正确的金额。 + + + Please enter a number. + 请输入数字。 + + + The password is invalid. + 密码无效。 + + + Please enter a percentage value. + 请输入百分比值。 + + + The values do not match. + 数值不匹配。 + + + Please enter a valid time. + 请输入有效的时间。 + + + Please select a valid timezone. + 请选择有效的时区。 + + + Please enter a valid URL. + 请输入有效的网址。 + + + Please enter a valid search term. + 请输入有效的搜索词。 + + + Please provide a valid phone number. + 请提供有效的手机号码。 + + + The checkbox has an invalid value. + 无效的选框值。 + + + Please enter a valid email address. + 请输入有效的电子邮件地址。 + + + Please select a valid option. + 请选择有效的选项。 + + + Please select a valid range. + 请选择有效的范围。 + + + Please enter a valid week. + 请输入有效的星期。 + diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.zh_CN.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.zh_CN.xlf index 2d6affecec2cc..f8a77f8d1e42d 100644 --- a/src/Symfony/Component/Security/Core/Resources/translations/security.zh_CN.xlf +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.zh_CN.xlf @@ -66,6 +66,14 @@ Account is locked. 帐号已被锁定。 + + Too many failed login attempts, please try again later. + 登入失败的次数过多,请稍后再试。 + + + Invalid or expired login link. + 失效或过期的登入链接。 + diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.zh_CN.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.zh_CN.xlf index 3c2f25c0f7bbc..43ac9143bb963 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.zh_CN.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.zh_CN.xlf @@ -334,6 +334,58 @@ This value should be valid JSON. 该值应该是有效的JSON。 + + This collection should contain only unique elements. + 该集合应仅包含独一无二的元素。 + + + This value should be positive. + 数值应为正数。 + + + This value should be either positive or zero. + 数值应是正数,或为零。 + + + This value should be negative. + 数值应为负数。 + + + This value should be either negative or zero. + 数值应是负数,或为零。 + + + This value is not a valid timezone. + 无效时区。 + + + This password has been leaked in a data breach, it must not be used. Please use another password. + 此密码已被泄露,切勿使用。请更换密码。 + + + This value should be between {{ min }} and {{ max }}. + 该数值应在 {{ min }} 和 {{ max }} 之间。 + + + This value is not a valid hostname. + 该数值不是有效的主机名称。 + + + The number of elements in this collection should be a multiple of {{ compared_value }}. + 该集合内的元素数量得是 {{ compared_value }} 的倍数。 + + + This value should satisfy at least one of the following constraints: + 该数值需符合以下其中一个约束: + + + Each element of this collection should satisfy its own set of constraints. + 该集合内的每个元素需符合元素本身规定的约束。 + + + This value is not a valid International Securities Identification Number (ISIN). + 该数值不是有效的国际证券识别码 (ISIN)。 + From 3e741fda0ae143c5849699a7f0dccbadb2c32e5c Mon Sep 17 00:00:00 2001 From: fd6130 Date: Wed, 28 Oct 2020 01:55:27 +0800 Subject: [PATCH 154/156] Missing translations for Chinese (zh_TW) #38733 --- .../translations/validators.zh_TW.xlf | 139 ++++++++++++++++++ .../Resources/translations/security.zh_TW.xlf | 79 ++++++++++ .../translations/validators.zh_TW.xlf | 26 +++- 3 files changed, 241 insertions(+), 3 deletions(-) create mode 100644 src/Symfony/Component/Form/Resources/translations/validators.zh_TW.xlf create mode 100644 src/Symfony/Component/Security/Core/Resources/translations/security.zh_TW.xlf diff --git a/src/Symfony/Component/Form/Resources/translations/validators.zh_TW.xlf b/src/Symfony/Component/Form/Resources/translations/validators.zh_TW.xlf new file mode 100644 index 0000000000000..858b9db42ea5f --- /dev/null +++ b/src/Symfony/Component/Form/Resources/translations/validators.zh_TW.xlf @@ -0,0 +1,139 @@ + + + + + + This form should not contain extra fields. + 該表單中不可有額外字段。 + + + The uploaded file was too large. Please try to upload a smaller file. + 上傳文件太大, 請重新嘗試上傳一個較小的文件。 + + + The CSRF token is invalid. Please try to resubmit the form. + CSRF 驗證符無效, 請重新提交。 + + + This value is not a valid HTML5 color. + 該數值不是個有效的 HTML5 顏色。 + + + Please enter a valid birthdate. + 請輸入有效的生日日期。 + + + The selected choice is invalid. + 所選的選項無效。 + + + The collection is invalid. + 集合無效。 + + + Please select a valid color. + 請選擇有效的顏色。 + + + Please select a valid country. + 請選擇有效的國家。 + + + Please select a valid currency. + 請選擇有效的貨幣。 + + + Please choose a valid date interval. + 請選擇有效的日期間隔。 + + + Please enter a valid date and time. + 請輸入有效的日期與時間。 + + + Please enter a valid date. + 請輸入有效的日期。 + + + Please select a valid file. + 請選擇有效的文件。 + + + The hidden field is invalid. + 隱藏字段無效。 + + + Please enter an integer. + 請輸入整數。 + + + Please select a valid language. + 請選擇有效的語言。 + + + Please select a valid locale. + 請選擇有效的語言環境。 + + + Please enter a valid money amount. + 請輸入正確的金額。 + + + Please enter a number. + 請輸入數字。 + + + The password is invalid. + 密碼無效。 + + + Please enter a percentage value. + 請輸入百分比值。 + + + The values do not match. + 數值不匹配。 + + + Please enter a valid time. + 請輸入有效的時間。 + + + Please select a valid timezone. + 請選擇有效的時區。 + + + Please enter a valid URL. + 請輸入有效的網址。 + + + Please enter a valid search term. + 請輸入有效的搜索詞。 + + + Please provide a valid phone number. + 請提供有效的手機號碼。 + + + The checkbox has an invalid value. + 無效的選框值。 + + + Please enter a valid email address. + 請輸入有效的電子郵件地址。 + + + Please select a valid option. + 請選擇有效的選項。 + + + Please select a valid range. + 請選擇有效的範圍。 + + + Please enter a valid week. + 請輸入有效的星期。 + + + + diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.zh_TW.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.zh_TW.xlf new file mode 100644 index 0000000000000..7085206440528 --- /dev/null +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.zh_TW.xlf @@ -0,0 +1,79 @@ + + + + + + An authentication exception occurred. + 身份驗證發生異常。 + + + Authentication credentials could not be found. + 沒有找到身份驗證的憑證。 + + + Authentication request could not be processed due to a system problem. + 由於系統故障,身份驗證的請求無法被處理。 + + + Invalid credentials. + 無效的憑證。 + + + Cookie has already been used by someone else. + Cookie 已經被其他人使用。 + + + Not privileged to request the resource. + 沒有權限請求此資源。 + + + Invalid CSRF token. + 無效的 CSRF token 。 + + + Digest nonce has expired. + 摘要隨機串(digest nonce)已過期。 + + + No authentication provider found to support the authentication token. + 沒有找到支持此 token 的身份驗證服務提供方。 + + + No session available, it either timed out or cookies are not enabled. + Session 不可用。回話超時或沒有啓用 cookies 。 + + + No token could be found. + 找不到 token 。 + + + Username could not be found. + 找不到用戶名。 + + + Account has expired. + 賬號已逾期。 + + + Credentials have expired. + 憑證已逾期。 + + + Account is disabled. + 賬號已被禁用。 + + + Account is locked. + 賬號已被鎖定。 + + + Too many failed login attempts, please try again later. + 登入失敗的次數過多,請稍後再試。 + + + Invalid or expired login link. + 失效或過期的登入鏈接。 + + + + diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.zh_TW.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.zh_TW.xlf index 7cef875f5812e..aa476ea25de17 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.zh_TW.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.zh_TW.xlf @@ -344,7 +344,7 @@ This value should be either positive or zero. - 數值應或未正數,或為零。 + 數值應是正數,或為零。 This value should be negative. @@ -352,7 +352,7 @@ This value should be either negative or zero. - 數值應或未負數,或為零。 + 數值應是負數,或為零。 This value is not a valid timezone. @@ -360,12 +360,32 @@ This password has been leaked in a data breach, it must not be used. Please use another password. - 依據您的密碼,發生數據泄露,請勿使用改密碼。請更換密碼。 + 此密碼已被泄露,切勿使用。請更換密碼。 This value should be between {{ min }} and {{ max }}. 該數值應在 {{ min }} 和 {{ max }} 之間。 + + This value is not a valid hostname. + 該數值不是有效的主機名稱。 + + + The number of elements in this collection should be a multiple of {{ compared_value }}. + 該集合內的元素數量得是 {{ compared_value }} 的倍數。 + + + This value should satisfy at least one of the following constraints: + 該數值需符合以下其中一個約束: + + + Each element of this collection should satisfy its own set of constraints. + 該集合內的每個元素需符合元素本身規定的約束。 + + + This value is not a valid International Securities Identification Number (ISIN). + 該數值不是有效的國際證券識別碼 (ISIN)。 + From 971f0e2892617e2d747cf56ff00512d5dcb9f008 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Wed, 28 Oct 2020 06:55:13 +0100 Subject: [PATCH 155/156] Update CHANGELOG for 5.1.8 --- CHANGELOG-5.1.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/CHANGELOG-5.1.md b/CHANGELOG-5.1.md index 2787daf5a9f1d..0f8e3a5c324dd 100644 --- a/CHANGELOG-5.1.md +++ b/CHANGELOG-5.1.md @@ -7,6 +7,44 @@ in 5.1 minor versions. To get the diff for a specific change, go to https://github.com/symfony/symfony/commit/XXX where XXX is the change hash To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v5.1.0...v5.1.1 +* 5.1.8 (2020-10-28) + + * bug #38713 [DI] Fix Preloader exception when preloading a class with an unknown parent/interface (rgeraads) + * bug #38647 [HttpClient] relax auth bearer format requirements (xabbuh) + * bug #38699 [DependencyInjection] Preload classes with union types correctly (derrabus) + * bug #38669 [Serializer] fix decoding float XML attributes starting with 0 (Marcin Kruk) + * bug #38680 [PhpUnitBridge] Support new expect methods in test case polyfill (alcaeus) + * bug #38681 [PHPUnitBridge] Support PHPUnit 8 and PHPUnit 9 in constraint compatibility trait (alcaeus) + * bug #38686 [TwigBridge] Remove "transchoice" from the code base (nicolas-grekas) + * bug #38678 [String] fix before/after[Last]() returning the empty string instead of the original one on non-match (nicolas-grekas) + * bug #38679 [PhpUnitBridge] Add missing exporter function for PHPUnit 7 (alcaeus) + * bug #38659 [String] fix slicing in UnicodeString (nicolas-grekas) + * bug #38595 [TwigBridge] do not translate null placeholders or titles (xabbuh) + * bug #38635 [Cache] Use correct expiry in ChainAdapter (Nyholm) + * bug #38652 [Filesystem] Check if failed unlink was caused by permission denied (Nyholm) + * bug #38645 [PropertyAccess] forward the caught exception (xabbuh) + * bug #38612 [Messenger/Amqp] Allow setting option "login" in DSN (W0rma) + * bug #38618 [Messenger][Doctrine] Avoid early db access for pgsql detection (chalasr) + * bug #38604 [DoctrineBridge] indexBy does not refer to attributes, but to column names (xabbuh) + * bug #38606 [WebProfilerBundle] Hide debug toolbar in print view (jt2k) + * bug #38582 [DI] Fix Reflection file name with eval()\'d code (maxime-aknin) + * bug #38578 Add missing use statement (jderusse) + * bug #38516 [HttpFoundation] Fix Range Requests (BattleRattle) + * bug #38553 [Lock] Reset Key lifetime time before we acquire it (Nyholm) + * bug #38551 Remove content-type check on toArray methods (jderusse) + * bug #38546 [String] fix "is too large" ValueError on PHP 8 (nicolas-grekas) + * bug #38544 [DI] fix dumping env vars (nicolas-grekas) + * bug #38533 [TwigBridge] Fix preload hint and remove "unlinked class class@anonymous" warning (burned42) + * bug #38530 [HttpClient] fix reading the body after a ClientException (nicolas-grekas) + * bug #38510 [PropertyInfo] Support for the mixed type (derrabus) + * bug #38493 [HttpClient] Fix CurlHttpClient memory leak (HypeMC) + * bug #38456 [Cache] skip igbinary < 3.1.6 (nicolas-grekas) + * bug #38392 [Ldap] Bypass the use of `ldap_control_paged_result` on PHP >= 7.3 (lucasaba) + * bug #38444 [PhpUnitBridge] fix running parallel tests with phpunit 9 (nicolas-grekas) + * bug #38446 [PropertyInfo] Extract from default value doesn't set collection boolean (Korbeil) + * bug #38442 [VarDumper] fix truncating big arrays (nicolas-grekas) + * bug #38433 [Mime] Fix serialization of RawMessage (gilbertsoft) + * 5.1.7 (2020-10-04) * bug #38396 Handle consecutive supports() calls in the RememberMeAuthenticator (wouterj) From 78654e8cbd36236e3df9ce1c48a921b7ef67b876 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Wed, 28 Oct 2020 06:55:23 +0100 Subject: [PATCH 156/156] Update VERSION for 5.1.8 --- src/Symfony/Component/HttpKernel/Kernel.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/Kernel.php b/src/Symfony/Component/HttpKernel/Kernel.php index 0ae79ee10d603..59689807370d0 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -73,12 +73,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl private static $freshCache = []; - const VERSION = '5.1.8-DEV'; + const VERSION = '5.1.8'; const VERSION_ID = 50108; const MAJOR_VERSION = 5; const MINOR_VERSION = 1; const RELEASE_VERSION = 8; - const EXTRA_VERSION = 'DEV'; + const EXTRA_VERSION = ''; const END_OF_MAINTENANCE = '01/2021'; const END_OF_LIFE = '01/2021'; pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy