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

Support local graphviz export for 'tach show' #182

Closed emdoyle closed 1 month ago

emdoyle commented 1 month ago

@letmerecall asked in Discord about generating the tach show graph locally by default so that devs avoid sending tach.yml remotely.

While the long-term goal is to improve the web viewer with interactivity that would be difficult for us to replicate locally, and we don't want to add visualization tools as dependencies, it makes sense to at least export into the standard DOT language that GraphViz uses. This would let devs use their own visualization tools with their module graph easily.

The new CLI for tach show in this PR is:

usage: tach show [-h] [--web] [-o [OUT]]

Visualize the dependency graph of your project.

options:
  -h, --help            show this help message and exit
  --web                 Open your dependency graph in a remote web viewer.
  -o [OUT], --out [OUT]
                        Specify an output path for a locally generated module graph file.