diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 72ea7cfa3e9c0..f7b87a1ce8cd4 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,6 +1,6 @@ | Q | A | ------------- | --- -| Branch? | 6.3 for features / 5.4 or 6.2 for bug fixes +| Branch? | 6.4 for features / 5.4, 6.2, or 6.3 for bug fixes | Bug fix? | yes/no | New feature? | yes/no | Deprecations? | yes/no diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 87cd21cf0d442..b66e1b53b60f4 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -6,7 +6,7 @@ on: schedule: - cron: '34 4 * * 6' push: - branches: [ "6.3" ] + branches: [ "6.4" ] # Declare default permissions as read only. permissions: read-all diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index 001231e1acf12..e9bc06a077a73 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -64,7 +64,7 @@ jobs: echo COLUMNS=120 >> $GITHUB_ENV echo PHPUNIT="$(pwd)/phpunit --exclude-group tty,benchmark,intl-data,integration" >> $GITHUB_ENV - echo COMPOSER_UP='composer update --no-progress --ansi'$([[ "${{ matrix.php }}" = "8.2" ]] && echo ' --ignore-platform-req=php+') >> $GITHUB_ENV + echo COMPOSER_UP='composer update --no-progress --ansi'$([[ "${{ matrix.mode }}" = experimental ]] && echo ' --ignore-platform-req=php+') >> $GITHUB_ENV SYMFONY_VERSIONS=$(git ls-remote -q --heads | cut -f2 | grep -o '/[1-9][0-9]*\.[0-9].*' | sort -V) SYMFONY_VERSION=$(grep ' VERSION = ' src/Symfony/Component/HttpKernel/Kernel.php | cut -d "'" -f2 | cut -d '.' -f 1-2) diff --git a/CHANGELOG-6.3.md b/CHANGELOG-6.3.md index 7e4cfd89e2440..73ef0487e49f5 100644 --- a/CHANGELOG-6.3.md +++ b/CHANGELOG-6.3.md @@ -7,6 +7,19 @@ in 6.3 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/v6.3.0...v6.3.1 +* 6.3.0-RC2 (2023-05-27) + + * feature #50445 [AssetMapper] Add "=alias" syntax to importmap:require (weaverryan) + * bug #50442 [SecurityBundle] Update security-1.0.xsd to include missing access-token definition (aegypius) + * bug #50440 [DependencyInjection] Revert "Use weak references in the container" (nicolas-grekas) + * bug #50429 [Console] block input stream if needed (joelwurtz) + * bug #50397 [HttpKernel][VarDumper] Fix dumping with labels (nicolas-grekas) + * bug #50408 [AssetMapper] Change default importmap "provider" to JsDelivr+esm (weaverryan, nicolas-grekas) + * bug #50394 [AssetMapper] Avoid loading potentially ALL assets in dev server (weaverryan) + * bug #50400 [AssetMapper] Sometimes asset contents are built from non-asset files (weaverryan) + * bug #50406 [VarDumper] Fix `dd()` showing line with `null` (HypeMC) + * bug #50393 [AssetMapper] Fixing incorrect exception & adding allowing more realistic error mode (weaverryan) + * 6.3.0-RC1 (2023-05-22) * bug #49817 [Scheduler] Improve triggers performance when possible (fabpot) diff --git a/composer.json b/composer.json index 4f81d054cd008..cb477380a304a 100644 --- a/composer.json +++ b/composer.json @@ -150,7 +150,7 @@ "psr/http-client": "^1.0", "psr/simple-cache": "^1.0|^2.0|^3.0", "symfony/mercure-bundle": "^0.3", - "symfony/phpunit-bridge": "^5.4|^6.0", + "symfony/phpunit-bridge": "^5.4|^6.0|^7.0", "symfony/runtime": "self.version", "symfony/security-acl": "~2.8|~3.0", "twig/cssinliner-extra": "^2.12|^3", @@ -168,7 +168,7 @@ "masterminds/html5": "<2.6", "phpdocumentor/reflection-docblock": "<5.2", "phpdocumentor/type-resolver": "<1.5.1", - "phpunit/phpunit": "<5.4.3" + "phpunit/phpunit": "<7.5|9.1.2" }, "config": { "allow-plugins": { diff --git a/src/Symfony/Bridge/Doctrine/composer.json b/src/Symfony/Bridge/Doctrine/composer.json index 98721385f4e5e..d17933b31a901 100644 --- a/src/Symfony/Bridge/Doctrine/composer.json +++ b/src/Symfony/Bridge/Doctrine/composer.json @@ -55,7 +55,6 @@ "doctrine/dbal": "<2.13.1", "doctrine/lexer": "<1.1", "doctrine/orm": "<2.12", - "phpunit/phpunit": "<5.4.3", "symfony/cache": "<5.4", "symfony/dependency-injection": "<6.2", "symfony/form": "<5.4.21|>=6,<6.2.7", diff --git a/src/Symfony/Bridge/ProxyManager/LazyProxy/PhpDumper/ProxyDumper.php b/src/Symfony/Bridge/ProxyManager/LazyProxy/PhpDumper/ProxyDumper.php index fd610860f534f..3747d896bccd9 100644 --- a/src/Symfony/Bridge/ProxyManager/LazyProxy/PhpDumper/ProxyDumper.php +++ b/src/Symfony/Bridge/ProxyManager/LazyProxy/PhpDumper/ProxyDumper.php @@ -61,16 +61,15 @@ public function getProxyFactoryCode(Definition $definition, string $id, string $ return <<createProxy('$proxyClass', static function () use (\$containerRef) { - return \\$proxyClass::staticProxyConstructor(static function (&\$wrappedInstance, \ProxyManager\Proxy\LazyLoadingInterface \$proxy) use (\$containerRef) { - \$container = \$containerRef->get(); + $instantiation \$container->createProxy('$proxyClass', static fn () => \\$proxyClass::staticProxyConstructor( + static function (&\$wrappedInstance, \ProxyManager\Proxy\LazyLoadingInterface \$proxy) use (\$container) { \$wrappedInstance = $factoryCode; \$proxy->setProxyInitializer(null); return true; - }); - }); + } + )); } diff --git a/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/Fixtures/php/lazy_service_structure.txt b/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/Fixtures/php/lazy_service_structure.txt index 84995384157b6..ad7a803cb6e8a 100644 --- a/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/Fixtures/php/lazy_service_structure.txt +++ b/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/Fixtures/php/lazy_service_structure.txt @@ -5,19 +5,16 @@ class LazyServiceProjectServiceContainer extends Container {%a protected static function getFooService($container, $lazyLoad = true) { - $containerRef = $container->ref; - if (true === $lazyLoad) { - return $container->services['foo'] = $container->createProxy('stdClass_%s', static function () use ($containerRef) { - return %S\stdClass_%s(static function (&$wrappedInstance, \ProxyManager\Proxy\LazyLoadingInterface $proxy) use ($containerRef) { - $container = $containerRef->get(); - $wrappedInstance = self::getFooService($containerRef->get(), false); + return $container->services['foo'] = $container->createProxy('stdClass_%s', static fn () => %S\stdClass_%s( + static function (&$wrappedInstance, \ProxyManager\Proxy\LazyLoadingInterface $proxy) use ($container) { + $wrappedInstance = self::getFooService($container, false); $proxy->setProxyInitializer(null); return true; - }); - }); + } + )); } return new \stdClass(); diff --git a/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/PhpDumper/Fixtures/proxy-factory.php b/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/PhpDumper/Fixtures/proxy-factory.php index 12a7de3483761..c0399ae3340f3 100644 --- a/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/PhpDumper/Fixtures/proxy-factory.php +++ b/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/PhpDumper/Fixtures/proxy-factory.php @@ -8,19 +8,17 @@ public function getFooService($lazyLoad = true) { $container = $this; - $containerRef = \WeakReference::create($this); if (true === $lazyLoad) { - return $container->privates['foo'] = $container->createProxy('SunnyInterface_1eff735', static function () use ($containerRef) { - return \SunnyInterface_1eff735::staticProxyConstructor(static function (&$wrappedInstance, \ProxyManager\Proxy\LazyLoadingInterface $proxy) use ($containerRef) { - $container = $containerRef->get(); + return $container->privates['foo'] = $container->createProxy('SunnyInterface_1eff735', static fn () => \SunnyInterface_1eff735::staticProxyConstructor( + static function (&$wrappedInstance, \ProxyManager\Proxy\LazyLoadingInterface $proxy) use ($container) { $wrappedInstance = $container->getFooService(false); $proxy->setProxyInitializer(null); return true; - }); - }); + } + )); } return new Symfony\Bridge\ProxyManager\Tests\LazyProxy\PhpDumper\DummyClass(); diff --git a/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/PhpDumper/ProxyDumperTest.php b/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/PhpDumper/ProxyDumperTest.php index ea376464fc925..3652275c2bb65 100644 --- a/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/PhpDumper/ProxyDumperTest.php +++ b/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/PhpDumper/ProxyDumperTest.php @@ -130,7 +130,6 @@ public function testGetProxyFactoryCodeForInterface() public function getFooService(\$lazyLoad = true) { \$container = \$this; - \$containerRef = \\WeakReference::create(\$this); {$factory} return new {$class}(); } diff --git a/src/Symfony/Bundle/DebugBundle/Resources/views/Profiler/dump.html.twig b/src/Symfony/Bundle/DebugBundle/Resources/views/Profiler/dump.html.twig index 04b694955051e..e98e524748f48 100644 --- a/src/Symfony/Bundle/DebugBundle/Resources/views/Profiler/dump.html.twig +++ b/src/Symfony/Bundle/DebugBundle/Resources/views/Profiler/dump.html.twig @@ -11,6 +11,9 @@ {% for dump in collector.getDumps('html') %}
+ {% if dump.label is defined and '' != dump.label %} + {{ dump.label }} in + {% endif %} {% if dump.file %} {% set link = dump.file|file_link(dump.line) %} {% if link %} @@ -45,7 +48,12 @@ {% for dump in collector.getDumps('html') %}
-