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
- Testing
- 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 rustup
tool.
All tests can be executed with cargo
.
Run
cargo test --all --no-fail-fast --all-features
to run all tests.
Use gitea's PR functionality. Alternatively, submit patches to the mailing list.
You can find some tasks in the bug tracker.
Additionally, tasks are annotated inside the source code with the keywords FIXME
, TODO
and others.
For a list of all tags search for [tag:
.
For a list of all references search for [ref:
.
To find tag references you can use a text search tool of your choice such as grep
, 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
...
Simply open a new issue on the bug tracker or post on the mailing list.
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"