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

Dev Discussion #351

Open
PabloLION opened this issue Jan 29, 2023 · 7 comments
Open

Dev Discussion #351

PabloLION opened this issue Jan 29, 2023 · 7 comments
Labels
dev dev-related topic of this repo

Comments

@PabloLION
Copy link
Collaborator

While going through all the current issues, I see some related issues and I'm trying to categorize them.
This issue is created to discuss the priority of each versions and make some plan (or use GitHub Projects), and how do we achieve the goals, including the design pattern change, etc. (or use GitHub Discussions)

@PabloLION
Copy link
Collaborator Author

PabloLION commented Jan 29, 2023

Refactor

API

Visualization

After seeing these problems, I think we should maybe make the dependency graph "reactive" : the nodes expand / collapse on click. But this seems a bit off-topic of madge. An alternative is to make / use a new package to print this "reactive" graph and integrate this package into madge. What do you think? @fdc-viktor-luft @kamiazya @pahen

Docker

@PabloLION PabloLION pinned this issue Jan 29, 2023
@PabloLION PabloLION added the dev dev-related topic of this repo label Jan 29, 2023
@PabloLION
Copy link
Collaborator Author

I spent many hours labelling all the issues. I wish there were a bot to do this possibly with ChatGPT.
Not sure what should we do next, I'm thinking about

  • refactor the repo, or adopt something from fadge, or ignore this step
  • fix bugs
  • and then update the visualization part in v6.2 or possibly v7.0 (depend on how big is the change), as it's be requested a lot in the issues. Also rediagram might help in this process

@fdc-viktor-luft
Copy link
Collaborator

Thanks for your effort @PabloLION

I still had no chance to play around with the visualization stuff, so can't tell what's possible and what's not. If we require more flexibility and also aim to make the dependencies more lightweight, does this mean we would replace graphviz?

I'd like if we first clean up the open PRs, as a good sign that code contribution is high valued. Doesn't mean we should merge them all, but closing with good reason would also be nice.

@PabloLION
Copy link
Collaborator Author

Agreed. I'll work on those PRs now. Great suggestion!

@fdc-viktor-luft
Copy link
Collaborator

fdc-viktor-luft commented Jan 30, 2023

Another thing, I'd like to share, is what I'm using Madge for and what is important to me.

I've introduced Madge in dozens of projects as CI lint target to prevent engineers from introducing circular dependencies early on. In the beginnings of Webpack circular dependencies could cause the build of an application to fail and these kind of issues where very hard to detect and to fix. That's when I stumbled over Madge and with its visualization features (primarily on the console), it was possible to fix the root cause. Also, I've found that preventing circular dependencies produces more clear overall code structure.

However, as of now these kind of issues are very easy to fix, because I made sure they don't bypass any CI checks. So I don't really depend on the graphviz features even though they are really nice.

On the other hand, I think it would be nice if it would also support Vue and Svelte files for dependency resolution, but it seems to be very tricky because dependency-tree doesn't seem to support those.

Btw. if you know surprisingly a good working alternative covering my needs, I'd appreciate your opinion. I tried already fadge and eslint-plugin-import with import/no-cycle options. Both were not catching simple circular deps I've introduced whereas madge was able to, so they seem bad alternatives.

@kamiazya
Copy link
Collaborator

kamiazya commented Jan 30, 2023

We have started merging PRs and have created milestones for 6.1.0.

Please tie them to what you think is needed before the release.

@kamiazya
Copy link
Collaborator

I had talked about volunteering until the end of March, but my work is starting to get busy and I may not be able to guarantee enough time to be involved in this project after that.

I may be able to work on releases and other specific tasks, so please contact me if needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dev dev-related topic of this repo
Projects
None yet
Development

No branches or pull requests

3 participants