aboutsummaryrefslogtreecommitdiff
path: root/CONTRIBUTING.md
diff options
context:
space:
mode:
Diffstat (limited to 'CONTRIBUTING.md')
-rw-r--r--CONTRIBUTING.md80
1 files changed, 80 insertions, 0 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..2c9540d
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,80 @@
+# Contribution guidelines
+
+First off, thank you for considering contributing to multiwan-dyndns.
+
+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/guspower/multiwan-dyndns/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.
+
+### Updating the changelog
+
+Update the changes you have made in
+[CHANGELOG](https://github.com/guspower/multiwan-dyndns/blob/main/CHANGELOG.md)
+file under the **Unreleased** section.
+
+Add the changes of your pull request to one of the following subsections,
+depending on the types of changes defined by
+[Keep a changelog](https://keepachangelog.com/en/1.0.0/):
+
+- `Added` for new features.
+- `Changed` for changes in existing functionality.
+- `Deprecated` for soon-to-be removed features.
+- `Removed` for now removed features.
+- `Fixed` for any bug fixes.
+- `Security` in case of vulnerabilities.
+
+If the required subsection does not exist yet under **Unreleased**, create it!
+
+## Developing
+
+### Set up
+
+This is no different than other Rust projects.
+
+```shell
+git clone https://github.com/guspower/multiwan-dyndns
+cd multiwan-dyndns
+cargo test
+```
+
+### Useful Commands
+
+- Build and run release version:
+
+ ```shell
+ cargo build --release && cargo run --release
+ ```
+
+- 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
+ ```