diff --git a/core/modules/action/action.info.yml b/core/modules/action/action.info.yml
index 7559efbcb2..763fb7a625 100644
--- a/core/modules/action/action.info.yml
+++ b/core/modules/action/action.info.yml
@@ -5,3 +5,10 @@ package: Core
version: VERSION
core: 8.x
configure: entity.action.collection
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/aggregator/aggregator.info.yml b/core/modules/aggregator/aggregator.info.yml
index d6ffbaa85b..f2a64c9493 100644
--- a/core/modules/aggregator/aggregator.info.yml
+++ b/core/modules/aggregator/aggregator.info.yml
@@ -8,3 +8,10 @@ configure: aggregator.admin_settings
dependencies:
- drupal:file
- drupal:options
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/automated_cron/automated_cron.info.yml b/core/modules/automated_cron/automated_cron.info.yml
index dd947279c6..2ab814ac89 100644
--- a/core/modules/automated_cron/automated_cron.info.yml
+++ b/core/modules/automated_cron/automated_cron.info.yml
@@ -5,3 +5,10 @@ package: Core
version: VERSION
core: 8.x
configure: system.cron_settings
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/ban/ban.info.yml b/core/modules/ban/ban.info.yml
index ba6300de1c..263a171e60 100644
--- a/core/modules/ban/ban.info.yml
+++ b/core/modules/ban/ban.info.yml
@@ -5,3 +5,10 @@ package: Core
version: VERSION
core: 8.x
configure: ban.admin_page
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/basic_auth/basic_auth.info.yml b/core/modules/basic_auth/basic_auth.info.yml
index f1ddb67c52..f25e6a1163 100644
--- a/core/modules/basic_auth/basic_auth.info.yml
+++ b/core/modules/basic_auth/basic_auth.info.yml
@@ -6,3 +6,10 @@ version: VERSION
core: 8.x
dependencies:
- drupal:user
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/big_pipe/big_pipe.info.yml b/core/modules/big_pipe/big_pipe.info.yml
index 35c3015383..bcbfd64e4f 100644
--- a/core/modules/big_pipe/big_pipe.info.yml
+++ b/core/modules/big_pipe/big_pipe.info.yml
@@ -4,3 +4,10 @@ description: 'Sends pages using the BigPipe technique that allows browsers to sh
package: Core
version: VERSION
core: 8.x
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/block/block.info.yml b/core/modules/block/block.info.yml
index 47501efb17..35debb120d 100644
--- a/core/modules/block/block.info.yml
+++ b/core/modules/block/block.info.yml
@@ -5,3 +5,10 @@ package: Core
version: VERSION
core: 8.x
configure: block.admin_display
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/block_content/block_content.info.yml b/core/modules/block_content/block_content.info.yml
index 3315a2738e..f1bb0c9b70 100644
--- a/core/modules/block_content/block_content.info.yml
+++ b/core/modules/block_content/block_content.info.yml
@@ -9,3 +9,10 @@ dependencies:
- drupal:text
- drupal:user
configure: entity.block_content.collection
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/block_place/block_place.info.yml b/core/modules/block_place/block_place.info.yml
index fb5b83a91f..efdb5954e8 100644
--- a/core/modules/block_place/block_place.info.yml
+++ b/core/modules/block_place/block_place.info.yml
@@ -7,3 +7,10 @@ core: 8.x
hidden: true
dependencies:
- drupal:block
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/book/book.info.yml b/core/modules/book/book.info.yml
index d883cc6ead..65dc81c6de 100644
--- a/core/modules/book/book.info.yml
+++ b/core/modules/book/book.info.yml
@@ -7,3 +7,10 @@ core: 8.x
dependencies:
- drupal:node
configure: book.settings
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/breakpoint/breakpoint.info.yml b/core/modules/breakpoint/breakpoint.info.yml
index 256740c02f..ad68068adb 100644
--- a/core/modules/breakpoint/breakpoint.info.yml
+++ b/core/modules/breakpoint/breakpoint.info.yml
@@ -4,3 +4,10 @@ description: 'Manage breakpoints and breakpoint groups for responsive designs.'
package: Core
version: VERSION
core: 8.x
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/ckeditor/ckeditor.info.yml b/core/modules/ckeditor/ckeditor.info.yml
index 73ca3e3c1d..fa21fd6415 100644
--- a/core/modules/ckeditor/ckeditor.info.yml
+++ b/core/modules/ckeditor/ckeditor.info.yml
@@ -6,3 +6,10 @@ core: 8.x
version: VERSION
dependencies:
- drupal:editor
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/color/color.info.yml b/core/modules/color/color.info.yml
index 9ea6daf6b5..c0399278ac 100644
--- a/core/modules/color/color.info.yml
+++ b/core/modules/color/color.info.yml
@@ -4,3 +4,10 @@ description: 'Allows administrators to change the color scheme of compatible the
package: Core
version: VERSION
core: 8.x
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/comment/comment.info.yml b/core/modules/comment/comment.info.yml
index b552cf17bf..77952ada00 100644
--- a/core/modules/comment/comment.info.yml
+++ b/core/modules/comment/comment.info.yml
@@ -7,3 +7,10 @@ core: 8.x
dependencies:
- drupal:text
configure: comment.admin
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/config/config.info.yml b/core/modules/config/config.info.yml
index 88821cea25..1c20e58672 100644
--- a/core/modules/config/config.info.yml
+++ b/core/modules/config/config.info.yml
@@ -5,3 +5,10 @@ package: Core
version: VERSION
core: 8.x
configure: config.sync
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/config_translation/config_translation.info.yml b/core/modules/config_translation/config_translation.info.yml
index 904f57783e..837db8101d 100644
--- a/core/modules/config_translation/config_translation.info.yml
+++ b/core/modules/config_translation/config_translation.info.yml
@@ -7,3 +7,10 @@ core: 8.x
configure: config_translation.mapper_list
dependencies:
- drupal:locale
+migrate:
+ -
+ version: 6
+ status: incomplete
+ -
+ version: 7
+ status: incomplete
diff --git a/core/modules/contact/contact.info.yml b/core/modules/contact/contact.info.yml
index 2507fbd167..b0fbf5e2a6 100644
--- a/core/modules/contact/contact.info.yml
+++ b/core/modules/contact/contact.info.yml
@@ -5,3 +5,10 @@ package: Core
version: VERSION
core: 8.x
configure: entity.contact_form.collection
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/content_moderation/content_moderation.info.yml b/core/modules/content_moderation/content_moderation.info.yml
index 2472f470f3..091152ebc3 100644
--- a/core/modules/content_moderation/content_moderation.info.yml
+++ b/core/modules/content_moderation/content_moderation.info.yml
@@ -7,3 +7,10 @@ package: Core
configure: entity.workflow.collection
dependencies:
- drupal:workflows
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/content_translation/content_translation.info.yml b/core/modules/content_translation/content_translation.info.yml
index 68d1ec0cb3..79ebd4f4e0 100644
--- a/core/modules/content_translation/content_translation.info.yml
+++ b/core/modules/content_translation/content_translation.info.yml
@@ -7,3 +7,10 @@ package: Multilingual
version: VERSION
core: 8.x
configure: language.content_settings_page
+migrate:
+ -
+ version: 6
+ status: incomplete
+ -
+ version: 7
+ status: incomplete
diff --git a/core/modules/contextual/contextual.info.yml b/core/modules/contextual/contextual.info.yml
index 4e11bb966b..6cdfe1d287 100644
--- a/core/modules/contextual/contextual.info.yml
+++ b/core/modules/contextual/contextual.info.yml
@@ -4,3 +4,10 @@ description: 'Provides contextual links to perform actions related to elements o
package: Core
version: VERSION
core: 8.x
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/datetime/datetime.info.yml b/core/modules/datetime/datetime.info.yml
index 884cafcd78..ac8d378466 100644
--- a/core/modules/datetime/datetime.info.yml
+++ b/core/modules/datetime/datetime.info.yml
@@ -6,3 +6,10 @@ version: VERSION
core: 8.x
dependencies:
- drupal:field
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/datetime_range/datetime_range.info.yml b/core/modules/datetime_range/datetime_range.info.yml
index 69006d8e88..faf6f43aac 100644
--- a/core/modules/datetime_range/datetime_range.info.yml
+++ b/core/modules/datetime_range/datetime_range.info.yml
@@ -6,3 +6,10 @@ version: VERSION
core: 8.x
dependencies:
- drupal:datetime
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/dblog/dblog.info.yml b/core/modules/dblog/dblog.info.yml
index b214fb76c7..89bd271d39 100644
--- a/core/modules/dblog/dblog.info.yml
+++ b/core/modules/dblog/dblog.info.yml
@@ -5,3 +5,10 @@ package: Core
version: VERSION
core: 8.x
configure: system.logging_settings
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/dynamic_page_cache/dynamic_page_cache.info.yml b/core/modules/dynamic_page_cache/dynamic_page_cache.info.yml
index 00db97de2c..b542ddf222 100644
--- a/core/modules/dynamic_page_cache/dynamic_page_cache.info.yml
+++ b/core/modules/dynamic_page_cache/dynamic_page_cache.info.yml
@@ -4,3 +4,10 @@ description: 'Caches pages for any user, handling dynamic content correctly.'
package: Core
version: VERSION
core: 8.x
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/editor/editor.info.yml b/core/modules/editor/editor.info.yml
index 745ab2f0a8..9b9a46a414 100644
--- a/core/modules/editor/editor.info.yml
+++ b/core/modules/editor/editor.info.yml
@@ -8,3 +8,10 @@ dependencies:
- drupal:filter
- drupal:file
configure: filter.admin_overview
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/entity_reference/entity_reference.info.yml b/core/modules/entity_reference/entity_reference.info.yml
index 50195b0663..398636bbee 100644
--- a/core/modules/entity_reference/entity_reference.info.yml
+++ b/core/modules/entity_reference/entity_reference.info.yml
@@ -5,3 +5,10 @@ package: Field types
version: VERSION
core: 8.x
hidden: true
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/field/field.info.yml b/core/modules/field/field.info.yml
index 13b5da0054..38af6fb405 100644
--- a/core/modules/field/field.info.yml
+++ b/core/modules/field/field.info.yml
@@ -4,3 +4,10 @@ description: 'Field API to add fields to entities like nodes and users.'
package: Core
version: VERSION
core: 8.x
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/field_layout/field_layout.info.yml b/core/modules/field_layout/field_layout.info.yml
index d5d704c7f3..f57be1a852 100644
--- a/core/modules/field_layout/field_layout.info.yml
+++ b/core/modules/field_layout/field_layout.info.yml
@@ -6,3 +6,10 @@ version: VERSION
core: 8.x
dependencies:
- drupal:layout_discovery
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/field_ui/field_ui.info.yml b/core/modules/field_ui/field_ui.info.yml
index 3d8126b4e4..b30802547a 100644
--- a/core/modules/field_ui/field_ui.info.yml
+++ b/core/modules/field_ui/field_ui.info.yml
@@ -6,3 +6,10 @@ version: VERSION
core: 8.x
dependencies:
- drupal:field
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/file/file.info.yml b/core/modules/file/file.info.yml
index f9f78a703d..3211011b66 100644
--- a/core/modules/file/file.info.yml
+++ b/core/modules/file/file.info.yml
@@ -6,3 +6,10 @@ version: VERSION
core: 8.x
dependencies:
- drupal:field
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/filter/filter.info.yml b/core/modules/filter/filter.info.yml
index 0f3c94ce66..99fd331620 100644
--- a/core/modules/filter/filter.info.yml
+++ b/core/modules/filter/filter.info.yml
@@ -7,3 +7,10 @@ core: 8.x
configure: filter.admin_overview
dependencies:
- drupal:user
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/forum/forum.info.yml b/core/modules/forum/forum.info.yml
index d275dfccb1..1526839d5e 100644
--- a/core/modules/forum/forum.info.yml
+++ b/core/modules/forum/forum.info.yml
@@ -11,3 +11,10 @@ package: Core
version: VERSION
core: 8.x
configure: forum.overview
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/hal/hal.info.yml b/core/modules/hal/hal.info.yml
index 2839943250..657384e667 100644
--- a/core/modules/hal/hal.info.yml
+++ b/core/modules/hal/hal.info.yml
@@ -6,3 +6,10 @@ version: VERSION
core: 8.x
dependencies:
- drupal:serialization
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/help/help.info.yml b/core/modules/help/help.info.yml
index ee4c6433e9..aef9b1e995 100644
--- a/core/modules/help/help.info.yml
+++ b/core/modules/help/help.info.yml
@@ -4,3 +4,10 @@ description: 'Manages the display of online help.'
package: Core
version: VERSION
core: 8.x
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/history/history.info.yml b/core/modules/history/history.info.yml
index 006da6297d..5597856811 100644
--- a/core/modules/history/history.info.yml
+++ b/core/modules/history/history.info.yml
@@ -6,3 +6,10 @@ version: VERSION
core: 8.x
dependencies:
- drupal:node
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/image/image.info.yml b/core/modules/image/image.info.yml
index c17c7e09a1..4501baebfb 100644
--- a/core/modules/image/image.info.yml
+++ b/core/modules/image/image.info.yml
@@ -7,3 +7,10 @@ core: 8.x
dependencies:
- drupal:file
configure: entity.image_style.collection
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/inline_form_errors/inline_form_errors.info.yml b/core/modules/inline_form_errors/inline_form_errors.info.yml
index 6465e19e8f..97fac79012 100644
--- a/core/modules/inline_form_errors/inline_form_errors.info.yml
+++ b/core/modules/inline_form_errors/inline_form_errors.info.yml
@@ -4,3 +4,10 @@ description: 'Places error messages adjacent to form inputs, for improved usabil
version: VERSION
core: 8.x
package: Core
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/language/language.info.yml b/core/modules/language/language.info.yml
index 30770401ad..7f744156a1 100644
--- a/core/modules/language/language.info.yml
+++ b/core/modules/language/language.info.yml
@@ -5,3 +5,10 @@ package: Multilingual
version: VERSION
core: 8.x
configure: entity.configurable_language.collection
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/layout_builder/layout_builder.info.yml b/core/modules/layout_builder/layout_builder.info.yml
index f70cdcaec0..b6196226ed 100644
--- a/core/modules/layout_builder/layout_builder.info.yml
+++ b/core/modules/layout_builder/layout_builder.info.yml
@@ -11,3 +11,10 @@ dependencies:
- drupal:field_ui
# @todo Discuss removing in https://www.drupal.org/project/drupal/issues/3003610.
- drupal:block
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/layout_discovery/layout_discovery.info.yml b/core/modules/layout_discovery/layout_discovery.info.yml
index d0c8d3aff6..0aed1f317b 100644
--- a/core/modules/layout_discovery/layout_discovery.info.yml
+++ b/core/modules/layout_discovery/layout_discovery.info.yml
@@ -4,3 +4,10 @@ description: 'Provides a way for modules or themes to register layouts.'
package: Core
version: VERSION
core: 8.x
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/link/link.info.yml b/core/modules/link/link.info.yml
index c3f8f9c94a..e2bc1178b0 100644
--- a/core/modules/link/link.info.yml
+++ b/core/modules/link/link.info.yml
@@ -6,3 +6,10 @@ package: Field types
version: VERSION
dependencies:
- drupal:field
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/locale/locale.info.yml b/core/modules/locale/locale.info.yml
index 1db8704e71..14a5b2e9a0 100644
--- a/core/modules/locale/locale.info.yml
+++ b/core/modules/locale/locale.info.yml
@@ -8,3 +8,10 @@ core: 8.x
dependencies:
- drupal:language
- drupal:file
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/media/media.info.yml b/core/modules/media/media.info.yml
index 4766c0e524..31766fb1df 100644
--- a/core/modules/media/media.info.yml
+++ b/core/modules/media/media.info.yml
@@ -9,3 +9,10 @@ dependencies:
- drupal:image
- drupal:user
configure: media.settings
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/media_library/media_library.info.yml b/core/modules/media_library/media_library.info.yml
index ddfcf6e447..58c165e5e9 100644
--- a/core/modules/media_library/media_library.info.yml
+++ b/core/modules/media_library/media_library.info.yml
@@ -8,3 +8,10 @@ dependencies:
- drupal:media
- drupal:views
- drupal:user
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/menu_link_content/menu_link_content.info.yml b/core/modules/menu_link_content/menu_link_content.info.yml
index c001f5eb53..aad6d14c7b 100644
--- a/core/modules/menu_link_content/menu_link_content.info.yml
+++ b/core/modules/menu_link_content/menu_link_content.info.yml
@@ -6,3 +6,10 @@ version: VERSION
core: 8.x
dependencies:
- drupal:link
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/menu_ui/menu_ui.info.yml b/core/modules/menu_ui/menu_ui.info.yml
index 0623320585..c5ac205194 100644
--- a/core/modules/menu_ui/menu_ui.info.yml
+++ b/core/modules/menu_ui/menu_ui.info.yml
@@ -7,3 +7,10 @@ core: 8.x
configure: entity.menu.collection
dependencies:
- drupal:menu_link_content
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/migrate/migrate.info.yml b/core/modules/migrate/migrate.info.yml
index 3d2f408052..5f94cb057e 100644
--- a/core/modules/migrate/migrate.info.yml
+++ b/core/modules/migrate/migrate.info.yml
@@ -4,3 +4,10 @@ description: 'Handles migrations'
package: Migration
version: VERSION
core: 8.x
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/migrate/tests/src/Kernel/MigrateStatusTest.php b/core/modules/migrate/tests/src/Kernel/MigrateStatusTest.php
index 7dc0b5b9b6..df9e770305 100644
--- a/core/modules/migrate/tests/src/Kernel/MigrateStatusTest.php
+++ b/core/modules/migrate/tests/src/Kernel/MigrateStatusTest.php
@@ -17,7 +17,7 @@ class MigrateStatusTest extends MigrateTestBase {
public function testStatus() {
// Create a minimally valid migration.
$definition = [
- 'id' => 'migration_status_test',
+ 'id' => 'migrate_status_test',
'migration_tags' => ['Testing'],
'source' => ['plugin' => 'empty'],
'destination' => [
diff --git a/core/modules/migrate_drupal/migrate_drupal.info.yml b/core/modules/migrate_drupal/migrate_drupal.info.yml
index 638bc382fd..9db7e67b2f 100644
--- a/core/modules/migrate_drupal/migrate_drupal.info.yml
+++ b/core/modules/migrate_drupal/migrate_drupal.info.yml
@@ -6,3 +6,10 @@ version: VERSION
core: 8.x
dependencies:
- drupal:migrate
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/migrate_drupal_multilingual/migrate_drupal_multilingual.info.yml b/core/modules/migrate_drupal_multilingual/migrate_drupal_multilingual.info.yml
index 75a79dc285..2a0c38bebf 100644
--- a/core/modules/migrate_drupal_multilingual/migrate_drupal_multilingual.info.yml
+++ b/core/modules/migrate_drupal_multilingual/migrate_drupal_multilingual.info.yml
@@ -5,3 +5,10 @@ package: 'Core (Experimental)'
core: 8.x
dependencies:
- migrate_drupal
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/migrate_drupal_ui/migrate_drupal_ui.info.yml b/core/modules/migrate_drupal_ui/migrate_drupal_ui.info.yml
index 8d39c65e3e..bf59538af8 100644
--- a/core/modules/migrate_drupal_ui/migrate_drupal_ui.info.yml
+++ b/core/modules/migrate_drupal_ui/migrate_drupal_ui.info.yml
@@ -9,3 +9,10 @@ dependencies:
- drupal:migrate
- drupal:migrate_drupal
- drupal:dblog
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/migrate_drupal_ui/src/Form/ReviewForm.php b/core/modules/migrate_drupal_ui/src/Form/ReviewForm.php
index f78109e41f..6ac035af81 100644
--- a/core/modules/migrate_drupal_ui/src/Form/ReviewForm.php
+++ b/core/modules/migrate_drupal_ui/src/Form/ReviewForm.php
@@ -9,14 +9,41 @@
use Drupal\migrate\Plugin\MigrationPluginManagerInterface;
use Drupal\migrate_drupal_ui\Batch\MigrateUpgradeImportBatch;
use Symfony\Component\DependencyInjection\ContainerInterface;
+use Drupal\Component\Utility\Xss;
/**
* Migrate Upgrade review form.
*
* This confirmation form uses the source_module and destination_module
- * properties on the source, destination and field plugins as well as the
- * system data from the source to determine if there is a migration path for
- * each module in the source.
+ * properties on the source, destination and field plugins, system data from the
+ * source and destination to determine if there is a migration path for each
+ * module enabled in the source.
+ *
+ * Modules on the destination site declare their migrate status in their
+ * .info.yml file.
+ *
+ * Information stored in .info.yml files for migrate.
+ * - migrate: The key for the migrate array.
+ * - version: A Drupal legacy version number
+ * - status: The migrate status for this legacy version. The status values
+ * available are:
+ * - complete: All migrations for this destination module are complete.
+ * - incomplete: There are migration in the destination module but more are
+ * required before it is complete.
+ * - n/a: This destination module does not require any migrations.
+ * - won't fix: This destination should have migrations but according to
+ * policy they are not going to be created.
+ * - active: This destination module requires migrations but non exist yet.
+ *
+ * @code
+ * migrate:
+ * -
+ * version: 6
+ * status: complete
+ * -
+ * version: 7
+ * status: incomplete
+ * @endcode
*
* @internal
*/
@@ -51,11 +78,28 @@ class ReviewForm extends MigrateUpgradeFormBase {
protected $migrations;
/**
+ * Display data.
+ *
+ * @var array
+ */
+ protected $display;
+
+ /**
+ * The destination site migrate information from info.yml.
+ *
+ * @var array
+ */
+ protected $destinationSystemMigrateInfo;
+
+ /**
* List of extensions that do not need an upgrade path.
*
* This property is an array where the keys are the major Drupal core version
* from which we are upgrading, and the values are arrays of extension names
- * that do not need an upgrade path.
+ * that do not need an upgrade path and are not names in the 'source_module'
+ * annotation for a migration. In other words, the functionality of these
+ * extensions has moved into core, or been dropped from core, and there isn't
+ * a Drupal 8 module of the same name.
*
* @var array[]
*/
@@ -64,7 +108,6 @@ class ReviewForm extends MigrateUpgradeFormBase {
'blog',
'blogapi',
'calendarsignup',
- 'color',
'content_copy',
'content_multigroup',
'content_permissions',
@@ -94,7 +137,6 @@ class ReviewForm extends MigrateUpgradeFormBase {
'ping',
'poll',
'throttle',
- 'tracker',
'translation',
'trigger',
'variable',
@@ -105,7 +147,6 @@ class ReviewForm extends MigrateUpgradeFormBase {
'7' => [
'blog',
'bulk_export',
- 'contextual',
'ctools',
'ctools_access_ruleset',
'ctools_ajax_sample',
@@ -124,8 +165,6 @@ class ReviewForm extends MigrateUpgradeFormBase {
'entity_feature',
'entity_token',
'entityreference',
- 'field_ui',
- 'help',
'openid',
'overlay',
'page_manager',
@@ -191,7 +230,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
// Get all the data needed for this form.
$version = $this->store->get('version');
$this->migrations = $this->store->get('migrations');
- // Fetch the system data at the first opportunity.
+ // Fetch the source system data at the first opportunity.
$system_data = $this->store->get('system_data');
// If data is missing or this is the wrong step, start over.
@@ -200,21 +239,41 @@ public function buildForm(array $form, FormStateInterface $form_state) {
return $this->restartUpgradeForm();
}
+ // Get migration status from .info.yml for all modules on destination site.
+ $system_info = system_get_info('module');
+ $this->destinationSystemMigrateInfo = [];
+ foreach ($system_info as $module => $info) {
+ if (isset($info['migrate'])) {
+ foreach ($info['migrate'] as $migrate_info) {
+ if (isset($migrate_info['version']) && ($migrate_info['version'] == $version)) {
+ $this->destinationSystemMigrateInfo[$module] = $migrate_info;
+ }
+ }
+ }
+ }
+ // Some migrations use 'core' as the destination so add an entry for core.
+ $this->destinationSystemMigrateInfo['core']['status'] = 'complete';
+
$form = parent::buildForm($form, $form_state);
$form['#title'] = $this->t('What will be upgraded?');
- // Get the source_module and destination_module for each migration.
+ // Build an array of migrations, table_data, keyed by source_module and
+ // destination_module. Only migrations that have both a source_module and
+ // a destination_module definition are added to the array.
$migrations = $this->pluginManager->createInstances(array_keys($this->store->get('migrations')));
$table_data = [];
foreach ($migrations as $migration) {
$migration_id = $migration->getPluginId();
$source_module = $migration->getSourcePlugin()->getSourceModule();
if (!$source_module) {
- $this->messenger()->addError($this->t('Source module not found for @migration_id.', ['@migration_id' => $migration_id]));
+ $this->messenger()
+ ->addError($this->t('Source module not found for @migration_id.', ['@migration_id' => $migration_id]));
}
- $destination_module = $migration->getDestinationPlugin()->getDestinationModule();
+ $destination_module = $migration->getDestinationPlugin()
+ ->getDestinationModule();
if (!$destination_module) {
- $this->messenger()->addError($this->t('Destination module not found for @migration_id.', ['@migration_id' => $migration_id]));
+ $this->messenger()
+ ->addError($this->t('Destination module not found for @migration_id.', ['@migration_id' => $migration_id]));
}
if ($source_module && $destination_module) {
@@ -222,7 +281,8 @@ public function buildForm(array $form, FormStateInterface $form_state) {
}
}
- // Get the source_module and destination_module from the field plugins.
+ // Add entries for the field plugins to table_data. Use the field plugin id
+ // as both the migration id and the migration label.
$definitions = $this->fieldPluginManager->getDefinitions();
foreach ($definitions as $definition) {
// This is not strict so that we find field plugins with an annotation
@@ -234,19 +294,26 @@ public function buildForm(array $form, FormStateInterface $form_state) {
}
}
- // Add source_module and destination_module for modules that do not need an
- // upgrade path and are enabled on the source site.
+ // Adds entries for modules that do not need an upgrade path and are enabled
+ // on the source site to table_data. In this case use 'core' as the
+ // destination_module and the extension name as both the migration id and
+ // label.
foreach ($this->noUpgradePaths[$version] as $extension) {
if (isset($system_data['module'][$extension]) && $system_data['module'][$extension]['status']) {
$table_data[$extension]['core'][$extension] = $extension;
}
}
- // Sort the table by source module names and within that destination
- // module names.
- ksort($table_data);
- foreach ($table_data as $source_module => $destination_module_info) {
- ksort($table_data[$source_module]);
+ // Adds entries to table_data for modules with a migrate status of 'n/a' and
+ // are enabled on the source site. In this case use 'core' as the
+ // destination_module and the extension name as both the migration id and
+ // label.
+ foreach ($this->destinationSystemMigrateInfo as $extension => $migrate_info) {
+ if (isset($migrate_info['status']) && (strtolower($migrate_info['status']) === 'n/a')) {
+ if (isset($system_data['module'][$extension]) && $system_data['module'][$extension]['status']) {
+ $table_data[$extension]['core'][$extension] = $extension;
+ }
+ }
}
// Remove core profiles from the system data.
@@ -254,7 +321,8 @@ public function buildForm(array $form, FormStateInterface $form_state) {
unset($system_data['module'][$profile]);
}
- $unmigrated_source_modules = array_diff_key($system_data['module'], $table_data);
+ // Prepare an array with the data to display.
+ $display = $this->buildDisplay($system_data, $table_data);
// Missing migrations.
$missing_module_list = [
@@ -262,7 +330,10 @@ public function buildForm(array $form, FormStateInterface $form_state) {
'#open' => TRUE,
'#title' => $this->t('Modules that will not be upgraded'),
'#summary_attributes' => ['id' => ['error']],
- '#description' => $this->t('There are no modules installed on your new site to replace these modules. If you proceed with the upgrade now, configuration and/or content needed by these modules will not be available on your new site. For more information, see Review the pre-upgrade analysis in the Upgrading to Drupal 8 handbook.', [':review' => 'https://www.drupal.org/docs/8/upgrade/upgrade-using-web-browser#pre-upgrade-analysis', ':migrate' => 'https://www.drupal.org/docs/8/upgrade']),
+ '#description' => $this->t('There are no modules installed on your new site to replace these modules. If you proceed with the upgrade now, configuration and/or content needed by these modules will not be available on your new site. For more information, see Review the pre-upgrade analysis in the Upgrading to Drupal 8 handbook.', [
+ ':review' => 'https://www.drupal.org/docs/8/upgrade/upgrade-using-web-browser#pre-upgrade-analysis',
+ ':migrate' => 'https://www.drupal.org/docs/8/upgrade',
+ ]),
'#weight' => 2,
];
$missing_module_list['module_list'] = [
@@ -270,14 +341,17 @@ public function buildForm(array $form, FormStateInterface $form_state) {
'#header' => [
$this->t('Drupal @version', ['@version' => $version]),
$this->t('Drupal 8'),
+ $this->t('Details'),
],
];
+
$missing_count = 0;
- ksort($unmigrated_source_modules);
- foreach ($unmigrated_source_modules as $source_module => $module_data) {
- if ($module_data['status']) {
+ if (isset($display['error'])) {
+ foreach ($display['error'] as $source_module => $data) {
$missing_count++;
- $missing_module_list['module_list'][$source_module] = [
+ // Get the migration status for this $source_module, if a module of the
+ // same name exists on the destination site.
+ $missing_module_list['module_list'][] = [
'source_module' => [
'#type' => 'html_tag',
'#tag' => 'span',
@@ -289,7 +363,59 @@ public function buildForm(array $form, FormStateInterface $form_state) {
],
],
],
- 'destination_module' => ['#plain_text' => 'Not upgraded'],
+ 'destination_module' => [
+ '#plain_text' => $data['destination_modules'],
+ ],
+ 'destination_description' => [
+ '#type' => 'item',
+ '#markup' => Xss::filterAdmin($data['description']),
+ ],
+ ];
+ }
+ }
+
+ // Incomplete migrations.
+ $incomplete_module_list = [
+ '#type' => 'details',
+ '#title' => $this->t('Modules that will be partially upgraded'),
+ '#summary_attributes' => ['id' => ['warning']],
+ '#weight' => 3,
+ ];
+
+ $incomplete_module_list['module_list'] = [
+ '#type' => 'table',
+ '#header' => [
+ $this->t('Drupal @version', ['@version' => $version]),
+ $this->t('Drupal 8'),
+ $this->t('Details'),
+ ],
+ ];
+
+ $incomplete_count = 0;
+ if (isset($display['warning'])) {
+ foreach ($display['warning'] as $source_module => $data) {
+ $incomplete_count++;
+ // Get the migration status for this $source_module, if a module of the
+ // same name exists on the destination site.
+ $incomplete_module_list['module_list'][] = [
+ 'source_module' => [
+ '#type' => 'html_tag',
+ '#tag' => 'span',
+ '#value' => $source_module,
+ '#attributes' => [
+ 'class' => [
+ 'upgrade-analysis-report__status-icon',
+ 'upgrade-analysis-report__status-icon--warning',
+ ],
+ ],
+ ],
+ 'destination_module' => [
+ '#plain_text' => $data['destination_modules'],
+ ],
+ 'destination_description' => [
+ '#type' => 'item',
+ '#markup' => Xss::filterAdmin($data['description']),
+ ],
];
}
}
@@ -299,7 +425,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
'#type' => 'details',
'#title' => $this->t('Modules that will be upgraded'),
'#summary_attributes' => ['id' => ['checked']],
- '#weight' => 3,
+ '#weight' => 4,
];
$available_module_list['module_list'] = [
@@ -307,33 +433,35 @@ public function buildForm(array $form, FormStateInterface $form_state) {
'#header' => [
$this->t('Drupal @version', ['@version' => $version]),
$this->t('Drupal 8'),
+ $this->t('Details'),
],
];
$available_count = 0;
- foreach ($table_data as $source_module => $destination_module_info) {
- $available_count++;
- $destination_details = [];
- foreach ($destination_module_info as $destination_module => $migration_ids) {
- $destination_details[$destination_module] = [
- '#type' => 'item',
- '#plain_text' => $destination_module,
- ];
- }
- $available_module_list['module_list'][$source_module] = [
- 'source_module' => [
- '#type' => 'html_tag',
- '#tag' => 'span',
- '#value' => $source_module,
- '#attributes' => [
- 'class' => [
- 'upgrade-analysis-report__status-icon',
- 'upgrade-analysis-report__status-icon--checked',
+ if (isset($display['ok'])) {
+ foreach ($display['ok'] as $source_module => $data) {
+ $available_count++;
+ $available_module_list['module_list'][] = [
+ 'source_module' => [
+ '#type' => 'html_tag',
+ '#tag' => 'span',
+ '#value' => $source_module,
+ '#attributes' => [
+ 'class' => [
+ 'upgrade-analysis-report__status-icon',
+ 'upgrade-analysis-report__status-icon--checked',
+ ],
],
],
- ],
- 'destination_module' => $destination_details,
- ];
+ 'destination_module' => [
+ '#plain_text' => $data['destination_modules'],
+ ],
+ 'destination_description' => [
+ '#type' => 'item',
+ '#markup' => Xss::filterAdmin($data['description']),
+ ],
+ ];
+ }
}
$counters = [];
@@ -349,13 +477,22 @@ public function buildForm(array $form, FormStateInterface $form_state) {
];
$general_info[] = $missing_module_list;
}
+ if ($incomplete_count) {
+ $counters[] = [
+ '#theme' => 'status_report_counter',
+ '#amount' => $incomplete_count,
+ '#text' => $this->formatPlural($available_count, 'Module will be partially upgraded', 'Modules will be partially upgraded'),
+ '#severity' => 'warning',
+ '#weight' => 1,
+ ];
+ $general_info[] = $incomplete_module_list;
+ }
if ($available_count) {
$counters[] = [
'#theme' => 'status_report_counter',
'#amount' => $available_count,
- '#text' => $this->formatPlural($available_count, 'Module will be upgraded', 'Modules will be upgraded'),
- '#severity' => 'checked',
- '#weight' => 1,
+ '#text' => $this->formatPlural($missing_count, 'Module will be upgraded', 'Modules will be upgraded'),
+ '#weight' => 2,
];
$general_info[] = $available_module_list;
}
@@ -386,7 +523,8 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
],
],
'finished' => [
- MigrateUpgradeImportBatch::class, 'finished',
+ MigrateUpgradeImportBatch::class,
+ 'finished',
],
];
batch_set($batch);
@@ -402,4 +540,249 @@ public function getConfirmText() {
return $this->t('Perform upgrade');
}
+ /**
+ * Build the data to display.
+ *
+ * @param array $source_system_data
+ * The data from the source site system table.
+ * @param array $table_data
+ * The source modules that have at least one migration.
+ *
+ * @return array
+ * An associative array of data keyed by the display categories, 'error',
+ * 'warning' and 'ok'.
+ */
+ public function buildDisplay(array $source_system_data, array $table_data) {
+ // Modules that are in the source system table and not in the destination
+ // migration data will not be migrated.
+ $unmigrated_source_modules = array_diff_key($source_system_data['module'], $table_data);
+ foreach ($unmigrated_source_modules as $source_module => $module_data) {
+ // Only display modules that are enabled on the source.
+ if ($module_data['status']) {
+ $migration_status = 'error';
+ $destination_description = '';
+ $destination_modules = [];
+ // Get any system information for a destination module of the same name.
+ list($migration_status, $destination_description) = $this->setDisplay($source_module, $migration_status, $destination_description);
+ $this->addToDisplay($source_module, $migration_status, $destination_description, $destination_modules);
+ }
+ }
+
+ // Build display data for the modules that have migrations.
+ foreach ($table_data as $source_module => $destination_module_info) {
+ $migration_status = '';
+ $destination_description = '';
+ $destination_modules = [];
+ // Combine the per destination module information.
+ foreach ($destination_module_info as $destination_module => $migration_ids) {
+ $destination_modules[] = $destination_module;
+ list($migration_status, $destination_description) = $this->setDisplay($destination_module, $migration_status, $destination_description);
+ }
+ $this->addToDisplay($source_module, $migration_status, $destination_description, $destination_modules);
+ }
+
+ foreach ($this->display as $key => $value) {
+ ksort($this->display[$key]);
+ }
+ return $this->display;
+ }
+
+ /**
+ * Sets the display for one module.
+ *
+ * @param string $module
+ * The destination module name.
+ * @param string $migration_status
+ * The migration status for this module.
+ * @param string $destination_description
+ * The current description details text.
+ *
+ * @return array
+ * An indexed area where the first element in the new migration status for
+ * this module and the second element is the new description text.
+ */
+ public function setDisplay($module, $migration_status, $destination_description) {
+ if (isset($this->destinationSystemMigrateInfo[$module])) {
+ if (isset($this->destinationSystemMigrateInfo[$module]['description'])) {
+ $destination_description = ' ' . $this->destinationSystemMigrateInfo[$module]['description'];
+ }
+ if (isset($this->destinationSystemMigrateInfo[$module]['status'])) {
+ $status = $this->destinationSystemMigrateInfo[$module]['status'];
+ $migration_status = $this->updateStatus($migration_status, $status);
+ }
+ }
+ return [$migration_status, $destination_description];
+ }
+
+ /**
+ * Helper to setup display array.
+ *
+ * @param string $source_module
+ * The source module name.
+ * @param string $migration_status
+ * The computed migration status of the source module.
+ * @param string $destination_description
+ * A string of descriptions from system_info_alter.
+ * @param array $destination_modules
+ * The destination modules names.
+ */
+ public function addToDisplay($source_module, $migration_status, $destination_description, array $destination_modules) {
+ $category = $this->getDisplayCategory($migration_status);
+ $this->display[$category][$source_module]['description'] = $destination_description;
+ $this->display[$category][$source_module]['display_status'] = $migration_status;
+ $this->display[$category][$source_module]['destination_modules'] = implode(', ', $destination_modules);
+ }
+
+ /**
+ * Determines the migration status of a source module.
+ *
+ * Several migrations can use the same source_module definition but have
+ * different destination_module definitions. To determine the migration
+ * status of the source module compare the migration status of each
+ * destination module to decide the status.
+ *
+ * If all the destination modules, with the same source module, have a
+ * status of 'complete' then 'complete' is used. If any of the destination
+ * modules have a status of 'incomplete', then 'incomplete' is used.
+ *
+ * In any case where the combination of destination module statuses doesn't
+ * make sense the status is set to 'error'.
+ *
+ * @param string $current_status
+ * The current status.
+ * @param string $new_status
+ * The new status being 'added'.
+ *
+ * @return string
+ * The new computed status.
+ */
+ public function updateStatus($current_status, $new_status) {
+ switch ($current_status) {
+ case 'complete':
+ switch ($new_status) {
+ case 'complete':
+ $new_status = 'complete';
+ break;
+
+ case 'incomplete':
+ $new_status = 'incomplete';
+ break;
+
+ case 'n/a':
+ $new_status = 'error';
+ break;
+
+ case "won't fix":
+ $new_status = 'error';
+ break;
+
+ case 'active':
+ $new_status = 'incomplete';
+ break;
+
+ default:
+ $new_status = 'error';
+ break;
+ }
+ break;
+
+ case 'incomplete':
+ switch ($new_status) {
+ case 'complete':
+ $new_status = 'incomplete';
+ break;
+
+ case 'incomplete':
+ $new_status = 'incomplete';
+ break;
+
+ case 'n/a':
+ $new_status = 'error';
+ break;
+
+ case "won't fix":
+ $new_status = 'error';
+ break;
+
+ case 'active':
+ $new_status = 'incomplete';
+ break;
+
+ default:
+ $new_status = 'error';
+ break;
+ }
+ break;
+
+ case 'n/a':
+ switch ($new_status) {
+ case 'complete':
+ $new_status = 'error';
+ break;
+
+ case 'incomplete':
+ $new_status = 'error';
+ break;
+
+ case 'n/a':
+ $new_status = 'error';
+ break;
+
+ case "won't fix":
+ $new_status = 'error';
+ break;
+
+ case 'active':
+ $new_status = 'error';
+ break;
+
+ default:
+ $new_status = 'error';
+ break;
+ }
+ break;
+
+ // Initialize the current_status.
+ case '':
+ case 'active':
+ case 'error':
+ case "won't fix":
+ default:
+
+ }
+ return $new_status;
+
+ }
+
+ /**
+ * Gets the source module display category based on migration status.
+ *
+ * @param string $current_status
+ * The upgrade status of a module.
+ *
+ * @return string
+ * The display category.
+ */
+ public function getDisplayCategory($current_status) {
+ // Error is used internally and not to be used in *.info.yml.
+ switch ($current_status) {
+ case 'complete':
+ case 'n/a':
+ $category = 'ok';
+ break;
+
+ case 'incomplete':
+ $category = 'warning';
+ break;
+
+ case 'active':
+ case 'error':
+ case "won't fix":
+ default:
+ $category = 'error';
+ break;
+ }
+ return $category;
+ }
+
}
diff --git a/core/modules/migrate_drupal_ui/tests/modules/migrate_status_active_test/migrate_status_active_test.info.yml b/core/modules/migrate_drupal_ui/tests/modules/migrate_status_active_test/migrate_status_active_test.info.yml
new file mode 100644
index 0000000000..fcaf168d81
--- /dev/null
+++ b/core/modules/migrate_drupal_ui/tests/modules/migrate_status_active_test/migrate_status_active_test.info.yml
@@ -0,0 +1,10 @@
+name: 'Migrate status active test'
+type: module
+description: "Tests the 'active' migrate status"
+package: Testing
+version: VERSION
+core: 8.x
+migrate:
+ -
+ version: 6
+ status: active
diff --git a/core/modules/migrate_drupal_ui/tests/modules/migrate_status_active_test/migrate_status_active_test.module b/core/modules/migrate_drupal_ui/tests/modules/migrate_status_active_test/migrate_status_active_test.module
new file mode 100644
index 0000000000..763f74b983
--- /dev/null
+++ b/core/modules/migrate_drupal_ui/tests/modules/migrate_status_active_test/migrate_status_active_test.module
@@ -0,0 +1,14 @@
+pageTextNotContains(t('module not found'));
- // Test the upgrade paths.
+ // Test the review page.
$available_paths = $this->getAvailablePaths();
+ $available_paths_warning = $this->getAvailablePathsWarning();
$missing_paths = $this->getMissingPaths();
- $this->assertReviewPage($session, $available_paths, $missing_paths);
+ $details = $this->getDetails();
+ $this->assertReviewPage($session, $available_paths, $available_paths_warning, $missing_paths, $details);
$this->drupalPostForm(NULL, [], t('Perform upgrade'));
$this->assertText(t('Congratulations, you upgraded Drupal!'));
@@ -146,12 +148,7 @@ public function testMigrateUpgradeExecute() {
$this->drupalPostForm(NULL, [], t('I acknowledge I may lose data. Continue anyway.'));
$session->statusCodeEquals(200);
- // Need to update available and missing path lists.
- $all_available = $this->getAvailablePaths();
- $all_available[] = 'aggregator';
- $all_missing = $this->getMissingPaths();
- $all_missing = array_diff($all_missing, ['aggregator']);
- $this->assertReviewPage($session, $all_available, $all_missing);
+ // Run the incremental migration and check the results.
$this->drupalPostForm(NULL, [], t('Perform upgrade'));
$session->pageTextContains(t('Congratulations, you upgraded Drupal!'));
$this->assertMigrationResults($this->getEntityCountsIncremental(), $version);
diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeI18nReviewPageTestBase.php b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeI18nReviewPageTestBase.php
index 8a57115edf..7a466504bf 100644
--- a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeI18nReviewPageTestBase.php
+++ b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeI18nReviewPageTestBase.php
@@ -38,8 +38,10 @@ public function testMigrateUpgradeReviewPage() {
// Test the upgrade paths.
$available_paths = $this->getAvailablePaths();
+ $incomplete_paths = $this->getIncompletePaths();
$missing_paths = $this->getMissingPaths();
- $this->assertUpgradePaths($session, $available_paths, $missing_paths);
+ $details = $this->getDetails();
+ $this->assertUpgradePaths($session, $available_paths, $incomplete_paths, $missing_paths, $details);
}
}
diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeReviewPageTestBase.php b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeReviewPageTestBase.php
index 5c97a69070..e85b5d42b8 100644
--- a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeReviewPageTestBase.php
+++ b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeReviewPageTestBase.php
@@ -63,8 +63,10 @@ public function testMigrateUpgradeReviewPage() {
// Test the upgrade paths.
$available_paths = $this->getAvailablePaths();
+ $incomplete_paths = $this->getIncompletePaths();
$missing_paths = $this->getMissingPaths();
- $this->assertUpgradePaths($session, $available_paths, $missing_paths);
+ $details = $this->getDetails();
+ $this->assertUpgradePaths($session, $available_paths, $incomplete_paths, $missing_paths, $details);
// Check there are no errors when a module in noUpgradePaths is not in the
// source system tables. Test with a module that is listed in noUpgradePaths
@@ -82,11 +84,13 @@ public function testMigrateUpgradeReviewPage() {
$this->drupalPostForm(NULL, $this->edits, t('Review upgrade'));
$this->drupalPostForm(NULL, [], t('I acknowledge I may lose data. Continue anyway.'));
- // Test the upgrade paths.
+ // Test the upgrade paths. First remove the module from the available paths
+ // list.
$available_paths = $this->getAvailablePaths();
$available_paths = array_diff($available_paths, [$module]);
+ $incomplete_paths = $this->getIncompletePaths();
$missing_paths = $this->getMissingPaths();
- $this->assertUpgradePaths($session, $available_paths, $missing_paths);
+ $this->assertUpgradePaths($session, $available_paths, $incomplete_paths, $missing_paths, $details);
}
/**
@@ -136,6 +140,16 @@ public function prepare() {
$conditions->condition('name', 'simpletest');
$update->condition($conditions);
$update->execute();
+
+ // Create entries for D8 test modules.
+ $insert = $this->sourceDatabase->insert('system')
+ ->fields([
+ 'filename' => 'migrate_status_active_test',
+ 'name' => 'migrate_status_active_test',
+ 'type' => 'module',
+ 'status' => 1,
+ ]);
+ $insert->execute();
}
/**
diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeTestBase.php b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeTestBase.php
index 73158feef0..e1eec2320a 100644
--- a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeTestBase.php
+++ b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeTestBase.php
@@ -104,25 +104,45 @@ protected function tearDown() {
* The web-assert session.
* @param array $available_paths
* An array of modules that will be upgraded.
+ * @param array $incomplete_paths
+ * An array of modules where the migration path is incomplete.
* @param array $missing_paths
* An array of modules that will not be upgraded.
+ * @param array $details
+ * An array of detail messages displayed on the review page.
*/
- protected function assertUpgradePaths(WebAssert $session, array $available_paths, array $missing_paths) {
+ protected function assertUpgradePaths(WebAssert $session, array $available_paths, array $incomplete_paths, array $missing_paths, array $details) {
// Test the available migration paths.
foreach ($available_paths as $available) {
$session->elementExists('xpath', "//span[contains(@class, 'checked') and text() = '$available']");
$session->elementNotExists('xpath', "//span[contains(@class, 'error') and text() = '$available']");
+ $session->elementNotExists('xpath', "//span[contains(@class, 'warning') and text() = '$available']");
+ }
+
+ // Test the incomplete migration paths.
+ foreach ($incomplete_paths as $incomplete) {
+ $session->elementExists('xpath', "//span[contains(@class, 'warning') and text() = '$incomplete']");
+ $session->elementNotExists('xpath', "//span[contains(@class, 'error') and text() = '$incomplete']");
+ $session->elementNotExists('xpath', "//span[contains(@class, 'checked') and text() = '$incomplete']");
}
// Test the missing migration paths.
foreach ($missing_paths as $missing) {
$session->elementExists('xpath', "//span[contains(@class, 'error') and text() = '$missing']");
$session->elementNotExists('xpath', "//span[contains(@class, 'checked') and text() = '$missing']");
+ $session->elementNotExists('xpath', "//span[contains(@class, 'warning') and text() = '$missing']");
}
- // Test the total count of missing and available paths.
+ // Test the total count of missing, available and warning.
$session->elementsCount('xpath', "//span[contains(@class, 'upgrade-analysis-report__status-icon--error')]", count($missing_paths));
$session->elementsCount('xpath', "//span[contains(@class, 'upgrade-analysis-report__status-icon--checked')]", count($available_paths));
+ $session->elementsCount('xpath', "//span[contains(@class, 'upgrade-analysis-report__status-icon--warning')]", count($incomplete_paths));
+
+ // Tests the displayed details messages.
+ foreach ($details as $detail) {
+ $session->pageTextContains($detail[0]);
+ }
+
}
/**
@@ -150,6 +170,14 @@ protected function assertUpgradePaths(WebAssert $session, array $available_paths
abstract protected function getAvailablePaths();
/**
+ * Gets the incomplete upgrade paths.
+ *
+ * @return string[]
+ * An array of incomplete upgrade paths.
+ */
+ abstract protected function getIncompletePaths();
+
+ /**
* Gets the missing upgrade paths.
*
* @return string[]
@@ -158,6 +186,14 @@ protected function assertUpgradePaths(WebAssert $session, array $available_paths
abstract protected function getMissingPaths();
/**
+ * Gets the details messages.
+ *
+ * @return string[]
+ * An array of details messages displayed on the Review form.
+ */
+ abstract protected function getDetails();
+
+ /**
* Gets expected number of entities per entity after incremental migration.
*
* @return int[]
@@ -169,13 +205,17 @@ protected function assertUpgradePaths(WebAssert $session, array $available_paths
* Helper method to assert the text on the 'Upgrade analysis report' page.
*
* @param \Drupal\Tests\WebAssert $session
- * The current session.
- * @param array $all_available
- * Array of modules that will be upgraded.
- * @param array $all_missing
- * Array of modules that will not be upgraded.
+ * The web-assert session.
+ * @param array $available_paths
+ * An array of modules that will be upgraded.
+ * @param array $available_paths_warning
+ * An array of modules where the migration path is incomplete.
+ * @param array $missing_paths
+ * An array of modules that will not be upgraded.
+ * @param array $details
+ * An array of detail messages displayed on the review page.
*/
- protected function assertReviewPage(WebAssert $session, array $all_available, array $all_missing) {
+ protected function assertReviewPage(WebAssert $session, array $available_paths, array $available_paths_warning, array $missing_paths, array $details) {
$this->assertText('What will be upgraded?');
// Ensure there are no errors about the missing modules from the test module.
@@ -185,17 +225,7 @@ protected function assertReviewPage(WebAssert $session, array $all_available, ar
// Ensure there are no errors about any other missing migration providers.
$session->pageTextNotContains(t('module not found'));
- // Test the available migration paths.
- foreach ($all_available as $available) {
- $session->elementExists('xpath', "//span[contains(@class, 'checked') and text() = '$available']");
- $session->elementNotExists('xpath', "//span[contains(@class, 'error') and text() = '$available']");
- }
-
- // Test the missing migration paths.
- foreach ($all_missing as $missing) {
- $session->elementExists('xpath', "//span[contains(@class, 'error') and text() = '$missing']");
- $session->elementNotExists('xpath', "//span[contains(@class, 'checked') and text() = '$missing']");
- }
+ $this->assertUpgradePaths($session, $available_paths, $available_paths_warning, $missing_paths, $details);
}
/**
diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6I18nReviewPageTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6I18nReviewPageTest.php
index a4deaa25cf..18736103e1 100644
--- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6I18nReviewPageTest.php
+++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6I18nReviewPageTest.php
@@ -128,6 +128,13 @@ protected function getAvailablePaths() {
/**
* {@inheritdoc}
*/
+ protected function getIncompletePaths() {
+ return [];
+ }
+
+ /**
+ * {@inheritdoc}
+ */
protected function getMissingPaths() {
return [
'devel',
@@ -148,4 +155,13 @@ protected function getMissingPaths() {
];
}
+ /**
+ * {@inheritdoc}
+ */
+ protected function getDetails() {
+ return [
+ "See Known issues when upgrading from Drupal 6 or 7 to Drupal 8",
+ ];
+ }
+
}
diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6NoMultilingualTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6NoMultilingualTest.php
index e07e8bf211..fcd2dbd11b 100644
--- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6NoMultilingualTest.php
+++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6NoMultilingualTest.php
@@ -164,6 +164,13 @@ protected function getAvailablePaths() {
/**
* {@inheritdoc}
*/
+ protected function getIncompletePaths() {
+ return [];
+ }
+
+ /**
+ * {@inheritdoc}
+ */
protected function getMissingPaths() {
return [
'i18nblocks',
@@ -177,6 +184,15 @@ protected function getMissingPaths() {
/**
* {@inheritdoc}
*/
+ protected function getDetails() {
+ return [
+ "See Known issues when upgrading from Drupal 6 or 7 to Drupal 8",
+ ];
+ }
+
+ /**
+ * {@inheritdoc}
+ */
public function testMigrateUpgradeExecute() {
$connection_options = $this->sourceDatabase->getConnectionOptions();
$this->drupalGet('/upgrade');
diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6ReviewPageTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6ReviewPageTest.php
index 91657f742a..7296bd5f45 100644
--- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6ReviewPageTest.php
+++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6ReviewPageTest.php
@@ -29,6 +29,9 @@ class MigrateUpgrade6ReviewPageTest extends MigrateUpgradeReviewPageTestBase {
'update',
// Required for translation migrations.
'migrate_drupal_multilingual',
+ // Test migrations statuses.
+ 'migrate_status_incomplete_test',
+ 'migrate_status_active_test',
];
/**
@@ -52,7 +55,6 @@ protected function getSourceBasePath() {
protected function getAvailablePaths() {
return [
'aggregator',
- 'block',
'book',
'comment',
'contact',
@@ -69,14 +71,11 @@ protected function getAvailablePaths() {
'i18nmenu',
'i18nprofile',
'i18nstrings',
- 'i18ntaxonomy',
'imagecache',
'imagefield',
'language',
'link',
'locale',
- 'menu',
- 'node',
'nodereference',
'optionwidgets',
'path',
@@ -85,7 +84,6 @@ protected function getAvailablePaths() {
'statistics',
'syslog',
'system',
- 'taxonomy',
'text',
'update',
'upload',
@@ -138,6 +136,23 @@ protected function getAvailablePaths() {
/**
* {@inheritdoc}
*/
+ protected function getIncompletePaths() {
+ return [
+ 'block',
+ 'i18n',
+ 'i18nblocks',
+ 'i18nmenu',
+ 'i18nprofile',
+ 'i18ntaxonomy',
+ 'menu',
+ 'node',
+ 'taxonomy',
+ ];
+ }
+
+ /**
+ * {@inheritdoc}
+ */
protected function getMissingPaths() {
return [
'devel',
@@ -149,6 +164,18 @@ protected function getMissingPaths() {
'i18nviews',
'phone',
'views',
+ 'migrate_status_active_test',
+ ];
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function getDetails() {
+ return [
+ "See Known issues when upgrading from Drupal 6 or 7 to Drupal 8.",
+ "Migrate status active test message.",
+ "Migrate status incomplete test message.",
];
}
diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php
index 6535b59d75..b18a636c27 100644
--- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php
+++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php
@@ -141,7 +141,6 @@ protected function getAvailablePaths() {
'i18nmenu',
'i18nprofile',
'i18nstrings',
- 'i18ntaxonomy',
'imagecache',
'imagefield',
'language',
@@ -162,7 +161,7 @@ protected function getAvailablePaths() {
'user',
'userreference',
// Include modules that do not have an upgrade path and are enabled in the
- // source database, defined in the $noUpgradePath property
+ // source database', defined in the $noUpgradePath property
// in MigrateUpgradeForm.
'date_api',
'date_timezone',
@@ -178,6 +177,22 @@ protected function getAvailablePaths() {
/**
* {@inheritdoc}
*/
+ protected function getIncompletePaths() {
+ return [
+ 'i18n',
+ 'i18nblocks',
+ 'i18nmenu',
+ 'i18nprofile',
+ 'i18ntaxonomy',
+ 'menu',
+ 'node',
+ 'taxonomy',
+ ];
+ }
+
+ /**
+ * {@inheritdoc}
+ */
protected function getMissingPaths() {
return [
'i18ncontent',
@@ -185,6 +200,16 @@ protected function getMissingPaths() {
}
/**
+ * {@inheritdoc}
+ */
+ protected function getDetails() {
+ return [
+ "See Known issues when upgrading from Drupal 6 or 7 to Drupal 8",
+ ];
+ }
+
+
+ /**
* Executes all steps of migrations upgrade.
*/
public function testMigrateUpgradeExecute() {
diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7NoMultilingualTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7NoMultilingualTest.php
index fcb024bb8e..5d2a570174 100644
--- a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7NoMultilingualTest.php
+++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7NoMultilingualTest.php
@@ -166,6 +166,13 @@ protected function getAvailablePaths() {
/**
* {@inheritdoc}
*/
+ protected function getIncompletePaths() {
+ return [];
+ }
+
+ /**
+ * {@inheritdoc}
+ */
protected function getMissingPaths() {
return [
// These modules are in the missing path list because they are installed
@@ -179,6 +186,13 @@ protected function getMissingPaths() {
/**
* {@inheritdoc}
*/
+ protected function getDetails() {
+ return [];
+ }
+
+ /**
+ * {@inheritdoc}
+ */
public function testMigrateUpgradeExecute() {
$connection_options = $this->sourceDatabase->getConnectionOptions();
$this->drupalGet('/upgrade');
diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7ReviewPageTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7ReviewPageTest.php
index c1686db643..ce01d4b10f 100644
--- a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7ReviewPageTest.php
+++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7ReviewPageTest.php
@@ -110,7 +110,6 @@ protected function getAvailablePaths() {
'entity_feature',
'entity_token',
'entityreference',
- 'entity_translation',
'field_ui',
'help',
'openid',
@@ -136,10 +135,28 @@ protected function getAvailablePaths() {
/**
* {@inheritdoc}
*/
+ protected function getIncompletePaths() {
+ return [
+ 'entity_translation',
+ 'menu',
+ 'node',
+ ];
+ }
+
+ /**
+ * {@inheritdoc}
+ */
protected function getMissingPaths() {
return [
'views',
];
}
+ /**
+ * {@inheritdoc}
+ */
+ protected function getDetails() {
+ return [];
+ }
+
}
diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7Test.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7Test.php
index 28fe7d0a5c..2ec6631775 100644
--- a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7Test.php
+++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7Test.php
@@ -127,6 +127,7 @@ protected function getAvailablePaths() {
'color',
'comment',
'contact',
+ 'ctools',
'date',
'dblog',
'email',
@@ -154,6 +155,7 @@ protected function getAvailablePaths() {
'system',
'taxonomy',
'text',
+ 'title',
'user',
// Include modules that do not have an upgrade path and are enabled in the
// source database, defined in the $noUpgradePath property
@@ -175,6 +177,17 @@ protected function getAvailablePaths() {
/**
* {@inheritdoc}
*/
+ protected function getIncompletePaths() {
+ return [
+ 'entity_translation',
+ 'menu',
+ 'node',
+ ];
+ }
+
+ /**
+ * {@inheritdoc}
+ */
protected function getMissingPaths() {
return [
// These modules are in the missing path list because they are installed
@@ -186,6 +199,13 @@ protected function getMissingPaths() {
}
/**
+ * {@inheritdoc}
+ */
+ protected function getDetails() {
+ return [];
+ }
+
+ /**
* Executes all steps of migrations upgrade.
*/
public function testMigrateUpgradeExecute() {
diff --git a/core/modules/node/node.info.yml b/core/modules/node/node.info.yml
index 88cba8572b..f07ce8e2a9 100644
--- a/core/modules/node/node.info.yml
+++ b/core/modules/node/node.info.yml
@@ -7,3 +7,10 @@ core: 8.x
configure: entity.node_type.collection
dependencies:
- drupal:text
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/options/options.info.yml b/core/modules/options/options.info.yml
index 41c5374a40..b5860b50cf 100644
--- a/core/modules/options/options.info.yml
+++ b/core/modules/options/options.info.yml
@@ -7,3 +7,10 @@ core: 8.x
dependencies:
- drupal:field
- drupal:text
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/page_cache/page_cache.info.yml b/core/modules/page_cache/page_cache.info.yml
index ba18ed638c..0b5e21ac0d 100644
--- a/core/modules/page_cache/page_cache.info.yml
+++ b/core/modules/page_cache/page_cache.info.yml
@@ -4,3 +4,10 @@ description: 'Caches pages for anonymous users. Use when an external page cache
package: Core
version: VERSION
core: 8.x
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/path/path.info.yml b/core/modules/path/path.info.yml
index ba2c759c99..780598b88e 100644
--- a/core/modules/path/path.info.yml
+++ b/core/modules/path/path.info.yml
@@ -5,3 +5,10 @@ package: Core
version: VERSION
core: 8.x
configure: path.admin_overview
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/quickedit/quickedit.info.yml b/core/modules/quickedit/quickedit.info.yml
index b9fc765d21..9c6753c2ff 100644
--- a/core/modules/quickedit/quickedit.info.yml
+++ b/core/modules/quickedit/quickedit.info.yml
@@ -8,3 +8,10 @@ dependencies:
- drupal:contextual
- drupal:field
- drupal:filter
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/rdf/rdf.info.yml b/core/modules/rdf/rdf.info.yml
index ec1b50905b..ce6973ddbc 100644
--- a/core/modules/rdf/rdf.info.yml
+++ b/core/modules/rdf/rdf.info.yml
@@ -4,3 +4,10 @@ description: 'Enriches your content with metadata to let other applications (e.g
package: Core
version: VERSION
core: 8.x
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/responsive_image/responsive_image.info.yml b/core/modules/responsive_image/responsive_image.info.yml
index 8ddf2c72e5..44bd87acbf 100644
--- a/core/modules/responsive_image/responsive_image.info.yml
+++ b/core/modules/responsive_image/responsive_image.info.yml
@@ -8,3 +8,10 @@ dependencies:
- drupal:breakpoint
- drupal:image
configure: entity.responsive_image_style.collection
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/rest/rest.info.yml b/core/modules/rest/rest.info.yml
index 8a4572ab36..e76800d85c 100644
--- a/core/modules/rest/rest.info.yml
+++ b/core/modules/rest/rest.info.yml
@@ -6,3 +6,10 @@ version: VERSION
core: 8.x
dependencies:
- drupal:serialization
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/search/search.info.yml b/core/modules/search/search.info.yml
index 97b7d3fe77..6f0e15114d 100644
--- a/core/modules/search/search.info.yml
+++ b/core/modules/search/search.info.yml
@@ -5,3 +5,10 @@ package: Core
version: VERSION
core: 8.x
configure: entity.search_page.collection
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/serialization/serialization.info.yml b/core/modules/serialization/serialization.info.yml
index 7c4eb52313..50ed1ce507 100644
--- a/core/modules/serialization/serialization.info.yml
+++ b/core/modules/serialization/serialization.info.yml
@@ -4,3 +4,10 @@ description: Provides a service for (de)serializing data to/from formats such as
package: Web services
version: VERSION
core: 8.x
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/settings_tray/settings_tray.info.yml b/core/modules/settings_tray/settings_tray.info.yml
index f278b76c27..76063abdc6 100644
--- a/core/modules/settings_tray/settings_tray.info.yml
+++ b/core/modules/settings_tray/settings_tray.info.yml
@@ -8,3 +8,10 @@ dependencies:
- drupal:block
- drupal:toolbar
- drupal:contextual
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/shortcut/shortcut.info.yml b/core/modules/shortcut/shortcut.info.yml
index 8546317e10..0d8c472702 100644
--- a/core/modules/shortcut/shortcut.info.yml
+++ b/core/modules/shortcut/shortcut.info.yml
@@ -7,3 +7,10 @@ core: 8.x
configure: entity.shortcut_set.collection
dependencies:
- drupal:link
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/simpletest/simpletest.info.yml b/core/modules/simpletest/simpletest.info.yml
index 232680e7cf..468dbad395 100644
--- a/core/modules/simpletest/simpletest.info.yml
+++ b/core/modules/simpletest/simpletest.info.yml
@@ -5,3 +5,10 @@ package: Core
version: VERSION
core: 8.x
configure: simpletest.settings
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/statistics/statistics.info.yml b/core/modules/statistics/statistics.info.yml
index 84a50bec9a..e5cbc59546 100644
--- a/core/modules/statistics/statistics.info.yml
+++ b/core/modules/statistics/statistics.info.yml
@@ -7,3 +7,10 @@ core: 8.x
configure: statistics.settings
dependencies:
- drupal:node
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/syslog/syslog.info.yml b/core/modules/syslog/syslog.info.yml
index 1d8dc8f1b6..d12e2fcef9 100644
--- a/core/modules/syslog/syslog.info.yml
+++ b/core/modules/syslog/syslog.info.yml
@@ -5,3 +5,10 @@ package: Core
version: VERSION
core: 8.x
configure: system.logging_settings
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/system/system.info.yml b/core/modules/system/system.info.yml
index 1f2a064484..b12c6ad2c1 100644
--- a/core/modules/system/system.info.yml
+++ b/core/modules/system/system.info.yml
@@ -6,3 +6,10 @@ version: VERSION
core: 8.x
required: true
configure: system.admin_config_system
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/taxonomy/taxonomy.info.yml b/core/modules/taxonomy/taxonomy.info.yml
index 8eccaf52f1..0959fa75af 100644
--- a/core/modules/taxonomy/taxonomy.info.yml
+++ b/core/modules/taxonomy/taxonomy.info.yml
@@ -8,3 +8,10 @@ dependencies:
- drupal:node
- drupal:text
configure: entity.taxonomy_vocabulary.collection
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/telephone/telephone.info.yml b/core/modules/telephone/telephone.info.yml
index ab44ec0263..32016d04a0 100644
--- a/core/modules/telephone/telephone.info.yml
+++ b/core/modules/telephone/telephone.info.yml
@@ -6,3 +6,10 @@ version: VERSION
core: 8.x
dependencies:
- drupal:field
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/text/text.info.yml b/core/modules/text/text.info.yml
index 5f09ace218..3463d85a3e 100644
--- a/core/modules/text/text.info.yml
+++ b/core/modules/text/text.info.yml
@@ -7,3 +7,10 @@ core: 8.x
dependencies:
- drupal:field
- drupal:filter
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/toolbar/toolbar.info.yml b/core/modules/toolbar/toolbar.info.yml
index d0114930b8..1fdf0900aa 100644
--- a/core/modules/toolbar/toolbar.info.yml
+++ b/core/modules/toolbar/toolbar.info.yml
@@ -6,3 +6,10 @@ package: Core
version: VERSION
dependencies:
- drupal:breakpoint
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/tour/tour.info.yml b/core/modules/tour/tour.info.yml
index b9131629fb..9d64fcd95c 100644
--- a/core/modules/tour/tour.info.yml
+++ b/core/modules/tour/tour.info.yml
@@ -4,3 +4,10 @@ description: Provides guided tours.
package: Core
version: VERSION
core: 8.x
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/tracker/tracker.info.yml b/core/modules/tracker/tracker.info.yml
index d855210676..fd07a5f6ec 100644
--- a/core/modules/tracker/tracker.info.yml
+++ b/core/modules/tracker/tracker.info.yml
@@ -7,3 +7,10 @@ dependencies:
package: Core
version: VERSION
core: 8.x
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/update/update.info.yml b/core/modules/update/update.info.yml
index b4536011d2..c268af45fa 100644
--- a/core/modules/update/update.info.yml
+++ b/core/modules/update/update.info.yml
@@ -7,3 +7,10 @@ core: 8.x
configure: update.settings
dependencies:
- drupal:file
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/user/user.info.yml b/core/modules/user/user.info.yml
index 86faf68a68..2deaa03702 100644
--- a/core/modules/user/user.info.yml
+++ b/core/modules/user/user.info.yml
@@ -8,3 +8,10 @@ required: true
configure: user.admin_index
dependencies:
- drupal:system
+migrate:
+ -
+ version: 6
+ status: complete
+ -
+ version: 7
+ status: complete
diff --git a/core/modules/views/views.info.yml b/core/modules/views/views.info.yml
index e0a2154f57..230674b3cd 100644
--- a/core/modules/views/views.info.yml
+++ b/core/modules/views/views.info.yml
@@ -6,3 +6,10 @@ version: VERSION
core: 8.x
dependencies:
- drupal:filter
+migrate:
+ -
+ version: 6
+ status: won't fix
+ -
+ version: 7
+ status: won't fix
diff --git a/core/modules/views/views.module b/core/modules/views/views.module
index b82f36d4a5..03a74f4113 100644
--- a/core/modules/views/views.module
+++ b/core/modules/views/views.module
@@ -9,6 +9,7 @@
use Drupal\Component\Utility\Html;
use Drupal\Core\Database\Query\AlterableInterface;
use Drupal\Core\Entity\EntityInterface;
+use Drupal\Core\Extension\Extension;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Routing\RouteMatchInterface;
use Drupal\Core\Url;
@@ -573,6 +574,17 @@ function views_hook_info() {
}
/**
+ * Implements hook_system_info_alter().
+ */
+function views_system_info_alter(array &$info, Extension $file, $type) {
+ if ($info['type'] == 'module' & $info['name'] == 'Views') {
+ foreach ($info['migrate'] as &$value) {
+ $value['description'] = "See Known issues when upgrading from Drupal 6 or 7 to Drupal 8.";
+ }
+ }
+}
+
+/**
* Returns whether the view is enabled.
*
* @param \Drupal\views\Entity\View $view
diff --git a/core/modules/views_ui/views_ui.info.yml b/core/modules/views_ui/views_ui.info.yml
index b79eec4a18..4a4cff3379 100644
--- a/core/modules/views_ui/views_ui.info.yml
+++ b/core/modules/views_ui/views_ui.info.yml
@@ -7,3 +7,10 @@ core: 8.x
configure: entity.view.collection
dependencies:
- drupal:views
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/workflows/workflows.info.yml b/core/modules/workflows/workflows.info.yml
index c40a7aae54..3f29fa627f 100644
--- a/core/modules/workflows/workflows.info.yml
+++ b/core/modules/workflows/workflows.info.yml
@@ -5,3 +5,10 @@ version: VERSION
core: 8.x
package: Core
configure: entity.workflow.collection
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a
diff --git a/core/modules/workspaces/workspaces.info.yml b/core/modules/workspaces/workspaces.info.yml
index 8461ec0f24..e9f82ba339 100644
--- a/core/modules/workspaces/workspaces.info.yml
+++ b/core/modules/workspaces/workspaces.info.yml
@@ -7,3 +7,10 @@ package: Core (Experimental)
configure: entity.workspace.collection
dependencies:
- user
+migrate:
+ -
+ version: 6
+ status: n/a
+ -
+ version: 7
+ status: n/a