# Contributing to Ngawari

We're thrilled that you're interested in contributing to Ngawari! This document provides guidelines for contributing to the project. By participating in this project, you agree to abide by its terms.

## Table of Contents

1. [Getting Started](#getting-started)
3. [How to Contribute](#how-to-contribute)
4. [Style Guidelines](#style-guidelines)
5. [Commit Messages](#commit-messages)
6. [Pull Requests](#pull-requests)
7. [Reporting Bugs](#reporting-bugs)
8. [Suggesting Enhancements](#suggesting-enhancements)
9. [Questions](#questions)

## Getting Started

1. Fork the repository on GitHub.
2. Clone your fork locally.
3. Set up the development environment as described in the README.md file.
4. Create a new branch for your contribution.

## How to Contribute

1. Ensure your code adheres to the project's coding standards.
2. Add or update tests as necessary.
3. Update documentation as needed.
4. Run the test suite and ensure all tests pass.
5. Push your changes to your fork.
6. Submit a pull request to the main repository.

## Style Guidelines

- Follow PEP 8 style guide for Python code.
- Use meaningful variable and function names.
- Write docstrings for all functions, classes, and modules.
- Keep lines under 100 characters long.

## Commit Messages

- Use the present tense ("Add feature" not "Added feature").
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...").
- Limit the first line to 72 characters or less.
- Reference issues and pull requests liberally after the first line.

## Pull Requests

1. Fill in the required template.
2. Do not include issue numbers in the PR title.
3. Include screenshots and animated GIFs in your pull request whenever possible.
4. Follow the Python style guide.
5. End all files with a newline.

## Reporting Bugs

1. Use the bug report template if available.
2. Include detailed steps to reproduce the bug.
3. Include screenshots if applicable.
4. Describe the expected behavior and the actual behavior.
5. Include information about your environment (OS, Python version, etc.).

## Suggesting Enhancements

1. Use the feature request template if available.
2. Provide a clear and detailed explanation of the feature you want to see.
3. Explain why this enhancement would be useful to most Ngawari users.
4. List some other projects where this enhancement exists, if applicable.

## Questions

If you have any questions about contributing, please open an issue with the "question" label.

Thank you for contributing to Ngawari!
