Change Log
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.
14.4.4 - 2023-11-17
Changed
- Bugfix: check for the presence of the spec directory before conditionally activating code coverage
14.4.3 - 2023-11-17
Changed
- Documentation is now split into two areas:
- End-user facing: via the README on GitHub
- Developer: via a different main YARD page on rubydoc.info
14.4.0 - 2023-11-15
Changed
- Always check whether the configuration file has folders listed as an Array of Hashes, and convert to the newer, simpler, structure. See #184
14.3.0 - 2023-11-03
Added
- Each release is accompanied by the creation of a container image (usable with Docker or Podman) the can be used to run backups without any other installation necessary.
14.2.0 - 2023-10-21
Changed
- Fixed bug in account setup where changing the list of folders to back up did not set the account modified flag.
14.1.1 - 2023-10-12
Changed
- Fixed: When handling serialization errors, when using the
delayed_metadata
strategy, previously downloaded messages are now saved.
14.1.0 - 2023-10-12
Changed
- Messages that cause errors during serialization are now skipped end the account backup continues.
14.0.0 - 2023-10-11
Added
- A new
single backup
command that backs up an account without the need for a configuration file.
13.4.0 - 2023-10-09
Changed
- Split verbosity into two levels. The first gives local verbose logging, the second shows communications with the IMAP server.
- Fixed a bug where under certain conditions
imap-backup version
would throw an error.
13.3.0 - 2023-10-06
Changed
- Fixed a bug in mirror mode where new emails were appended to the .mbox file, but not to the metadata file.
13.2.0 - 2023-10-06
Changed
- Fixed a bug where the setup connection tester was not actually attempting a connection;
- Fixed a bug where unseen messages were being marked as seen on iCloud.
13.0.0 - 2023-09-30
Removed
- Deprecated support of Ruby 2.6.x
12.1.0 - 2023-09-25
Added
- An
--automatic-namespaces
option to automatically select source and destination prefixes and delimiters for themigrate
andmirror
commands.
12.0.0 - 2023-09-16
Changed
- Fixed a bug in serialization where message lengths were calculated in Unicode codepoints, not in bytes;
- Delayed login of the IMAP client, speeding up operations where the client login was not actually necessary.
11.1.0 - 2023-08-31
Changed
- Changed handling of messages with encoding errors in the body and the From header.
11.0.1 - 2023-08-01
Changed
- Fixed error handling behaviour in transactions. Closes #164
11.0.0 - 2023-07-25
Changed
- Default downloading strategy now delays writing metadata until the whole folder has been downloaded. For very large mailboxes (e.g. with >100k messages) this results in an approximately 30x speedup in download times. The strategy can be chosen in the setup program, under 'global options';
- When any account backup fails, the program now exits with a non-zero exit code.
10.0.0 - 2023-07-16
- Improved logging output for Thunderbird exports,
- Stopped exports when the destination profile is not yet ready.
9.3.2 - 2023-06-04
Changed
- Improved performance of large backups by avoiding unnecessary serialized IMAP data migration and validation checks.
9.3.1 - 2023-05-12
Changed
- Previously, when help was requested on a subcommand method, the output was of listing all subcommand methods. Now, the output is now the help for that specific method.
9.2.0 - 2023-03-01
Changed
- Handle invalid file name characters (specifically ':') in folder names. Invalid names are encoded to hex codes. As the encoding uses '%' and ';' to delimit encoded hex values, theses characters themselves are now considered 'invalid' for serialized folder names and are encoded.
9.1.1 - 2023-02-19
Changed
- BUGFIX: Correctly accept logging options when running
migrate
andmirror
commands.
9.1.0 - 2023-02-18
Changed
- When a single account throws an error, capture log it and keep running, so other accounts get backed up.
9.0.2 - 2023-01-09
Changed
- BUGFIX: When an account has
folder_blacklist
set but no list of configured folders, it now backs up all folders.
9.0.1 - 2022-12-29
Changed
- Made
--reset
option onmigrate
optional. Now, existing emails in destination folders are kept.
9.0.0 - 2022-12-29
Added
- Options for setting source and destination delimiters for the
migrate
andmirror
commands.
8.0.1 - 2022-09-24
Changed
- Filtered out non-standard flags from
migrate
andrestore
.
8.0.0 - 2022-09-24
Added
- An account option 'folder_blacklist'. When set the user chooses which folders to exclude from backups. Otherwise, the folders chosen by the user are the ones to include,
- Provision of JSON output for the 'remote folders' command,
- A 'remote namespaces' command to help with configuration of the 'migrate' and 'mirror' commands.
Changed
- Removed 'Experimental' warning from 'migrate' command,
- Removed 'Experimental' warning from 'export-to-thunderbird' command,
- Renamed Folder#*_flags methods,
- Improved setup account menu ordering,
- An account's connection_options can now be cleared by entering an empty string.
Removed
- Deprecated
folders
command, replaced byremote folders
.
[8.0.0.rc1] - 2022-09-19
Added
- --config parameter to allow for non-default placing of the configuration file
Removed
- Deprecated
status
command, replaced bystats
.
[7.0.2] - 2022-09-17
- Changed logging behaviour:
- Made info the normal logger level,
- Removed configuration 'debug' setting,
- Added a --verbose flag,
- Add a --quiet flag.
- Corrected handling of account connection options after changes.
[7.0.1] - 2022-09-16
- Added a 'mirror mode' to account configuration that changes backup behaviour:
- removes local folders that are no longer to be backed up,
- removes emails that are no longer present on the server,
- updates flags on the local backup to match those on the server.
- Added a 'mirror' command that takes a 'mirror mode' backup and copies it to another server.
- Added a '--refresh' option to the backup command that, updates flags on the local backup to match those on the server, even for accounts that are not in 'mirror mode'.
[7.0.0.rc1] - 2022-08-30
Changed
- Added backup and restore of IMAP flags (e.g. "Seen", "Draft").
- Introduced a new metadata format.
- Included data about message offsets and lengths in the new metadata to facilitate for future integrity checks.
- Added a migrator to transform the old (version 2) metadata files into the newer (version 3) files.
[6.2.1] - 2022-07-12
Changed
- Added handling for folder names supplied by the IMAP server with badly encoded names (e.g. UTF-8 instead of UTF-7)
[6.2.0] - 2022-07-12
Changed
- Improved the speed of some operations by tracking mailbox selection to avoid repeated calls to select the same mailbox.
- Added handling of append errors during migration.
[6.1.0] - 2022-07-11
Changed
- Added a workaround option for providers that set the '\Seen' flag when emails are fetched.
[6.0.1] - 2022-06-09
Changed
- Memoized connections to reduce unnecessary reconnections and the risk of exceeding server connection limits.
[6.0.0] - 2022-06-04
Changed
- Deprecated the 'status' command, in favour of the new 'stats' command.
- Added new 'stats' command, with optional JSON output.
- Resolved long running CI problem with feature specs failing due to too many active IMAP connections.
[6.0.0.rc2] - 2022-04-03
Changed
- Substituted the use of the Environment variable DOWNLOAD_BLOCK_SIZE
with an account-level setting:
multi_fetch_size
.
[6.0.0.rc1] - 2022-02-25
Changed
- Refactored serialization code to simplify successive modifications to metadata serialization.
[5.2.0] - 2022-02-24
Changed
- During backup and/or restore, when there is a clash in a folder's uid_validity between the local copy and the server's copy, the local folder is now renamed using '-' as a separator (previously it was '.'). This should reduce compatibility problems with certain IMAP servers.
[5.1.0] - 2022-02-12
Changed
- The restore command now takes a single argument: the email to restore. The previous (deprecated) invocation which restores all accounts by default, or those indicated by the --accounts parameter, is still supported.
[5.0.0] - 2022-02-06
Added
- A dedicated
migrate
command, distinct fromrestore
.
[4.0.8] - 2021-12-23
Added
- Experimental: Improved backup speed via multi fetches configurable via the Environment variable DOWNLOAD_BLOCK_SIZE. The default is still to fetch one message at a time.
Changed
- Setup menus
- add titles,
- indicate when data has been modified,
- add 'q' shortcut for quick menu exit,
- Debug output to hide passwords printed by the Net::IMAP gem.
[4.0.4] - 2021-12-21
Changed
- Configure logger to log synchronously so that output is in sync with the Mail gems debugging output.
[4.0.3] - 2021-12-17
Added
- Updated
utils export-to-thunderbird
to work on Windows and macOS.
Removed
- Explicit permissions management on Windows. The config file inherits the permissions set on the user's home directory.
[4.0.2] - 2021-12-13
Added
- Experimental
utils export-to-thunderbird
command that copies downloaded mailboxes to Thunderbird.
[4.0.1] - 2021-12-05
Added
utils ignore-history
command, useful for when you only want to backup future emails.
[4.0.0.rc2] - 2021-11-18
Removed
- GMail OAuth2 support. Tokens only last a few days, so this authentication method is not usable for automated backups.
[4.0.0.rc1] - 2021-11-17
Added
local
commands to list accounts, folders and emails and to view single emails.