Hi folks! <https://graphmyrepo.com/> is a new sit...
# general
h
Hi folks! https://graphmyrepo.com/ is a new site we’ve created at Toolchain that we hope will be useful to software engineers such as yourself. It uses Pants to analyze public GitHub repositories and creates an interactive graph of the code’s structure and dependencies. The site currently supports Python, Go, Java and Scala codebases, and its purpose is to show Pants’s capabilities off to a wide audience. I’d really appreciate it if you could take a few minutes to try out the site and provide some feedback on the experience. We hope to launch this publicly very soon, so your thoughts would be appreciated! Thanks! ~ Benjy
🙌 4
👖 7
c
Layout is a little funky on iPhone 13 mini safari.
s
we were just talking about needing to build something like this internally for our monorepo, nice timing 🙂 based on the examples, some features I wish were there: 1. Ability to click-and-drag individual nodes to rearrange the graph (i.e. to “pull” a file and see what other files get dragged along with it when the graph is tangled) 2. Ability to size leaf nodes in the graph by dependency / dependee counts (direct and transitive for both) 3. Hand-wavy, but something like being able to compute the minimum cut between two subsets of targets (“how do I make A not depend on B?“)
h
Re layout - we targeted desktops because the complexity of the UI doesn’t really lend itself to a mobile device, so I’m not that surprised, but I wonder if we should be explicit about that when accessed from mobile.
@sparse-lifeguard-95737 Thanks for the great ideas! We would like to make this available for non-public code at some point. Stay tuned!
c
Definitely felt the impulse to drag around nodes like Dan did. It would also be helpful to filter out dependencies. I was looking at django-rest-framework and every single file is imported into
___init___.py
and also
tests/
which makes the graph very messy. It would also be cool to be able to apply a filter which highlights any dependency cycles.
👍 2
h
What would be a useful way to filter out noise? One thing I’d been thinking about is show/hide checkboxes in the tree view (and you can also trigger them from a context menu in the graph view), so you could hide a file or an entire folder for example
1
c
That would have solved my issue cuz I could just uncheck the two nodes I mentioned. Another idea is when you select a node, perhaps you completely hide all unrelated edges rather than just graying out. Might also be cool if you could adjust “degrees of separation” shown from the selected node?