Issue #3088369 by mikelutz, alexpott, Berdir, Gábor Hojtsy, andypost, martin107, greg.1.anderson, dawehner, jibran, Wim Leers, Mile23, catch: Update Drupal 9 to Symfony 4.4-dev
parent
1aaa1d95e0
commit
1c9842d189
|
@ -20,14 +20,15 @@
|
|||
"mikey179/vfsstream": "^1.2",
|
||||
"phpunit/phpunit": "^6.5 || ^7",
|
||||
"phpspec/prophecy": "^1.7",
|
||||
"symfony/css-selector": "^3.4.0",
|
||||
"symfony/phpunit-bridge": "^3.4.3",
|
||||
"symfony/debug": "^3.4.0",
|
||||
"symfony/css-selector": "^4.4",
|
||||
"symfony/phpunit-bridge": "^4.4",
|
||||
"symfony/debug": "^4.4",
|
||||
"justinrainbow/json-schema": "^5.2",
|
||||
"symfony/filesystem": "~3.4.0",
|
||||
"symfony/finder": "~3.4.0",
|
||||
"symfony/lock": "~3.4.0",
|
||||
"symfony/browser-kit": "^3.4.0"
|
||||
"symfony/filesystem": "^4.4",
|
||||
"symfony/finder": "^4.4",
|
||||
"symfony/lock": "^4.4",
|
||||
"symfony/browser-kit": "^4.4",
|
||||
"symfony/dom-crawler": "^4.4"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true,
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -19,30 +19,30 @@
|
|||
"ext-xml": "*",
|
||||
"php": ">=7.2.3",
|
||||
"symfony/class-loader": "~3.4.0",
|
||||
"symfony/console": "~3.4.0",
|
||||
"symfony/dependency-injection": "~3.4.26",
|
||||
"symfony/event-dispatcher": "~3.4.0",
|
||||
"symfony/http-foundation": "~3.4.27",
|
||||
"symfony/http-kernel": "~3.4.14",
|
||||
"symfony/routing": "~3.4.0",
|
||||
"symfony/serializer": "~3.4.0",
|
||||
"symfony/translation": "~3.4.0",
|
||||
"symfony/validator": "~3.4.0",
|
||||
"symfony/process": "~3.4.0",
|
||||
"symfony/console": "^4.4",
|
||||
"symfony/dependency-injection": "^4.4",
|
||||
"symfony/event-dispatcher": "^4.4",
|
||||
"symfony/http-foundation": "^4.4",
|
||||
"symfony/http-kernel": "^4.4",
|
||||
"symfony/routing": "^4.4",
|
||||
"symfony/serializer": "^4.4",
|
||||
"symfony/translation": "^4.4",
|
||||
"symfony/validator": "^4.4",
|
||||
"symfony/process": "^4.4",
|
||||
"symfony/polyfill-iconv": "^1.0",
|
||||
"symfony/yaml": "~3.4.5",
|
||||
"symfony/yaml": "^4.4",
|
||||
"typo3/phar-stream-wrapper": "^3.1.2",
|
||||
"twig/twig": "^1.38.2",
|
||||
"doctrine/common": "^2.7",
|
||||
"doctrine/annotations": "^1.4",
|
||||
"guzzlehttp/guzzle": "^6.3",
|
||||
"symfony-cmf/routing": "^1.4",
|
||||
"symfony-cmf/routing": "^2.1",
|
||||
"easyrdf/easyrdf": "^0.9",
|
||||
"zendframework/zend-feed": "^2.12",
|
||||
"stack/builder": "^1.0",
|
||||
"egulias/email-validator": "^2.0",
|
||||
"masterminds/html5": "^2.1",
|
||||
"symfony/psr-http-message-bridge": "^1.1.2",
|
||||
"symfony/psr-http-message-bridge": "^1.2.0",
|
||||
"zendframework/zend-diactoros": ">=1.7 <1.8",
|
||||
"composer/semver": "^1.0",
|
||||
"asm89/stack-cors": "^1.1",
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
},
|
||||
"require": {
|
||||
"php": ">=7.2.3",
|
||||
"symfony/dependency-injection": ">=3.4 <4.0.0"
|
||||
"symfony/dependency-injection": "^4.4"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/expression-language": "For using expressions in service container configuration"
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
"license": "GPL-2.0-or-later",
|
||||
"require": {
|
||||
"php": ">=7.2.3",
|
||||
"symfony/dependency-injection": ">=3.4 <4.0.0",
|
||||
"symfony/event-dispatcher": ">=3.4 <4.0.0"
|
||||
"symfony/dependency-injection": "^4.4",
|
||||
"symfony/event-dispatcher": "^4.4"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"license": "GPL-2.0-or-later",
|
||||
"require": {
|
||||
"php": ">=7.2.3",
|
||||
"symfony/http-foundation": ">=3.4 <4.0.0"
|
||||
"symfony/http-foundation": "^4.4"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"license": "GPL-2.0-or-later",
|
||||
"require": {
|
||||
"php": ">=7.2.3",
|
||||
"symfony/validator": ">=3.4 <4.0.0"
|
||||
"symfony/validator": "^4.4"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"license": "GPL-2.0-or-later",
|
||||
"require": {
|
||||
"php": ">=7.2.3",
|
||||
"symfony/yaml": ">=3.4 <4.0.0"
|
||||
"symfony/yaml": "^4.4"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
|
|
|
@ -708,7 +708,7 @@ abstract class WebTestBase extends TestBase {
|
|||
if (getenv('SYMFONY_DEPRECATIONS_HELPER') !== 'disabled') {
|
||||
$message = (string) $parameters[0];
|
||||
$test_info = TestDiscovery::getTestInfo(get_called_class());
|
||||
if (!in_array('legacy', $test_info['groups']) && !in_array($message, DeprecationListenerTrait::getSkippedDeprecations())) {
|
||||
if (!in_array('legacy', $test_info['groups']) && !DeprecationListenerTrait::isDeprecationSkipped($message)) {
|
||||
call_user_func_array([&$this, 'error'], $parameters);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,13 +38,18 @@ class SelectProfileFormTest extends WebDriverTestBase {
|
|||
'pass_raw' => $this->randomMachineName(),
|
||||
]);
|
||||
|
||||
// If any $settings are defined for this test, copy and prepare an actual
|
||||
// settings.php, so as to resemble a regular installation.
|
||||
if (!empty($this->settings)) {
|
||||
// Not using File API; a potential error must trigger a PHP warning.
|
||||
copy(DRUPAL_ROOT . '/sites/default/default.settings.php', DRUPAL_ROOT . '/' . $this->siteDirectory . '/settings.php');
|
||||
$this->writeSettings($this->settings);
|
||||
}
|
||||
// Create a regular settings.php for testing.
|
||||
$this->prepareSettings();
|
||||
// @todo Using the APCu file cache causes problems in this test when
|
||||
// combined with Symfony 4.4. This seems to be a memory issue caused by
|
||||
// excessive deprecation errors caused by
|
||||
// https://github.com/symfony/symfony/commit/7c01c4c80c69159b2b39ea8bc53431196d7b29fb
|
||||
// The deprecations will be fixed in https://www.drupal.org/project/drupal/issues/3074585
|
||||
$settings['settings']['file_cache']['file_cache_disable'] = (object) [
|
||||
'value' => TRUE,
|
||||
'required' => TRUE,
|
||||
];
|
||||
$this->writeSettings($settings);
|
||||
|
||||
// Note that FunctionalTestSetupTrait::installParameters() returns form
|
||||
// input values suitable for a programmed
|
||||
|
|
|
@ -69,7 +69,7 @@ trait DeprecationListenerTrait {
|
|||
$deprecations = $deprecations ? unserialize($deprecations) : [];
|
||||
$resave = FALSE;
|
||||
foreach ($deprecations as $key => $deprecation) {
|
||||
if (in_array($deprecation[1], static::getSkippedDeprecations())) {
|
||||
if (static::isDeprecationSkipped($deprecation[1])) {
|
||||
unset($deprecations[$key]);
|
||||
$resave = TRUE;
|
||||
}
|
||||
|
@ -100,6 +100,28 @@ trait DeprecationListenerTrait {
|
|||
return $r->getValue($test);
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if a deprecation error should be skipped.
|
||||
*
|
||||
* @return bool
|
||||
* TRUE if the deprecation error should be skipped, FALSE if not.
|
||||
*/
|
||||
public static function isDeprecationSkipped($message) {
|
||||
if (in_array($message, static::getSkippedDeprecations(), TRUE)) {
|
||||
return TRUE;
|
||||
}
|
||||
$dynamic_skipped_deprecations = [
|
||||
'%The "[^"]+" class extends "Symfony\\\\Component\\\\EventDispatcher\\\\Event" that is deprecated since Symfony 4\.3, use "Symfony\\\\Contracts\\\\EventDispatcher\\\\Event" instead\.$%',
|
||||
'%The "Symfony\\\\Component\\\\Routing\\\\(Compiled)?Route::(un)?serialize\(\)" method is considered (final|internal) since Symfony 4\.3\. It may change without further notice( as of its next major version)?\. You should not extend it from "[^"]+"\.%',
|
||||
'%The "Symfony\\\\Component\\\\Validator\\\\Context\\\\ExecutionContextInterface::.*\(\)" method is considered internal Used by the validator engine. Should not be called by user\s\*\s*code\. It may change without further notice\. You should not extend it from "[^"]+".%',
|
||||
'%Non-object services are deprecated since Symfony 4\.4, please fix the ".*" service which is of type ".*" right now\.%',
|
||||
'%Non-object services are deprecated since Symfony 4\.4, setting the ".*" service to a value of type ".*" should be avoided\.%',
|
||||
'%The ".*" service relies on the deprecated "Symfony\\\\Component\\\\Debug\\\\BufferingLogger" class\. It should either be deprecated or its implementation upgraded\.%',
|
||||
'%Method ".*::.*\(\)" will return ".*" as of its next major version\. Doing the same in child class ".*" will be required when upgrading\.%',
|
||||
];
|
||||
return (bool) preg_filter($dynamic_skipped_deprecations, '$0', $message);
|
||||
}
|
||||
|
||||
/**
|
||||
* A list of deprecations to ignore whilst fixes are put in place.
|
||||
*
|
||||
|
@ -134,12 +156,36 @@ trait DeprecationListenerTrait {
|
|||
'\Drupal\Tests\SkippedDeprecationTest deprecation',
|
||||
// These deprecations are triggered by symfony/psr-http-message-factory
|
||||
// 1.2, which can be installed if you update dependencies on php 7 or
|
||||
// higher
|
||||
// higher.
|
||||
'The "Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory" class is deprecated since symfony/psr-http-message-bridge 1.2, use PsrHttpFactory instead.',
|
||||
'The "psr7.http_message_factory" service relies on the deprecated "Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory" class. It should either be deprecated or its implementation upgraded.',
|
||||
// This deprecation comes from behat/mink-browserkit-driver when updating
|
||||
// symfony/browser-kit to 4.3+.
|
||||
'The "Symfony\Component\BrowserKit\Response::getStatus()" method is deprecated since Symfony 4.3, use getStatusCode() instead.',
|
||||
// The following deprecations are introduced in by the new
|
||||
// DebugClassLoader in Symfony 4 we cannot immediately fix them without
|
||||
// breaking backwards compatibility.
|
||||
// @see https://www.drupal.org/project/drupal/issues/3030494
|
||||
// @see https://www.drupal.org/project/drupal/issues/3030474
|
||||
'The "Drupal\Core\Template\Loader\StringLoader" class implements "Twig\Loader\ExistsLoaderInterface" that is deprecated since 1.12 (to be removed in 3.0).',
|
||||
'The "Drupal\Core\Template\Loader\StringLoader" class implements "Twig\Loader\SourceContextLoaderInterface" that is deprecated since 1.27 (to be removed in 3.0).',
|
||||
// The following Symfony deprecations are introduced in the Symfony 4
|
||||
// development cycle. They will need to be resolved prior to Symfony 5
|
||||
// compatibility.
|
||||
'Support for mapping keys in multi-line blocks is deprecated since Symfony 4.3 and will throw a ParseException in 5.0.',
|
||||
'The "Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser" class is deprecated since Symfony 4.3, use "Symfony\Component\Mime\MimeTypes" instead.',
|
||||
'The "Drupal\Core\File\MimeType\MimeTypeGuesser" class implements "Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface" that is deprecated since Symfony 4.3, use {@link MimeTypesInterface} instead.',
|
||||
'The "Symfony\Component\HttpFoundation\File\MimeType\FileBinaryMimeTypeGuesser" class is deprecated since Symfony 4.3, use "Symfony\Component\Mime\FileBinaryMimeTypeGuesser" instead.',
|
||||
'The "Symfony\Component\HttpFoundation\File\MimeType\FileinfoMimeTypeGuesser" class is deprecated since Symfony 4.3, use "Symfony\Component\Mime\FileinfoMimeTypeGuesser" instead.',
|
||||
'The signature of the "Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher::dispatch()" method should be updated to "dispatch($event, string $eventName = null)", not doing so is deprecated since Symfony 4.3.',
|
||||
'Calling the "Symfony\Component\EventDispatcher\EventDispatcherInterface::dispatch()" method with the event name as the first argument is deprecated since Symfony 4.3, pass it as the second argument and provide the event object as the first argument instead.',
|
||||
'The "Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher::dispatch()" method will require a new "string|null $eventName" argument in the next major version of its parent class "Symfony\Contracts\EventDispatcher\EventDispatcherInterface", not defining it is deprecated.',
|
||||
'The "Goutte\Client" class extends "Symfony\Component\BrowserKit\Client" that is deprecated since Symfony 4.3, use "\Symfony\Component\BrowserKit\AbstractBrowser" instead.',
|
||||
'Passing a command as string when creating a "Symfony\Component\Process\Process" instance is deprecated since Symfony 4.2, pass it as an array of its arguments instead, or use the "Process::fromShellCommandline()" constructor if you need features provided by the shell.',
|
||||
'Passing arguments to "Symfony\Component\HttpFoundation\Request::isMethodSafe()" has been deprecated since Symfony 4.4; use "Symfony\Component\HttpFoundation\Request::isMethodCacheable()" to check if the method is cacheable instead.',
|
||||
'The "Symfony\Component\Process\Process::inheritEnvironmentVariables()" method is deprecated since Symfony 4.4, env variables are always inherited.',
|
||||
'The "Symfony\Component\Debug\BufferingLogger" class is deprecated since Symfony 4.4, use "Symfony\Component\ErrorHandler\BufferingLogger" instead.',
|
||||
'Using the "Symfony\Component\Validator\Constraints\Length" constraint with the "min" option without setting the "allowEmptyString" one is deprecated and defaults to true. In 5.0, it will become optional and default to false.',
|
||||
'The "core/jquery.ui.checkboxradio" asset library is deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. See https://www.drupal.org/node/3067969',
|
||||
'The "core/jquery.ui.controlgroup" asset library is deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. See https://www.drupal.org/node/3067969',
|
||||
// @todo Remove in https://www.drupal.org/project/drupal/issues/3082655
|
||||
|
@ -159,7 +205,7 @@ trait DeprecationListenerTrait {
|
|||
protected function registerErrorHandler($test) {
|
||||
$deprecation_handler = function ($type, $msg, $file, $line, $context = []) {
|
||||
// Skip listed deprecations.
|
||||
if ($type === E_USER_DEPRECATED && in_array($msg, self::getSkippedDeprecations(), TRUE)) {
|
||||
if ($type === E_USER_DEPRECATED && static::isDeprecationSkipped($msg)) {
|
||||
return;
|
||||
}
|
||||
return call_user_func($this->previousHandler, $type, $msg, $file, $line, $context);
|
||||
|
|
Loading…
Reference in New Issue