Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Zenuml support #3983

Closed
wants to merge 22 commits into from
Closed

Add Zenuml support #3983

wants to merge 22 commits into from

Conversation

MrCoder
Copy link
Contributor

@MrCoder MrCoder commented Jan 11, 2023

📑 Summary

Adding support for ZenUML Sequence Diagram.

Resolves #3435

📏 Design Decisions

ZenUML support code (with the source code of ZenUML/core) is in the mermaid-zenuml folder. Documents and Test are added to corresponding folders.

📋 Tasks

Make sure you

  • 📖 have read the contribution guidelines
  • 💻 have added unit/e2e tests (if appropriate)
  • 📓 have added documentation (if appropriate)
  • 🔖 targeted develop branch

@MrCoder MrCoder mentioned this pull request Jan 11, 2023
3 tasks
@sidharthv96 sidharthv96 marked this pull request as draft January 25, 2023 17:26
@sidharthv96
Copy link
Member

Converting to draft to prevent accidental merging.
After discussion, we've decided to split the zenUML code into a separate repo so that it's easier to maintain.
We underestimated the size of zenUML, definitely didn't expect 3.5k files.

Adding this into mermaid repo will make it gigantic and will also be hard to maintain.
Separate repo solves the issue.

@MrCoder I'll help with the move as you've poured a lot of time and effort into this. I hope you understand why we have to go with this approach.

To avoid any further complications, let's discuss what we're planning to do here.

Integrating ZenUML to Mermaid

Objective: Move ZenUML core code to a location where mermaid maintainers have access to maintain and make releases to the @mermaid/mermaid-zenuml package. @MrCoder will still be the code owner and core maintainer.

Current plan: Create a mermaid-js/zenuml-core repo and host the code there.

Way forward:

graph TD
    A[Create mermaid/zenuml-core] --> C{Will Zenuml/core be archived?}
    C -->|Yes| D[Keep replica of zenuml-core in mermaid/zenuml-core]
    C -->|No| E[What's the plan to keep both repos in sync?]
    D --> Release[Release zenuml core package from this repo]
    Release --> Ref[Create mermaid-zenuml diagram in mermaid repo]
    E --> NoRef[mermaid-zenuml cannot add zenuml-core as dependency <br> as it will not be released from our repo]
    NoRef --> Standalone[mermaid-zenuml package will be built and published from mermaid/zenuml-core repo]
Loading

@aloisklink
Copy link
Member

After discussion, we've decided to split the zenUML code into a separate repo so that it's easier to maintain.

I agree!

The current Mermaid source-code is only 575 files (counted with git ls-files | wc -l), so adding 3000+ files makes the repo many times larger.

I'm struggling to even review the code changes, because the moment I click review on GitHub, GitHub freezes up and my tabs/browser crashes! The mermaid team is struggling a bit to maintain the current mermaid source code, and adding more code to maintain will be even harder!

@aloisklink aloisklink removed their request for review January 26, 2023 16:22
@MrCoder
Copy link
Contributor Author

MrCoder commented Jan 29, 2023

@sidharthv96, @aloisklink, thank you for your help. Just to clarify, most of the 3000+ are svg icons (AWS Cloud Service, GCP, Azure, etc). Only a small proportion of these icons are used, but we don't want to maintain a handpicked list of files, as they are published as a whole by each provider.

Not counting the svg icons, the total number of files (including test) is 249 with git ls-files -- . ':!:*/assets/*' | wc -l.

@sidharthv96
Copy link
Member

@MrCoder, I understand that the files are not directly from ZenUML, but, the files are there.
Also, ZenUML and mermaid are entirely unique codebases, so it'll be much easier for us to use the different repo approach.

Can we discuss which path we should take from the flowchart in my previous comment?

@MrCoder
Copy link
Contributor Author

MrCoder commented Feb 15, 2023

Can we discuss which path we should take from the flowchart in my previous comment?
@sidharthv96
The left path ("YES") sounds good to me. Let me know if you need help.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add ZenUML Support
3 participants