Files
himalaya/CONTRIBUTING.md
T
ajanvrin 12afd84d2b docs(contributing): link to conventionalcommits.org instead of git repo
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
2025-01-11 17:08:40 +01:00

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.