• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Contributing to nom
2
3Thanks a lot for contributing to this project!
4
5The following is a set of guidelines for contributing to [nom][1].
6
7**Since the project is young**: consider those best practices prone to change. Please suggest improvements!
8
9[1]: https://github.com/geal/nom
10
11## Basics
12
13### License
14
15The project uses the [MIT][l1] license. By contributing to this project you agree to license
16your changes under this license.
17
18[l1]: https://opensource.org/licenses/MIT
19
20
21## What to do
22
23### Issues
24
25There is plenty of [features missing][i1] and possibly bugs might be already there. Feel free to add new [issues][i2]
26and to wrangle over those already [open][i3] and help fixing them.
27
28[i1]: https://github.com/geal/nom/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement
29[i2]: https://github.com/geal/nom/issues
30[i3]: https://github.com/geal/nom/issues?q=is%3Aopen+is%3Aissue
31
32### Code
33
34Implementing new codecs, container formats or protocols is always welcome!
35
36### Tests
37
38It is strongly suggested to provide test along changes so the coverage stays around the **85%**, helping to
39get to full coverage is pretty welcome.
40
41### Benchmark
42
43Help in making sure the code does not have performance regression, by improving the benchmark suite or just by
44running it weekly, is welcome as well.
45
46### Documentation
47
48To preview changes to the documentation: use `cargo doc` with [`cargo
49external-doc`](https://github.com/Geal/cargo-external-doc)
50
51## Style
52
53### Issue style
54
55Try to write at least 3 short paragraphs describing what were you trying to achieve, what is not working and
56the step by step actions that lead to the unwanted outcome.
57
58If possible provide:
59
60- a code snippet or a link to a [gist][is1] showcasing the problem, if is a library usage issue.
61- a backtrace, if it is a crash.
62- a sample file, if it is a decoding or encoding issue.
63
64[is1]: https://gist.github.com
65
66### Coding style
67
68The normal rust coding style is checked by [rustfmt][cs1].
69Readable code is the first step on having good and safe libraries.
70
71To avoid slight differences appearing in nightly versions, please
72use the following command to run rustfmt: `cargo +stable fmt`
73[cs1]: https://github.com/rust-lang-nursery/rustfmt
74
75