diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..79378d6 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,91 @@ +# Contributing to Tezonator + +First off, thank you for considering contributing to Tezonator! It's people like you that make the open source community such a fantastic place to learn, inspire, and create. Any contributions you make are **greatly appreciated**. + +## Code of Conduct + +This project and everyone participating in it is governed by the Tezonator Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to [rich@ayottesoftware.com]. + +## How Can I Contribute? + +### Reporting Bugs + +This section guides you through submitting a bug report for Tezonator. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports. + +**Before Submitting A Bug Report** +- Check the documentation for a list of common questions and problems. +- Perform a cursory search to see if the bug has already been reported. If it has, add a comment to the existing issue instead of opening a new one. + +**How Do I Submit A (Good) Bug Report?** +- Use a clear and descriptive title for the issue to identify the problem. +- Provide a step-by-step description of how to reproduce the problem. +- Provide specific examples to demonstrate the steps. Include links to files or GitHub projects, or copy/pasteable snippets, which you use in those examples. +- Describe the behavior you observed after following the steps and point out what exactly is the problem with that behavior. +- Explain which behavior you expected to see instead and why. + +### Suggesting Enhancements + +This section guides you through submitting an enhancement suggestion for Tezonator, including completely new features and minor improvements to existing functionality. + +**Before Submitting An Enhancement Suggestion** +- Perform a cursory search to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one. + +**How Do I Submit A (Good) Enhancement Suggestion?** +- 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. +- Provide specific examples to demonstrate the steps or the existing behavior the enhancement would modify or an example to demonstrate how the enhancement would function. +- Explain why this enhancement would be useful to most Tezonator users and isn't something that can or should be implemented as a community plugin or extension. + +### Your First Code Contribution + +Unsure where to begin contributing to Tezonator? You can start by looking through these `beginner` and `help-wanted` issues: + +- **Beginner issues** - issues which should only require a few lines of code, and a test or two. +- **Help wanted issues** - issues which should be a bit more involved than `beginner` issues. + +### Pull Requests + +The process described here has several goals: + +- Maintain Tezonator's quality +- Fix problems that are important to users +- Engage the community in working toward the best possible Tezonator +- Enable a sustainable system for Tezonator's maintainers to review contributions + +Please follow these steps to have your contribution considered by the maintainers: + +1. Follow all instructions in [the template](PULL_REQUEST_TEMPLATE.md) +2. Follow the [styleguides](#styleguides) +3. After you submit your pull request, verify that all [status checks](https://help.github.com/articles/about-status-checks/) are passing + +## 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 + +### Coding Styleguide + +- Rules have been defined in biome.json. +- Lint and format your code with `bun lint` and `bun format` + +## Additional Notes + +### Issue and Pull Request Labels + +This section lists the labels we use to help us manage the workflow of issues and pull requests: + +- `bug` - A bug in Tezonator +- `documentation` - Improvements or additions to documentation +- `duplicate` - An issue that's already been addressed +- `enhancement` - New feature or request +- `good first issue` - Good for newcomers +- `help wanted` - The Tezonator team would like help from the community +- `invalid` - This doesn’t seem right +- `question` - Further information is requested +- `wontfix` - This will not be worked on + +**Thank you for contributing to Tezonator!**