From e63f3d626b59999650ffb03de34446f526a7f8b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Wo=C5=BAniak?= Date: Wed, 4 Dec 2024 13:37:01 +0100 Subject: [PATCH] chore: Add CONTRIBUTING.md --- CONTRIBUTING.md | 68 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..4246b522 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,68 @@ +# Contributing to Sylvia + +Sylvia welcomes contributions from everyone in the form of suggestions, bug +reports, pull requests, and feedback. This document gives some guidance if you +are thinking of helping us. + +## Submitting bug reports and feature requests + +When reporting a bug or asking for help, please include enough details so that +the people helping you can reproduce the behavior you are seeing. For some tips +on how to approach this, read about how to produce a [Minimal, Complete, and +Verifiable example](https://stackoverflow.com/help/mcve). + +When making a feature request, please clarify what problem you intend to +solve with the feature, any ideas for how Sylvia could support solving that +problem, any possible alternatives, and any disadvantages. + +## Running checks + +Before submitting a pull request, please make sure that the following checks pass: + +```sh copy +cargo test && cargo fmt --check && cargo clippy --all-features -- -D warnings +``` + +If anything does not pass, typically, it will be +easier to iterate and fix it locally than waiting for the CI servers to run +tests for you. + +You also have to run the tests in the `example` directory if your pull request affected the `sylvia-derive` crate: + +```sh copy +cd examples && cargo test +``` + +## Commit messages + +Sylvia requires the commit messages to follow the +[Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) +specification. This convention makes it easier to understand the changes in the +project and to automate the release process. + +Ideally, the commit message should also reference the issue number it aims to fix. + +Supported headers are: + +- feat +- fix +- revert +- docs +- test +- refactor +- chore +- build + +``` +feat: Support new type of message (#123) + +Additional valuable information about added functionality in the commit. +``` + +## Releasing + +Sylvia uses the [release-plz](https://github.com/release-plz/release-plz) GitHub action to automate the release process. Instead of manually running `cargo publish`, merge the automatic PR generated by this action, which will take care of the rest. + +## Versioning + +Sylvia follows the [Semantic Versioning](https://semver.org/) scheme.