diff --git a/core/lib/Drupal/Core/Config/ConfigInstaller.php b/core/lib/Drupal/Core/Config/ConfigInstaller.php index ffdc760..35c37f4 100644 --- a/core/lib/Drupal/Core/Config/ConfigInstaller.php +++ b/core/lib/Drupal/Core/Config/ConfigInstaller.php @@ -9,6 +9,7 @@ use Drupal\Component\Utility\Unicode; use Drupal\Core\Config\Entity\ConfigDependencyManager; +use Drupal\Core\Config\Entity\ConfigEntityDependency; use Drupal\Core\Entity\EntityTypeInterface; use Drupal\Core\Site\Settings; use Symfony\Component\EventDispatcher\EventDispatcherInterface; @@ -141,16 +142,11 @@ public function installDefaultConfig($type, $name) { $storage = new FileStorage($optional_install_path, StorageInterface::DEFAULT_COLLECTION); $this->installOptionalConfig($storage, ''); } - // Install any optional configuration entities whose type this extension - // provides. This searches all the installed modules config/optional + // Install any optional configuration entities whose dependencies can now + // be met. This searches all the installed modules config/optional // directories. - $provides_config_entity_type = array_reduce($this->configManager->getEntityManager()->getDefinitions(), function ($return, EntityTypeInterface $entity_type) use ($name) { - return $return ?: $entity_type->getProvider() && $entity_type->getConfigPrefix(); - }, FALSE); - if ($provides_config_entity_type) { - $storage = new ExtensionInstallStorage($this->getActiveStorages(StorageInterface::DEFAULT_COLLECTION), InstallStorage::CONFIG_OPTIONAL_DIRECTORY, StorageInterface::DEFAULT_COLLECTION, FALSE); - $this->installOptionalConfig($storage, $name . '.'); - } + $storage = new ExtensionInstallStorage($this->getActiveStorages(StorageInterface::DEFAULT_COLLECTION), InstallStorage::CONFIG_OPTIONAL_DIRECTORY, StorageInterface::DEFAULT_COLLECTION, FALSE); + $this->installOptionalConfig($storage, [$type => $name]); } // Reset all the static caches and list caches. @@ -160,7 +156,7 @@ public function installDefaultConfig($type, $name) { /** * {@inheritdoc} */ - public function installOptionalConfig(StorageInterface $storage = NULL, $prefix = '') { + public function installOptionalConfig(StorageInterface $storage = NULL, $dependency = []) { if (!$storage) { // Search the install profile's optional configuration too. $storage = new ExtensionInstallStorage($this->getActiveStorages(StorageInterface::DEFAULT_COLLECTION), InstallStorage::CONFIG_OPTIONAL_DIRECTORY, StorageInterface::DEFAULT_COLLECTION, TRUE); @@ -180,19 +176,38 @@ public function installOptionalConfig(StorageInterface $storage = NULL, $prefix if (!$this->configManager->supportsConfigurationEntities($collection)) { continue; } - $existing_config = $this->getActiveStorages($collection)->listAll($prefix); - $config_to_create = $this->getConfigToCreate($storage, $collection, $prefix, $profile_storage); - $all_config = array_merge($existing_config, array_keys($config_to_create)); + $existing_config = $this->getActiveStorages($collection)->listAll(); + + $list = array_filter($storage->listAll(), function($config_name) use ($existing_config) { + // Only list configuration that: + // - does not already exist + // - is a configuration entity (this also excludes config that has an + // implicit dependency on modules that are not yet installed) + return !in_array($config_name, $existing_config) && $this->configManager->getEntityTypeIdByName($config_name); + }); + + $all_config = array_merge($existing_config, $list); + $config_to_create = $storage->readMultiple($list); + // Check to see if the corresponding override storage has any overrides. + if ($profile_storage) { + if ($profile_storage->getCollectionName() != $collection) { + $profile_storage = $profile_storage->createCollection($collection); + } + $config_to_create = $profile_storage->readMultiple($list) + $config_to_create; + } foreach ($config_to_create as $config_name => $data) { - // Exclude configuration that: - // - already exists - // - is a not configuration entity - // - or its dependencies cannot be met. - if (in_array($config_name, $existing_config) || - !$this->configManager->getEntityTypeIdByName($config_name) || - !$this->validateDependencies($config_name, $data, $enabled_extensions, $all_config)) { + // Exclude configuration where its dependencies cannot be met. + if (!$this->validateDependencies($config_name, $data, $enabled_extensions, $all_config)) { unset($config_to_create[$config_name]); } + // Exclude configuration that does not have a matching dependency. + elseif (!empty($dependency)) { + // Create a light weight dependency object to check dependencies. + $config_entity = new ConfigEntityDependency($config_name, $data); + if (!$config_entity->hasDependency(key($dependency), reset($dependency))) { + unset($config_to_create[$config_name]); + } + } } if (!empty($config_to_create)) { $this->createConfiguration($collection, $config_to_create, TRUE); @@ -477,12 +492,6 @@ protected function findDefaultConfigWithUnmetDependencies(StorageInterface $stor * TRUE if the dependencies are met, FALSE if not. */ protected function validateDependencies($config_name, array $data, array $enabled_extensions, array $all_config) { - // All the migrate tests will fail if we check since they install the - // migrate_drupal module but only set up the dependencies for the single - // migration they are testing. - if (strpos($config_name, 'migrate.migration.') === 0) { - return TRUE; - } if (isset($data['dependencies'])) { $all_dependencies = $data['dependencies']; diff --git a/core/lib/Drupal/Core/Config/ConfigInstallerInterface.php b/core/lib/Drupal/Core/Config/ConfigInstallerInterface.php index 6d8e489..3e99bce 100644 --- a/core/lib/Drupal/Core/Config/ConfigInstallerInterface.php +++ b/core/lib/Drupal/Core/Config/ConfigInstallerInterface.php @@ -49,11 +49,13 @@ public function installDefaultConfig($type, $name); * (optional) The configuration storage to search for optional * configuration. If not provided, all enabled extension's optional * configuration directories will be searched. - * @param string $prefix - * (optional) If set, limits the installed configuration to only - * configuration beginning with the provided value. + * @param array $dependency + * (optional) If set, ensures that the configuration being installed has + * this dependency. The format is dependency type as the key ('module', + * 'theme', or 'config') and the dependency name as the value + * ('book', 'bartik', 'views.view.frontpage'). */ - public function installOptionalConfig(StorageInterface $storage = NULL, $prefix = ''); + public function installOptionalConfig(StorageInterface $storage = NULL, $dependency = []); /** * Installs all default configuration in the specified collection. diff --git a/core/modules/migrate/src/Entity/Migration.php b/core/modules/migrate/src/Entity/Migration.php index 9e8fe46..f694969 100644 --- a/core/modules/migrate/src/Entity/Migration.php +++ b/core/modules/migrate/src/Entity/Migration.php @@ -480,4 +480,10 @@ public function setTrackLastImported($track_last_imported) { public function getMigrationDependencies() { return $this->migration_dependencies; } + + public function calculateDependencies() { + parent::calculateDependencies(); + $this->calculatePluginDependencies($this->getDestinationPlugin()); + return $this->dependencies; + } } diff --git a/core/modules/migrate/src/Plugin/migrate/destination/Book.php b/core/modules/migrate/src/Plugin/migrate/destination/Book.php index f6ff932..90b0bbe 100644 --- a/core/modules/migrate/src/Plugin/migrate/destination/Book.php +++ b/core/modules/migrate/src/Plugin/migrate/destination/Book.php @@ -13,7 +13,6 @@ /** * @MigrateDestination( * id = "book", - * provider = "book" * ) */ class Book extends EntityContentBase { diff --git a/core/modules/migrate/src/Plugin/migrate/destination/Config.php b/core/modules/migrate/src/Plugin/migrate/destination/Config.php index 7d84813..7884fa3 100644 --- a/core/modules/migrate/src/Plugin/migrate/destination/Config.php +++ b/core/modules/migrate/src/Plugin/migrate/destination/Config.php @@ -104,4 +104,12 @@ public function getIds() { return array(); } + /** + * {@inheritdoc} + */ + public function calculateDependencies() { + list($provider,) = explode('.', $this->config->getName(), 2); + return ['module' => [$provider]]; + } + } diff --git a/core/modules/migrate/src/Plugin/migrate/destination/DestinationBase.php b/core/modules/migrate/src/Plugin/migrate/destination/DestinationBase.php index 084fd88..acf2fc6 100644 --- a/core/modules/migrate/src/Plugin/migrate/destination/DestinationBase.php +++ b/core/modules/migrate/src/Plugin/migrate/destination/DestinationBase.php @@ -8,6 +8,7 @@ namespace Drupal\migrate\Plugin\migrate\destination; +use Drupal\Component\Plugin\DependentPluginInterface; use Drupal\Core\Plugin\PluginBase; use Drupal\migrate\Entity\MigrationInterface; use Drupal\migrate\Exception\RequirementsException; @@ -24,7 +25,7 @@ * * @ingroup migration */ -abstract class DestinationBase extends PluginBase implements MigrateDestinationInterface, RequirementsInterface { +abstract class DestinationBase extends PluginBase implements MigrateDestinationInterface, RequirementsInterface, DependentPluginInterface { /** * The migration. @@ -115,4 +116,11 @@ public function resetStats() { // TODO: Implement resetStats() method. } + /** + * {@inheritdoc} + */ + public function calculateDependencies() { + return []; + } + } diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_action_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_action_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_action_settings.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_action_settings.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_aggregator_feed.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_aggregator_feed.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_aggregator_feed.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_aggregator_feed.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_aggregator_item.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_aggregator_item.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_aggregator_item.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_aggregator_item.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_aggregator_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_aggregator_settings.yml similarity index 94% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_aggregator_settings.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_aggregator_settings.yml index 6385366..988a86d 100644 --- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_aggregator_settings.yml +++ b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_aggregator_settings.yml @@ -23,3 +23,6 @@ process: destination: plugin: config config_name: aggregator.settings +dependencies: + module: + - aggregator diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_block.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_block.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_block.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_block.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_block_content_body_field.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_block_content_body_field.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_block_content_body_field.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_block_content_body_field.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_block_content_type.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_block_content_type.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_block_content_type.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_block_content_type.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_book.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_book.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_book.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_book.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_book_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_book_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_book_settings.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_book_settings.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_cck_field_revision.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_cck_field_revision.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_cck_field_revision.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_cck_field_revision.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_cck_field_values.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_cck_field_values.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_cck_field_values.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_cck_field_values.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_comment.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_comment.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_comment_entity_display.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_entity_display.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_comment_entity_display.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_entity_display.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_comment_entity_form_display.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_entity_form_display.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_comment_entity_form_display.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_entity_form_display.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_comment_entity_form_display_subject.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_entity_form_display_subject.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_comment_entity_form_display_subject.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_entity_form_display_subject.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_comment_field.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_field.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_comment_field.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_field.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_comment_field_instance.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_field_instance.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_comment_field_instance.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_field_instance.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_comment_type.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_type.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_comment_type.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_type.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_contact_category.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_contact_category.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_contact_category.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_contact_category.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_contact_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_contact_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_contact_settings.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_contact_settings.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_custom_block.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_custom_block.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_custom_block.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_custom_block.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_date_formats.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_date_formats.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_date_formats.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_date_formats.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_dblog_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_dblog_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_dblog_settings.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_dblog_settings.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_field.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_field.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_field.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_field.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_field_formatter_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_field_formatter_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_field_formatter_settings.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_field_formatter_settings.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_field_instance.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_field_instance.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_field_instance.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_field_instance.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_field_instance_widget_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_field_instance_widget_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_field_instance_widget_settings.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_field_instance_widget_settings.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_file.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_file.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_file.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_file.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_file_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_file_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_file_settings.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_file_settings.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_filter_format.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_filter_format.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_filter_format.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_filter_format.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_forum_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_forum_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_forum_settings.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_forum_settings.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_locale_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_locale_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_locale_settings.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_locale_settings.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_menu.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_menu.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_menu.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_menu.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_menu_links.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_menu_links.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_menu_links.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_menu_links.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_menu_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_menu_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_menu_settings.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_menu_settings.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_node.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_node.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_node.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_node_revision.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_revision.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_node_revision.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_revision.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_node_setting_promote.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_setting_promote.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_node_setting_promote.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_setting_promote.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_node_setting_status.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_setting_status.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_node_setting_status.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_setting_status.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_node_setting_sticky.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_setting_sticky.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_node_setting_sticky.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_setting_sticky.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_node_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_node_settings.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_settings.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_node_type.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_type.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_node_type.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_type.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_profile_values.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_profile_values.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_profile_values.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_profile_values.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_search_page.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_search_page.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_search_page.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_search_page.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_search_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_search_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_search_settings.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_search_settings.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_simpletest_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_simpletest_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_simpletest_settings.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_simpletest_settings.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_statistics_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_statistics_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_statistics_settings.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_statistics_settings.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_syslog_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_syslog_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_syslog_settings.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_syslog_settings.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_system_cron.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_cron.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_system_cron.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_cron.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_system_file.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_file.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_system_file.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_file.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_system_filter.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_filter.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_system_filter.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_filter.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_system_image.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_image.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_system_image.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_image.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_system_image_gd.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_image_gd.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_system_image_gd.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_image_gd.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_system_logging.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_logging.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_system_logging.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_logging.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_system_maintenance.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_maintenance.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_system_maintenance.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_maintenance.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_system_performance.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_performance.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_system_performance.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_performance.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_system_rss.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_rss.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_system_rss.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_rss.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_system_site.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_site.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_system_site.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_site.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_taxonomy_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_taxonomy_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_taxonomy_settings.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_taxonomy_settings.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_taxonomy_term.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_taxonomy_term.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_taxonomy_term.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_taxonomy_term.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_taxonomy_vocabulary.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_taxonomy_vocabulary.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_taxonomy_vocabulary.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_taxonomy_vocabulary.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_term_node.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_term_node.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_term_node.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_term_node.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_term_node_revision.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_term_node_revision.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_term_node_revision.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_term_node_revision.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_text_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_text_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_text_settings.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_text_settings.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_update_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_update_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_update_settings.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_update_settings.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_upload.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_upload.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_upload_entity_display.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_entity_display.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_upload_entity_display.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_entity_display.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_upload_entity_form_display.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_entity_form_display.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_upload_entity_form_display.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_entity_form_display.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_upload_field.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_field.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_upload_field.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_field.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_upload_field_instance.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_field_instance.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_upload_field_instance.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_field_instance.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_url_alias.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_url_alias.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_url_alias.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_url_alias.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_user.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_user.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_user.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_contact_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_contact_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_user_contact_settings.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_contact_settings.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_mail.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_mail.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_user_mail.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_mail.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_picture_entity_display.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_entity_display.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_user_picture_entity_display.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_entity_display.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_picture_entity_form_display.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_entity_form_display.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_user_picture_entity_form_display.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_entity_form_display.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_picture_field.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_field.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_user_picture_field.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_field.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_picture_field_instance.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_field_instance.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_user_picture_field_instance.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_field_instance.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_picture_file.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_file.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_user_picture_file.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_file.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_profile_entity_display.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_entity_display.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_user_profile_entity_display.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_entity_display.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_profile_entity_form_display.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_entity_form_display.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_user_profile_entity_form_display.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_entity_form_display.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_profile_field.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_field.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_user_profile_field.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_field.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_profile_field_instance.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_field_instance.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_user_profile_field_instance.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_field_instance.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_role.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_role.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_user_role.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_role.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_user_settings.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_settings.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_view_modes.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_view_modes.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_view_modes.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_view_modes.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_vocabulary_entity_display.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_entity_display.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_vocabulary_entity_display.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_entity_display.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_vocabulary_entity_form_display.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_entity_form_display.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_vocabulary_entity_form_display.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_entity_form_display.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_vocabulary_field.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_field.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_vocabulary_field.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_field.yml diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_vocabulary_field_instance.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_field_instance.yml similarity index 100% rename from core/modules/migrate_drupal/config/install/migrate.migration.d6_vocabulary_field_instance.yml rename to core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_field_instance.yml