Thanks a lot for contributing to this project!
The following is a set of guidelines for contributing to Rust-AV and related packages.
Since the project is young: consider those best practices prone to change. Please suggest improvements!
The project uses the MIT as license. By contributing to this project you agree to license your changes under this license.
If you want to provide new code under more restrictive license (e.g. GPL-3) we can possibly work to make so it gets integrated as long they are compatible.
Since the project is young: It switched from LGPL-2.1 to MIT because of the rust community feedback.
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.
Implementing new codecs, container formats or protocols is always welcome!
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.
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.
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 suggested as enforced by rustfmt is suggested. Readable code is the first step on having good and safe libraries.
-
Please try to use topic tags in your commits send a pull-request per topic.
-
Use the imperative present tense (e.g
Add the HEVC FRExt support
) -
Try to fit the first line (also known as
Patch Subject
) in 72 characters
A well formatted commit message looks such as:
test: entropy: deflate: Cover more corner cases
Make sure all the failure paths are covered.