# Contributing to Error Tree
First off, thank you for considering contributing to Error Tree! It's people like you that make Error Tree such a great tool.
## Code of Conduct
This project and everyone participating in it is governed by the Error Tree Code of Conduct. By participating, you are expected to uphold this code.
## How Can I Contribute?
### Reporting Bugs
This section guides you through submitting a bug report for Error Tree. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.
- **Use a clear and descriptive title** for the issue to identify the problem.
- **Provide a step-by-step description** of the suggested enhancement in as many details as possible.
- **Provide specific examples** to demonstrate the steps.
### Suggesting Enhancements
This section guides you through submitting an enhancement suggestion for Error Tree, including completely new features and minor improvements to existing functionality.
- **Use a clear and descriptive title** for the issue to identify the suggestion.
- **Provide a step-by-step description** of the suggested enhancement in as many details as possible.
### Your First Code Contribution
Unsure where to begin contributing to Error Tree? You can start by looking through the `beginner` and `help-wanted` issues.
### Pull Requests
- **Fill in the required template**
- **Do not include issue numbers in the PR title**
- **Include screenshots and animated GIFs** in your pull request whenever possible.
- **Follow the [Rust Style Guide](https://doc.rust-lang.org/1.0.0/style/README.html)**
- **End files with a newline**
## Styleguides
### Git 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
### Rust Styleguide
All Rust code must adhere to the [Rust Style Guide](https://doc.rust-lang.org/1.0.0/style/README.html).
## Additional Notes
### Issue and Pull Request Labels
This section lists the labels we use to help us track and manage issues and pull requests.
#### Type of Issue and Issue State
- `bug`: This issue tracks a bug.
- `enhancement`: This issue tracks a feature request.
- `beginner`: Good for newcomers.
- `help-wanted`: Extra attention is needed.
### Attribution
This Contributing Guide is adapted from the [open-source contribution guidelines template](https://gist.github.com/PurpleBooth/b24679402957c63ec426).