summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Müller <neikos@neikos.email>2022-07-06 11:02:22 +0200
committerMarcel Müller <neikos@neikos.email>2022-07-06 11:02:22 +0200
commita96228cc8e708b52409cd938a8ea8d6632be7961 (patch)
tree86e0365562f9b6cfa7f401372eed2066e1f79c51
parentd790cae41a9b3ae797562f07f4f3b236f418a8ea (diff)
Add CONTRIBUTING.md
Signed-off-by: Marcel Müller <neikos@neikos.email>
-rw-r--r--CONTRIBUTING.md74
1 files changed, 74 insertions, 0 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..f03ac44
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,74 @@
+# Contribution guidelines
+
+First off, thank you for considering contributing to cloudmqtt.
+
+If your contribution is not straightforward, please first discuss the change you
+wish to make by creating a new issue before making the change.
+
+## Reporting issues
+
+Before reporting an issue on the
+[issue tracker](https://github.com/TheNeikos/cloudmqtt/issues),
+please check that it has not already been reported by searching for some related
+keywords.
+
+## Pull requests
+
+Try to do one pull request per change.
+
+## Developing
+
+### Set up
+
+
+#### Non-Nix setups
+This is no different than other Rust projects.
+
+```shell
+git clone https://github.com/TheNeikos/cloudmqtt
+cd cloudmqtt
+cargo test
+```
+
+Make sure that you have at least the version as specified in the `rust-toolchain` file.
+
+#### Nix setups
+
+The repository is a nix flake. Be sure to have flake support enabled to check out this repository.
+
+```shell
+nix shell
+cargo test
+```
+
+### Useful Commands
+- Build and run the binary:
+
+ ```shell
+ cargo run --release -F bin
+ ```
+
+- Run Clippy:
+
+ ```shell
+ cargo clippy --all-targets --all-features --workspace
+ ```
+
+- Run all tests:
+
+ ```shell
+ cargo test --all-features --workspace
+ ```
+
+- Check to see if there are code formatting issues
+
+ ```shell
+ cargo fmt --all -- --check
+ ```
+
+- Format the code in the project
+
+ ```shell
+ cargo fmt --all
+ ```
+