aboutsummaryrefslogtreecommitdiffstats
path: root/CONTRIBUTING.md
blob: 627bce23eb30a23eefb0105a466230c35bd51607 (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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# Contributing

I welcome any contributions in the form of suggestions, bug reports, pull
requests, and feedback. This document may provide some guidance if you are
thinking of contributing.

## Submitting bug reports and feature requests

Bugs reports and feature requests should be submitted to
[~tobyvin/projectr@todo.sr.ht]; Before submitting to the tracker, please
consider asking about it in [~tobyvin/projectr-discuss@lists.sr.ht].

## Submitting patches

Patches can be sent to [~tobyvin/projectr-devel@lists.sr.ht]. Development
specific questions and discussions should also be submitted there.

For help sending patches, please consult [git-send-email.io], or feel free to
ask for help in [~tobyvin/projectr-discuss@lists.sr.ht].

### Style

All changes are automatically verified by CI to conform to its rustfmt
guidelines. If a CI build is failing because of formatting issues, you can
install rustfmt using `rustup component add rustfmt` and then format all code
using `cargo fmt`.

Unless otherwise specified, this project follows the [Rust compiler's style
guidelines].

All comments should be fully punctuated with a trailing period. This applies
both to regular and documentation comments.

### Documentation

Code should be documented where appropriate. The existing code can be used as a
guidance here and the general `rustfmt` rules can be followed for formatting.

Additionally, changes which have a direct effect on the user (opposed to things
like code refactorings or documentation/tests) should be documented in the
`CHANGELOG.md` file. The existing entries should be used as a style guideline.
The change log should be used to document changes from a user-perspective,
instead of explaining the technical background (like commit messages). More
information about the change log format can be found [Keep a Changelog].

## Release

This procedure assumes the changes have been committed and the `main` branch has
been checked out.

1. Bump the version. The version to bump should be determined using the changes
   made, in accordance with [SemVer].

```console
cargo xtask bump minor
```

1. Create a release commit

```console
git commit -m 'chore: release projectr version v0.5.0'
```

1. Create a tag for the release commit

```console
git shortlog v0.4.1..HEAD | git tag -s v0.5.0 --file -
```

1. Push the git refs

```console
git push --follow-tags
```

1. Publish the crate to [crates.io]

```console
cargo publish
```

## Conduct

projectr and related community should follow the [Rust Code of Conduct]. For any
questions or issues related to please submit a post on the
[~tobyvin/projectr-discuss@lists.sr.ht], or feel free to email me directly at
[tobyv@tobyvin.dev](mailto:tobyv@tobyvin.dev).

[~tobyvin/projectr@todo.sr.ht]: https://todo.sr.ht/~tobyvin/projectr
[~tobyvin/projectr-discuss@lists.sr.ht]:
  https://lists.sr.ht/~tobyvin/projectr-discuss
[~tobyvin/projectr-devel@lists.sr.ht]:
  https://lists.sr.ht/~tobyvin/projectr-devel
[git-send-email.io]: https://git-send-email.io
[Rust Code of Conduct]: https://www.rust-lang.org/policies/code-of-conduct
[Rust compiler's style guidelines]: https://rust-lang.github.io/api-guidelines
[Keep a Changelog]: https://keepachangelog.com
[SemVer]: https://semver.org/