spack / spackbot

Spack maintainer bot 🤖
https://spack.github.io/spackbot/
Other
7 stars 12 forks source link

Create DAG plots with mermaid #80

Open adamjstewart opened 1 year ago

adamjstewart commented 1 year ago

https://github.com/spack/spack/pull/36549#issue-1647825813 is super cool. We should teach spackbot to automatically draw these for the packages in a PR.

wdconinc commented 4 months ago

It's not that hard to modify spack graph to produce mermaid graphs, and it almost only requires changes to the template.

flowchart TD

  vtyk7kzcmn7kavbl3n3cf7hnje23bdb5["perl@5.38.0%gcc@=13.2.0/vtyk7kz"]
  5hm7tsxe26o26rgi5bg5fdaywsdnsyzh["pythia8@8.311%gcc@=13.2.0/5hm7tsx"]
  hb7gauo7xcjd6bgssllgujqzh3qpe3dj["nghttp2@1.61.0%gcc@=13.2.0/hb7gauo"]
  zb5cfn3eqkobk6m3ct3fy6kst6sntv3y["diffutils@3.10%gcc@=13.2.0/zb5cfn3"]
  jms3baeyhbin25jfzb6zxuav5inthmsp["xxhash@0.8.2%gcc@=13.2.0/jms3bae"]
  dwc7cptv7fbk7ldjexzd52n2skadzj6u["zlib-ng@2.1.6%gcc@=13.2.0/dwc7cpt"]
  kdl7oibr2vy5xv3hrff5vp466qxjsdwq["openssl@3.3.0%gcc@=13.2.0/kdl7oib"]
  tacwgqen45cyu2vzmwpq5hfvrov4wojs["cmake@3.29.2%gcc@=13.2.0/tacwgqe"]
  hpdzcnnotmuswqubing7bthexz7o4hlr["pkgconf@2.2.0%gcc@=13.2.0/hpdzcnn"]
  lb4v6rvc7sqtnmkmkz5gcp4jqube6akn["bzip2@1.0.8%gcc@=13.2.0/lb4v6rv"]
  iqcoap6pz4udho6pamy6xlrqqsn7i5x4["rsync@3.3.0%gcc@=13.2.0/iqcoap6"]
  opizhcsf3qtxhood23egjfhuus22mdtb["ncurses@6.4%gcc@=13.2.0/opizhcs"]
  wt53adlhnvnsgktnl3veobxbx4qykugd["lz4@1.9.4%gcc@=13.2.0/wt53adl"]
  budlz5wxrosl46lvtiq4v754jzyxqs4x["gmake@4.4.1%gcc@=13.2.0/budlz5w"]
  zal44oqo4cjnuudhoyjob2ai7rkmymjw["gdbm@1.23%gcc@=13.2.0/zal44oq"]
  faoaqffawrqpaiko4wszldrvnvfrec54["curl@8.7.1%gcc@=13.2.0/faoaqff"]
  r4mwcdygj53ah4wz7svpzkis6e7g3nzt["libiconv@1.17%gcc@=13.2.0/r4mwcdy"]
  o54qwl5ag2lwfgywakfosm5u6zwzxapo["hepmc@2.06.11%gcc@=13.2.0/o54qwl5"]
  bm2wycp45irfw4thaejgehuu3n43zlgr["berkeley-db@18.1.40%gcc@=13.2.0/bm2wycp"]
  uplcruyd6rjxmljmxqdkddpcbimab3sz["popt@1.16%gcc@=13.2.0/uplcruy"]
  auth2g65porkdjvnqeqmjl2zyddeebkn["hepmc3@3.2.7%gcc@=13.2.0/auth2g6"]
  f36ohywqt6sqlylpgca2t7cvgr47ar2j["glibc@2.39%gcc@=13.2.0/f36ohyw"]
  rqkg6gkgqnjeyotbiuh5g2jfslshnwtd["readline@8.2%gcc@=13.2.0/rqkg6gk"]
  n5vnqlocfabw5mckga2yympf5dhdmq5m["ca-certificates-mozilla@2023-05-30%gcc@=13.2.0/n5vnqlo"]
  jtti27ubdg3v52qbpsj3n53xksqvkhyr["gcc-runtime@13.2.0%gcc@=13.2.0/jtti27u"]
  yiicx6ce6klmh4xw7uknxnxktorvxcx2["zstd@1.5.6%gcc@=13.2.0/yiicx6c"]
  iqcoap6pz4udho6pamy6xlrqqsn7i5x4 --> wt53adlhnvnsgktnl3veobxbx4qykugd
  kdl7oibr2vy5xv3hrff5vp466qxjsdwq --> dwc7cptv7fbk7ldjexzd52n2skadzj6u
  zb5cfn3eqkobk6m3ct3fy6kst6sntv3y --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  o54qwl5ag2lwfgywakfosm5u6zwzxapo --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  lb4v6rvc7sqtnmkmkz5gcp4jqube6akn --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  o54qwl5ag2lwfgywakfosm5u6zwzxapo --> tacwgqen45cyu2vzmwpq5hfvrov4wojs
  faoaqffawrqpaiko4wszldrvnvfrec54 --> hpdzcnnotmuswqubing7bthexz7o4hlr
  iqcoap6pz4udho6pamy6xlrqqsn7i5x4 --> jms3baeyhbin25jfzb6zxuav5inthmsp
  budlz5wxrosl46lvtiq4v754jzyxqs4x --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  5hm7tsxe26o26rgi5bg5fdaywsdnsyzh --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  kdl7oibr2vy5xv3hrff5vp466qxjsdwq --> budlz5wxrosl46lvtiq4v754jzyxqs4x
  iqcoap6pz4udho6pamy6xlrqqsn7i5x4 --> yiicx6ce6klmh4xw7uknxnxktorvxcx2
  faoaqffawrqpaiko4wszldrvnvfrec54 --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  o54qwl5ag2lwfgywakfosm5u6zwzxapo --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  5hm7tsxe26o26rgi5bg5fdaywsdnsyzh --> o54qwl5ag2lwfgywakfosm5u6zwzxapo
  hpdzcnnotmuswqubing7bthexz7o4hlr --> budlz5wxrosl46lvtiq4v754jzyxqs4x
  zb5cfn3eqkobk6m3ct3fy6kst6sntv3y --> r4mwcdygj53ah4wz7svpzkis6e7g3nzt
  5hm7tsxe26o26rgi5bg5fdaywsdnsyzh --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  faoaqffawrqpaiko4wszldrvnvfrec54 --> budlz5wxrosl46lvtiq4v754jzyxqs4x
  o54qwl5ag2lwfgywakfosm5u6zwzxapo --> budlz5wxrosl46lvtiq4v754jzyxqs4x
  iqcoap6pz4udho6pamy6xlrqqsn7i5x4 --> dwc7cptv7fbk7ldjexzd52n2skadzj6u
  faoaqffawrqpaiko4wszldrvnvfrec54 --> hb7gauo7xcjd6bgssllgujqzh3qpe3dj
  iqcoap6pz4udho6pamy6xlrqqsn7i5x4 --> uplcruyd6rjxmljmxqdkddpcbimab3sz
  5hm7tsxe26o26rgi5bg5fdaywsdnsyzh --> budlz5wxrosl46lvtiq4v754jzyxqs4x
  iqcoap6pz4udho6pamy6xlrqqsn7i5x4 --> budlz5wxrosl46lvtiq4v754jzyxqs4x
  zal44oqo4cjnuudhoyjob2ai7rkmymjw --> budlz5wxrosl46lvtiq4v754jzyxqs4x
  faoaqffawrqpaiko4wszldrvnvfrec54 --> kdl7oibr2vy5xv3hrff5vp466qxjsdwq
  bm2wycp45irfw4thaejgehuu3n43zlgr --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  budlz5wxrosl46lvtiq4v754jzyxqs4x --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  uplcruyd6rjxmljmxqdkddpcbimab3sz --> r4mwcdygj53ah4wz7svpzkis6e7g3nzt
  vtyk7kzcmn7kavbl3n3cf7hnje23bdb5 --> lb4v6rvc7sqtnmkmkz5gcp4jqube6akn
  iqcoap6pz4udho6pamy6xlrqqsn7i5x4 --> kdl7oibr2vy5xv3hrff5vp466qxjsdwq
  kdl7oibr2vy5xv3hrff5vp466qxjsdwq --> n5vnqlocfabw5mckga2yympf5dhdmq5m
  iqcoap6pz4udho6pamy6xlrqqsn7i5x4 --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  r4mwcdygj53ah4wz7svpzkis6e7g3nzt --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  iqcoap6pz4udho6pamy6xlrqqsn7i5x4 --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  tacwgqen45cyu2vzmwpq5hfvrov4wojs --> faoaqffawrqpaiko4wszldrvnvfrec54
  wt53adlhnvnsgktnl3veobxbx4qykugd --> budlz5wxrosl46lvtiq4v754jzyxqs4x
  r4mwcdygj53ah4wz7svpzkis6e7g3nzt --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  zal44oqo4cjnuudhoyjob2ai7rkmymjw --> rqkg6gkgqnjeyotbiuh5g2jfslshnwtd
  jms3baeyhbin25jfzb6zxuav5inthmsp --> budlz5wxrosl46lvtiq4v754jzyxqs4x
  auth2g65porkdjvnqeqmjl2zyddeebkn --> tacwgqen45cyu2vzmwpq5hfvrov4wojs
  bm2wycp45irfw4thaejgehuu3n43zlgr --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  dwc7cptv7fbk7ldjexzd52n2skadzj6u --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  vtyk7kzcmn7kavbl3n3cf7hnje23bdb5 --> dwc7cptv7fbk7ldjexzd52n2skadzj6u
  r4mwcdygj53ah4wz7svpzkis6e7g3nzt --> budlz5wxrosl46lvtiq4v754jzyxqs4x
  wt53adlhnvnsgktnl3veobxbx4qykugd --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  n5vnqlocfabw5mckga2yympf5dhdmq5m --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  wt53adlhnvnsgktnl3veobxbx4qykugd --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  yiicx6ce6klmh4xw7uknxnxktorvxcx2 --> budlz5wxrosl46lvtiq4v754jzyxqs4x
  jms3baeyhbin25jfzb6zxuav5inthmsp --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  hb7gauo7xcjd6bgssllgujqzh3qpe3dj --> budlz5wxrosl46lvtiq4v754jzyxqs4x
  jms3baeyhbin25jfzb6zxuav5inthmsp --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  bm2wycp45irfw4thaejgehuu3n43zlgr --> budlz5wxrosl46lvtiq4v754jzyxqs4x
  opizhcsf3qtxhood23egjfhuus22mdtb --> budlz5wxrosl46lvtiq4v754jzyxqs4x
  auth2g65porkdjvnqeqmjl2zyddeebkn --> budlz5wxrosl46lvtiq4v754jzyxqs4x
  tacwgqen45cyu2vzmwpq5hfvrov4wojs --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  vtyk7kzcmn7kavbl3n3cf7hnje23bdb5 --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  dwc7cptv7fbk7ldjexzd52n2skadzj6u --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  jtti27ubdg3v52qbpsj3n53xksqvkhyr --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  tacwgqen45cyu2vzmwpq5hfvrov4wojs --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  hpdzcnnotmuswqubing7bthexz7o4hlr --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  yiicx6ce6klmh4xw7uknxnxktorvxcx2 --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  rqkg6gkgqnjeyotbiuh5g2jfslshnwtd --> opizhcsf3qtxhood23egjfhuus22mdtb
  vtyk7kzcmn7kavbl3n3cf7hnje23bdb5 --> bm2wycp45irfw4thaejgehuu3n43zlgr
  hb7gauo7xcjd6bgssllgujqzh3qpe3dj --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  uplcruyd6rjxmljmxqdkddpcbimab3sz --> budlz5wxrosl46lvtiq4v754jzyxqs4x
  opizhcsf3qtxhood23egjfhuus22mdtb --> hpdzcnnotmuswqubing7bthexz7o4hlr
  vtyk7kzcmn7kavbl3n3cf7hnje23bdb5 --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  faoaqffawrqpaiko4wszldrvnvfrec54 --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  hb7gauo7xcjd6bgssllgujqzh3qpe3dj --> hpdzcnnotmuswqubing7bthexz7o4hlr
  rqkg6gkgqnjeyotbiuh5g2jfslshnwtd --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  5hm7tsxe26o26rgi5bg5fdaywsdnsyzh --> iqcoap6pz4udho6pamy6xlrqqsn7i5x4
  opizhcsf3qtxhood23egjfhuus22mdtb --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  tacwgqen45cyu2vzmwpq5hfvrov4wojs --> dwc7cptv7fbk7ldjexzd52n2skadzj6u
  vtyk7kzcmn7kavbl3n3cf7hnje23bdb5 --> zal44oqo4cjnuudhoyjob2ai7rkmymjw
  auth2g65porkdjvnqeqmjl2zyddeebkn --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  yiicx6ce6klmh4xw7uknxnxktorvxcx2 --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  lb4v6rvc7sqtnmkmkz5gcp4jqube6akn --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  opizhcsf3qtxhood23egjfhuus22mdtb --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  hb7gauo7xcjd6bgssllgujqzh3qpe3dj --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  vtyk7kzcmn7kavbl3n3cf7hnje23bdb5 --> budlz5wxrosl46lvtiq4v754jzyxqs4x
  zb5cfn3eqkobk6m3ct3fy6kst6sntv3y --> budlz5wxrosl46lvtiq4v754jzyxqs4x
  auth2g65porkdjvnqeqmjl2zyddeebkn --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  lb4v6rvc7sqtnmkmkz5gcp4jqube6akn --> zb5cfn3eqkobk6m3ct3fy6kst6sntv3y
  tacwgqen45cyu2vzmwpq5hfvrov4wojs --> budlz5wxrosl46lvtiq4v754jzyxqs4x
  zal44oqo4cjnuudhoyjob2ai7rkmymjw --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  rqkg6gkgqnjeyotbiuh5g2jfslshnwtd --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  dwc7cptv7fbk7ldjexzd52n2skadzj6u --> budlz5wxrosl46lvtiq4v754jzyxqs4x
  n5vnqlocfabw5mckga2yympf5dhdmq5m --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  lb4v6rvc7sqtnmkmkz5gcp4jqube6akn --> budlz5wxrosl46lvtiq4v754jzyxqs4x
  faoaqffawrqpaiko4wszldrvnvfrec54 --> dwc7cptv7fbk7ldjexzd52n2skadzj6u
  kdl7oibr2vy5xv3hrff5vp466qxjsdwq --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  tacwgqen45cyu2vzmwpq5hfvrov4wojs --> opizhcsf3qtxhood23egjfhuus22mdtb
  5hm7tsxe26o26rgi5bg5fdaywsdnsyzh --> auth2g65porkdjvnqeqmjl2zyddeebkn
  uplcruyd6rjxmljmxqdkddpcbimab3sz --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  kdl7oibr2vy5xv3hrff5vp466qxjsdwq --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  zal44oqo4cjnuudhoyjob2ai7rkmymjw --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  uplcruyd6rjxmljmxqdkddpcbimab3sz --> jtti27ubdg3v52qbpsj3n53xksqvkhyr
  rqkg6gkgqnjeyotbiuh5g2jfslshnwtd --> budlz5wxrosl46lvtiq4v754jzyxqs4x
  hpdzcnnotmuswqubing7bthexz7o4hlr --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
  kdl7oibr2vy5xv3hrff5vp466qxjsdwq --> vtyk7kzcmn7kavbl3n3cf7hnje23bdb5
  zb5cfn3eqkobk6m3ct3fy6kst6sntv3y --> f36ohywqt6sqlylpgca2t7cvgr47ar2j
wdconinc commented 4 months ago

FYI, https://github.com/spack/spack/pull/44009.

vsoch commented 4 months ago

Can you make it longer than wider so it's easier to read / zoom around?

wdconinc commented 4 months ago

Can you make it longer than wider so it's easier to read / zoom around?

See e.g. https://github.com/spack/spack/pull/44009#issuecomment-2096328481 for some styling options. I think this is going to be fragile, though. A small graph may show up fine, but larger graphs are always going to be a mess, I'm afraid.