Support for graphing migration dependencies

Created on 21 January 2023, almost 2 years ago
Updated 8 July 2023, over 1 year ago

Problem/Motivation

Additional to visualizing the process pipeline of a specific migration, it will be useful to visualize the dependencies between migrations.

Previously proposed in Generate graphs of migration dependencies Active .

Steps to reproduce

Proposed resolution

Implement support for visualizing the graph of migrations charted by dependencies.

Remaining tasks

  • Need to reconsider paths so they are well laid out and accept parameters
  • Looks like same for mapping individual migration configs vs mapping dependencies between migrations
  • Filtering by tag, group and id
  • Test coverage

User interface changes

API changes

Data model changes

Feature request
Status

Active

Version

1.0

Component

Code

Created by

🇳🇿New Zealand xurizaemon Ōtepoti, Aotearoa 🏝

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

  • Issue created by @xurizaemon
  • 🇳🇿New Zealand xurizaemon Ōtepoti, Aotearoa 🏝

    Here's a reduced Mermaid chart of some dependencies, from local testing (expand image or click "mermaid.live" link below):

    Chart on mermaid.live

    Solid lines are required dependencies, dotted ones are optional.

    flowchart LR
    foo_d7_field_instance
    foo_d7_taxonomy_vocabulary
    foo_d7_file_public
    foo_d7_path_redirect
    foo_d7_media_document
    foo_d7_media_video
    foo_d7_user
    foo_user_picture_field_instance
    foo_user_picture_entity_display
    foo_d7_taxonomy_term_content_status
    foo_d7_taxonomy_term_copyright_licensing
    foo_d7_taxonomy_term_tags
    foo_user_picture_entity_form_display
    foo_embedded_redirect
    foo_d7_media_image
    foo_d7_node_complete_promotion
    foo_embedded_taxonomy_term
    
    foo_d7_path_redirect --> foo_embedded_redirect
    foo_d7_field_instance -.-> foo_d7_taxonomy_term_tags
    foo_d7_taxonomy_vocabulary -.-> foo_d7_taxonomy_term_tags
    foo_d7_field_instance -.-> foo_d7_taxonomy_term_copyright_licensing
    foo_d7_field_instance -.-> foo_d7_user
    foo_d7_file_public -.-> foo_d7_user
    foo_user_picture_field_instance -.-> foo_d7_user
    foo_user_picture_entity_display -.-> foo_d7_user
    foo_user_picture_entity_form_display -.-> foo_d7_user
    foo_d7_file_public --> foo_d7_media_image
    foo_d7_taxonomy_term_copyright_licensing --> foo_d7_media_image
    foo_d7_taxonomy_term_tags --> foo_d7_media_image
    foo_d7_user --> foo_d7_media_image
    foo_d7_field_instance -.-> foo_d7_taxonomy_term_content_status
    foo_d7_taxonomy_vocabulary -.-> foo_d7_taxonomy_term_content_status
    foo_d7_media_document --> foo_d7_node_complete_promotion
    foo_d7_media_image --> foo_d7_node_complete_promotion
    foo_d7_media_video --> foo_d7_node_complete_promotion
    foo_d7_taxonomy_term_content_status --> foo_d7_node_complete_promotion
    foo_d7_user --> foo_d7_node_complete_promotion
    foo_d7_field_instance -.-> foo_d7_node_complete_promotion
    foo_d7_taxonomy_term_content_status -.-> foo_embedded_taxonomy_term
    foo_d7_taxonomy_term_copyright_licensing -.-> foo_embedded_taxonomy_term
    foo_d7_taxonomy_term_tags -.-> foo_embedded_taxonomy_term
    
  • 🇳🇿New Zealand xurizaemon Ōtepoti, Aotearoa 🏝

    Chart from above:

    flowchart LR
    foo_d7_field_instance
    foo_d7_taxonomy_vocabulary
    foo_d7_file_public
    foo_d7_path_redirect
    foo_d7_media_document
    foo_d7_media_video
    foo_d7_user
    foo_user_picture_field_instance
    foo_user_picture_entity_display
    foo_d7_taxonomy_term_content_status
    foo_d7_taxonomy_term_copyright_licensing
    foo_d7_taxonomy_term_tags
    foo_user_picture_entity_form_display
    foo_embedded_redirect
    foo_d7_media_image
    foo_d7_node_complete_promotion
    foo_embedded_taxonomy_term
    
    foo_d7_path_redirect --> foo_embedded_redirect
    foo_d7_field_instance -.-> foo_d7_taxonomy_term_tags
    foo_d7_taxonomy_vocabulary -.-> foo_d7_taxonomy_term_tags
    foo_d7_field_instance -.-> foo_d7_taxonomy_term_copyright_licensing
    foo_d7_field_instance -.-> foo_d7_user
    foo_d7_file_public -.-> foo_d7_user
    foo_user_picture_field_instance -.-> foo_d7_user
    foo_user_picture_entity_display -.-> foo_d7_user
    foo_user_picture_entity_form_display -.-> foo_d7_user
    foo_d7_file_public --> foo_d7_media_image
    foo_d7_taxonomy_term_copyright_licensing --> foo_d7_media_image
    foo_d7_taxonomy_term_tags --> foo_d7_media_image
    foo_d7_user --> foo_d7_media_image
    foo_d7_field_instance -.-> foo_d7_taxonomy_term_content_status
    foo_d7_taxonomy_vocabulary -.-> foo_d7_taxonomy_term_content_status
    foo_d7_media_document --> foo_d7_node_complete_promotion
    foo_d7_media_image --> foo_d7_node_complete_promotion
    foo_d7_media_video --> foo_d7_node_complete_promotion
    foo_d7_taxonomy_term_content_status --> foo_d7_node_complete_promotion
    foo_d7_user --> foo_d7_node_complete_promotion
    foo_d7_field_instance -.-> foo_d7_node_complete_promotion
    foo_d7_taxonomy_term_content_status -.-> foo_embedded_taxonomy_term
    foo_d7_taxonomy_term_copyright_licensing -.-> foo_embedded_taxonomy_term
    foo_d7_taxonomy_term_tags -.-> foo_embedded_taxonomy_term
    
  • @xurizaemon opened merge request.
  • @xurizaemon opened merge request.
  • 🇳🇿New Zealand xurizaemon Ōtepoti, Aotearoa 🏝
  • 🇳🇿New Zealand xurizaemon Ōtepoti, Aotearoa 🏝
  • 🇳🇿New Zealand xurizaemon Ōtepoti, Aotearoa 🏝

    Sidebar: the code for this module was pretty hard to follow, after coming back to it a year later.

    I expect to refactor a lot of things as part of this (paths, class names, template filenames etc) as in several places it's assumed that what we're visualizing or graphing is the migration process, as opposed to the migration's dependencies, or the dependencies which relate between a group/tag of migrations.

  • 🇳🇿New Zealand xurizaemon Ōtepoti, Aotearoa 🏝
Production build 0.71.5 2024