diff --git a/composer/Generator/Builder/DrupalDevDependenciesBuilder.php b/composer/Generator/Builder/DrupalDevDependenciesBuilder.php index 558657c0f0..b282d236f1 100644 --- a/composer/Generator/Builder/DrupalDevDependenciesBuilder.php +++ b/composer/Generator/Builder/DrupalDevDependenciesBuilder.php @@ -44,10 +44,6 @@ protected function initialPackageMetadata() { "conflict" => [ "webflo/drupal-core-require-dev" => "*", ], - "repositories" => [ - "type" => "vcs", - "url" => "https://github.com/mdlutz24/MinkBrowserKitDriver.git", - ], ]; } diff --git a/composer/Metapackage/DevDependencies/composer.json b/composer/Metapackage/DevDependencies/composer.json index 00283a5269..864a7ba1db 100644 --- a/composer/Metapackage/DevDependencies/composer.json +++ b/composer/Metapackage/DevDependencies/composer.json @@ -6,10 +6,6 @@ "conflict": { "webflo/drupal-core-require-dev": "*" }, - "repositories": { - "type": "vcs", - "url": "https://github.com/mdlutz24/MinkBrowserKitDriver.git" - }, "require": { "behat/mink": "^1.8", "behat/mink-browserkit-driver": "dev-SF5 as v1.3.4", diff --git a/core/modules/layout_builder/src/LayoutBuilderServiceProvider.php b/core/modules/layout_builder/src/LayoutBuilderServiceProvider.php index 71005ee48c..f0b078c48e 100644 --- a/core/modules/layout_builder/src/LayoutBuilderServiceProvider.php +++ b/core/modules/layout_builder/src/LayoutBuilderServiceProvider.php @@ -37,6 +37,7 @@ public function register(ContainerBuilder $container) { new Reference('plugin.manager.layout_builder.section_storage'), ]); $definition->addTag('event_subscriber'); + $definition->setPublic(TRUE); $container->setDefinition('layout_builder.get_block_dependency_subscriber', $definition); } if (isset($modules['serialization'])) { diff --git a/core/modules/rest/tests/src/Kernel/RequestHandlerTest.php b/core/modules/rest/tests/src/Kernel/RequestHandlerTest.php index abfb8d1362..141a517b1f 100644 --- a/core/modules/rest/tests/src/Kernel/RequestHandlerTest.php +++ b/core/modules/rest/tests/src/Kernel/RequestHandlerTest.php @@ -44,7 +44,7 @@ public function setUp(): void { parent::setUp(); $serializer = $this->prophesize(SerializerInterface::class); $serializer->willImplement(DecoderInterface::class); - $serializer->decode(Json::encode(['this is an array']), NULL, Argument::type('array')) + $serializer->decode(Json::encode(['this is an array']), 'json', Argument::type('array')) ->willReturn(['this is an array']); $this->requestHandler = new RequestHandler($serializer->reveal()); } diff --git a/core/tests/Drupal/BuildTests/Composer/Template/ComposerProjectTemplatesTest.php b/core/tests/Drupal/BuildTests/Composer/Template/ComposerProjectTemplatesTest.php index fef7d4775b..6be15afb9b 100644 --- a/core/tests/Drupal/BuildTests/Composer/Template/ComposerProjectTemplatesTest.php +++ b/core/tests/Drupal/BuildTests/Composer/Template/ComposerProjectTemplatesTest.php @@ -3,6 +3,7 @@ namespace Drupal\BuildTests\Composer\Template; use Composer\Json\JsonFile; +use Composer\Semver\VersionParser; use Drupal\BuildTests\Framework\BuildTestBase; use Drupal\Composer\Composer; @@ -125,14 +126,16 @@ public function testTemplateCreateProject($project, $package_dir, $docroot_dir) // Create a "Composer"-type repository containing one entry for every // package in the vendor directory. $vendor_packages_path = $this->getWorkspaceDirectory() . '/vendor_packages/packages.json'; - $this->makeVendorPackage($vendor_packages_path); + $minimum_stability = $this->makeVendorPackage($vendor_packages_path); // Make a copy of the code to alter in the workspace directory. $this->copyCodebase(); // Set the Drupal version and minimum stability of the template projects - Composer::setDrupalVersion($this->getWorkspaceDirectory(), $simulated_stable_version); - $this->assertDrupalVersion($simulated_stable_version, $this->getWorkspaceDirectory()); + // based on the minimum stability of our dependencies. + $simulated_template_version = $simulated_stable_version . '@' . $minimum_stability; + Composer::setDrupalVersion($this->getWorkspaceDirectory(), $simulated_template_version); + $this->assertDrupalVersion($simulated_template_version, $this->getWorkspaceDirectory()); // Remove the packages.drupal.org entry (and any other custom repository) // from the SUT's repositories section. There is no way to do this via @@ -190,10 +193,10 @@ public function testTemplateCreateProject($project, $package_dir, $docroot_dir) $this->assertFileExists($autoloader); // Verify that the minimum stability in the installed composer.json file - // is 'stable' + // is correct. $this->assertFileExists($installed_composer_json); - $composer_json_contents = file_get_contents($installed_composer_json); - $this->assertStringContainsString('"minimum-stability": "stable"', $composer_json_contents); + $composer_json_contents = json_decode(file_get_contents($installed_composer_json), TRUE); + $this->assertEquals($minimum_stability, $composer_json_contents['minimum-stability']); // In order to verify that Composer used the path repos for our project, we // have to get the requirements from the project composer.json so we can @@ -286,6 +289,9 @@ protected function makeTestPackage($repository_path, $version) { * * @param string $repository_path * The path where to create the test package. + * + * @return string + * The minimum required stability of all packages in vendor. */ protected function makeVendorPackage($repository_path) { $root = $this->getDrupalRoot(); @@ -293,12 +299,15 @@ protected function makeVendorPackage($repository_path) { $this->assertCommandSuccessful(); $installed = json_decode($process->getOutput(), TRUE); + $stabilities = ['dev', 'alpha', 'beta', 'RC', 'stable']; + $minimum_stability = count($stabilities); + // Build out package definitions for everything installed in // the vendor directory. $packages = []; foreach ($installed['installed'] as $project) { $name = $project['name']; - $version = $project['version']; + $version = strtok($project['version'], ' '); $path = "vendor/$name"; $full_path = "$root/$path"; // We are building a set of path repositories to projects in the vendor @@ -317,12 +326,17 @@ protected function makeVendorPackage($repository_path) { "version" => $version, ], ]; + + $stability = VersionParser::parseStability($version); + $minimum_stability = min($minimum_stability, array_search($stability, $stabilities)); } } $json = json_encode($packages, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); mkdir(dirname($repository_path)); file_put_contents($repository_path, $json); + + return $stabilities[$minimum_stability]; } }