<!--
THIS FILE IS AUTOGENERATED, DON'T EDIT.
File to edit instead: notebooks/contributing.ipynb
-->

# Contributing

Contributions are very welcome — please do ask questions and suggest ideas in Issues, and feel free to implement features you want and submit them via Pull Requests.

### Reporting issues

Please feel free to file a Github Issue if you found a behavior that you feel is weird or counterintuitive, bad UX, or any errors or bugs.

---
### Pull Requests

Thank you for considering writing some code for Notoma! This part describes the easiest way to get up to speed with Notoma development, and how to create a pull request.

Here's the steps you'd need to do in order to get your code merged:

1. Fork the repository
2. Development install with linters: `make contrib`
3. Make sure you regenerate documentation for anything you change: `pipenv run notoma-dev docs`
4. Commit to your fork branch and then do a PR.

#### Local dev setup

```bash
git clone git@github.com:xnutsive/notoma.git
hub fork #or whatever

make contrib #will install dev dependencies and setup local pre-commit linters.
```

#### Linters

- [`black`](https://github.com/psf/black) for code formatting
- [`flake8`](https://gitlab.com/pycqa/flake8) for linting
- [Code Climate](https://codeclimate.com/github/xnutsive/notoma) for code quality.

Linters are run automatically on each commit to any branch, and on pull requests as well.


#### Updating documentation

[Documentation website](https://xnutsive.github.io/notoma/) and all of it's docs is just a Jekyll site, located in [`./docs/`](https://github.com/xnutsive/notoma/tree/master/docs). The markdown files in there are automatically generated from Jupyter Notebooks in `./notebooks` in this repo.

Please edit the notebooks, not the markdown files directly, and please include proposed documentation changes with your pull requests.


