Thanks a lot for contributing to this project!
The following is a set of guidelines for contributing to ripeg.
Since the project is young: consider those best practices prone to change. Please suggest improvements!
The project uses the GPL3 license. By contributing to this project you agree to license your changes under this license.
There is plenty of features missing (I’ll try to create such issues soon) and possibly bugs might be already there. Feel free to add new issues and to wrangle over those already open and help fixing them.
Only one module has been implemented for now, feel free to submit your PRs. Work is ongoing on isa module now, if that can help to prevent duplicate work.
Tests are mandatory for a PR to be accepted. We want coverage to flirt with 100%. Luckily for us, having a complete test coverage is far easier to get with a brand new project.
Please Add your tests as doctests for every method.
Benches are mandatory for a PR to be accepted. We want coverage to flirt with 100%. Luckily for us, having a complete bench coverage is far easier to get with a brand new project.
Complete documentation is mandatory for a PR to be accepted. We want doc to be complete so newcomers feel quickly at home when getting their hands on ripeg. Luckily for us, having a complete doc coverage is far easier to get with a brand new project.
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.
The normal rust coding style is checked by rustfmt. 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
before submitting a PR.