summaryrefslogtreecommitdiffstats
path: root/CONTRIBUTING.md
blob: f03ac441c422c998160785f75451b099ee344719 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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
  ```