diff --git a/core/lib/Drupal/Core/Config/ConfigInstaller.php b/core/lib/Drupal/Core/Config/ConfigInstaller.php
index 6c0bd7e..0ac79c0 100644
--- a/core/lib/Drupal/Core/Config/ConfigInstaller.php
+++ b/core/lib/Drupal/Core/Config/ConfigInstaller.php
@@ -498,12 +498,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/modules/migrate/src/Entity/Migration.php b/core/modules/migrate/src/Entity/Migration.php
index cdc2216..54b90c3 100644
--- a/core/modules/migrate/src/Entity/Migration.php
+++ b/core/modules/migrate/src/Entity/Migration.php
@@ -478,6 +478,31 @@ public function setTrackLastImported($track_last_imported) {
    * {@inheritdoc}
    */
   public function getMigrationDependencies() {
-    return $this->migration_dependencies;
+    return $this->migration_dependencies + array('required' => [], 'optional' => []);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function trustData() {
+    // Migrations cannot be trusted since they are often write by hand or as the
+    // result of a copy/paste.
+    $this->trustedData = FALSE;
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function calculateDependencies() {
+    parent::calculateDependencies();
+    $this->calculatePluginDependencies($this->getSourcePlugin());
+    $this->calculatePluginDependencies($this->getDestinationPlugin());
+    // Add dependencies on required migration dependencies.
+    foreach ($this->getMigrationDependencies()['required'] as $dependency) {
+      $this->addDependency('config', $this->getEntityType()->getConfigPrefix() . '.' . $dependency);
+    }
+
+    return $this->dependencies;
   }
 }
diff --git a/core/modules/migrate/src/Plugin/Derivative/MigrateEntity.php b/core/modules/migrate/src/Plugin/Derivative/MigrateEntity.php
index 8f4a573..7688472 100644
--- a/core/modules/migrate/src/Plugin/Derivative/MigrateEntity.php
+++ b/core/modules/migrate/src/Plugin/Derivative/MigrateEntity.php
@@ -68,6 +68,7 @@ public function getDerivativeDefinitions($base_plugin_definition) {
         'id' => "entity:$entity_type",
         'class' => $class,
         'requirements_met' => 1,
+        'provider' => $entity_info->getProvider(),
       );
     }
     return $this->derivatives;
diff --git a/core/modules/migrate/src/Plugin/Derivative/MigrateEntityRevision.php b/core/modules/migrate/src/Plugin/Derivative/MigrateEntityRevision.php
index 5c9ae19..51c9830 100644
--- a/core/modules/migrate/src/Plugin/Derivative/MigrateEntityRevision.php
+++ b/core/modules/migrate/src/Plugin/Derivative/MigrateEntityRevision.php
@@ -66,6 +66,7 @@ public function getDerivativeDefinitions($base_plugin_definition) {
           'id' => "entity_revision:$entity_type",
           'class' => 'Drupal\migrate\Plugin\migrate\destination\EntityRevision',
           'requirements_met' => 1,
+          'provider' => $entity_info->getProvider(),
         );
       }
     }
diff --git a/core/modules/migrate/src/Plugin/MigrateSourceInterface.php b/core/modules/migrate/src/Plugin/MigrateSourceInterface.php
index d320c4b..7154d27 100644
--- a/core/modules/migrate/src/Plugin/MigrateSourceInterface.php
+++ b/core/modules/migrate/src/Plugin/MigrateSourceInterface.php
@@ -6,6 +6,7 @@
  */
 
 namespace Drupal\migrate\Plugin;
+use Drupal\Component\Plugin\DependentPluginInterface;
 use Drupal\Component\Plugin\PluginInspectionInterface;
 use Drupal\migrate\Row;
 
@@ -62,4 +63,12 @@ public function __toString();
    */
   public function getIds();
 
+  /**
+   * Gets the plugin configuration.
+   *
+   * @return array
+   *   The plugin configuration
+   */
+  public function getConfiguration();
+
 }
diff --git a/core/modules/migrate/src/Plugin/migrate/destination/Config.php b/core/modules/migrate/src/Plugin/migrate/destination/Config.php
index 7d84813..99ba651 100644
--- a/core/modules/migrate/src/Plugin/migrate/destination/Config.php
+++ b/core/modules/migrate/src/Plugin/migrate/destination/Config.php
@@ -104,4 +104,13 @@ public function getIds() {
     return array();
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function calculateDependencies() {
+    list($provider,) = explode('.', $this->config->getName(), 2);
+    $this->addDependency('module', $provider);
+    return $this->dependencies;
+  }
+
 }
diff --git a/core/modules/migrate/src/Plugin/migrate/destination/DestinationBase.php b/core/modules/migrate/src/Plugin/migrate/destination/DestinationBase.php
index 084fd88..c45cf18 100644
--- a/core/modules/migrate/src/Plugin/migrate/destination/DestinationBase.php
+++ b/core/modules/migrate/src/Plugin/migrate/destination/DestinationBase.php
@@ -8,6 +8,8 @@
 
 namespace Drupal\migrate\Plugin\migrate\destination;
 
