Skip to content

Latest commit

 

History

History
81 lines (56 loc) · 2.6 KB

CONTRIBUTING.md

File metadata and controls

81 lines (56 loc) · 2.6 KB

Contribution Guide

Caution

You shouldn't edit the node class files (all files under diagrams/ directory) manually.

Set up your environment

Resources

Update nodes

All node classes are auto-generated from image resource files. For example, the diagram.aws.compute.EC2 class is auto-generated based on the resources/aws/compute/ec2.png image resource file.

So, if you want to add new node resources or update existing node resources, you can just add or update the image files in resources/<provider>/<type>/<image>.

Images should be resized to fit a maximum of 256 pixels wide or high.

# You can do that easily with ImageMagick
convert -resize 256 my_big_image.jpg my_image.jpg

# Or FFmpeg
ffmpeg -i my_big_image.jpg -vf scale=w=256:h=256:force_original_aspect_ratio=decrease my_image.png

Then just run the ./autogen.sh to generate the added or updated node classes. (cf. DEVELOPMENT)

Important

To run autogen.sh, you need the round, black and inkscape command line tools that are used for cleaning the image resource filenames and formatting the generated python code.

macOS users can download inkscape via Homebrew, or you can use the docker image.

Update Aliases

Some node classes have an alias. For example, aws.compute.ECS class is an alias of aws.compute.ElasticContainerService class. Aliases also were auto-generated from ALIASES map in config.py.

So, if you want to add new aliases or update existing aliases, you can just add or update the ALIASES map in config.py.

Then just run the ./autogen.sh to generate the added or updated aliases. (cf. DEVELOPMENT)

Important

To run autogen.sh, you need the round and inkscape command line tools that are used for cleaning the image resource filenames.

macOS users can download inkscape via Homebrew, or you can use the docker image.

Run Tests

python -m unittest tests/*.py -v

Testing changes to the website

The Docusaurus-based documentation website can be run by installing dependencies, then simply running npm run start.

cd website/
npm i
npm run start

The website will be available on http://localhost:3000.

Edit files in website/ and docs/ respectively to edit documentation.