summaryrefslogtreecommitdiff
path: root/docs/DEVELOPING.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/DEVELOPING.md')
-rw-r--r--docs/DEVELOPING.md48
1 files changed, 48 insertions, 0 deletions
diff --git a/docs/DEVELOPING.md b/docs/DEVELOPING.md
new file mode 100644
index 0000000..d990684
--- /dev/null
+++ b/docs/DEVELOPING.md
@@ -0,0 +1,48 @@
+# Developing
+
+This document contains information related to development.
+
+## Preparing Changes
+
+First, update dependencies and tidy your changes.
+
+```shell
+cargo fmt
+cargo update
+cargo fix --edition-idioms --allow-dirty --allow-staged
+cargo clippy --all-features --all-targets
+```
+
+Now, ensure that lints, tests, and builds succeed.
+
+```shell
+cargo fmt --all -- --check
+cargo clippy -- -D warnings
+cargo doc
+cargo test
+cargo build
+```
+
+> Alternatively, you can replace `cargo test` above with [cargo nextest](https://github.com/nextest-rs/nextest).
+>
+> ```shell
+> cargo nextest run
+> ```
+
+## Performance Checks
+
+Navigate to the [README in the `scripts` directory](../scripts/README.md) for more information on
+how to run performance checks.
+
+## Optional Checks
+
+The following checks are optional and should be run occasionally.
+
+
+```shell
+# This command requires a nightly toolchain to be installed.
+cargo +nightly udeps
+cargo bloat --release
+cargo bloat --release --crates
+cargo audit
+``` \ No newline at end of file