Releases: meli/meli
v0.8.11
This is mostly a fixups release.
Update cargo installations with:
cargo install meli
Contributors in alphabetical order:
- Guillaume Ranquet
- Manos Pitsidianakis
- n4n5
Highlights:
-
2870624 contacts: add notmuch address book support in PR #551 "contacts: add notmuch address book support
The new notmuch_address_book_query account setting defines a query passed to
"notmuch address" command to import contacts into meli.Contacts are parsed and imported read-only.
Example query to import all contacts in the past 6 Months:
notmuch_address_book_query = "--output=recipients --deduplicate=address date:6M.."
-
IMAP connections now use connection pools to prevent an on-going operation blocking other operations.
This is because IMAP connections are stateful and we cannot re-use a single TCP connection for parallel operations.
The use_connection_pool account setting can be used to disable this behavior. -
Add setting for UI notifications (as opposed to system notifications).
These are the notifications that appear as a floating dialog on the UI.
The new notifications.ui_notifications setting has three possible
values:- show (default)
- hide
- system (show them as system notifications)
-
Fixed invalid terminal behavior by turning line wraparound mode off.
-
Replying to self now sets e-mail receiver to previous recipients instead of self.
-
IMAP now supports overriding server subscriptions in configuration.
-
Composer now shows attachments after headers, making them more visible.
-
mbox parsing is now more rigorous by not allowing mixed format behaviors and requiring a given format to parse.
-
Remote account watching has been refactored to be more fault-tolerant and hiding errors from user if retrying is successful.
Added
- 2870624 contacts: add notmuch address book support in PR #551 "contacts: add notmuch address book support
- bb4fc02 melib/imap: add ConnectionMutex struct
- 632a1db melib/imap: add conn pool to ConnectionMutex
- 919fd00 melib/error: hardcode native-tls error check
- 5bcd62c widgets: don't add padding by skipping cols in FormWidget
- 9417f3d melib/error: add TLSConnectionFailed kind variant in PR #578 "Misc fixes"
- c5c56b5 notifications: add DisplayMessageBox::arm()
- 3e5fe79 conf: add notifications.ui_notifications setting
- 6c1194a notifications: add DisplayMessageBox::deactivate()
- 4a03c66 notifications: add DisplayMessageBox::show_{prev,next}()
- 9f2e438 notifications: make update_xbiff() a method in PR #581 "Add notifications.ui_notifications setting to hide UI notifications or show them as system notifications"
- 009c537 melib/imap: add FIXME comment about imap-codec
- 26cb414 melib/jmap: add serde(default) to Identity::id
- f9fa10f melib/jmap: s/Id::new_uuid_v4()/Id::new_random()
- 48ae768 melib/jmap: add serde(default) to Identity::may_delete
- 99c0f5a melib/jmap: Add State::new_random() method
- 7a1ff0d melib/notmuch: add FFI config types bindings
- 335f022 melib/notmuch: add notmuch_database_reopen()
- e842086 melib/notmuch: add Message::msg_id_str() method
- c2b648a melib/notmuch: add Message::find_message_by_path()
- 5846c86 melib/notmuch: impl From for Error
- 648cf6a melib/imap: add use_connection_pool conf option
- df19008 melib/jmap: add session object to backend metadata
- 3565f68 melib: convert MailBackend::watch into a stream
- e2ddbb7 melib/maildir: switch backend.rs and mod.rs
- 1881215 melib/maildir: enhance filesystem/IO error metadata
- bc99dfa melib/maildir: add ErrorKind::NotImplemented to unimplemented errors
- 6d06da2 melib/maildir: s/MaildirPathTrait/MaildirFilePathExt/
- 55d9bb8 melib/maildir: Add MaildirMailboxPathExt::validate_fs_subdirs()
- 6c8bf72 melib/smtp: add ReplyCode::value() method
- 14f6416 listing: don't forward events to self.component twice
- a5f9b3e listing/offline: don't accumulate repeated messages
- 28f3f5e melib/error: add ErrorKind::is_disconnected()
- f5afcf7 melib/imap: add support for LITERAL- extension in PR #604 "melib/imap: add support for LITERAL- extension"
- 0760355 composer: add custom_compose_hooks only once
- 4a1dff4 show error summary if not empty in PR #586 "show error summary"
- 0946703 themes: impl BitOr for ThemeAttribute
- c11bda5 Break metadata json lines in account status
- e6d115f melib/logging: manually redact http auth info in PR #570 "melib/logging: manually redact http auth info"
- 778c4ba mail/listing: restore selection when refreshing same mailbox in PR #571 "mail/listing: restore selection when refreshing same mailbox"
Bug Fixes
- 30c599a Makefile: fix some minor logic/UX issues in PR #559 "Add some doc comments in meli crate"
- 1b30080 pager: fix one-by-off error when drawing scrollbar
- 5a02e81 melib/imap: fix ImapLineIterator splitting literals
- d2b2253 melib/mbox: require MboxFormat for parsing
- 5ffeb7c tools: fix mboxparse binary compilation
- e12412f melib/email: fix base36 conversion
- db93e32 melib: fixup TryFrom<&[EnvelopeHash]> for EnvelopeHashBatch impl
- c3a93f9 melib/jmap: Fix SetResponse struct definition
- 8b374ca melib/maildir: split create_mailbox_sync()
- 6e09a7e melib/datetime: parse RFC2822 date without seconds in PR #599 "melib/email/parser: elaborate Address parsing errors"
- 007628e melib/tests/jmap: fix errata from RFC in PR #602 "misc-fixes"
- 7ee8945 melib/nntp: fix error message typos
- 1164f61 Fix clippy::sliced_string_as_bytes
- 752d390 melib: fix encoded-word encode and add tests in PR #612 "melib: fix encoded-word encode and add tests"
- 0cc5272 melib/mailto: fix parsing header values with '?' in PR #613 "melib/mailto: fix parsing header values with '?'"
- 8307a5f melib/tests: feature gate test_maildir_config
- 0e1d9f0 melib/imap: add FETCH items variants in RequiredResponses in PR #580 "IMAP fixes"
- e8e52bd melib/imap: only process parsed untagged responses
- d27e5d3 melib/jmap: don't abort refresh if Mailbox has no email_query_state
- e0bac37 accounts: don't return after exec refresh_command in PR #597 "conf/tests: flush config file to disk"
- 4b5ad73 terminal: disable wraparound mode in PR #616 "terminal: disable wraparound mode"
Changes
- 94d0402 compose: s/attachments/attachment when # is 1
- 1207217 compose: s/Option/AccountHash in EditAttachments
- aa363be utilities: respect scroll_{left,right} shortcuts in Form/Button widgets
- 99f6b17 melib/imap: retry IDLE with exponential backoff
- 629e693 compose: don't pad EditAttachments area
- 269c2cd terminal/screen: Screen::resize*() optimization in PR #568 "mail/status.rs: restore AccountStatus scrolling"
- 6e0502f melib/imap: impl Default for ImapProtocol
- 1cf11d1 melib/mbox: update totals when fetching in PR #591 "melib/mbox: update totals when fetching"
- 7310233 melib/mbox: check for CRLF when parsing
- 94f4bbd melib/gpgme: allow unused_unsafe on std::env stuff
- 930296d melib/jmap: derive Clone for MailboxObject
- fee3d75 melib/notmuch: split symbol name in call!() macro
- d8f4bb7 melib/imap: make keepalive at least 30 minutes in PR #592 "misc-fixes"
- 3c26c9b melib: impl From for BackendEvent
- cb72e5c melib: impl TryFrom for BackendEvent
- 9e405c5 melib/maildir: validate fs path in list_mail_in_maildir_fs()
- f94adfd melib/maildir: split MaildirPathTrait
- 177e492 melib/maildir: log error instead of debug_assert!
- 46e405f melib/maildir: use async channel in watch()
- 94a458f melib/maildir: return path in save_to_mailbox()
- 9f83c0a melib/maildir: calc MailboxHash from cache in watch()
- 3887d99 melib/jmap: impl Deserialize for Filter, Query
- 3ccf499 melib/jmap: impl Serialize for EmailObject
- 6bf0844 melib/email/parser: elaborate Address parsing errors
- e89ee20 melib/nntp: increase tcp keepalive to 30 mins
- a67299e melib/nntp: set appropriate ErrorKind to errors
- 5c9651c melib/nntp: convert block comments to line
- 592e06b melib/nntp: retry fetch if disconnected
- cdce705 melib/nntp: try connect first before attempting operations
- e2e793d composer: allow empty default header values
- 1a3f617 melib/nntp: run rustfmt
- 55e8b41 composer: use rfc5536 format for User-Agent value
- 08e53da composer: replying to self should reply to previous recipients
- cb47b21 conf: impl DotAddressable for ComposingSettings in PR #605 "Misc composer stuff"
- 9eba4c1 melib/imap: BEGIN IMMEDIATE transactions
- 2663c07 melib/imap: support server subscriptions override
- fd19cab contacts/editor: use AccountHash instead of index
- e11ab83 view/envelope: use Context's cmd_buf in PR #615 "misc"
- 6cd5bac melib/text: allow empty generated unicode tables
- 22985e1 melib/jmap: ser/de SetError manually in PR #594 "JMAP fixups"
- ed1aca5 melib/jmap: fix Get ser/de
- c9d1ae2 melib/maildir: remove stream module
- 83892e9 Fix clippy::manual_ok_err
- a94ebd1 accounts: check if online on watch errors
- 37edaea compose: rewrite to draw attachments after headers
Refactoring
- 6d998f5 melib/backends: remove obsolete ReadOnlyOp
- ef3313c melib/contacts: fix formatting of a log::warn line
- 2f0afd1 melib/email/headers: add #[inline] to small methods
- 2a46c97 melib/backend: remove BackendOp
- f347091 melib/imap/connection.rs: remove unnecessary let
- d06f188 compose: rename Cursor to Focus
- 5468835 melib/email: move imap stuff to melib::imap module
- 5e3c1a2 main.rs: use unbounded channel for thread events in PR #565 "Misc"
- 483edec mail/status.rs: restore AccountStatus scrolling
- fe362a1 melib/imap: fix mailbox update logic on expunge in PR #567 "melib/imap: fix mailbox update logic on expunge"
- f3caea3 mail/listing: don't move cursor to top when refreshing in PR #572 "mail/listing: do...
v0.8.10
Update cargo installations with:
cargo install meli
Highlights:
- added pipe-attachment command
- added sample scripts for using meli as a mailto scheme handler in
contrib/ - fixed GPG encryption with libgpgme
Contributors in alphabetical order:
- Manos Pitsidianakis
- Matthias Geiger
Added
- 5e77821 mail/view: add pipe-attachment command in PR #540
"mail/view: add pipe-attachment command" - fa896f6 contrib: add mailto: scheme handler scripts
- 00ce966
melib/backends: add as_any/as_any_mut methods to BackendMailbox - fd243fa maildir: add mailbox creation tests
- de65eec meli/accounts: add mailbox_by_path() tests in PR #535
"Rework maildir mailbox path logic, add tests" - 6b36360 melib/gpgme: impl Display for gpgme::Key
Bug Fixes
- 60c90d7 melib/attachments: ensure MIME boundary prefixed with CRLF
- 3433c5c compose/pgp: rewrite key selection logic in PR #541 "More
gpgme/PGP fixes again" - 12de82e melib/conf: fix mutt_alias_file not being validated in PR
#550 "Remove sealed_test dependency" - c8e055a Fix version migrations being triggered backwards in PR #557
"Fix version migrations being triggered backwards" - efab99f
terminal: check for NO_COLOR env var without unicode validation - 36a63e8 melib/maildir: rewrite create_mailbox()
- fcab855 view: ensure envelope headers are always populated in PR
#538 "view: ensure envelope headers are always populated" - 84564f4 mailcap: don't drop File before opening it in PR #552
"mailcap: don't drop File before opening it"
Changes
- ed85da5 Remove sealed_test dependency
Refactoring
- 03df2ac meli/utilities: add print utilities for tests
- 18e9d5c conf.rs: impl Frommelib::AccountSettings for AccountConf
- 1f2fec1 Fix 1.83.0 lints in PR #536 "CI: Add action to check for
DCO signoffs in PRs" - 192ecea compose/gpg.rs: Fix msrv regression
Documentation
- 4a61a4b melib: include README.md as preamble of crate rustdocs
- 80e5347 BUILD.md: move melib specific stuff to melib/README.md
- 91a17ec melib/README.md: mention sqlite3-static feature
- b77a691 meli/README.md: Add cargo features section in PR #549
"Document cargo features in READMEs" - 91dc271 contrib: add a README.md file
- 2e900be contrib/README.md: add section about oauth2.py
- 07812d2 contrib/README.md: elaborate a bit about mailto in PR #545
"Add external mailto: handler support via scripts in contrib" - e784e8d scripts: add markdown_doc_lints.py
Continuous Integration
- 7762985 CI: Add action to check for DCO signoffs in PRs
- f944ebe CI: Add error msg when cargo-derivefmt check fails
- d49344f CI: Move MSRV checks from manifest to lints in PR #553
"ci-workflow-fixes" - ece6bfc CI: non-zero exit if cargo-derivefmt-* targets fail
- 2257b91 CI: add actions/cache steps in PR #554 "CI: add
actions/cache steps" - a1c9524 CI: fix check_dco.sh not working with other repos in PR
#555 "CI: fix check_dco.sh not working with other repos"
v0.8.9
This is mostly a fixups release.
Update cargo installations with:
cargo install meli
Added
- cf16bf6 meli/sqlite3: add tests for reindexing
- a389772 accounts: suggest tips on mailbox_by_path error
Bug Fixes
- 25f0a3f conf/terminal: fix serde of ProgressSpinnerSequence
- c375b48 terminal: fix Synchronized Output response parsed as input
in PR #523 "terminal: fix Synchronized Output response parsed as
input" - b7e215f
melib/utils: fix test_fd_locks() on platforms without OFD support in
PR #524 "melib/utils: fix test_fd_locks() on platforms without OFD
support" - 25c32a6 meli/docs/meli.conf.examples.5: fix .Dt macro arguments
- 18ae584 meli: fix reindex of previously indexed account with sqlite3
backend - 13e917d Fix some compilation errors with cfg feature attrs in PR #531
"accounts: suggest tips on mailbox_by_path error" - 8c176d3 contacts/editor: fix crash on saving contact in PR #532
"contacts/editor: fix crash on saving contact" - fb5a88c
melib/collection: ensure mailbox exists when inserting new envelopes
in PR #529 "Small account stuff fixes"
Changes
- 7f8f1cf melib/gpgme bindings renewal in PR #533 "melib/gpgme
bindings renewal" - 9b7825b Update futures-util dep, remove stderrlog dep
- 4be6936 Remove obsolete "encoding" dependency in PR #530
"Remove/update obsolete dependencies"
Refactoring
- 5af6e05 meli/accounts: use Arc for account name
- 567270e melib: use Vec instead of SmallVec for search results
- 2bd8d7b
conf/tests.rs: Rename test functions to follow path convention
Documentation
- 9724248 meli/docs: add meli.conf.examples to CLI and tests
- 0f09633 README.md: Update ways to install, add gitlab mirror link
in PR #528 "Integrate meli.conf.examples.5 into CLI and build, also
update README with installation instructions"
Continuous Integration
- 630df30 CI: Add arm64 runners in job matrices in PR #527 "CI: Add
arm64 runners in job matrices" - 49ecbb5 CI: .gitea/Makefile.lint: check if nightly exists
Signed-off-by: Manos Pitsidianakis [email protected]
v0.8.8
Update cargo installations with:
cargo install meli
WARNING: This release contains a breaking change in the configuration
file: a global composing option is not required anymore. Now, composing
options are per account.
Added
- f3d59eb accounts: add force: bool arg to load()
- 33836a3 melib/error: add WrapResultIntoError helper trait
- 3216324 melib/mbox: impl FromStr for MboxFormat
- 94f345d Implement mailbox renaming command
- 8d45ecc melib/error: add related_path field
- bf3a4c5 error: add ErrorChainDisplay struct for better output
- 6be5fd2
themes: add inheritance, and use themes when initializing grids - 0ee7fc4 Print clickable path links with subcommands
- aed7a60 samples: add ibm-modern theme in PR #469 "conf-refactor"
- 4bbf446 utils: add unix file locks module
- 6fbf569 search: add Message-ID, and other header search support
- 26d33ce address: add separator argument to display_slice()
- 32e3be8
sqlite3: add optional directory field in DatabaseDescription - dbbb152 Add missing ComponentUnrealize handlers
- 87d2cec Add sealed_test dependency
- 604ae11 Impl From<&[u8]> for u64-based hash newtypes
- 8205c7f melib: add JsContact module in PR #479 "view-filters"
- 2af5c8b terminal: add QuerySynchronizedOutputSupport WIP
- 5c4faea Add transpose shortcut and tests for text field
- e9b87b2 melib/maildr: add rename_regex config option
- 8f0e1d6 Add human-readable identifiers in temp draft files
- 601e371 Add vCard exports
- 719e2eb listing: add customizable view divider like sidebar's in PR
#485 "listing: add customizable view divider like sidebar's" - ba3ad8e listing: always show mail_view_divider in PR #486 "listing:
always show mail_view_divider" - 46b2c3b Add listing.thread_layout config flag in PR #487 "Add
listing.thread_layout config flag" - aaea3a5 nntp: add timeout conf flag
- d4636bc nntp: interpret IMPLEMENTATION cap as metadata
- 5f12030 nntp: add select_group_by_name() method
- 9a9cd03 nntp: add NntpType::article_message_id() method
- 7cfcbb7 Add patch_retrieve module in PR #489 "Add patch_retrieve
module" - c82341f File: try trimming filename if ENAMETOOLONG
- 2339549 compose/pgp: add encrypt_for_self flag
- 0b6988b gpgme: add always trust flag to encrypt op
- be3b3ef melib/utils: add fnmatch(3) interface
- 32f7e50 Add version migration support
- a6c7621 jscontact: add {created,updated} fields
- 39592ad jmap: implement changing mailbox subscription
- ca7eb79 jmap: Implement deleting email
- b8e841b jmap: implement mailbox deletion
- 77e7c3d Add support for signatures in PR #500 "Add support for
signatures" - dba5b68 components: add prelude module
- f656aff composer: add discard-draft command
- 789a88b shortcuts: add select_motion equivalent to select_entry
- cb2dd5d listing/threaded: impl missing select functionality in PR
#514 "listing/threaded: impl missing filter functionality" - c1901c9
melib/email/compose: add Content-Type header for utf8 text plain attachments - 0e77bd5
melib/email/compose/tests: add multipart mixed attachment test in PR
#515 "Fix incorrect multipart/mixed rendering when sending text with
attachments under certain circumstances" - 7b1be13 melib: make mbox backend build by default
- 7ff1db1 manage-mailboxes: add delete option in PR #520
"manage-mailboxes: add delete option"
Bug Fixes
- 6b05279 Update time dep to fix 1.80.0 breakage
- 2084ce9 Fix invalid cfg feature combinations for macos in PR #471
"Fix invalid cfg feature combinations for macos" - 4707ec9 text/line_break: fix ReflowState::{No,All} break
- 86e25bc sqlite: fix database reset sequence
- 4d4e189 imap: code style fixups
- 335cca8 listing: fix highlight_self flag off by one error in PR
#477 "listing: fix highlight_self flag off by one error" - 8091583 mailto: rewrite parsing in PR #480 "mailto-rewrite"
- 65b32e7 subcommands: Fix wrong help info in imap-shell prompt
- d0c8174 conf::data_types: minor style and error msg fixups
- 7dbee81 view: fix nested filter jobs never being completed
- f78884c melib/nntp: fix an ancient FIXME
- e0cfe8e Fix compilation for 32-bit architectures in PR #492 "Fix
compilation for 32-bit architectures" - 1b708a9 melib: attempt FromSql from Blob for u64 hash in PR #506
"melib: attempt FromSql from Blob for u64 hash" - 6c31558 compose: fix add-attachment-file-picker
- c6e9e42 listing/threaded: impl missing filter functionality
- e7a164d Configure some gpgme stuff under gpgme feature
Changes
- 8e300c4 melib/jmap: call req text(). asap
- 374ea8b accounts: extract tests to tests.rs file
- 7020cd6 meli: derive PartialEq/Eq for some types
- 6906585 accounts: split mailbox to enum out of JobRequest
- 14f2d91 melib/backends: change RefreshEvent field decl order
- 56b1bf2 meli/accounts: batch process refresh events
- 6513c18 melib/imap: on sync only update exists/unseen if loaded
- a8dad31 melib/imap: renamed cache module to sync
- 9e9c04a Update indexmap dep to 2.3.0
- 2b3828d Update futures dependency to 0.3.30
- 8481294
melib/jmap: do not serialize server-set fields in Set create - eda6620 jmap: detect supported Auth schemes on connect in PR #467
"jmap: detect supported Auth schemes on connect" - 35f12b1 embedded: prevent double-close of pty fd in PR #468
"embedded: prevent double-close of pty fd" - 0bed37b melib: use IndexMap in conf fields
- f3ad824 meli: use itoa to format offset indices in listings
- 1cfb0b1 Update nix dependency to 0.29.0
- 9c1b442 jobs: make cancel flag an AtomicBool
- f06a907 jmap: fetch mailbox with receivedAt descending sort
- 53b0d03 accounts: cancel any previous mailbox fetches
- 60833ee accounts: make mailbox available as soon as possible
- 28f4580 mail/view: try cancel env fetch on Drop
- 2bb9b20 mail/view: do not highlight reply subjects in thread
- a4f344b Use create_new to avoid overwriting files
- d6197e8 listing: clear count modifier on Home/End
- b798ca4 imap: return cached response in {select,examine}_mailbox()
- 151fceb imap: use BTreeMap for message sequence number store
- e48fcc3 imap/protocol_parser: also populate other_headers
- 1e11c29 imap: resync cache first when fetching a mailbox
- 1779ad5 imap: interpret empty server response as BYE
- 2d32068 mail/listing: pre-lookup conf values
- 4e96728 nntp: don't needlessly select group before ARTICLE in PR
#473 "Various" - 67b88d2 Update polling dependency from "2.8" to "3"
- 14d74f3 Update smol dependency from "1" to "2"
- b950fce melib: Use IndexMap in VCard
- 32acc34 view: show signature verification properly
- ac1349b command: alias pwd to cwd
- 7c056e4 Retry loading mailbox on recoverable error in PR #481
"Retry loading mailbox on recoverable error" - cbafdcf terminal: color report WIP
- 4a26cfa logging: disable tracing from output
- 90974e7 imap: cache miss if row env hash != row hash
- 4c44c44 melib: #[ignore] shellexpand tests
- dc9e91d contacts/editor: Use FormButtonAction in form
- c051190 Update debian/meli.{docs,examples} and Cargo exclude
- 592ce15 mbox: use Uuid::nil() as default envelope from
- 6eeb457 nntp: make all fields public
- b27bac7 nntp: use DEFLATE when available by default
- 128b959
nntp: prepend Newsgroups header if missing on NntpType::submit() - a69122f
pgp: use default sign/encrypt keys when no keys are selected - e6fa709 view/envelope: trim headers values to 3 lines maximum
- 7f0157a compose: make dialogs bigger in height in PR #490 "pgp: use
default sign/encrypt keys when no keys are selected" - e032acf view: pass filtered body to Composer as reply text in PR
#493 "view: pass filtered body to Composer as reply text" - 49dcbc5 terminal: Extend Ask default actions, prompts
- cd2e4bf melib/utils: vendor urn crate
- 5915f12 backends: use IsSubscribedFn in method signatures
- 4f927bb nntp: properly return all nntp mailboxes
- b930cb4 maildir: do not use rename_regex when only updating flags
- 27486f2 Accept newer versions of base64 dependency
- c3cac77 Update imap-codec dependency to 2.0.0-alpha.4
- 05f404b jobs: do not use AtomicU64 in PR #505 "jobs: do not use
AtomicU64" - 4691689 melib/gpgme: s/NULL/NUL when referring to NUL byte
- 81ace71 terminal/embedded: lift error checking earlier
- 2411481 manage: parse scroll_{left,right} actions
- d2559e4 imap: return all mailboxes, not just subscribed ones in PR
#509 "compose: fix add-attachment-file-picker" - 320fdda melib/gpgme: disable layout tests on non-x86_64 hosts in PR
#511 "melib/gpgme: disable layout tests on non-x86_64 hosts" - bcbcb01
melib/email/compose: ensure boundary always prefixed with CRLF - d21c686 melib/attachments: Make AttachmentBuilder::set_raw generic
- d5d3457 melib/email/compose/tests: normalise test fn names
- e9ec676 melib: make base64 dep mandatory
- 3040521 melib: make notmuch feature depend on maildir feature
- 35fa8e9 melib/imap: gracefully retry without DEFLATE on BYE in PR
#517 "Fix some unrelated bugs I found while debugging build failure
on armhf"
Refactoring
- 20d7329 melib: replace async-stream dep with async-fn-stream
- 201081b meli/command: move tests to tests.rs
- 84cfa35 conf: remove need for global send_mail setting
- 7be8912 Cargo.tomls: make formatting more consistent
- e6877e8 melib/jmap: refactor some parser imports
- f7ec6d6 melib/jmap: implement mailbox rename
- 15d24ab meli/jobs: refacto...
v0.8.7
v0.8.7 - 2024-07-30
Update cargo installations with:
cargo install meli
Contributors in alphabetical order:
- Andrei Zisu
- Damian Poddebniak
- Herby Gillot
- Manos Pitsidianakis
Added
- 9fcb0a04 Add cargo-deny configuration file deny.toml
- 7e8d19af Add Envelope::sender_any
- 9ab404c5 Add pgp signed attachment support
- b4579075 Allow XOAUTH2 string passed as string
- 0ffe7fa5 Add text/plain or text/html arg for text decoding
- e107d613 Add prelude module for import cleanup
- 7200589a Add ErrorKind::NotFound
- 8c880dc7 Add {Error,ErrorKind}::is_recoverable()
- eb27773b Add pager.named_filters setting
- 84d93d65 Add support for ID extension (opt-in)
- af6838c2 Add metadata field to MailBackendCapabilities
- d1499242 Add From impl
- 814af0e9 Add --gzipped flag to man subcommand
- 475860c9 Accept - for stdio in
{create,test}_config - 86f9b213 Add timeout conf field in validate()
- dd525bd9 Use Error::is_recoverable
- 6e1fea80 Show suggestions on Unauthorized error
- 38620866 Detect DNS lookup std::io::Error
- a330ff96 Retry on DNS failure
- 2429f17b On invalid conf value, print what value is expected
- 6379fbe8 Add support for Undercurl attribute
- a13bf13f Add stub Undercurl support
- f5f1e068 Add UIDPLUS support
- afccebf3 Add AUTH=PLAIN support
- 9fb5bc41 Impl AUTH=ANONYMOUS (RFC4505)
Bug Fixes
- ff3fe077 Fix new 1.79.0 clippy lints
- 430cbdfd Fix python errors
- e3c1656e Fix LOGINDISABLED support
- a82d1e1e Fix RowsState::rename_env stale data
- 8dc4465c Fix toml value ser after update of toml dependency
- 39e903b1 Fix issues with ShellExpandTrait
- 608301dc Expand save-to paths asap
- 100fa8b3 Fix edge case in ShellExpandTrait
- a85b3a08 Allow default_mailbox to be any mailbox
- 0dc24623 Fix one by off error on menu unread count
- 073aef86 Fix lints/errors when compiling specific feature combos
- 12695a00 Fix MSRV breakage
- 27ac3061 Fix tag support not being printed
- 97af00cd Respect timeout value from user configuration
- 824de287 Fix make_address! use
- f2e9cac3 Use suggested minimum for maxObjectsInGet
- 41d07fbc NewState in EmailImportResponse cannot be null
- 197132cc Support fetching with BODY[] for buggy servers
- 91fdef98 Return NotFound on cache miss
- 96cc02a0 Do not use ErrorKind::Configuration
- e96e9789 Don't discard pre-auth capabilities
- 122a2a4d Drain event_queue when mailbox made available
Changes
- 27c4876f Prevent log flooding when drawing listing entries
- 7bdc8f52 Highlight_self also when self is sender
- c4f7b77a Rework attachment rendering logic with filters
- 1cce8c11 Accept invalid "+" CRLF cont req
- c04b593b Use BODY instead of RFC822
- 084a222a Remove subscribed mailboxes list
- 5b6c1aa8 Don't show all background jobs
- f9a3b333 Return NotFound on empty FETCH
- 15f3a3fb Retry fetch envelope only if err.is_recoverable()
- 15eeac51 Enable dns_cache, tcp_keepalive & tcp_nodelay
- 06437e60 Set not_yet_seen to 0 when inserting existing
- 0b113cdb Use MELI_FEATURES in all cargo invocations
Refactoring
- 7856ea33 Transition more to imap-codec
- 6f61176a Remove unecessary mut modifier
- 3251e7bd Scrub skip_serializing_if from attributes
- ebc1fa3b Move module to self dir
- 5110813e Refactor MaildirOp and watch()
- a9122c6e Draw with x range argument
- 3ebf5510 Pass entire screen area when drawing overlay
- 2dc1721a Move signal handling stuff to submodule
- 738f7c46 Execute Opt subcommand in Opt::execute()
- 46df4b57 Remove unused function stub
- 52c75e92 Use HeaderName constants
- 6da4e2ec Replace stringify! in Debug impls with type checked m...
v0.8.6
Update cargo installations with:
cargo install meli
Contributors in alphabetical order:
- euxane
- Manos Pitsidianakis
Added
- 735b44f Add 'highlight_self' theme attribute
- e187bb3 Add tools subcommand with smtp shell for debugging
- 571bd98 Add proper imap-shell in tools subcommand for debugging
- 0e1e5b9 Add support for Alternate Scroll Mode (xterm)
- fe08d52 Add force_text_emoji_presentation option
Bug Fixes
- 3de4908 man.7 Fix typo for toggle_expand_headers
- a8c7582 Fix ENVELOPE parsing in untagged responses
- c65635e Fix compilation for macos
- 06ec279 Fix str slice index panic
- f2b59a7 Add RequestUrlTemplate type
- 7eed944 Fix screwed up rfc8620 module split
- 74a3539 Fix degenerate OOB cell access
- e8e7697 Fix edge case with strings/linebreaking
- 8195518 Fix decryption error not shown
Refactoring
- a9c3b15 Impl highlight_self in all index styles
- 57e3e64 Remove excessive right padding in flags
- a4ebe3b Add ErrorKind::Platform
- 4bdfb3a Disable Nagle's algorithm by default
- 4148aee Refactor smtp,draft errors and email tests
- ed5a6b0 Add a symbols range to is_emoji check
- fc1122a Rename to backend_mailbox.rs
- 50ecade Merge rfc8620/tests.rs to tests.rs
- a78f3f2 Move submodules to jmap/
- f7838b1 Split to methods.rs and objects.rs
- 74f0d12 Remove obsolete imapshell.rs and smtp_conn.rs
- dce3852 Add capabilities module
- 7ba7dc7 Imports cleanup in all modules
- 45bfcf8 Minor refactors
- 77867ae Unwrap object module
- 33999fc Re-add Submission to USING
- 6be25ac Don't use client field for get/posts
Documentation
- 4722d7c Also mention server_password_command for jmap
Miscellaneous Tasks
- 2bfe608 Hide self from "add contacts" options
- 9ca34a6 Update MSRV to 1.70.0
- 50ff16c Add LIGHT, DARK constant theme keys
- 1abce96 Add Envelope::recipient_any method
- 671d35e Update mailin-embedded dependency to 0.8.2
- 39fbb16 Change info_message_{next,prev} shortcuts to '<, >'
- 58d7327 Change new mail text content
- f0d1b9c Add ayllu mirror link
- 3bab532 Improve Debug impl for ContentType etc
- e9dd6be Comment out content
- 8dd87c1 Add ContentType::is_text_plain()
- 01bc62e Add new_plaintext method
v0.8.5
Contributors in alphabetical order:
- Andrei Zisu
- Ethra
- Geert Stappers
- Guillaume Ranquet
- Manos Pitsidianakis
Added
- 0e3a0c4b
Add safe UI widget area drawing API - 0114e695
Add next_search_result and previous_search_result shortcuts - 0b468d88
Improve Error messages - 5af2e1ee
Add subcommand to print config file location - 62aee464
Add subcommand to print log file location - e2cdebe8
Add option to highlight self in mailing list threads - cd448924
Add clear-selection command - 3a5306e9
View manpages in pager inside meli - a37d5fc1
Implement a key to command mapping - ce4ba06c
Add a flag set/unset command - 148f0433
Implement flag set/unset action in UI - 417b24cd
Print invalid command on error - 4e941a9e
Add default_mailbox setting - 974502c6
Impl Hash for Card - ba7a97e9
Add x axis scroll support - ccf6f9a2
Remember previous set [index_style] preferences
Bug Fixes
- bcec745c
Fix command and status bar drawing - 62b8465f
Fix ThreadView for new TUI API - 28fa66cc
Fix ThreadedListing for new TUI API - 2c6f180d
Fix macos compilation - 24971d19
Fix compilation with 1.70.0 cargo - 34a2d52e
Fix rustdoc::redundant_explicit_links - f63774fa
Fix new clippy lints (1.75) - 33408146
Fix feature permutation mis-compilations found with cargo-hack - e3351d27
Fix set unseen updating all mboxes - 8185f2cf
Add deny clippy lints and fix them - 7861fb04
Fix typos found withtypostool - 64e60cb0
Fix select modifier regression - 60f26f9d
Fix some old pre-intradoc rustdoc links - 1fe36192
Make conf validation recognize AccountSettings extra keys - c332c2f5
Fix new clippy lints (mostly clippy::blocks_in_conditions) - 070930e6
Fix auto index build when missing - 26928e3a
Fix compilation for macos - 3884c0da
Small typographic fixups - b820bd6d
Remove unused imap_trace! and fix comp - a88b8c5e
Debian/changelog warning fix - 4ce616ae
Fix lints.yaml rustup install step - 264782d2
Various unimportant minor style/doc fixups - 475609fe
Make {prev,next}_entry shortcut behavior consistent - a69c674c
Fix new 1.77 clippy lints - 48cb9ee2
Fix compilation for macos - 8a16cf6d
Fix wrong column index crash - bc1b6531
Fix constant redrawing - 29cc1bce
Remove obsolete file melib/src/text/tables.rs.gz - ab041898
Fix new warnings for 1.78.0 - 46e40856
Fix UIConfirmationDialog highlight printing - 3b93fa8e
Don't draw messages above embedded terminal - 684fae3e
Copy old content to new buf when resizing - 5d915baa
Use Screen::resize instead of CellBuffer::resize - 6a66afe9
Make add contact dialog scrollable on overflow - aa5737a0
Prevent drawing pager on embedded mode - 07072e2e
Prevent panic if envelope is deleted - 8ddd673d
Update all mailboxes - 3691cd29
Send EnvelopeUpdate event after self.collection.update_flags() - 1fcb1d59
Remove rerun when build.rs changes - 933bf157
Ack \ as an atom - a1cbb198
Return Results instead of panicking - b5ddc397
Remove unwrap() from get_events() loop
Changes
- 61a0c3c2
Do not clear selection after action - 9af284b8
Don't hide unread count for mailboxes that are partly truncated - 35408b16
Run pager filter asynchronously - e80ea9c9
Changed default manpage install path - 742f038f
Move sent_mailbox to settings - 86bbf1ea
Refresh NotmuchMailbox counts when setting flags - f0866a39
Make config error more user-friendly - 11f3077b
Add more possible values for manpage names - 1eca34b3
Set lowest priority to shortcut command UIEvents - 484712b0
Check for unrecoverable errors in is_online - 8ec6f220
Use ShellExpandTrait::expand in more user-provided paths
Refactoring
- 0500e451
Add missing EnvelopeRemove event handler - [ab14...
Release Candidate v0.8.5-rc.3
Hopefully last release candidate for v0.8.5. Contains fixes for building with older versions of rust (new MSRV is 1.68.2).
Available from cargo, or prebuilt binary for amd64/arm64, or prebuilt debian package for amd64/arm64
Get pre-built binaries:
Release Candidate v0.8.5-rc.2
Release candidate for v0.8.5.
Changes since v0.8.5-rc.1:
- Fixed compilation for all
aarch64builds - Fixed compilation for macos platform builds
- Fixed drawing artifact when iterating terminal grid cells
- Re-enabled conversations list style, which was disabled when the new TUI API was added
Release Candidate v0.8.5-rc.1
Release candidate for v0.8.5.
Major differences:
- Replaced TUI (termnal screen interface drawing) with new code that
makes sure out of bounds accesses are as little as possible. Also
every area of a screen holds provenance; you cannot mix area/region
information of different screens (virtual or tty). Every time there is
a window resize, the screen's generation gets refreshed. - Fixed some imap flag sync issues.
- Many small refactors across all the codebase.