Contributing
Bug Reports
If submitting a bug report please search open and closed issues first.
Pull Requests
If you want to add new or change existing behavior, please submit an issue explaining what you want to add or change and why before submitting a PR.
In order to submit a pull request:
- Fork the project
- Create a topic branch off of
main
, following branch naming conventions - Push the topic branch to your fork
- Open pull request, following PR formatting conventions
Please ensure that you also follow project conventions around code style, testing, and commit messages.
By submitting a PR, you agree to license your work under the license of this project.
Conventions
Branch Naming
Please start your branch name with one of feature
, fix
, or chore
as applicable, then a /
, then a succinct description of what the branch is about (for example, chore/contribution-guidelines
).
feature
indicates the addition of new functionality or enhancement of existing functionalityfix
indicates a fix for a bug or other existing problemchore
indicates changes that don't modify how the project works, such as refactoring or adding additional tests/documentation
Code Style
Please run mix format
prior to committing.
Testing
If you're submitting a bug fix, please include a test or tests that would have caught the problem.
If you're submitting new features, please add tests (and documentation) as appropriate.
Commit Messages
Commit messages should attempt to follow the seven rules of a great Git commit message:
- Separate subject from body with a blank line
- Limit the subject line to 50 characters
- Capitalize the subject line
- Do not end the subject line with a period
- Use the imperative mood in the subject line
- Wrap the body at 72 characters
- Use the body to explain what and why vs. how
PR Formatting
The title of the PR should succinctly describe what the PR accomplishes, while the body should briefly detail how that was accomplished if it isn't evident in the title.
If the PR is related to an issue or issues reference them in the first line ("PR for issue #123."), but don't use keywords that would automatically close the issue (like "closes #123" or "fixes #123").
If a PR makes any breaking changes make sure those changes are highlighted in the body.