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