Configuration and diagram generation of the architecture diagrams. There are a few diagrams that are generated.
- Detail /wiki/detail.png
- Shows every component
- Groups by area
- Area (For Each) /wiki/${area}/area.png
- Shows every component in an area
- Shows components directly connected to/from a component in this area
- Shows the area around connected components outside this area
- Overview /wiki/overview.png
- Shows every application component and above
- Rolls up transitive dependencies for lower order dependencies
- Groups by area
We assume you have pyenv
and Graphviz executables installed and configured (skip ahead if you don't).
- Clone this repo and
cd granular-componere
- Setup your local python environment:
pyenv install 2.7.15 pyenv local 2.7.15
- Install pipenv via
pip install -U pipenv
- Install componere via
pipenv install '-e .'
Now that you have componere installed into a pipenv you can run it via pipenv shell
.
> pipenv shell
(granular-componere) > cd ~/my/graph/definitions/
(granular-componere) > componere ./src --all ./output
(granular-componere) > exit
> echo yay!
Install graphviz via brew install graphviz
or from the download page
Install pyenv via brew install pyenv
and then make sure it's initialized by adding the following to your shell profile:
eval "$(pyenv init -)"
if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi
Componere now supports shapes! You can define them on a type
and component
. All components of a type will use the type's shape by default. A shape defined on a component will override the shape of the type.
types:
my-awesome-type:
name: Super Cool Type
shape: star
components:
my-even-better-component:
name: The Coolest Component
shape: tripleoctagon
The default shape of everything is rect
. You should be able to use any of the fun shapes that Graphviz supports.