Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v0.7.0 #433

Merged
merged 57 commits into from Feb 8, 2023
Merged

Release v0.7.0 #433

merged 57 commits into from Feb 8, 2023

Conversation

soywod
Copy link
Owner

@soywod soywod commented Dec 15, 2022

Added

  • Added offline support with the account sync command to synchronize
    a backend to a local Maildir backend [#342].
  • Added the flag --disable-cache to not use the local Maildir
    backend.
  • Added the email composer (from its own
    repository) [#341].
  • Added Musl builds to releases [#356].
  • Added himalaya man command to generate man page [Add man page #419].

Changed

  • Made commands read, attachments, flags, copy, move,
    delete accept multiple ids.
  • Flipped arguments ids and folder for commands copy and move
    in order the folder not to be considered as an id.

Fixed

  • Fixed missing folder aliases [#430].

Removed

  • Removed the -a|--attachment argument from write, reply and
    forward commands. Instead you can attach documents directly from
    the template using the syntax <#part filename=/path/to/you/document.ext>.
  • Removed the -e|--encrypt flag from write, reply and forward
    commands. Instead you can encrypt and sign parts directly from the
    template using the syntax <#part type=text/plain encrypt=command sign=command>Hello!<#/part>.
  • Removed the -l|--log-level option, use instead the RUST_LOG
    environment variable (see the
    wiki)

himalaya-lib v0.5.0

Added

  • Made backend functions accept a vector of id instead of a single id
    [#20].
  • Added function Backend::purge_folder that removes all emails
    inside a folder.
  • Added new Backend functions using the internal id:
    • get_envelope_internal: gets an envelope by its internal id
    • add_email_internal: adds an email and returns its internal id
    • get_emails_internal: gets emails by their internal id
    • copy_emails_internal: copies emails by their internal id
    • move_emails_internal: copies emails by their internal id
    • delete_emails_internal: copies emails by their internal id
    • add_flags_internal: adds emails flags by their internal id
    • set_flags_internal: set emails flags by their internal id
    • remove_flags_internal: removes emails flags by their internal id
  • Added emails synchronization feature. Backends that implement the
    ThreadSafeBackend trait inherit the sync function that
    synchronizes all folders and emails with a local Maildir instance.
  • Added Backend::sync function and link ThreadSafeBackend::sync to
    it for the IMAP and the Maildir backends.
  • Added the ability to URL encode Maildir folders (in order to fix
    path collisions, for eg [Gmail]/Sent). Also added a
    MaildirBackendBuilder to facilitate the usage of the
    url_encoded_folders option.
  • Added a process lock for ThreadSafeBackend::sync, this way only
    one synchronization can be performed at a time (for a same account).

Fixed

  • Used native IMAP commands copy and mv.
  • Fixed maildir date envelope parsing.
  • Fixed inline attachments not collected.

Changed

  • Improved Backend method names. Also replaced the self mut by a
    RefCell.
  • Simplified the Email struct: there is no custom implementation
    with custom fields. Now, the Email struct is just a wrapper around
    mailparse::ParsedMail.
  • Improved Flag structures.
  • Changed Backend trait functions due to [#20]:
    • list_envelope => list_envelopes
    • search_envelope => search_envelopes
    • get_email => get_emails, takes now ids: Vec<&str> and
      returns an Emails structure instead of an Email)
    • copy_email => copy_emails, takes now ids: Vec<&str>.
    • move_email => move_emails, takes now ids: Vec<&str>.
    • delete_email => delete_emails, takes now ids: Vec<&str>.
    • add_flags takes now ids: Vec<&str> and flags: &Flags.
    • set_flags takes now ids: Vec<&str> and flags: &Flags.
    • remove_flags takes now ids: Vec<&str> and flags: &Flags.

Removed

  • The email::Tpl structure moved to its own
    repository
    .
  • Encryption and signed moved with the email::Tpl in its own
    repository.

Pending issues

This was referenced Dec 15, 2022
soywod and others added 21 commits December 26, 2022 21:25
* make DeserializedConfig::path more robust

With this change, himalaya uses the crate `dirs` in order to follow XDG
specifications on Unix, Known Folder on Windows and Standard Directories
on MacOS. This gives us much smoother cross-platform support. It still
has the same fallbacks (`$HOME/.config/himalaya/config.toml` and
`$HOME/.himalayarc`.)

Additionally, this commit removes a bit of in-house code-bloat.

* add wizard entrypoint and basic structure

* wip

* feat: impl Serialize for all DeserializedConfigs

* feat: select default account and write to file

* feat: add SMTP part of wizard

* build: update lockfile

* refactor: separate out multiple files for wizard

* style: friendlier and prettier messages

* feat: add maildir part of wizard

* feat: add notmuch part of wizard

* chore: clippy lints and reorder prompts

* fix: contrived solution to serializing None values

* fix: allow empty Option field when deserializing

* style: address PR review comments

* fix: utilize notmuch lib in finding database path

* fix notmuch wizard

---------

Co-authored-by: Clément DOUIN <clement.douin@posteo.net>
@soywod soywod changed the title Release v0.6.2 Release v0.7.0 Feb 8, 2023
@soywod soywod merged commit 694173b into master Feb 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants