Fixes#539 ("Ensure versions migrations are suggested only when current
version is newer than the previous one")
Resolves: <https://git.meli-email.org/meli/meli/issues/539>
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Created temporary file was incorrectly set to be deleted on Drop, but
this is not what we want to do when spawning an external command and pass
the file as the argument.
Fixes: #548 ("mailcap handling")
Resolves: <https://git.meli-email.org/meli/meli/issues/548>
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
A previous commit made a change to show an error message and a diff if
cargo-derivefmt check failed, but did not exit with a non-zero code,
thus allowing the failed check to pass.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
While MSRV is defined in the manifest files, it doesn't make sense to
verify the code compiles under the MSRV only when the manifest files
change. Code changes can break MSRV compliance.
Move the MSRV checks to the lints.yaml workflow instead.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Add a README.md file for the entire contrib/ directory, and merge
existing `mailto-readme.md` into it.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
This script is meant for lints to run against our markdown files
(README.md, BUILD.md maybe even CHANGELOG.md someday).
For now it checks that a README.md file documents all cargo features,
sample output:
epilys ~meli % python3 scripts/markdown_doc_lints.py melib/README.md melib/Cargo.toml
The following features are not mentioned in melib/README.md
- sqlite3-static add the following string in the Features section: <a name="sqlite3-static-feature">`sqlite3-static`</a>
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
`mutt_alias_file` was not removed from the `extras` field of
`AccountSettings` in the `validate_config` function, thus if you used it
in your account configuration you'd get an error: 'Configuration error:
Unrecognised configuration values: {"mutt_alias_file": "<value>"}'
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
We're not using its features it provides over using just rusty-fork,
which sealed-test uses its own fork of it (rusty-forkfork) under the
hood.
Revert to just using the original rusty-fork crate, which is also
packaged in debian.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Rewrite key selection logic when opening the key selector widget for
signing or encryption keys:
- Fix encrypt_for_self incorrectly using the To: header email instead of
From: (ugh!)
- Include all recipient addresses in selection (To:, Cc: Bcc:), also
From:
- Use all addresses in a header value instead of just the first address
- Show shortcuts to sign/encrypt fields in Compose form
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Implement display to show more info on the user interface other than
just the fingerprint.
Will show the fingerprint, the primary user id and a list of properties/flags:
- revoked status
- expired status
- disabled status
- invalid status
- can encrypt status
- can sign status
- whether it's a secret or a public key
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Sometimes attachment bytes don't end with CRLF, so we must prefix the
boundary line ourselves.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
You can pipe individual attachments to binaries with the following
command:
pipe-attachment INDEX binary ARGS
Example usage with the less(1) pager:
pipe-attachment 0 less
If the binary does not wait for your input before exiting, you will
probably not see its output since you will return back to the user
interface immediately. You can write a wrapper script that pipes your
binary's output to
less
or
less -r
if you want to preserve the ANSI escape codes in the pager's output.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Some email backends return Envelopes with only the basic headers filled
in. But that might clash with a user's configurations which operates on
specific headers when viewing an email. So, when having loaded an email
completely, make sure its envelope's headers is completely populated
before presenting it to the user.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Rewrite create_mailbox() to better detect errors, and make its behavior
consistent across different scenarios (being given a file system path or
not, being given absolute paths or not, having a valid (maildir) root
mailbox or not)
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Add:
- eprint_step_fn(): Returns a closure that prints a formatted message,
without a trailing newline, and prefixed with an increasing counter.
- eprintln_ok_fn(): Returns a closure that prints the string " OK\n" to
`stderr` with optional color formatting.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Regenerate libgpgme bindings for 32bit and 64bit targets separately.
This fixes the gpgme bindings tests failing for 32bit targets (which
prior to this commit where cfg'd to run only on x86-64 with #[cfg(target_arch = "x86_64")]
Tests confirm passing with:
cross test --target i686-unknown-linux-gnu --all-targets --all -- --skip test_cli_subcommands
Note: We don't currently test on 32bit arches on CI, failure was spotted
on downstream Debian's build servers
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
If nightly toolchain exists and `cargo +nightly fmt --check --all` runs
but fails because --check returns an error, and the same error does not
trigger under the current active toolchain when the `|| cargo fmt
--check --all` path is executed, then that error is completely ignored.
That wouldn't happen on the CI where the nightly toolchain is not
installed but it would happen if someone (i.e. me) used the Makefiles
locally.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
If Account::mailbox_by_path() fails, suggest matching mailbox paths
using aho_corasick case insensitive matching, and also suggest to the
user to inspect mailboxes with the manage-mailboxes command.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
- Add repology table/badge
- Add more ways to install thanks to people packaging meli for package
managers/platforms
- Update list of official mirrors by adding new gitlab mirror
- While at it, fix ugly html table with quickstart instructions
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>