From 371a212005000bbe021d2394877d43e71c2aceeb Mon Sep 17 00:00:00 2001 From: Andrew Morgan Date: Tue, 11 Aug 2020 17:38:25 -0700 Subject: [PATCH] Add CONTRIBUTING doc --- CONTRIBUTING.md | 71 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..e079334 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,71 @@ +# Contributing to nio-template + +Thank you for taking interest in this little project. Below is some information +to help you with contributing. + +## Setting up your development environment + +### Using `docker-compose` + +It is **recommended** to use Docker Compose to run the bot while +developing, as all necessary dependencies are handled for you. After +installation and ensuring the `docker-compose` command works, you need to: + +1. Create a data directory and config file by following the + [docker setup instructions](docker#setup). + +2. Create a docker volume pointing to that directory: + + ``` + docker volume create \ + --opt type=none \ + --opt o=bind \ + --opt device="/path/to/data/dir" data_volume + ``` + +Run `docker/start-dev.sh` to start the bot. + +**Note:** If you are trying to connect to a Synapse instance running on the +host, you need to allow the IP address of the docker container to connect. This +is controlled by `bind_addresses` in the `listeners` section of Synapse's +config. If present, either add the docker internal IP address to the list, or +remove the option altogether to allow all addresses. + +### Running natively + +If you would rather not or are unable to run docker, please follow the Native +Installation, Configuration and Running sections in the +[project readme](README.md#native-installation). + +## Development dependencies + +There are some python dependencies that are required for linting/testing etc. +You can install them with: + +``` +pip install -e ".[dev]" +``` + +## Code style + +Please follow the [PEP8](https://www.python.org/dev/peps/pep-0008/) style +guidelines and format your import statements with +[isort](https://pypi.org/project/isort/). + +## Linting + +Run the following script to automatically format your code. This *should* make +the linting CI happy: + +``` +./scripts-dev/lint.sh +``` + +## What to work on + +Take a look at the [issues +list](https://github.com/anoadragon453/nio-template/issues). What +feature would you like to see or bug do you want to be fixed? + +If you would like to talk any ideas over before working on them, you can reach +me at `@andrewm:amorgan.xyz` on matrix.