+use Drupal\Component\Plugin\DependentPluginInterface;
+use Drupal\Core\Entity\DependencyTrait;
 use Drupal\Core\Plugin\PluginBase;
 use Drupal\migrate\Entity\MigrationInterface;
 use Drupal\migrate\Exception\RequirementsException;
@@ -24,7 +26,9 @@
  *
  * @ingroup migration
  */
-abstract class DestinationBase extends PluginBase implements MigrateDestinationInterface, RequirementsInterface {
+abstract class DestinationBase extends PluginBase implements MigrateDestinationInterface, RequirementsInterface, DependentPluginInterface {
+
+  use DependencyTrait;
 
   /**
    * The migration.
@@ -115,4 +119,11 @@ public function resetStats() {
     // TODO: Implement resetStats() method.
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function calculateDependencies() {
+    return $this->dependencies;
+  }
+
 }
diff --git a/core/modules/migrate/src/Plugin/migrate/destination/Entity.php b/core/modules/migrate/src/Plugin/migrate/destination/Entity.php
index 9c44732..8933d5d 100644
--- a/core/modules/migrate/src/Plugin/migrate/destination/Entity.php
+++ b/core/modules/migrate/src/Plugin/migrate/destination/Entity.php
@@ -169,4 +169,12 @@ protected function getKey($key) {
     return $this->storage->getEntityType()->getKey($key);
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function calculateDependencies() {
+    $this->addDependency('module', $this->storage->getEntityType()->getProvider());
+    return $this->dependencies;
+  }
+
 }
diff --git a/core/modules/migrate/src/Plugin/migrate/destination/EntityFieldStorageConfig.php b/core/modules/migrate/src/Plugin/migrate/destination/EntityFieldStorageConfig.php
index 9d1eba3..a8e1038 100644
--- a/core/modules/migrate/src/Plugin/migrate/destination/EntityFieldStorageConfig.php
+++ b/core/modules/migrate/src/Plugin/migrate/destination/EntityFieldStorageConfig.php
@@ -23,4 +23,19 @@ public function getIds() {
     return $ids;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function calculateDependencies() {
+    $this->dependencies = parent::calculateDependencies();
+    // Add a dependency on the module that provides the field type using the
+    // source plugin configuration.
+    $source_configuration = $this->migration->getSourcePlugin()->getConfiguration();
+    if (isset($source_configuration['constants']['type'])) {
+      $field_type = \Drupal::service('plugin.manager.field.field_type')->getDefinition($source_configuration['constants']['type']);
+      $this->addDependency('module', $field_type['provider']);
+    }
+    return $this->dependencies;
+  }
+
 }
diff --git a/core/modules/migrate/src/Plugin/migrate/source/SourcePluginBase.php b/core/modules/migrate/src/Plugin/migrate/source/SourcePluginBase.php
index 2ebcbba..62816af 100644
--- a/core/modules/migrate/src/Plugin/migrate/source/SourcePluginBase.php
+++ b/core/modules/migrate/src/Plugin/migrate/source/SourcePluginBase.php
@@ -7,6 +7,8 @@
 
 namespace Drupal\migrate\Plugin\migrate\source;
 
+use Drupal\Component\Plugin\DependentPluginInterface;
+use Drupal\Core\Entity\DependencyTrait;
 use Drupal\Core\Plugin\PluginBase;
 use Drupal\migrate\Entity\MigrationInterface;
 use Drupal\migrate\MigrateException;
@@ -24,7 +26,9 @@
  *
  * @ingroup migration
  */
-abstract class SourcePluginBase extends PluginBase implements MigrateSourceInterface {
+abstract class SourcePluginBase extends PluginBase implements MigrateSourceInterface, DependentPluginInterface {
+
+  use DependencyTrait;
 
   /**
    * @var \Drupal\Core\Extension\ModuleHandlerInterface
@@ -455,4 +459,25 @@ protected function getCache() {
     return $this->cache;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function calculateDependencies() {
+    // Generic handling for source plugin constants.
+    if (isset($this->configuration['constants']['entity_type'])) {
+      $this->addDependency('module', \Drupal::entityManager()->getDefinition($this->configuration['constants']['entity_type'])->getProvider());
+    }
+    if (isset($this->configuration['constants']['module'])) {
+      $this->addDependency('module', $this->configuration['constants']['module']);
+    }
+    return $this->dependencies;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getConfiguration() {
+    return $this->configuration;
+  }
+
 }
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 81%
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
index a1b6265..1a518fb 100644
--- 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
@@ -11,3 +11,7 @@ process:
 destination:
   plugin: config
   config_name: action.settings
+dependencies:
+  module:
+    - action
+    - migrate_drupal
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 84%
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
index 7b19afd..2daaa8a 100644
--- 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
@@ -19,3 +19,7 @@ process:
 
 destination:
   plugin: entity:aggregator_feed
+dependencies:
+  module:
+    - aggregator
+    - migrate_drupal
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 79%
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
index 615c550..aa80302 100644
--- 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
@@ -22,3 +22,9 @@ destination:
 migration_dependencies:
   required:
     - d6_aggregator_feed
+dependencies:
+  config:
+    - migrate.migration.d6_aggregator_feed
+  module:
+    - aggregator
+    - migrate_drupal
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 91%
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 5b8e605..9720f6e 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,7 @@ process:
 destination:
   plugin: config
   config_name: aggregator.settings
+dependencies:
+  module:
+    - aggregator
+    - migrate_drupal
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 91%
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
index a291ecb..ef02e6f 100644
--- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_block.yml
+++ b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_block.yml
@@ -91,3 +91,11 @@ migration_dependencies:
     - d6_menu
     - d6_custom_block
     - d6_user_role
+dependencies:
+  config:
+    - migrate.migration.d6_custom_block
+    - migrate.migration.d6_menu
+    - migrate.migration.d6_user_role
+  module:
+    - block
+    - migrate_drupal
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 85%
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
index 3da5490..d324a7c 100644
--- 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
@@ -23,3 +23,9 @@ destination:
 migration_dependencies:
   required:
     - d6_block_content_type
+dependencies:
+  config:
+    - migrate.migration.d6_block_content_type
+  module:
+    - block_content
+    - field
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 89%
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
index 3439556..d785775 100644
--- 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
@@ -14,3 +14,6 @@ process:
   label: 'constants/label'
 destination:
   plugin: entity:block_content_type
+dependencies:
+  module:
+    - block_content
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 76%
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
index 1467f91..b6b668d 100644
--- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_book.yml
+++ b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_book.yml
@@ -20,3 +20,10 @@ destination:
 migration_dependencies:
   required:
     - d6_node
+dependencies:
+  config:
+    - migrate.migration.d6_node
+  module:
+    - book
+    - migrate_drupal
+    - node
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 86%
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
index e885d37..35302d0 100644
--- 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
@@ -15,3 +15,7 @@ process:
 destination:
   plugin: config
   config_name: book.settings
+dependencies:
+  module:
+    - book
+    - migrate_drupal
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 69%
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
index fa15989..b3203f9 100644
--- 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
@@ -15,3 +15,10 @@ migration_dependencies:
   required:
     - d6_cck_field_values
     - d6_node_revision
+dependencies:
+  config:
+    - migrate.migration.d6_cck_field_values
+    - migrate.migration.d6_node_revision
+  module:
+    - migrate_drupal
+    - node
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 66%
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
index 27027ba..0457ecf 100644
--- 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
@@ -19,3 +19,11 @@ migration_dependencies:
     - d6_node
     - d6_field_formatter_settings
     - d6_field_instance_widget_settings
+dependencies:
+  config:
+    - migrate.migration.d6_field_formatter_settings
+    - migrate.migration.d6_field_instance_widget_settings
+    - migrate.migration.d6_node
+  module:
+    - migrate_drupal
+    - node
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 75%
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
index 1a41ec7..94fb020 100644
--- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_comment.yml
+++ b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment.yml
@@ -43,3 +43,15 @@ migration_dependencies:
     - d6_comment_entity_display
     - d6_comment_entity_form_display
     - d6_filter_format
+dependencies:
+  config:
+    - migrate.migration.d6_comment_entity_display
+    - migrate.migration.d6_comment_entity_form_display
+    - migrate.migration.d6_comment_type
+    - migrate.migration.d6_filter_format
+    - migrate.migration.d6_node
+    - migrate.migration.d6_user
+  module:
+    - comment
+    - migrate_drupal
+    - node
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 83%
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
index e06c08f..99e373b 100644
--- 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
@@ -24,3 +24,9 @@ destination:
 migration_dependencies:
   required:
     - d6_comment_field_instance
+dependencies:
+  config:
+    - migrate.migration.d6_comment_field_instance
+  module:
+    - migrate_drupal
+    - node
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 83%
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
index a05a11b..059517f 100644
--- 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
@@ -23,3 +23,9 @@ destination:
 migration_dependencies:
   required:
     - d6_comment_field_instance
+dependencies:
+  config:
+    - migrate.migration.d6_comment_field_instance
+  module:
+    - migrate_drupal
+    - node
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 87%
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
index a7e3e6b..8a36272 100644
--- 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
@@ -30,3 +30,9 @@ destination:
 migration_dependencies:
   required:
     - d6_comment_type
+dependencies:
+  config:
+    - migrate.migration.d6_comment_type
+  module:
+    - comment
+    - migrate_drupal
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 77%
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
index ea51546..a51b1d1 100644
--- 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
@@ -17,3 +17,11 @@ destination:
 migration_dependencies:
   required:
     - d6_comment_type
+dependencies:
+  config:
+    - migrate.migration.d6_comment_type
+  module:
+    - comment
+    - field
+    - migrate_drupal
+    - node
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 84%
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
index f00b527..669ea94 100644
--- 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
@@ -32,3 +32,11 @@ migration_dependencies:
   required:
     - d6_comment_field
     - d6_node_type
+dependencies:
+  config:
+    - migrate.migration.d6_comment_field
+    - migrate.migration.d6_node_type
+  module:
+    - field
+    - migrate_drupal
+    - node
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 82%
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
index 54ffec1..35dfde0 100644
--- 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
@@ -13,3 +13,8 @@ process:
   description: description
 destination:
   plugin: entity:comment_type
+dependencies:
+  module:
+    - comment
+    - migrate_drupal
+    - node
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 87%
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
index d50e4fe..cab9f3b 100644
--- 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
@@ -20,3 +20,7 @@ process:
   weight: weight
 destination:
   plugin: entity:contact_form
+dependencies:
+  module:
+    - contact
+    - migrate_drupal
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 82%
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
index e0897fe..d0e4a3d 100644
--- 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
@@ -20,3 +20,9 @@ destination:
 migration_dependencies:
   required:
     - d6_contact_category
+dependencies:
+  config:
+    - migrate.migration.d6_contact_category
+  module:
+    - contact
+    - migrate_drupal
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 72%
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
index 0564f89..be6cebf 100644
--- 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
@@ -22,3 +22,10 @@ migration_dependencies:
   required:
     - d6_filter_format
     - d6_block_content_body_field
+dependencies:
+  config:
+    - migrate.migration.d6_block_content_body_field
+    - migrate.migration.d6_filter_format
+  module:
+    - block_content
+    - migrate_drupal
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 90%
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
index c7f3422..44448e6 100644
--- 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
@@ -19,3 +19,6 @@ process:
   pattern: value
 destination:
   plugin: entity:date_format
+dependencies:
+  module:
+    - migrate_drupal
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 81%
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
index 6c94b1e..fb387f5 100644
--- 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
@@ -11,3 +11,7 @@ process:
 destination:
   plugin: config
   config_name: dblog.settings
+dependencies:
+  module:
+    - dblog
+    - migrate_drupal
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 98%
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
index 52a0824..83d2cc4 100644
--- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_field.yml
+++ b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_field.yml
@@ -131,3 +131,8 @@ process:
 
 destination:
   plugin: entity:field_storage_config
+dependencies:
+  module:
+    - field
+    - migrate_drupal
+    - node
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 97%
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
index 70d5ecb..c5165b3 100644
--- 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
@@ -255,3 +255,10 @@ migration_dependencies:
   required:
     - d6_field_instance
     - d6_view_modes
+dependencies:
+  config:
+    - migrate.migration.d6_field_instance
+    - migrate.migration.d6_view_modes
+  module:
+    - migrate_drupal
+    - node
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 87%
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
index 21ef66d..c7dda06 100644
--- 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
@@ -49,3 +49,11 @@ migration_dependencies:
   required:
     - d6_node_type
     - d6_field
+dependencies:
+  config:
+    - migrate.migration.d6_field
+    - migrate.migration.d6_node_type
+  module:
+    - field
+    - migrate_drupal
+    - node
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 93%
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
index cecc329..4bd3fad 100644
--- 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
@@ -59,3 +59,9 @@ destination:
 migration_dependencies:
   required:
     - d6_field_instance
+dependencies:
+  config:
+    - migrate.migration.d6_field_instance
+  module:
+    - migrate_drupal
+    - node
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 90%
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
index e8ead68..508d0bb 100644
--- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_file.yml
+++ b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_file.yml
@@ -23,3 +23,7 @@ process:
   uid: uid
 destination:
   plugin: entity:file
+dependencies:
+  module:
+    - file
+    - migrate_drupal
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 87%
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
index f08d92e..f2ca170 100644
--- 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
@@ -15,3 +15,7 @@ process:
 destination:
   plugin: config
   config_name: file.settings
+dependencies:
+  module:
+    - file
+    - migrate_drupal
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 93%
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
index 16982d3..9efaf7a 100644
--- 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
@@ -43,3 +43,7 @@ process:
 destination:
   plugin: entity:filter_format
   no_stub: true
+dependencies:
+  module:
+    - filter
+    - migrate_drupal
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 85%
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
index 2df6496..72e4814 100644
--- 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
@@ -27,3 +27,9 @@ destination:
 migration_dependencies:
   required:
     - d6_taxonomy_vocabulary
+dependencies:
+  config:
+    - migrate.migration.d6_taxonomy_vocabulary
+  module:
+    - forum
+    - migrate_drupal
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 85%
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
index e9440cc..a38bd92 100644
--- 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
@@ -13,3 +13,7 @@ process:
 destination:
   plugin: config
   config_name: locale.settings
+dependencies:
+  module:
+    - locale
+    - migrate_drupal
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 76%
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
index 0d353c2..4def0bf 100644
--- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_menu.yml
+++ b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_menu.yml
@@ -10,3 +10,7 @@ process:
   description: description
 destination:
   plugin: entity:menu
+dependencies:
+  module:
+    - migrate_drupal
+    - system
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 88%
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
index 91c093e..2ad8032 100644
--- 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
@@ -44,3 +44,9 @@ destination:
 migration_dependencies:
   required:
     - d6_menu
+dependencies:
+  config:
+    - migrate.migration.d6_menu
+  module:
+    - menu_link_content
+    - migrate_drupal
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 88%
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
index 9f332fb..8ec039d 100644
--- 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
@@ -15,3 +15,7 @@ process:
 destination:
   plugin: config
   config_name: menu_ui.settings
+dependencies:
+  module:
+    - menu_ui
+    - migrate_drupal
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 85%
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
index 947a3cf..4092a25 100644
--- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_node.yml
+++ b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node.yml
@@ -53,3 +53,12 @@ migration_dependencies:
   optional:
     - d6_field_instance_widget_settings
     - d6_field_formatter_settings
+dependencies:
+  config:
+    - migrate.migration.d6_filter_format
+    - migrate.migration.d6_node_settings
+    - migrate.migration.d6_node_type
+    - migrate.migration.d6_user
+  module:
+    - migrate_drupal
+    - node
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 88%
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
index 0b1a478..42118b3 100644
--- 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
@@ -40,3 +40,9 @@ destination:
 migration_dependencies:
   required:
     - d6_node
+dependencies:
+  config:
+    - migrate.migration.d6_node
+  module:
+    - migrate_drupal
+    - node
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 81%
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
index 8f6da35..c7f6d24 100644
--- 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
@@ -17,3 +17,9 @@ destination:
 migration_dependencies:
   required:
     - d6_node_type
+dependencies:
+  config:
+    - migrate.migration.d6_node_type
+  module:
+    - migrate_drupal
+    - node
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 80%
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
index 5d3e412..ec7afd6 100644
--- 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
@@ -17,3 +17,9 @@ destination:
 migration_dependencies:
   required:
     - d6_node_type
+dependencies:
+  config:
+    - migrate.migration.d6_node_type
+  module:
+    - migrate_drupal
+    - node
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 80%
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
index 8a8f7b7..4f1b613 100644
--- 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
@@ -17,3 +17,9 @@ destination:
 migration_dependencies:
   required:
     - d6_node_type
+dependencies:
+  config:
+    - migrate.migration.d6_node_type
+  module:
+    - migrate_drupal
+    - node
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 81%
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
index 3e12dd6..336383a 100644
--- 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
@@ -11,3 +11,7 @@ process:
 destination:
   plugin: config
   config_name: node.settings
+dependencies:
+  module:
+    - migrate_drupal
+    - node
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 90%
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
index 009c3a0..7bd24ac 100644
--- 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
@@ -22,3 +22,7 @@ process:
   create_body_label: body_label
 destination:
   plugin: entity:node_type
+dependencies:
+  module:
+    - migrate_drupal
+    - node
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 58%
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
index d2b81a5..047de4d 100644
--- 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
@@ -16,3 +16,12 @@ migration_dependencies:
     - d6_user_profile_field_instance
     - d6_user_profile_entity_display
     - d6_user_profile_entity_form_display
+dependencies:
+  config:
+    - migrate.migration.d6_user
+    - migrate.migration.d6_user_profile_entity_display
+    - migrate.migration.d6_user_profile_entity_form_display
+    - migrate.migration.d6_user_profile_field_instance
+  module:
+    - migrate_drupal
+    - user
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 90%
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
index d12aca6..6c05d1f 100644
--- 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
@@ -23,3 +23,7 @@ process:
     plugin: d6_search_configuration_rankings
 destination:
   plugin: entity:search_page
+dependencies:
+  module:
+    - migrate_drupal
+    - search
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 89%
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
index 36f5447..8e832e4 100644
--- 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
@@ -20,3 +20,7 @@ process:
 destination:
   plugin: config
   config_name: search.settings
+dependencies:
+  module:
+    - migrate_drupal
+    - search
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 90%
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
index d616a59..0791f11 100644
--- 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
@@ -19,3 +19,7 @@ process:
 destination:
   plugin: config
   config_name: simpletest.settings
+dependencies:
+  module:
+    - migrate_drupal
+    - simpletest
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 88%
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
index a8820db..b223e36 100644
--- 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
@@ -15,3 +15,7 @@ process:
 destination:
   plugin: config
   config_name: statistics.settings
+dependencies:
+  module:
+    - migrate_drupal
+    - statistics
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 83%
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
index 4c9fd49..e962856 100644
--- 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
@@ -13,3 +13,7 @@ process:
 destination:
   plugin: config
   config_name: syslog.settings
+dependencies:
+  module:
+    - migrate_drupal
+    - syslog
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 86%
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
index 01970a9..47be135 100644
--- 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
@@ -14,3 +14,7 @@ process:
 destination:
   plugin: config
   config_name: system.cron
+dependencies:
+  module:
+    - migrate_drupal
+    - system
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 87%
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
index 1405ff5..925b5a9 100644
--- 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
@@ -18,3 +18,7 @@ process:
 destination:
   plugin: config
   config_name: system.file
+dependencies:
+  module:
+    - migrate_drupal
+    - system
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 81%
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
index 739268d..8e36db7 100644
--- 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
@@ -11,3 +11,7 @@ process:
 destination:
   plugin: config
   config_name: system.filter
+dependencies:
+  module:
+    - migrate_drupal
+    - system
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 80%
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
index f19d516..9581291 100644
--- 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
@@ -11,3 +11,7 @@ process:
 destination:
   plugin: config
   config_name: system.image
+dependencies:
+  module:
+    - migrate_drupal
+    - system
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 82%
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
index 52b9052..583ca5b 100644
--- 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
@@ -11,3 +11,7 @@ process:
 destination:
   plugin: config
   config_name: system.image.gd
+dependencies:
+  module:
+    - migrate_drupal
+    - system
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 86%
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
index bca03ec..b75bc7e 100644
--- 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
@@ -19,3 +19,7 @@ process:
 destination:
   plugin: config
   config_name: system.logging
+dependencies:
+  module:
+    - migrate_drupal
+    - system
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 82%
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
index afee3e8..ee40683 100644
--- 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
@@ -11,3 +11,7 @@ process:
 destination:
   plugin: config
   config_name: system.maintenance
+dependencies:
+  module:
+    - migrate_drupal
+    - system
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 88%
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
index edff811..a10edfd 100644
--- 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
@@ -18,3 +18,7 @@ process:
 destination:
   plugin: config
   config_name: system.performance
+dependencies:
+  module:
+    - migrate_drupal
+    - system
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 84%
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
index 7d5fd14..7f5d3d4 100644
--- 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
@@ -13,3 +13,7 @@ process:
 destination:
   plugin: config
   config_name: system.rss
+dependencies:
+  module:
+    - migrate_drupal
+    - system
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 90%
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
index f940abb..c4920fa 100644
--- 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
@@ -25,3 +25,7 @@ process:
 destination:
   plugin: config
   config_name: system.site
+dependencies:
+  module:
+    - migrate_drupal
+    - system
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 86%
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
index 3fe9e1f..094e9d7 100644
--- 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
@@ -13,3 +13,7 @@ process:
 destination:
   plugin: config
   config_name: taxonomy.settings
+dependencies:
+  module:
+    - migrate_drupal
+    - taxonomy
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 82%
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
index c53912f..826a1fa 100644
--- 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
@@ -26,3 +26,9 @@ destination:
 migration_dependencies:
   required:
     - d6_taxonomy_vocabulary
+dependencies:
+  config:
+    - migrate.migration.d6_taxonomy_vocabulary
+  module:
+    - migrate_drupal
+    - taxonomy
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 88%
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
index 414d2cb..1a9cb9c 100644
--- 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
@@ -21,3 +21,7 @@ process:
   weight: weight
 destination:
   plugin: entity:taxonomy_vocabulary
+dependencies:
+  module:
+    - migrate_drupal
+    - taxonomy
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 66%
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
index 4eaf935..6d0befe 100644
--- 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
@@ -20,3 +20,11 @@ migration_dependencies:
     - d6_vocabulary_entity_display
     - d6_vocabulary_entity_form_display
     - d6_node
+dependencies:
+  config:
+    - migrate.migration.d6_node
+    - migrate.migration.d6_vocabulary_entity_display
+    - migrate.migration.d6_vocabulary_entity_form_display
+  module:
+    - migrate_drupal
+    - node
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 75%
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
index 319d000..9193738 100644
--- 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
@@ -20,3 +20,10 @@ migration_dependencies:
   required:
     - d6_term_node
     - d6_node_revision
+dependencies:
+  config:
+    - migrate.migration.d6_node_revision
+    - migrate.migration.d6_term_node
+  module:
+    - migrate_drupal
+    - node
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 82%
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
index 8f6fff3..56d3303 100644
--- 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
@@ -11,3 +11,7 @@ process:
 destination:
   plugin: config
   config_name: text.settings
+dependencies:
+  module:
+    - migrate_drupal
+    - text
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 90%
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
index 4e87350..8a61e51 100644
--- 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
@@ -19,3 +19,7 @@ process:
 destination:
   plugin: config
   config_name: update.settings
+dependencies:
+  module:
+    - migrate_drupal
+    - update
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 77%
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
index 2d04241..fedda76 100644
--- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_upload.yml
+++ b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload.yml
@@ -25,3 +25,10 @@ migration_dependencies:
   required:
     - d6_file
     - d6_node
+dependencies:
+  config:
+    - migrate.migration.d6_file
+    - migrate.migration.d6_node
+  module:
+    - migrate_drupal
+    - node
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 84%
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
index 28e154b..8daf13f 100644
--- 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
@@ -25,3 +25,9 @@ destination:
 migration_dependencies:
   required:
     - d6_upload_field_instance
+dependencies:
+  config:
+    - migrate.migration.d6_upload_field_instance
+  module:
+    - migrate_drupal
+    - node
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 85%
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
index 7725659..f248d1d 100644
--- 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
@@ -26,3 +26,9 @@ destination:
 migration_dependencies:
   required:
     - d6_upload_field_instance
+dependencies:
+  config:
+    - migrate.migration.d6_upload_field_instance
+  module:
+    - migrate_drupal
+    - node
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 91%
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
index 81cfbb9..b4db2c6 100644
--- 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
@@ -21,3 +21,8 @@ process:
   'settings/display_field': 'constants/display_field'
 destination:
   plugin: entity:field_storage_config
+dependencies:
+  module:
+    - field
+    - file
+    - node
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 78%
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
index 4410ec0..7013512 100644
--- 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
@@ -22,3 +22,11 @@ migration_dependencies:
   required:
     - d6_upload_field
     - d6_node_type
+dependencies:
+  config:
+    - migrate.migration.d6_node_type
+    - migrate.migration.d6_upload_field
+  module:
+    - field
+    - migrate_drupal
+    - node
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 81%
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
index 9fb1053..a8579e9 100644
--- 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
@@ -12,3 +12,6 @@ process:
 
 destination:
   plugin: url_alias
+dependencies:
+  module:
+    - migrate_drupal
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 87%
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
index 05ff4a0..b55e2ec 100644
--- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_user.yml
+++ b/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user.yml
@@ -35,3 +35,9 @@ migration_dependencies:
     - d6_user_picture_file
     - d6_user_picture_entity_display
     - d6_user_picture_entity_form_display
+dependencies:
+  config:
+    - migrate.migration.d6_user_role
+  module:
+    - migrate_drupal
+    - user
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 80%
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
index 0429155..7da9e52 100644
--- 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
@@ -21,3 +21,9 @@ destination:
 migration_dependencies:
   required:
     - d6_user
+dependencies:
+  config:
+    - migrate.migration.d6_user
+  module:
+    - contact
+    - migrate_drupal
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 96%
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
index bc3badf..15ea0d4 100644
--- 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
@@ -37,3 +37,7 @@ process:
 destination:
   plugin: config
   config_name: user.mail
+dependencies:
+  module:
+    - migrate_drupal
+    - user
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 85%
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
index f38bc36..dd6be79 100644
--- 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
@@ -28,3 +28,9 @@ destination:
 migration_dependencies:
   required:
     - d6_user_picture_field_instance
+dependencies:
+  config:
+    - migrate.migration.d6_user_picture_field_instance
+  module:
+    - migrate_drupal
+    - user
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 85%
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
index 4e42228..9d2182b 100644
--- 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
@@ -27,3 +27,9 @@ destination:
 migration_dependencies:
   required:
     - d6_user_picture_field_instance
+dependencies:
+  config:
+    - migrate.migration.d6_user_picture_field_instance
+  module:
+    - migrate_drupal
+    - user
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 89%
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
index fde05ac..1e9d2ec 100644
--- 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
@@ -18,3 +18,8 @@ process:
   cardinality: 'constants/cardinality'
 destination:
   plugin: entity:field_storage_config
+dependencies:
+  module:
+    - field
+    - image
+    - user
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 87%
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
index 7dc83b1..1be10a8 100644
--- 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
@@ -28,3 +28,9 @@ destination:
 migration_dependencies:
   required:
     - d6_user_picture_field
+dependencies:
+  config:
+    - migrate.migration.d6_user_picture_field
+  module:
+    - migrate_drupal
+    - user
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 96%
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
index 363df9d..9be0121 100644
--- 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
@@ -27,3 +27,4 @@ migration_dependencies:
 dependencies:
   module:
     - file
+    - migrate_drupal
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 94%
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
index 3e7b467..7da0e7a 100644
--- 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
@@ -38,3 +38,7 @@ process:
       4: true # PROFILE_HIDDEN
 destination:
   plugin: component_entity_display
+dependencies:
+  module:
+    - migrate_drupal
+    - user
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 95%
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
index d1cde0b..18fab1b 100644
--- 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
@@ -47,3 +47,7 @@ process:
       4: true # PROFILE_HIDDEN
 destination:
   plugin: component_entity_form_display
+dependencies:
+  module:
+    - migrate_drupal
+    - user
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 92%
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
index 2a20277..8f591e3 100644
--- 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
@@ -32,3 +32,7 @@ process:
       list: -1
 destination:
   plugin: entity:field_storage_config
+dependencies:
+  module:
+    - migrate_drupal
+    - user
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 80%
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
index ec0e526..4ae6e29 100644
--- 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
@@ -19,3 +19,9 @@ destination:
 migration_dependencies:
   required:
     - d6_user_profile_field
+dependencies:
+  config:
+    - migrate.migration.d6_user_profile_field
+  module:
+    - migrate_drupal
+    - user
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 92%
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
index e15058b..46edcc8 100644
--- 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
@@ -44,3 +44,9 @@ destination:
 migration_dependencies:
   required:
     - d6_filter_format
+dependencies:
+  config:
+    - migrate.migration.d6_filter_format
+  module:
+    - migrate_drupal
+    - user
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 92%
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
index 5984d51..09e2eb7 100644
--- 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
@@ -26,3 +26,7 @@ process:
 destination:
   plugin: config
   config_name: user.settings
+dependencies:
+  module:
+    - migrate_drupal
+    - user
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 92%
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
index 7e3001b..f8bf6fd 100644
--- 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
@@ -38,3 +38,7 @@ process:
 
 destination:
   plugin: entity:entity_view_mode
+dependencies:
+  module:
+    - migrate_drupal
+    - node
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 84%
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
index 9295acd..5c0c9c2 100644
--- 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
@@ -26,3 +26,9 @@ destination:
 migration_dependencies:
   required:
     - d6_vocabulary_field_instance
+dependencies:
+  config:
+    - migrate.migration.d6_vocabulary_field_instance
+  module:
+    - migrate_drupal
+    - node
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 84%
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
index 3dbc95b..91b540a 100644
--- 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
@@ -24,3 +24,9 @@ destination:
 migration_dependencies:
   required:
     - d6_vocabulary_field_instance
+dependencies:
+  config:
+    - migrate.migration.d6_vocabulary_field_instance
+  module:
+    - migrate_drupal
+    - node
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 81%
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
index f2c28a3..8005caa 100644
--- 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
@@ -23,3 +23,11 @@ destination:
 migration_dependencies:
   required:
     - d6_taxonomy_vocabulary
+dependencies:
+  config:
+    - migrate.migration.d6_taxonomy_vocabulary
+  module:
+    - entity_reference
+    - field
+    - migrate_drupal
+    - node
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 85%
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
index 3d7ff35..166155f 100644
--- 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
@@ -23,3 +23,10 @@ destination:
 migration_dependencies:
   required:
     - d6_vocabulary_field
+dependencies:
+  config:
+    - migrate.migration.d6_vocabulary_field
+  module:
+    - field
+    - migrate_drupal
+    - node
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/ViewMode.php b/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/ViewMode.php
index a84a16a..4b16a66 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/ViewMode.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/ViewMode.php
@@ -67,4 +67,15 @@ public function getIds() {
     return $ids;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function calculateDependencies() {
+    $this->dependencies = parent::calculateDependencies();
+    if (isset($this->configuration['constants']['targetEntityType'])) {
+      $this->addDependency('module', \Drupal::entityManager()->getDefinition($this->configuration['constants']['targetEntityType'])->getProvider());
+    }
+    return $this->dependencies;
+  }
+
 }
diff --git a/core/modules/migrate_drupal/src/Tests/MigrateFullDrupalTestBase.php b/core/modules/migrate_drupal/src/Tests/MigrateFullDrupalTestBase.php
index 09dd3cd..6b01174 100644
--- a/core/modules/migrate_drupal/src/Tests/MigrateFullDrupalTestBase.php
+++ b/core/modules/migrate_drupal/src/Tests/MigrateFullDrupalTestBase.php
@@ -7,6 +7,10 @@
 
 namespace Drupal\migrate_drupal\Tests;
 
+use Drupal\Component\Utility\SafeMarkup;
+use Drupal\Core\Config\ExtensionInstallStorage;
+use Drupal\Core\Config\InstallStorage;
+use Drupal\Core\Config\StorageInterface;
 use Drupal\migrate\MigrateExecutable;
 use Drupal\simpletest\TestBase;
 
@@ -54,6 +58,7 @@ public function testDrupal() {
     $this->loadDumps($dumps);
 
     $classes = $this->getTestClassesList();
+    $extension_install_storage = new ExtensionInstallStorage(\Drupal::service('config.storage'), InstallStorage::CONFIG_OPTIONAL_DIRECTORY, StorageInterface::DEFAULT_COLLECTION, TRUE);
     foreach ($classes as $class) {
       if (is_subclass_of($class, '\Drupal\migrate\Tests\MigrateDumpAlterInterface')) {
         $class::migrateDumpAlter($this);
@@ -63,6 +68,16 @@ public function testDrupal() {
     // Run every migration in the order specified by the storage controller.
     foreach (entity_load_multiple('migration', static::$migrations) as $migration) {
       (new MigrateExecutable($migration, $this))->import();
+
+      // Ensure that the default migration has the correct dependencies.
+      list($base_name, ) = explode(':', $migration->id(), 2);
+      $default_configuration = $extension_install_storage->read('migrate.migration.' . $base_name);
+      $default_dependencies = isset($default_configuration['dependencies']) ? $default_configuration['dependencies'] : [];
+      $this->assertEqual($default_dependencies, $migration->getDependencies(), SafeMarkup::format('Dependencies in @id match after installing. Default configuration @first is equal to active configuration @second.', array(
+        '@id' => $migration->id(),
+        '@first' => var_export($default_dependencies, TRUE),
+        '@second' => var_export($migration->getDependencies(), TRUE)
+      )));
     }
     foreach ($classes as $class) {
       $test_object = new $class($this->testId);
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplaySubjectTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplaySubjectTest.php
index 668ae25..f382015 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplaySubjectTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplaySubjectTest.php
@@ -22,7 +22,7 @@ class MigrateCommentVariableEntityFormDisplaySubjectTest extends MigrateDrupal6T
    *
    * @var array
    */
-  static $modules = array('comment');
+  public static $modules = array('comment', 'node');
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserContactSettingsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserContactSettingsTest.php
index d03d8fa..a4a0a18 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserContactSettingsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserContactSettingsTest.php
@@ -21,6 +21,11 @@ class MigrateUserContactSettingsTest extends MigrateDrupal6TestBase {
   /**
    * {@inheritdoc}
    */
+  public static $modules = ['contact'];
+
+  /**
+   * {@inheritdoc}
+   */
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/migrate_drupal/src/Tests/dependencies/MigrateDependenciesTest.php b/core/modules/migrate_drupal/src/Tests/dependencies/MigrateDependenciesTest.php
index a3d24e2..f75a701 100644
--- a/core/modules/migrate_drupal/src/Tests/dependencies/MigrateDependenciesTest.php
+++ b/core/modules/migrate_drupal/src/Tests/dependencies/MigrateDependenciesTest.php
@@ -20,7 +20,7 @@
  */
 class MigrateDependenciesTest extends MigrateDrupal6TestBase {
 
-  static $modules = array('aggregator');
+  static $modules = array('aggregator', 'node', 'comment', 'filter');
 
   /**
    * Tests that the order is correct when loading several migrations.
