Skip to content

Latest commit

 

History

History
69 lines (47 loc) · 2.09 KB

CONTRIBUTING.md

File metadata and controls

69 lines (47 loc) · 2.09 KB

Contributing guide

Thank you for investing your time in contributing to Himalaya CLI!

Development

The development environment is managed by Nix. Running nix-shell will spawn a shell with everything you need to get started with the lib.

If you do not want to use Nix, you can either use rustup:

rustup update

or install manually the following dependencies:

Build

cargo build

You can disable default features with --no-default-features and enable features with --features feat1,feat2,feat3.

Finally, you can build a release with --release:

cargo build --no-default-features --features imap,smtp,keyring --release

Override dependencies

If you want to build Himalaya CLI with a dependency installed locally (for example email-lib), then you can override it by adding the following lines at the end of Cargo.toml:

[patch.crates-io]
email-lib = { path = "/path/to/email-lib" }

If you get the following error:

note: perhaps two different versions of crate email are being used?

then you may need to override more Pimalaya's sub-dependencies:

[patch.crates-io]
email-lib.path = "/path/to/core/email"
imap-client.path = "/path/to/imap-client"
keyring-lib.path = "/path/to/core/keyring"
mml-lib.path = "/path/to/core/mml"
oauth-lib.path = "/path/to/core/oauth"
pgp-lib.path = "/path/to/core/pgp"
pimalaya-tui.path = "/path/to/tui"
process-lib.path = "/path/to/core/process"
secret-lib.path = "/path/to/core/secret"

See pimalaya/core#32 for more information.

Commit style

Starting from the v1.0.0, Himalaya CLI tries to adopt the conventional commits specification.