mirror of https://github.com/mingrammer/diagrams
Merge c8ee14e1a5
into 0a2af33c93
commit
1237b37d20
@ -0,0 +1,125 @@
|
|||||||
|
# Contribution Guide - How to Setup Environment
|
||||||
|
|
||||||
|
# WARNING - 19 Apr 2020 - The below creates an environment where you can successfully run the tests
|
||||||
|
|
||||||
|
# However it still needs testing again; and also needs worked example on actually contributing 'value' and not putting noise back into the repository!
|
||||||
|
|
||||||
|
Whilst using Diagrams is easy and some folks will find setting up and extending Diagrams easy - for others with Python, Bash and Go dependancies it is harder...
|
||||||
|
|
||||||
|
So a worked guide to setting up a VM with linux so you can contribute to Diagrams.
|
||||||
|
|
||||||
|
Thanks: Thanks to ViktorOrda for assist on getting this to work.
|
||||||
|
|
||||||
|
This guide was written using ubuntu 18.04 on Azure.
|
||||||
|
|
||||||
|
## VM
|
||||||
|
Easiest and cleanest way is to boot a new Linux VM on your cloud provide of choice.
|
||||||
|
* 16 GB HDD is more than enough
|
||||||
|
* 2 GB Ram is more than enough
|
||||||
|
|
||||||
|
## Required Software
|
||||||
|
|
||||||
|
To contribute to Diagrams you will need the required software (all installed from command prompt):
|
||||||
|
|
||||||
|
* Update apt (so you can find stuff)
|
||||||
|
```shell
|
||||||
|
sudo apt update
|
||||||
|
```
|
||||||
|
|
||||||
|
* Python - You want version 3 (Diagrams needs this)
|
||||||
|
```shell
|
||||||
|
python --version
|
||||||
|
```
|
||||||
|
If this returns a 2.7.x type number you are going to have to check python 3 is installed; You need Python 3.6.x
|
||||||
|
|
||||||
|
```shell
|
||||||
|
python3 --version
|
||||||
|
```
|
||||||
|
If Python3 does not return a suitable version you will need to install Python3.
|
||||||
|
```shell
|
||||||
|
sudo apt-get install python3
|
||||||
|
```
|
||||||
|
|
||||||
|
Then to make sure the Diagrams autogen.sh script will work correctly we need to make the alias for 'python' to map to python3.
|
||||||
|
To make python3 the default run this:
|
||||||
|
```shell
|
||||||
|
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
|
||||||
|
|
||||||
|
|
||||||
|
NOT: sudo update-alternatives --set python /usr/bin/python3.6
|
||||||
|
```
|
||||||
|
Or Google 'how to alias python3 to python' and similar to get into the whole aliasing topic.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* pip (to make your life easier) - will probably report already installed.
|
||||||
|
```shell
|
||||||
|
sudo apt install python3-pip
|
||||||
|
```
|
||||||
|
* Git
|
||||||
|
```shell
|
||||||
|
sudo apt install git
|
||||||
|
```
|
||||||
|
* Go
|
||||||
|
* Security warning (hence --classic) and hence why use VM
|
||||||
|
```shell
|
||||||
|
sudo snap install go --classic
|
||||||
|
```
|
||||||
|
|
||||||
|
* Black (used by autogen.sh)
|
||||||
|
```shell
|
||||||
|
pip3 install black
|
||||||
|
```
|
||||||
|
|
||||||
|
*NOW DISCONNECT from SSH and reconnect* (to reset your environment path otherwise Black won't work)
|
||||||
|
|
||||||
|
## Requirements as per Contributing page
|
||||||
|
* Round
|
||||||
|
```shell
|
||||||
|
go get github.com/mingrammer/round
|
||||||
|
sudo cp go/bin/round /bin
|
||||||
|
```
|
||||||
|
|
||||||
|
* Inkscape
|
||||||
|
```shell
|
||||||
|
sudo apt install inkscape
|
||||||
|
```
|
||||||
|
* Convert
|
||||||
|
```shell
|
||||||
|
pip install convert
|
||||||
|
```
|
||||||
|
|
||||||
|
## Grab the Diagrams Code
|
||||||
|
```shell
|
||||||
|
git clone https://github.com/mingrammer/diagrams.git
|
||||||
|
```
|
||||||
|
## To Run the Autogen
|
||||||
|
```shell
|
||||||
|
cd diagrams
|
||||||
|
./autogen.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
# Actually Building the solution and installing diagrams; getting tests to pass
|
||||||
|
|
||||||
|
Whilst ./autogen.sh works the tests don't (because Diagrams isn't actually installed yet) and also as Diagrams isn't installed you can generate any pictures i.e. test your contribution
|
||||||
|
So some more things to install before you can run Diagrams.
|
||||||
|
|
||||||
|
*Be careful here as you will create folders in the diagrams folder that you don't want to contribute back into the repository!*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sudo apt-get install graphviz
|
||||||
|
sudo pip install poetry
|
||||||
|
sudo apt-get install python3-venv
|
||||||
|
poetry build
|
||||||
|
poetry install
|
||||||
|
```
|
||||||
|
|
||||||
|
Now from the diagrams folder run:
|
||||||
|
```shell
|
||||||
|
python -m unittest tests/*.py -v
|
||||||
|
```
|
||||||
|
and all the tests should pass.
|
||||||
|
|
||||||
|
|
Loading…
Reference in new issue