I was not aware of what Conventional Commits are, and their repository does not describe what the commits are meant to look like. Linking to the summary is IMHO more convenient. Refs: #540
2.1 KiB
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.