Thank you for investing your time in contributing to Himalaya CLI!
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:
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
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.
Starting from the v1.0.0
, Himalaya CLI tries to adopt the conventional commits specification.