# CONTRIBUTING GUIDELINES  

Hello, and welcome to Area4.  Before you contribute, please read this document to find out the best ways to contribute to this project.  

## What to contribute  
There are many ways to contribute to Area4! You can help improve the documentation, submit bug reports and feature requests, or write code which can be incorporated into Area4. Don't be afraid to contribute to the project--the open source community will be here to help you should you need any!  

## A few ground rules  

There are a few things to keep in mind when contributing:  

1. **Be nice**: All of your contributions should be genuine contributions that respect the time of the developers and of other contributers. Always be respectful to others who open issues or pull requests. If someone else has a question that you can answer, answer politely and respectfully, and point them in the direction of any other issues or resources if they need help. Make sure you're creating a safe environment for others to contribute!  

2. **Follow the [code of conduct](https://github.com/RDIL/area4/blob/master/CODE_OF_CONDUCT.md)**: Area4 has a code of conduct that details the kind of behavior you should be demonstrating when using and contributing to this project. Before you contribute, please take a few minutes to read the code of conduct and always follow it when contributing.  

## Steps  

1. Fork the repo.  
2. Make your changes. 
3. Push to your fork. 
4. Create a PR. 
5. If you need to, push extra commits (or rebase if requested). 

## Coding

This project code is intended to be...

* Clean. Keep it well formatted and follow your favourite language conventions, so one can understand it.
Documented. Keep it well documented, so one can learn from it.  
* Reusable. Keep it cohese and modular, with as little responsibility per programming unit (function, method, class, module, project) as possible, so one can reuse it.  
* Testable. Keep it easy to debug and test, so one can be confident that it works properly.  Please keep the [Travis CI build](https://travis-ci.com/RDIL/area4) and [Cirrus CI Build](https://cirrus-ci.com/github/RDIL/area4) at passing if possible.  Travis doesn't directly test the code for errors, rather checks to see if it is safe and ready to deploy to PyPI if needed!  
* *Python 3 compatible.*  Area4 aims to mainly support Python 3 versions, but it is an added bonus if the code is Python 2.7 compatible.  

# Divider style  
The divider style can be found in the documentation.  

-------------------  

If your pull request is merged your name will be added to the author list (.github/CODEAUTHORS).  

If you have any questions please contact [RDIL](https://github.com/RDIL), but before you do please please review our [documentation](https://area4.readthedocs.io/en/latest/). 
