We welcome any kind of contributions. Whether you are reporting a bug, coding a feature or correcting a typo. Every effort counts; and all contributions are greatly appreaciated.
To run all tests, run the following command.
cargo test --all
Use a conventional changelog format so the changelog can be updated automatically using clog
- Please format your commit subject line using the following format:
TYPE(COMPONENT): MESSAGE
whereTYPE
is one of the following:feat
- A new feature of an existing APIimp
- An improvement to an existing feature/APIperf
- A performance improvementdocs
- Changes to documentation onlytests
- Changes to the testing framework or tests onlyfix
- A bug fixrefactor
- Code functionality doesn't change, but underlying structure maystyle
- Stylistic changes only, no functionality changeswip
- A work in progress commit (Should typically begit rebase
'ed away)chore
- Catch all or things that have to do with the build system, etcexamples
- Changes to existing example, or a new example
- The
COMPONENT
is optional, and may be a single file, directory, or logical component. Parenthesis can be omitted if you are opting not to use theCOMPONENT
.
- Create tests for your changes
- Ensure the tests are passing. Run the tests (
cargo test --all
), alternativelyjust run-tests
if you havejust
installed. - Optional Run the lints.
- Ensure your changes contain documentation if adding new APIs or features.
git rebase
into concise commits and remove--fixup
s orwip
commits (git rebase -i HEAD~NUM
whereNUM
is number of commits back to start the rebase)- Push your changes back to your fork (
git push origin $your-branch
) - Create a pull request against
master
! (You can also create the pull request first, and we'll merge when ready. This a good way to discuss proposed changes.)
- Remain backwards compatible when possible. Backward compatibility is not critical since projects do not depend on Rust Starter. But it's a good idea to have stable features and usage.
- Reduce dependencies.
- Follow best practices.
- Ease of use and customization.