there has been some back and forth in #2200379: Upgrade UI, about using a manifest or adding 'type' to the destination. i made a pass at putting type destination configuration, but this will probably change.

i believe this is the inclusive list:

configuration:

  1. d6_action_settings
  2. d6_aggregator_settings
  3. d6_book_settings
  4. d6_contact_category
  5. d6_contact_settings
  6. d6_date_formats
  7. d6_dblog_settings
  8. d6_node_type
  9. d6_field
  10. d6_field_instance
  11. d6_field_instance_widget_settings
  12. d6_field_settings
  13. d6_node_type_entity_display
  14. d6_node_type_entity_display_teaser
  15. d6_node_type_entity_form_display
  16. d6_file_settings
  17. d6_filter_format
  18. d6_format_settings
  19. d6_locale_settings
  20. d6_menu
  21. d6_menu_settings
  22. d6_node_body_instance
  23. d6_node_settings
  24. d6_search_page
  25. d6_search_settings
  26. d6_simpletest_settings
  27. d6_statistics_settings
  28. d6_syslog_settings
  29. d6_system_cron
  30. d6_system_file
  31. d6_system_filter
  32. d6_system_image
  33. d6_system_image_gd
  34. d6_system_maintenance
  35. d6_system_performance
  36. d6_system_rss
  37. d6_system_site
  38. d6_taxonomy_settings
  39. d6_taxonomy_vocabulary
  40. d6_text_settings
  41. d6_update_settings
  42. d6_upload_field
  43. d6_upload_field_instance
  44. d6_upload_entity_display
  45. d6_upload_entity_form_display
  46. d6_user_mail
  47. d6_user_picture_field
  48. d6_user_picture_field_instance
  49. d6_user_picture_entity_display
  50. d6_user_picture_entity_form_display
  51. d6_user_profile_entity_display
  52. d6_user_profile_entity_form_display
  53. d6_user_profile_field
  54. d6_user_profile_field_instance
  55. d6_user_role
  56. d6_view_modes
  57. d6_field_formatter_settings
  58. d6_vocabulary_field
  59. d6_vocabulary_field_instance
  60. d6_vocabulary_entity_display
  61. d6_vocabulary_entity_form_display
  62. d6_comment_entity_display
  63. d6_comment_entity_form_display
  64. d6_comment_field
  65. d6_comment_field_instance

content:

  1. d6_aggregator_feed
  2. d6_aggregator_item
  3. d6_block
  4. d6_custom_block
  5. d6_file
  6. d6_profile_values
  7. d6_taxonomy_term
  8. d6_url_alias
  9. d6_user_picture_file
  10. d6_user
  11. d6_node
  12. d6_node_revision
  13. d6_term_node
  14. d6_term_node_revision
  15. d6_comment
  16. d6_upload

Comments

bdone’s picture

Issue summary: View changes
Status: Active » Needs work
StatusFileSize
new39 KB

a patch adding type to destinations

bdone’s picture

StatusFileSize
new2.41 KB

not sure of this format, file name, or how to load yet.

bdone’s picture

StatusFileSize
new2.44 KB

with naming suggestion from @chx and split into two.

chx’s picture

Status: Needs work » Reviewed & tested by the community
benjy’s picture

Status: Reviewed & tested by the community » Fixed

This looks good, committed to 8.x

eliza411’s picture

Assigned: bdone » Unassigned
Status: Fixed » Needs work

I'm not sure if it's correct to re-open this or to open an new issue, but I think that the list here needs to be updated so it's reconciled with MigrateDrupal6Test

I made a spreadsheet that highlights the discrepancies between the two:
https://docs.google.com/a/happypunch.com/spreadsheets/d/1AwJ5NTvlsEsDpaI...

benjy’s picture

I've moved these files into the root of the module in d0fa9a5 to fix DefaultConfigTest

mikeryan’s picture

Once #2200379: Upgrade UI is committed to the sandbox, I'd like to return to tagging the migrations with a 'type' option. The hardcoded manifests were helpful to get this bootstrapped, but we'll still need to do this so contrib modules can add their migrations to the upgrade process.

mikeryan’s picture

Status: Needs work » Needs review
StatusFileSize
new48.04 KB

All right, I've rerolled bdone's patch with the config directory move, and the UI now uses the configured destination type rather than explicit manifests to determine what to import. With this patch, D8 contrib modules can simply package migration configurations for their own content and configuration, and by specifying the type have them automatically incorporated into the upgrade process in the right spot.

chx’s picture

$migrations = $this->storage()->loadMultiple(); this will load everything D6, D7 and even D8->D8 when that gets written. That's not optimal. The battle plan was that based on the presence of the system table and the schema version of system module therein we detect whether the source is D6 or D7 or D8 and load the content/configuration manifest accordingly. If contrib is a concern (it is) then an alter hook is in order IMO.

xjm’s picture

Issue tags: +Configuration system
benjy’s picture

Status: Needs review » Needs work

Can we split this up and add the type: keys to the migrations in the core queue since the D6 migrations have all been committed to core.

mikeryan’s picture

Assigned: Unassigned » mikeryan

So, there was some discussion on this in IRC a few weeks ago, and as I recall chx was on board with adding both the type: key (for identifying configuration vs. content) and a version: (or drupal_version:?) key with values like 6 or 7. This I think is optimum DX for contrib authors supporting migration of their module's data, simply adding a couple lines to their configuration file(s) so they are processed in the right context. If that sounds OK, then I think this issue, with a patch to add the keys to the D6 configuration files, should move to the core issue queue, with a new issue in the Migrate Upgrade queue for the UI to use this information.

That all being said, where should the keys go? Initially I just added type: to the top level of the YML. I'm wondering, though, if the type should be part of the destination configuration, since it represents what kind of Drupal data we're creating (well, more-or-less, because blocks are weird). And if so, why not bake that into the destination plugins themselves? One less key in the YML...

As for the source Drupal version, this makes sense to me as a drupal_version key under source. So:

id: d6_action_settings
label: Drupal 6 action configuration
source:
  plugin: variable
  drupal_version: 6
  variables:
    - actions_max_stack
process:
  recursion_limit: actions_max_stack
destination:
  plugin: config
  type: configuration    # Or omit here if we build this into the 'config' plugin definition
  config_name: action.settings

Now, looking at that, I'm thinking maybe a top-level key named 'source_version'? Thoughts?

joelpittet’s picture

Status: Needs work » Closed (outdated)

Let's close this as it's had it's day