meli/DEVELOPMENT.md

1.2 KiB

Development

Code style follows the rustfmt.toml file.

Trace logs

Enable trace logs to stderr with:

export MELI_DEBUG_STDERR=yes

This means you will have to to redirect stderr to a file like meli 2> trace.log.

Tracing is opt-in by build features:

cargo build --features=debug-tracing,imap-trace,smtp-trace

use .git-blame-ignore-revs file optional

Use this file to ignore formatting commits from git-blame. It needs to be set up per project because git-blame will fail if it's missing.

git config blame.ignoreRevsFile .git-blame-ignore-revs

Formatting with rustfmt

make fmt

Linting with clippy

make lint

Testing

make test

How to run specific tests:

cargo test -p {melib, meli} (-- --nocapture) (--test test_name)

Profiling

perf record -g target/debug/meli
perf script | stackcollapse-perf | rust-unmangle | flamegraph > perf.svg