Contributing to mailpot
Contributions are welcome and encouraged. They can be anything from spelling corrections, art, documentation, or source code fixes & additions. If a source code contribution is correct, functional and follows the code style and feature goals of the rest of the project, it will be merged.
Table of contents:
- Important links
- Developing environment
- How to submit changes
- Choosing what to work on
- How to request an enhancement, new features
- Style Guide / Coding conventions
- Specific questions and answers
- Main repository: https://git.meli.delivery/meli/mailpot
- Bug/Issue tracker: https://git.meli.delivery/meli/mailpot/issues
- Mailing list: https://lists.meli.delivery/list/mailpot-general/
To privately contact the repository's owner, check their commit history for their e-mail address.
You will need a UNIX-like operating system that is supported by Rust.
You can install rust and cargo with the
All tests can be executed with
cargo test --all --no-fail-fast --all-features
to run all tests.
How to submit changes
Use gitea's PR functionality. Alternatively, submit patches to the mailing list.
Choosing what to work on
You can find some tasks in the bug tracker.
Additionally, tasks are annotated inside the source code with the keywords
TODO and others.
For a list of all tags search for
For a list of all references search for
To find tag references you can use a text search tool of your choice such as
ripgrep or others.
The CLI tool
tagref can also be used:
/path/to/mailpot $ tagref list-refs [ref:FIXME] @ ./src/module.rs:106 [ref:FIXME] @ ./src/module.rs:867 [ref:FIXME] @ ./src/module.rs:30 [ref:TODO] @ ./src/where.rs:411 ...
You can of course filter or sort them by tag:
/path/to/mailpot $ tagref list-refs | grep TODO ... /path/to/mailpot $ tagref list-refs | sort -u ...
How to request an enhancement, new features
Simply open a new issue on the bug tracker or post on the mailing list.
Style Guide / Coding conventions
All Rust code must be formatted by
rustfmt, and pass clippy lints.
cargo check --all-features --all --tests --examples --benches --bins cargo +nightly fmt --all || cargo fmt --all cargo clippy --no-deps --all-features --all --tests --examples --benches --bins djhtml -i web/src/templates/* || printf "djhtml binary not found in PATH.\n"