28 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
0.9.0 - 2023-08-28
Added
- Added 3 new cargo features:
pgp-commands
: enables the commands PGP backend (enabled by default, same behaviour as before)pgp-gpg
: enables the GPG backend (requires thegpgme
lib on the system)pgp-native
: enables the native PGP backend
- Added account configuration
pgp
to configure the way PGP operations are performed.
Changed
- Moved
email-writing-encrypt-cmd
topgp.encrypt-cmd
. - Moved
email-reading-decrypt-cmd
topgp-decrypt-cmd
. - Moved
email-writing-sign-cmd
topgp.sign-cmd
. - Moved
email-reading-verify-cmd
topgp.verify-cmd
.
0.8.4 - 2023-07-18
Fixed
- Fixed windows releases due to cargo deps typo.
0.8.3 - 2023-07-18
Fixed
- Fixed windows releases due to
coredump
crate compilation error. - Fixed macos releases due to macos 12 System Integrity Protection.
0.8.2 - 2023-07-18
Changed
- Made the code async using the tokio async runtime.
- On Linux, made the kernel keyring the default one (the one based on keyutils).
Fixed
- Fixed the way folder aliases are resolved. In some case, aliases were resolved CLI side and lib side, which led to alias errors sourcehut#95.
0.8.1 - 2023-06-15
Added
- Implemented OAuth 2.0 refresh token flow for IMAP and SMTP, which means that access tokens are now automatically refreshed and is transparent for users.
- Added
imap-oauth2-redirect-host
andsmtp-oauth2-redirect-host
options to customize the redirect server host name (default:localhost
). - Added
imap-oauth2-redirect-port
andsmtp-oauth2-redirect-port
options to customize the redirect server port (default:9999
). - Added
email-listing-datetime-fmt
to customize envelopes datetime format. See format spec here. - Added
email-listing-local-datetime
to transform envelopes datetime's timezone to the user's local one. For example, if the user's local is set toUTC
, the envelope date2023-06-15T09:00:00+02:00
becomes2023-06-15T07:00:00-00:00
.
Fixed
- Fixed missing
<
and>
aroundMessage-ID
andIn-Reply-To
headers.
0.8.0 - 2023-06-03
Added
- Added keyring support, which means Himalaya can now use your system's global keyring to get/set sensitive data like passwords or tokens.
- Added required IMAP option
imap-auth
and SMTP optionsmtp-auth
. Possible values:passwd
,oauth2
. - Added OAuth 2.0 support for IMAP and SMTP.
- Added passwords and OAuth 2.0 configuration via the wizard.
- Added
email-sending-save-copy
option to control whenever a copy of any sent email should be saved in thesent
folder defined infolder-aliases
. - Imported id mapper from the lib, which means that the id mapping is now done by the CLI.
- Added
BackendConfig
toAccountConfig::backend
to match sender implementation. - Added support for pipeline commands, which means commands can be either a single command (string) or piped commands (list of strings). It applies for:
email-writing-verify-cmd
email-writing-decrypt-cmd
email-writing-sign-cmd
email-writing-encrypt-cmd
Changed
-
Changed release archive extensions from
.tar.gz
to.tgz
. -
Moved
wizard
module into domains (config, account, backend…). -
[BREAKING] Changed the way secrets are managed. A secret is a sensitive data like passwords or tokens. There is 3 possible ways to declare a secret in the config file:
{ raw = <secret> }
for the raw secret as string (unsafe, not recommended),{ cmd = <secret-cmd> }
for command that exposes the secret,{ keyring = <secret-entry> }
for entry in your system's global keyring that contains the secret.
This applies for:
imap-passwd
imap-oauth2-client-secret
imap-oauth2-access-token
imap-oauth2-refresh-token
smtp-passwd
smtp-oauth2-client-secret
smtp-oauth2-access-token
smtp-oauth2-refresh-token
Fixed
- Fixed Windows releases corrupted archives.
Removed
- [BREAKING] Removed
-s|--sanitize
option. It is done by default now, except if the-t|--mime-type html
is set. - [BREAKING] Removed
native-tls
support,rustls-tls
is now the only TLS provider available. Removed in consequencenative-tls
,rustls-tls
andrustls-native-certs
cargo features.
0.7.3 - 2023-05-01
Fixed
- Fixed Windows releases (due to typo in the github action script).
- Fixed unit tests.
0.7.2 - 2023-05-01
Added
-
Added
create
anddelete
folder commands sourcehut#54. -
Added generated completions and man pages to releases sourcehut#43.
-
Added new account config option
sync-folders-strategy
which allows to choose a folders synchronization strategy sourcehut#59:sync-folders-strategy = "all"
: synchronize all existing folders for the current accountsync-folders-strategy.include = ["folder1", "folder2", …]
: synchronize only the given folders for the current accountsync-folders-strategy.exclude = ["folder1", "folder2", …]
: synchronizes all folders except the given ones for the current account
Also added new
account sync
arguments that override the account config option:-A|--all-folders
: include all folders to the synchronization.-F|--include-folder
: include given folders to the synchronization. They can be repeated-F folder1 folder2
or-F folder1 -F folder2
.-x|--exclude-folder
: exclude given folders from the synchronization. They can be repeated-x folder1 folder2
or-x folder1 -F folder2
.
-
Added cargo features
native-tls
(default),rustls-tls
andrustls-native-certs
.
Changed
- Made global options truly global, which means they can be used everywhere (not only before commands but also after) sourcehut#60.
- Replaced reply all
-a
argument with-A
because it conflicted with the global option-a|--account
. - Replaced
himalaya-lib
bypimalaya-email
. - Renamed feature
vendored
tonative-tls-vendored
. - Removed the
develop
branch, all the development is now done on themaster
branch.
Fixed
- Fixed config deserialization issue with
email-hooks
andemail-reading-format
. - Fixed flags case sensitivity.
0.7.1 - 2023-02-14
Added
- Added command
folders expunge
that deletes all emails marked for deletion.
Changed
- Changed the location of the documentation.
Fixed
- Fixed broken links in README.md.
Removed
- Removed the
maildir-backend
cargo feature, it is now included by default. - Removed issues section on GitHub, now issues need to be opened by sending an email at ~soywod/pimalaya@todo.sr.ht.
0.7.0 - 2023-02-08
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 #419.
Changed
- Made commands
read
,attachments
,flags
,copy
,move
,delete
accept multiple ids. - Flipped arguments
ids
andfolder
for commandscopy
andmove
in order the folder not to be considered as an id.
Fixed
- Fixed missing folder aliases #430.
Removed
- Removed the
-a|--attachment
argument fromwrite
,reply
andforward
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 fromwrite
,reply
andforward
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 theRUST_LOG
environment variable (see the wiki)
0.6.1 - 2022-10-12
Added
- Added
-s|--sanitize
flag for theread
command.
Changed
- Changed the behaviour of the
-t|--mime-type
argument of theread
command. It is less strict now: if no part is found for the given MIME type, it will fallback to the other one. For example, giving-t html
will show in priority HTML parts, but if none of them are found it will show plain parts instead (and vice versa). - Sanitization is not done by default when using the
read
command, the flag-s|--sanitize
needs to be explicitly provided.
Fixed
- Fixed empty text bodies when reading html part on plain text email #352.
0.6.0 - 2022-10-10
Changed
-
Separated the CLI from the lib module #340.
The source code has been split into subrepositories:
-
[BREAKING] Renamed
-m|--mailbox
to-f|--folder
-
[BREAKING] Refactored config system #344.
The configuration has been rethought in order to be more intuitive and structured. Here are the breaking changes for the global config:
name
becomesdisplay-name
and is not mandatory anymoresignature-delimiter
becomessignature-delim
default-page-size
has been moved tofolder-listing-page-size
andemail-listing-page-size
notify-cmd
,notify-query
andwatch-cmds
have been removed from the global config (available in account config only)folder-aliases
has been added to the global config (previously known asmailboxes
from the account config)email-reading-headers
,email-reading-format
,email-reading-decrypt-cmd
,email-writing-encrypt-cmd
andemail-hooks
have been added
The account config inherits the same breaking changes from the global config, plus:
imap-*
requiresbackend = "imap"
maildir-*
requiresbackend = "maildir"
notmuch-*
requiresbackend = "notmuch"
smtp-*
requiressender = "smtp"
sendmail-*
requiressender = "sendmail"
pgp-encrypt-cmd
becomesemail-writing-encrypt-cmd
pgp-decrypt-cmd
becomesemail-reading-decrypt-cmd
mailboxes
becomesfolder-aliases
hooks
becomesemail-hooks
maildir-dir
becomesmaildir-root-dir
notmuch-database-dir
becomesnotmuch-db-path
0.5.10 - 2022-03-20
Fixed
0.5.9 - 2022-03-12
Added
Changed
- Improve
attachments
command #281
Fixed
In-Reply-To
not set properly when replying to a message #323Cc
missing or invalid when replying to a message #324- Notmuch backend hangs #329
- Maildir e2e tests #335
- JSON API for listings #331
0.5.8 - 2022-03-04
Added
Changed
- Vim doc about mailbox pickers #298
Fixed
0.5.7 - 2022-03-01
Added
- Notmuch support #57
Fixed
- Build failure due to
imap
version #303 - No tilde expansion in
maildir-dir
#305 - Unknown command SORT #308
Changed
- [BREAKING] Replace
inbox-folder
,sent-folder
anddraft-folder
by a generic hashmapmailboxes
- Display short envelopes id for
maildir
andnotmuch
backends #309
0.5.6 - 2022-02-22
Added
Fixed
- Suffix to downloaded attachments with same name #204
0.5.5 - 2022-02-08
Added
- Contributing guide #256
- Notify query config option #289
- End-to-end encryption #54
Fixed
0.5.4 - 2022-02-05
Fixed
0.5.3 - 2022-02-03
Added
- Activate rust-imap logs when trace mode is enabled
- Set up cargo deployment
0.5.2 - 2022-02-02
Fixed
- Blur in list msg screenshot #181
- Make inbox, sent and drafts folders customizable #172
- Vim plugin get focused msg id #268
- Nix run issue #272
- Range not displayed when fetch fails #276
- Blank lines and spaces in
text/plain
parts #280 - Watch command #271
- Mailbox telescope.nvim preview #249
Removed
- The wiki git submodule #273
0.5.1 - 2021-10-24
Added
Fixed
- Error when receiving notification from
notify
command #228
Changed
- Remove error when empty subject #229
- Vim plugin does not render anymore the msg by itself, it uses the one available from the CLI #220
0.5.0 - 2021-10-10
Added
- Mailto support #162
- Remove previous signature when replying/forwarding a message #193
- Config option
signature-delimiter
to customize the signature delimiter (default to-- \n
) [#114] - Expand tilde and env vars for
downloads-dir
andsignature
#102
Changed
- [BREAKING] Folder structure, message management, JSON API and Vim plugin #199
- Pagination for list and search cmd starts from 1 instead of 0 #186
- Errors management with
anyhow
#152
Fixed
- Panic on flags command #190
- Make more use of serde #153
- Write message vim plugin #196
- Invalid encoding when sending message #205
- Pagination reset current account #215
- New/reply/forward from Vim plugin since Tpl refactor #176
0.4.0 - 2021-06-03
Added
- Add ability to change account in with the Vim plugin #91
- Add possibility to make Himalaya default email app #160 [#161]
Changed
- [BREAKING] Short version of reply
--all
arg is now-A
to avoid conflicts with--attachment|-a
- Template management #80
Fixed
Removed
Content-Type
from templates #146
0.3.2 - 2021-05-08
Added
- Mailbox attributes #134
- Wiki entry about new messages counter #121
- Copy/move/delete a message in vim #95
Changed
- Get signature from file #135
- [BREAKING] Split
idle
command into two commands:notify
: Runsnotify-cmd
when a new message arrives to the serverwatch
: Runswatch-cmds
when any change occurs on the server
Removed
.exe
extension from release binaries #144
0.3.1 - 2021-05-04
Added
- Send message via stdin #78
Fixed
- Table with subject containing
\r
,\n
or\t
#141 - Overflow panic when shrink column #138
- Vim plugin empty mailbox message #136
0.3.0 - 2021-04-28
Fixed
- IDLE mode after network interruption #123
- Output redirected to
stderr
#130 - Refactor table system #132
- Editon file format on Linux #133
- Show email address when name not available #131
Removed
--log-level|-l
arg (replaced by defaultRUST_LOG
env var fromenv_logger
) #130
0.2.7 - 2021-04-24
Added
Changed
Fixed
0.2.6 - 2021-04-17
Added
- Insecure TLS option #84 #103 [#105]
- Completion subcommands [#99]
- Vim flags to enable telescope preview and to choose picker [#97]
Changed
- Make
install.sh
POSIX compliant [#53]
Fixed
- SMTP port #87
- Save msg upon error #59
- Answered flag not set #50
- Panic when downloads-dir does not exist #100
- Idle mode incorrect new message notification #48
0.2.5 - 2021-04-12
Fixed
0.2.4 - 2021-04-09
Added
- Wiki entry for Gmail users #58
- Info logs for copy/move/delete cmd + silent mode #74
--raw
arg forread
cmd #79
Changed
- Refactor output system + log levels #74
0.2.3 - 2021-04-08
Added
- Telescope support #61
Fixed
0.2.2 - 2021-04-04
Added
w
alias forwrite
cmd
Fixed
attachments
cmd logs- Page size arg
search
cmd
0.2.1 - 2021-04-04
Added
- IDLE support #29
- Improve choice after editing msg #30
- Flags management #41
- Copy feature #35
- Move feature #31
- Delete feature [#36]
- Signature support #33
- Add attachment(s) to a message (CLI) #37
Changed
- Errors management with
error_chain
#39
Fixed
0.2.0 - 2021-03-10
Added
Changed
- JSON support #18
0.1.0 - 2021-01-17
Added
- Parse TOML config #1
- Populate Config struct from TOML #2
- Set up IMAP connection #3
- List new emails [#6]
- Set up CLI arg parser #15
- List mailboxes command #5
- Text and HTML previews #12 #13
- Set up SMTP connection #4
- Write new email #8
- Write new email #8
- Reply, reply all and forward #9 #10 #11
- Download attachments #14
- Merge
Email
withMsg
#21 - List command with pagination #19
- Icon in table when attachment is present #16
- Multi-account #17
- Password from command #22
- Set up README #20