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
Added
- Added 3 new cargo features:
cmds-pgp: enables the commands PGP backend (enabled by default, same behaviour as before)gpg: enables the GPG backend (requires thegpgmelib on the system)native-pgp: enables the native PGP backend
- Added account configuration
pgpto configure the way PGP operations are performed.
Removed
- Removed account configuration
email-writing-encrypt-cmd. - Removed account configuration
email-reading-decrypt-cmd. - Removed account configuration
email-writing-sign-cmd. - Removed account configuration
email-reading-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
coredumpcrate 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-hostandsmtp-oauth2-redirect-hostoptions to customize the redirect server host name (default:localhost). - Added
imap-oauth2-redirect-portandsmtp-oauth2-redirect-portoptions to customize the redirect server port (default:9999). - Added
email-listing-datetime-fmtto customize envelopes datetime format. See format spec here. - Added
email-listing-local-datetimeto 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:00becomes2023-06-15T07:00:00-00:00.
Fixed
- Fixed missing
<and>aroundMessage-IDandIn-Reply-Toheaders.
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-authand 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-copyoption to control whenever a copy of any sent email should be saved in thesentfolder defined infolder-aliases. - Imported id mapper from the lib, which means that the id mapping is now done by the CLI.
- Added
BackendConfigtoAccountConfig::backendto 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-cmdemail-writing-decrypt-cmdemail-writing-sign-cmdemail-writing-encrypt-cmd
Changed
-
Changed release archive extensions from
.tar.gzto.tgz. -
Moved
wizardmodule 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-passwdimap-oauth2-client-secretimap-oauth2-access-tokenimap-oauth2-refresh-tokensmtp-passwdsmtp-oauth2-client-secretsmtp-oauth2-access-tokensmtp-oauth2-refresh-token
Fixed
- Fixed Windows releases corrupted archives.
Removed
- [BREAKING] Removed
-s|--sanitizeoption. It is done by default now, except if the-t|--mime-type htmlis set. - [BREAKING] Removed
native-tlssupport,rustls-tlsis now the only TLS provider available. Removed in consequencenative-tls,rustls-tlsandrustls-native-certscargo 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
createanddeletefolder commands sourcehut#54. -
Added generated completions and man pages to releases sourcehut#43.
-
Added new account config option
sync-folders-strategywhich 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 syncarguments 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 folder2or-F folder1 -F folder2.-x|--exclude-folder: exclude given folders from the synchronization. They can be repeated-x folder1 folder2or-x folder1 -F folder2.
-
Added cargo features
native-tls(default),rustls-tlsandrustls-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
-aargument with-Abecause it conflicted with the global option-a|--account. - Replaced
himalaya-libbypimalaya-email. - Renamed feature
vendoredtonative-tls-vendored. - Removed the
developbranch, all the development is now done on themasterbranch.
Fixed
- Fixed config deserialization issue with
email-hooksandemail-reading-format. - Fixed flags case sensitivity.
0.7.1 - 2023-02-14
Added
- Added command
folders expungethat deletes all emails marked for deletion.
Changed
- Changed the location of the documentation.
Fixed
- Fixed broken links in README.md.
Removed
- Removed the
maildir-backendcargo 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 synccommand to synchronize a backend to a local Maildir backend #342. - Added the flag
--disable-cacheto not use the local Maildir backend. - Added the email composer (from its own repository) #341.
- Added Musl builds to releases #356.
- Added
himalaya mancommand to generate man page #419.
Changed
- Made commands
read,attachments,flags,copy,move,deleteaccept multiple ids. - Flipped arguments
idsandfolderfor commandscopyandmovein order the folder not to be considered as an id.
Fixed
- Fixed missing folder aliases #430.
Removed
- Removed the
-a|--attachmentargument fromwrite,replyandforwardcommands. Instead you can attach documents directly from the template using the syntax<#part filename=/path/to/you/document.ext>. - Removed the
-e|--encryptflag fromwrite,replyandforwardcommands. 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-leveloption, use instead theRUST_LOGenvironment variable (see the wiki)
0.6.1 - 2022-10-12
Added
- Added
-s|--sanitizeflag for thereadcommand.
Changed
- Changed the behaviour of the
-t|--mime-typeargument of thereadcommand. 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 htmlwill 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
readcommand, the flag-s|--sanitizeneeds 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|--mailboxto-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:
namebecomesdisplay-nameand is not mandatory anymoresignature-delimiterbecomessignature-delimdefault-page-sizehas been moved tofolder-listing-page-sizeandemail-listing-page-sizenotify-cmd,notify-queryandwatch-cmdshave been removed from the global config (available in account config only)folder-aliaseshas been added to the global config (previously known asmailboxesfrom the account config)email-reading-headers,email-reading-format,email-reading-decrypt-cmd,email-writing-encrypt-cmdandemail-hookshave 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-cmdbecomesemail-writing-encrypt-cmdpgp-decrypt-cmdbecomesemail-reading-decrypt-cmdmailboxesbecomesfolder-aliaseshooksbecomesemail-hooksmaildir-dirbecomesmaildir-root-dirnotmuch-database-dirbecomesnotmuch-db-path
0.5.10 - 2022-03-20
Fixed
0.5.9 - 2022-03-12
Added
Changed
- Improve
attachmentscommand #281
Fixed
In-Reply-Tonot set properly when replying to a message #323Ccmissing 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
imapversion #303 - No tilde expansion in
maildir-dir#305 - Unknown command SORT #308
Changed
- [BREAKING] Replace
inbox-folder,sent-folderanddraft-folderby a generic hashmapmailboxes - Display short envelopes id for
maildirandnotmuchbackends #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/plainparts #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
notifycommand #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-delimiterto customize the signature delimiter (default to-- \n) [#114] - Expand tilde and env vars for
downloads-dirandsignature#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
--allarg is now-Ato avoid conflicts with--attachment|-a - Template management #80
Fixed
Removed
Content-Typefrom 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
idlecommand into two commands:notify: Runsnotify-cmdwhen a new message arrives to the serverwatch: Runswatch-cmdswhen any change occurs on the server
Removed
.exeextension from release binaries #144
0.3.1 - 2021-05-04
Added
- Send message via stdin #78
Fixed
- Table with subject containing
\r,\nor\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|-larg (replaced by defaultRUST_LOGenv 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.shPOSIX 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
--rawarg forreadcmd #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
walias forwritecmd
Fixed
attachmentscmd logs- Page size arg
searchcmd
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
EmailwithMsg#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