16855e09eSopenharmony_ci# Contributing to nom
26855e09eSopenharmony_ci
36855e09eSopenharmony_ciThanks a lot for contributing to this project!
46855e09eSopenharmony_ci
56855e09eSopenharmony_ciThe following is a set of guidelines for contributing to [nom][1].
66855e09eSopenharmony_ci
76855e09eSopenharmony_ci**Since the project is young**: consider those best practices prone to change. Please suggest improvements!
86855e09eSopenharmony_ci
96855e09eSopenharmony_ci[1]: https://github.com/geal/nom
106855e09eSopenharmony_ci
116855e09eSopenharmony_ci## Basics
126855e09eSopenharmony_ci
136855e09eSopenharmony_ci### License
146855e09eSopenharmony_ci
156855e09eSopenharmony_ciThe project uses the [MIT][l1] license. By contributing to this project you agree to license
166855e09eSopenharmony_ciyour changes under this license.
176855e09eSopenharmony_ci
186855e09eSopenharmony_ci[l1]: https://opensource.org/licenses/MIT
196855e09eSopenharmony_ci
206855e09eSopenharmony_ci
216855e09eSopenharmony_ci## What to do
226855e09eSopenharmony_ci
236855e09eSopenharmony_ci### Issues
246855e09eSopenharmony_ci
256855e09eSopenharmony_ciThere is plenty of [features missing][i1] and possibly bugs might be already there. Feel free to add new [issues][i2]
266855e09eSopenharmony_ciand to wrangle over those already [open][i3] and help fixing them.
276855e09eSopenharmony_ci
286855e09eSopenharmony_ci[i1]: https://github.com/geal/nom/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement
296855e09eSopenharmony_ci[i2]: https://github.com/geal/nom/issues
306855e09eSopenharmony_ci[i3]: https://github.com/geal/nom/issues?q=is%3Aopen+is%3Aissue
316855e09eSopenharmony_ci
326855e09eSopenharmony_ci### Code
336855e09eSopenharmony_ci
346855e09eSopenharmony_ciImplementing new codecs, container formats or protocols is always welcome!
356855e09eSopenharmony_ci
366855e09eSopenharmony_ci### Tests
376855e09eSopenharmony_ci
386855e09eSopenharmony_ciIt is strongly suggested to provide test along changes so the coverage stays around the **85%**, helping to
396855e09eSopenharmony_ciget to full coverage is pretty welcome.
406855e09eSopenharmony_ci
416855e09eSopenharmony_ci### Benchmark
426855e09eSopenharmony_ci
436855e09eSopenharmony_ciHelp in making sure the code does not have performance regression, by improving the benchmark suite or just by
446855e09eSopenharmony_cirunning it weekly, is welcome as well.
456855e09eSopenharmony_ci
466855e09eSopenharmony_ci### Documentation
476855e09eSopenharmony_ci
486855e09eSopenharmony_ciTo preview changes to the documentation: use `cargo doc` with [`cargo
496855e09eSopenharmony_ciexternal-doc`](https://github.com/Geal/cargo-external-doc)
506855e09eSopenharmony_ci
516855e09eSopenharmony_ci## Style
526855e09eSopenharmony_ci
536855e09eSopenharmony_ci### Issue style
546855e09eSopenharmony_ci
556855e09eSopenharmony_ciTry to write at least 3 short paragraphs describing what were you trying to achieve, what is not working and
566855e09eSopenharmony_cithe step by step actions that lead to the unwanted outcome.
576855e09eSopenharmony_ci
586855e09eSopenharmony_ciIf possible provide:
596855e09eSopenharmony_ci
606855e09eSopenharmony_ci- a code snippet or a link to a [gist][is1] showcasing the problem, if is a library usage issue.
616855e09eSopenharmony_ci- a backtrace, if it is a crash.
626855e09eSopenharmony_ci- a sample file, if it is a decoding or encoding issue.
636855e09eSopenharmony_ci
646855e09eSopenharmony_ci[is1]: https://gist.github.com
656855e09eSopenharmony_ci
666855e09eSopenharmony_ci### Coding style
676855e09eSopenharmony_ci
686855e09eSopenharmony_ciThe normal rust coding style is checked by [rustfmt][cs1].
696855e09eSopenharmony_ciReadable code is the first step on having good and safe libraries.
706855e09eSopenharmony_ci
716855e09eSopenharmony_ciTo avoid slight differences appearing in nightly versions, please
726855e09eSopenharmony_ciuse the following command to run rustfmt: `cargo +stable fmt`
736855e09eSopenharmony_ci[cs1]: https://github.com/rust-lang-nursery/rustfmt
746855e09eSopenharmony_ci
75