GithubHelp home page GithubHelp logo

vizns's Introduction

Vizns

Visualize the relationship between namespaces and their dependencies.

Usage

Add vizns as an alias in your ~/.clojure/deps.edn so it’s available in any project:

{:aliases
 {:user/vizns
  {:deps {io.dominic/vizns {:git/url "https://github.com/SevereOverfl0w/vizns.git"
                            :sha "85b375763b038c33f2290b9383cde3eebcf6bc8d"}}
   :main-opts ["-m" "io.dominic.vizns.core"]}}}

Run in your project

Produce a navigable folder of SVGs
$ clj -A:user/vizns navigate
Produce a deps-graph.dot file
$ clj -A:user/vizns
Tip
You can upload the .dot file to https://edotor.net/ to view without having graphviz installed.
Produce a deps-graph image directly
$ clj -A:user/vizns single -o deps-graph.png -f png
$ clj -A:user/vizns single -o deps-graph.svg -f svg
View graph without saving
$ clj -A:user/vizns single --show

Output information

Dependencies can be colored 3 colors:

Green

You’re doing the right thing, carry on.

Red

You’re using this dependency, but you’re relying on it being brought in transitively. This means you’re relying on an implementation detail of a library. You should add this dependency to your deps.edn

Grey

You’re not using this dependency (NOTE: There’s a lot of false positives here, especially around java)

Example

(Example sourced from camelot)

Navigation of Camelot (Click nodes to filter)

camelot example

vizns's People

Contributors

kaspazza avatar puredanger avatar severeoverfl0w avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

vizns's Issues

tools.deps api changes

Just wanted to drop a note that the newest version of tools.deps.alpha contains some api changes (moving towards getting out of alpha). So when you bump to tools.deps.alpha >= 0.9.745, you'll need to change your use of clojure.tools.deps.alpha.reader - that functionality is now in clojure.tools.deps.alpha, may be some function name changes too.

Opportunities for improving new user experience

As suggested on Slack,

  1. I first naïvely ran it in a folder without a deps.edn file, and spent some time figuring out why it didn't work.
  2. Then I reran it in an actual project, only to find out I was making it crash because I hadn't supplied any main args
  3. Then I figured I needed to sudo apt install graphviz, because of the dependency on dot.

Suggested fixes:

  1. Improved error message
  2. Show usage on empty args
  3. Note that graphviz must be installed in README

I'm not promising a PR, but feel free to ping me if you haven't heard back in a while :)

Teodor

Dependency warning message

Hi,
First thanks for your work,
I have a warning message regarding the dependencies.

image

I suggest to update the deps.edn.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.