third_party_rust_nom/CONTRIBUTING.md
2018-04-08 12:49:38 +02:00

2.2 KiB

Contributing to nom

Thanks a lot for contributing to this project!

The following is a set of guidelines for contributing to nom.

Since the project is young: consider those best practices prone to change. Please suggest improvements!

Basics

License

The project uses the MIT license. By contributing to this project you agree to license your changes under this license.

What to do

Issues

There is plenty of features missing and possibly bugs might be already there. Feel free to add new issues and to wrangle over those already open and help fixing them.

Code

Implementing new codecs, container formats or protocols is always welcome!

Tests

It is strongly suggested to provide test along changes so the coverage stays around the 85%, helping to get to full coverage is pretty welcome.

Benchmark

Help in making sure the code does not have performance regression, by improving the benchmark suite or just by running it weekly, is welcome as well.

Documentation

To preview changes to the documentation: use cargo doc with cargo external-doc

Style

Issue style

Try to write at least 3 short paragraphs describing what were you trying to achieve, what is not working and the step by step actions that lead to the unwanted outcome.

If possible provide:

  • a code snippet or a link to a gist showcasing the problem, if is a library usage issue.
  • a backtrace, if it is a crash.
  • a sample file, if it is a decoding or encoding issue.

Coding style

The normal rust coding style is checked by [rustfmt][cs1]. Readable code is the first step on having good and safe libraries.

To avoid slight differences appearing in nightly versions, please use the following command to run rustfmt: cargo +stable fmt [cs1]: https://github.com/rust-lang-nursery/rustfmt