Thank you for your interest in contributing to the Rust Algorithm Club. We appreciate all kinds of contributions. Here are some kinds of tasks you can take.
- Add new algorithms
- Fix existing bugs
- Polish documetation
Next, we'll introduce some tips to make contributions easily.
If you decide to make a awesome work, please search existing issues and pull requests first, as maybe there are some similar one already reported.
If there is no duplicate issue, please file a work-in-progress issue to notify others you are working on it. Your time are precious and must prevent from duplicate works. Maintainers would also track those issues in order to keep our club well organized.
There are also some meta issues tracking features under construction 🚧. Take a look if you are interested in them.
Before submitting your contribution, make sure your works satisify the following requirements:
- Do not break existing tests. Run
cargo test
before sending pull requests. A new algorithm is also expected to contain its own unit tests. - Every public interface must be documented. The documention needn't be perfect but at least explain its intent and usage clearly.
- Try to keep the writing style and structure consistent across posts. E.g. contains a brief description at first paragraph, explains performance with asymptotic notations.
- Coding style should conform to Rust conventions. Such as using
into
to refer to an ownership transfer or naming additional contructors prefixed bywith
. Currently, the use of Clippy and rustfmt are not required.
Welcome to join the Rust Algorithm Club and may algorithms be with you!