docs: add a contributing guide and link it from the README and site
Nothing in the repo said that pull requests go to develop rather than master, or that release-plz reads the commit subject to pick the next version. Both cost a first-time contributor a round trip. CONTRIBUTING.md covers those, the three checks CI runs, and the fact that the e2e suites skip without a soulfind server. The README and the community page link to it, and it joins the footer's Project column.
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
# Contributing
|
||||
|
||||
Issues and pull requests are both welcome, and so is just saying what's missing.
|
||||
No contributor agreement, no template.
|
||||
|
||||
## Pull requests
|
||||
|
||||
Branch off `develop` and target `develop`. `master` only moves through a release
|
||||
PR.
|
||||
|
||||
Write the subject as a
|
||||
[conventional commit](https://www.conventionalcommits.org), like
|
||||
`fix(lib): route on the full four-byte message code`. release-plz reads these to
|
||||
pick the next version and write the changelog. One change per pull request;
|
||||
small ones land fastest.
|
||||
|
||||
Before you push:
|
||||
|
||||
```bash
|
||||
cargo fmt --all
|
||||
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
||||
cargo test
|
||||
```
|
||||
|
||||
CI runs those on Linux, macOS and Windows, plus an end-to-end suite against a
|
||||
real [soulfind](https://github.com/soulfind-dev/soulfind) server. The e2e suites
|
||||
skip when no server is around, so `cargo test` stays green without one.
|
||||
[Development](./README.md#development) has the setup if you want to run them.
|
||||
|
||||
AI-assisted changes are fine, and no need to say so. Keep the trailers out of
|
||||
the commit message: no `Co-Authored-By:` for a model, no session links.
|
||||
|
||||
## Issues
|
||||
|
||||
The command you ran, what you expected, and what happened is plenty.
|
||||
`RUST_LOG=trace` output helps. Don't worry about polishing it.
|
||||
|
||||
Built something on `soulseek-rs-lib`? Open a PR adding it to the README, and
|
||||
reserve a client minor version in
|
||||
[#12](https://github.com/michel/soulseek-rs/issues/12) so it's identifiable on
|
||||
the network.
|
||||
|
||||
Contributions are under MIT, like the rest of the project.
|
||||
Reference in New Issue
Block a user