| # Contributing to GCSA | |
| Welcome and thank you for considering contributing to *Google Calendar Simple API* open source project! | |
| Before contributing to this repository, please first discuss the change you wish to make via | |
| [Issue](https://github.com/kuzmoyev/google-calendar-simple-api/issues), | |
| [GitHub Discussion](https://github.com/kuzmoyev/google-calendar-simple-api/discussions), or [Discord](https://discord.gg/mRAegbwYKS). Don’t hesitate to ask! | |
| Issue submissions, discussions, suggestions are as welcomed contributions as pull requests. | |
| ## Steps to contribute changes | |
| 1. [Fork](https://github.com/kuzmoyev/google-calendar-simple-api/fork) the repository | |
| 2. Clone it with `git clone git@github.com:{your_username}/google-calendar-simple-api.git` | |
| 3. Install dependencies if needed with `pip install -e .` (or `pip install -e ".[dev]"` if you want to run tests, compile documentation, etc.). | |
| Use [virtualenv](https://virtualenv.pypa.io/en/latest/) to avoid polluting your global python | |
| 4. Make and commit the changes. Add `closes #{issue_number}` to commit message if applies | |
| 5. Run the tests with `tox` (these will be run on pull request): | |
| * `tox` - all the tests | |
| * `tox -e pytest` - unit tests | |
| * `tox -e flake8` - style check | |
| * `tox -e sphinx` - docs compilation test | |
| 6. Push | |
| 7. Create pull request | |
| * towards `dev` branch if the changes require a new GCSA version (i.e. changes in [gcsa](https://github.com/kuzmoyev/google-calendar-simple-api/tree/master/gcsa) module) | |
| * towards `master` branch if they don't (e.x. changes in README, docs, tests) | |
| ## While contributing | |
| * Follow the [Code of conduct](https://github.com/kuzmoyev/google-calendar-simple-api/blob/master/.github/CODE_OF_CONDUCT.md) | |
| * Follow the [pep8](https://peps.python.org/pep-0008/) and the code style of the project (use your best judgement) | |
| * Add documentation of your changes to code and/or to [read-the-docs](https://github.com/kuzmoyev/google-calendar-simple-api/tree/master/docs/source) if needed (use your best judgement) | |
| * Add [tests](https://github.com/kuzmoyev/google-calendar-simple-api/tree/master/tests) if needed (use your best judgement) | |