CONTRIBUTING: Split in categories

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
This commit is contained in:
Maxime “pep” Buquet 2024-02-02 22:25:25 +01:00
parent 2e0a90f447
commit 099747f2e4
2 changed files with 52 additions and 31 deletions

50
CONTRIBUTING.md Normal file
View file

@ -0,0 +1,50 @@
# Contributing guidelines
Thank you (again) for your interest in the project!
## Talk to us before commiting to a change
We recommend you come and talk to us in the channel and/or open an issue
before you start working on a feature, to **see if it aligns with our goals**.
We'll do our best to review and discuss changes with you but we're also humans
with other activities, please be patient with us too.
## General guidelines
The library is still **in development**, and while this is the case we adopt a
**fail-fast** strategy, which is also a reason for the choice of the language.
The earlier we catch bugs and fix them, the less chances they have to confuse
users of our library, or make end-users give up on software developed using
this library. This also helps improving other software in the ecosystem.
## Keep commits short and meaningful
To help with reviews, to facilitate reverts, reading and grepping through
commit history, bisects: it is important for us that changes come in small and
meaningful commits.
That is, **don't bundle all the things in a single commit**, if a change can
be added via different commits standalone and still make sense, then it's
probably a good candidate for splitting.
## Meta
Do not forget to **update changelogs** and other crate metadata where necessary.
Signing commits (`git commit -S`) and adding DCO bits (`git commit -s`) are
welcome but not mandatory.
## Ensure CI passes
Code changes should **include documentation**. They should also **include
tests** where appropriate, and pass the existing test suite.
CI should pass to submit your changes. This is done by ensuring `cargo
fmt` and `cargo test` pass (in the workspace). Please run `cargo fmt` as part
of each of your commits.
More thorough tests can be done locally with `act` or `forgejo-runner
exec`, which is also what is run in the CI. We require docker to be setup for
this to work.

View file

@ -53,34 +53,5 @@ Contributing
Thank you for your interest in the project!
We recommend you come and talk to us in the channel and/or open an issue
before you start working on a feature, to see if it aligns with our goals.
The library is still in development, and while this is the case we adopt a
fail-fast strategy, which is also a reason for the choice of the language.
The earlier we catch bugs and fix them, the less chances they have to confuse
users of our library, or make end-users give up on software developed using
this library. This also helps improving other software in the ecosystem.
Code changes should try to include documentation as possible. They should also
include tests where appropriate, and pass the existing test suite.
CI should pass to submit your changes. This is done by ensuring `cargo fmt`
and `cargo test` pass (in the workspace). Please do not run `cargo fmt` as a
separate commit but do it as part of each of your commits.
More thorough tests can be done locally with `act` or `forgejo-runner
exec`, which is also what is run in the CI. We require docker to be setup for
this to work.
Merge requests can contain as many commits as necessary, but commits should be
kept rather small and meaningful (not include too many different things).
Do not forget to update changelogs and other crate metadata where necessary.
Signing commits (`git commit -S`) and adding DCO bits (`git commit -s`) are
welcome but not mandatory.
We'll do our best to review and discuss changes with you but we're also humans
with other activities, please be patient with us.
Contributing rules are available as
[CONTRIBUTING.md](https://gitlab.com/xmpp-rs/xmpp-rs/-/raw/main/CONTRIBUTING.md) in the repository.