gauge-sh / tach

A Python tool to enforce dependencies, using modular architecture 🌎 Open source 🐍 Installable via pip πŸ”§ Able to be adopted incrementally - ⚑ Implemented with no runtime impact ♾️ Interoperable with your existing systems πŸ¦€ Written in rust
https://gauge.sh
MIT License
953 stars 33 forks source link

Graphviz graph export #144

Closed 13hannes11 closed 2 months ago

13hannes11 commented 2 months ago

It would be great to have the ability to generate a dependency graph based on the tach.yml file in graphviz format.

See Graphviz example). Tach could simply just output a graphviz file to stdout.

Optional features

caelean commented 2 months ago

Hi @13hannes11! Tach can currently do a version of this with tach show

Right now the graph is generated remotely to avoid heavy dependencies getting added to tach. There's also many more interactive features we can build into the visualization through a web ui, including the ones you mentioned as optional. Let me know if this satisfies your usecase!

Here's tach show run on Tach:

tach_show
13hannes11 commented 2 months ago

I'd prefer an option that is not dependent on a web ui. The graphviz format is not too complicated and thus I do not really see additional depedency requirements. Of course it should also not be too difficult to build an external conversion tool

caelean commented 2 months ago

@13hannes11 given our core focus is on expanding web capabilities at the moment, I'm going to leave this closed out. However, if you want to give adding graphviz support a go, feel free to put up a pr! We're happy to accept that as an expansion on current functionality.

Let us know if there are any other features you'd like to see, and join the conversation on Discord πŸ˜„