maestral/CHANGELOG.md

985 lines
48 KiB
Markdown
Raw Normal View History

2020-05-06 17:54:47 +03:00
## v1.0.0
This is the first stable release of Maestral. There have been numerous bug fixes to error
handling and platform integration as well as a few bug fixes to syncing itself. There are
also a few outward facing changes: Pausing Maestral now cancels any pending sync jobs
instead of waiting for them to be completed. The macOS GUI switches from Qt to using a
native Cocoa interface and the macOS app bundle finally includes a full command line
interface.
2020-04-05 00:03:03 +03:00
2020-04-13 22:19:19 +03:00
#### Added:
- Command line tools are now bundled with the macOS app bundle and can be installed from
2020-04-14 13:16:22 +03:00
the settings window.
2020-04-15 19:20:15 +03:00
- Added support for config names with spaces.
2020-04-24 13:43:27 +03:00
- Switch from Qt to native Cocoa GUI on macOS.
2020-05-06 17:54:47 +03:00
- Expanded test suite to include sync tests.
2020-04-13 22:19:19 +03:00
2020-04-05 03:23:46 +03:00
#### Changed:
2020-05-06 17:54:47 +03:00
- Added '.dropbox' and '.dropbox.cache' to always excluded paths.
- Pausing sync now cancels all pending uploads and downloads.
- Quicker detection of connection problems.
2020-04-17 00:09:34 +03:00
- Faster sync of local deletions.
2020-05-06 17:54:47 +03:00
- The GUI now always launches a separate daemon process instead of an in-process daemon.
- Temporary files during a download are now stored inside the Dropbox directory at
'.maestral.cache'. This guarantees that temporary files always reside on the same
partition as the Dropbox folder itself.
- System tray icons are no longer installed in the platform theme in Linux. This is part of
a workaround for a Qt issue on Linux desktops which causes unnecessarily large pixmap
transfers over dBus when HiDPI support is enabled. Manually installed icons will still
be respected.
2020-04-18 00:11:51 +03:00
- Switch from implicit grant to PKCE OAuth2 flow.
2020-05-06 17:54:47 +03:00
- Added public API to link a Dropbox account: `Maestral.get_auth_url` and `Maestral.link`.
Frontends no longer need to import `maestral.oauth`.
- Moved all command line dialogs from the main API to the CLI module.
2020-04-21 13:38:57 +03:00
- Bumped watchdog requirement to >= 10.0.0 for more consistent error handling.
- Added explicit jeepny dependency for Linux. This is a dependency of keyring but we use
it by itself as well.
2020-05-06 17:54:47 +03:00
- Improved the reliability of ignoring file system events caused by Maestral itself.
2020-04-05 03:23:46 +03:00
2020-04-09 19:16:06 +03:00
#### Fixed:
2020-04-05 00:03:03 +03:00
2020-05-06 17:54:47 +03:00
- Fixes an issue where a dropped internet connection during startup could result in
2020-04-17 00:18:23 +03:00
continuous retries until the connection is finally established.
2020-04-21 18:14:29 +03:00
- Fixes an issue where downloads of newly included folders would not resume after being
2020-04-15 19:20:15 +03:00
interrupted.
2020-05-06 17:54:47 +03:00
- Fixes an issue which could lead to false conflicting copies of folders in some cases.
2020-04-24 13:43:27 +03:00
- Fixes the handling of inofify limit and permission errors when starting a file system
watch.
2020-04-06 14:30:43 +03:00
- Fixes handling of errors from too long file names.
- Handle errors due to file names which are not allowed on the local file system.
2020-04-06 14:30:43 +03:00
- Fixes handling of some uncaught insufficient disk space errors.
2020-04-24 13:43:27 +03:00
- Fixes incorrect autostart entries on macOS.
2020-04-22 15:52:02 +03:00
- Fixes a crash when running Maestral as a systemd service without python-systemd
installed.
2020-04-24 13:43:27 +03:00
- Fixes an issue when checking for updates if the list of releases from Github includes
2020-04-22 15:52:02 +03:00
dev releases.
2020-04-13 22:19:19 +03:00
- Fixes an issue where only remote changes would be listed in 'Recent changes' in the GUI.
2020-04-24 13:43:27 +03:00
- Fixes the alignment of comboboxes in the Qt GUI on macOS.
2020-05-06 17:54:47 +03:00
- Fixes a crash on macOS when no notification center is available, for instance in a
headless session or on Github test runners.
- Fixes a crash on Linux when the command line tool `notify-send` is not available.
- Fixes an issue where sync errors would have incomplete path information.
- Resolves an issue where indexing a large Dropbox folder with > 100,000 items would
continuously timeout and restart in some cases.
2020-04-05 03:23:46 +03:00
2020-04-05 22:44:59 +03:00
#### Removed:
2020-04-14 13:16:22 +03:00
- Removed migration code for versions < 0.6.3. If you want to update to v1.0.0, please
2020-04-24 13:43:27 +03:00
make sure to upgrade to at least version 0.6.3 first or unlink your Dropbox before
updating to v1.0.0.
2020-04-05 22:44:59 +03:00
- Removed u-msgpack dependency.
2020-04-03 17:37:34 +03:00
## v0.6.4
2020-03-22 00:17:50 +03:00
2020-04-03 17:03:40 +03:00
The release provides bug fixes and minor improvements to the command line and graphical
user interfaces. Importantly, it fixes an issue where some files could accidentally become
un-indexed, resulting in incorrect conflict resolution.
2020-03-24 20:00:46 +03:00
#### Added:
- Config option to set the keyring backend. This defaults to 'automatic' but can be used
2020-04-03 03:20:03 +03:00
to specify a preferred backend such as `keyrings.backends.kwallet.DBusKeyring`. You will
need to migrate your credentials manually to the new keyring if you change this setting.
2020-04-02 18:03:05 +03:00
- Added a `--verbose` flag to `maestral start` and `maestral restart` commands to print
log output to stdout.
2020-04-03 03:20:03 +03:00
- Added an API documentation for developers, available on
[Read the Docs](https://maestral-dropbox.readthedocs.io).
2020-03-25 19:47:02 +03:00
2020-03-24 20:00:46 +03:00
#### Changed:
2020-03-28 17:46:14 +03:00
- During initial CLI setup, give the option to sync the entire Dropbox without paginating
through individual folders to exclude.
- Limit the number of notifications to keep in the notification center. This will only
work for some desktop environments.
2020-03-24 20:00:46 +03:00
- Fall back to plain text credential storage if neither Gnome Keyring, KWallet or any
2020-03-30 17:23:09 +03:00
other storage implementing the Secret Service API can be found. A warning is shown when
plain text storage is used.
2020-03-31 19:13:34 +03:00
- Settings and setup windows are no longer always kept on top in Linux.
2020-04-02 23:47:16 +03:00
- `maestral start --foreground` no longer prints log messages to stdout by default.
2020-03-24 20:00:46 +03:00
2020-03-22 00:17:50 +03:00
#### Fixed:
- Properly handle errors when moving files, for instance for sync conflicts.
2020-03-28 17:46:14 +03:00
- Fixes an issue where some files could accidentally become un-indexed, resulting in
incorrect conflict resolution.
2020-04-02 23:47:16 +03:00
- Fixes an issue with macOS app bundles where the migration of configuration files was
2020-03-31 15:52:37 +03:00
omitted after an update. This would result in a failure to start the daemon.
2020-04-03 17:37:34 +03:00
- Correctly specify the required version of `six` to work around an upstream issue in
Dropbox.
- Fixes an issue where stdout would end up in the systemd journal in addition to the
structured log messages.
- Fixed a bug where XDG_DATA_HOME was ignored.
2020-03-22 00:17:50 +03:00
2020-03-21 18:43:23 +03:00
## v0.6.3
2020-03-21 01:30:25 +03:00
2020-03-21 19:31:18 +03:00
This release fixes a critical error introduced when updating to v9.5 of the Dropbox Python
SDK which prevented any remote changes from being downloaded.
2020-03-21 01:30:25 +03:00
2020-03-25 19:45:38 +03:00
#### Changed:
2020-03-21 02:58:45 +03:00
- Show release notes from all releases since last update in update dialog.
2020-03-21 18:09:50 +03:00
- Use our own method instead of the `psuitl` package to determine the CPU usage. This
2020-03-25 19:45:38 +03:00
eliminates the `psuitl` dependency which can be difficult to install on some systems.
2020-03-21 01:30:25 +03:00
2020-03-25 19:45:38 +03:00
#### Fixed:
2020-03-21 01:30:25 +03:00
2020-03-21 19:31:18 +03:00
- Fixes an issue with downloads failing because Dropbox Metadata is longer hashable from
2020-03-21 18:42:49 +03:00
v9.5 of the Dropbox Python SDK.
2020-03-21 19:31:18 +03:00
- Fixed a StopIteration exception on startup when the location of the maestral CLI script
cannot be found in the package metadata.
2020-03-21 18:42:49 +03:00
- Fixes an error when restarting the daemon with the "foreground" option.
2020-03-21 19:31:18 +03:00
- Fixed incorrect button labels in the setup dialog when choosing whether to replace or
2020-03-21 18:42:49 +03:00
keep an old Dropbox folder. The labels "Replace" and "Cancel" where switched.
2020-03-21 19:31:18 +03:00
- Fixes a bug where the option "Unlink & Quit" in the "Revoked Access" error dialog would
unlink but not quit Maestral.
2020-03-21 01:30:25 +03:00
2020-03-19 03:56:58 +03:00
## v0.6.2
2020-02-29 22:31:38 +03:00
2020-03-19 18:26:36 +03:00
This release enables excluding individual files from syncing and fixes an issue which led
to continuously retrying failed downloads. It also contains significant performance
improvements to indexing, reduces the CPU usage when syncing a large number of files and
introduces weekly re-indexing.
This release also introduces support for an ".mignore" file with the same syntax as
[gitignore](https://git-scm.com/docs/gitignore). This feature is considered 'alpha' and
may change in the future. Feedback is welcome.
2020-02-29 22:31:38 +03:00
#### Added:
2020-03-19 03:55:14 +03:00
- Support excluding files from sync. This uses the same 'selective sync' interface as
2020-03-15 00:57:04 +03:00
excluding folders. Excluded files will be removed from the local Dropbox folder.
- Introduces an ".mignore" file to specify files that Maestral should ignore. The
2020-03-01 18:38:24 +03:00
".mignore" file must be saved in the local Dropbox folder. When excluding files or
folders with selective sync (`maestral exclude`), they will be removed from the local
2020-03-16 16:04:53 +03:00
folder and kept in the cloud only. The ".mignore" file enables the reverse: files or
2020-03-15 00:57:04 +03:00
folders which exist locally will not be uploaded to Dropbox. It uses the same syntax
2020-03-01 18:38:24 +03:00
as [gitignore files](https://git-scm.com/docs/gitignore) and, similar to gitignore,
2020-03-16 16:04:53 +03:00
files which are already tracked by Maestral will not be affected. More details are given
in the [Wiki](https://github.com/SamSchott/maestral-dropbox/wiki/mignore).
- Added a config option "max_cpu_percent" to adjust the target maximum CPU usage per CPU
core. This defaults to 20%, i.e., 80% total for a quad core CPU. Maestral will aim to
remain below that percentage but this is not guaranteed.
2020-03-01 18:38:24 +03:00
2020-02-29 22:31:38 +03:00
#### Changed:
- Replaced the `excluded_files` and `excluded_folders` settings from the config file with
2020-03-18 01:58:46 +03:00
a unified `excluded_items` setting. Entries from `excluded_folders` will be migrated to
the `excluded_items` setting.
2020-03-16 16:04:53 +03:00
- Renamed methods which exclude / include folders to `exclude_item` etc.
2020-03-05 03:19:11 +03:00
- Speed up creation of local folders.
2020-03-16 16:04:53 +03:00
- When trying to create a file or folder with the same path as an item excluded by
2020-03-08 14:51:45 +03:00
selective sync, the new item is now renamed by appending "selective sync conflict"
instead of raising a sync issue. This is closer the behaviour of the official client.
2020-03-19 03:55:14 +03:00
- Significant performance improvements to indexing and file event processing. Indexing a
remote Dropbox with 20,000 to 30,000 files and comparing it a local folder now takes
2020-03-14 18:41:34 +03:00
~ 5 min, depending on on the average file size.
2020-03-13 01:48:34 +03:00
- Introduced periodic reindexing every week. This has been made possible by the above
performance improvements.
2020-02-29 22:31:38 +03:00
#### Fixed:
2020-03-01 18:16:09 +03:00
- Don't immediately retry when a download fails. Instead, save failed downloads and retry
only on pause / resume or restart.
2020-03-08 14:51:45 +03:00
- Fixes missing cursor and resulting unexpected `ValidationError` during sync startup.
2020-02-29 22:31:38 +03:00
- Wait until all sync activity has stopped before moving the Dropbox folder. This avoids
errors when trying to convert local to dropbox paths and vice versa during the move.
2020-03-05 03:19:11 +03:00
- Fixes an issue which would prevent some conflicting copies created by Dropbox from being
downloaded.
2020-03-11 13:50:42 +03:00
- Correctly handle when a local item is renamed to an always excluded file name such as
2020-03-05 03:19:11 +03:00
".DS_STORE": the item is now deleted from Dropbox.
- Fixes an issue where sharing an existing folder from the Dropbox website would result in
the folder being deleted locally. This is because Dropbox actually removes the shared
folder from the user's Dropbox and then re-mounts it as a shared drive / file system. We
handle this correctly now by leaving the local folder alone or deleting and
re-downloading it, depending on the time elapsed between removal and re-mounting.
2020-03-08 14:51:45 +03:00
- Improves conflict resolution when a folder has been been replaced with a file or vice
versa and both the local and remote item have un-synced changes.
2020-03-10 04:51:52 +03:00
- Fixes an issue where `maestral stop` would block until all pending syncs have completed.
2020-03-16 16:04:53 +03:00
This could potentially take a *very* long time for large downloads. Instead, any
interrupted downloads will be restarted on next launch.
2020-02-29 22:31:38 +03:00
#### Removed:
- Removed the `excluded_files` and `excluded_folders` settings from the config file.
2020-02-28 00:36:58 +03:00
## v0.6.1
2020-02-19 14:54:07 +03:00
This release improves desktop notifications: Notifications will now only appear for remote
file changes and you can chose between different notification levels (CLI only) and snooze
notifications temporarily. It also reintroduces the `maestral autostart` command to start
the sync daemon on login (requires systemd on Linux). This works independently of the GUI
option "Start on login".
2020-02-27 22:17:37 +03:00
There have also been significant changes in package structure: the GUI has been split
off into a separate package `maestral-qt` which will be installed with the gui extra
`pip3 install -U maestral[gui]` or directly with `pip3 install -U maestral-qt`. A native
Cocoa GUI (`maestral-cocoa`) for macOS is currently in testing and will likely be released
with the next update.
2020-02-19 14:54:07 +03:00
Other changes include improved error handling, cleaned up config files and some tweaks to
CLI commands. As always, there are several bug fixes. Thank you for all your feedback!
2020-02-06 23:18:28 +03:00
#### Added:
2020-02-24 23:07:42 +03:00
- New CLI command `maestral autostart` to start the daemon on login. This requires systemd
2020-02-19 14:54:07 +03:00
on Linux. The "Start on login" option of the GUI remains independent and the GUI will
attach to an existing daemon if it finds one.
2020-02-11 01:34:55 +03:00
- Added desktop notifications for errors: Serious errors such as revoked Dropbox access,
2020-02-24 23:07:42 +03:00
deleted Dropbox folder, etc, were previously only shown in the GUI as an alert window
2020-02-15 04:15:43 +03:00
or printed as warnings when invoking a CLI command.
2020-02-06 23:18:28 +03:00
- Support for different levels of desktop notifications (CLI only). You can now select
between FILECHANGE, SYNCISSUE, ERROR and NONE with `maestral notify LEVEL`.
- Added an option to snooze notifications. In the CLI, use `maestral notify snooze N` to
2020-02-09 17:54:34 +03:00
snooze notifications for N minutes. In the GUI, use the "Snooze Notifications" menu.
2020-02-06 23:18:28 +03:00
- Support using an existing directory when setting up Maestral through the CLI. This was
2020-02-09 17:54:34 +03:00
previously only supported in the GUI. Files and folders in the existing directory will
be merged with your Dropbox.
2020-02-07 00:24:58 +03:00
- The CLI command `maestral restart` now supports restarting Maestral into the current
2020-02-15 04:15:43 +03:00
process instead of spawning a new process. This is enabled by passing the `--foreground`
2020-02-19 14:54:07 +03:00
(`-f`) option.
- Added a native Cocoa GUI for macOS. This removes the PyQt5 dependency for macOS and
reduces the size of the bundled app from 50 MB to 15 MB. It also eliminates a few
inconsistencies in GUI appearance. Especially the sync issues window looks a lot better
(hopefully you won't see it too often).
2020-02-06 23:18:28 +03:00
#### Changed:
2020-02-11 00:56:59 +03:00
- Split off GUI into separate python packages (`maestral-qt`, `maestral-cocoa`).
2020-02-11 01:34:55 +03:00
- Notify only for remote changes and not for those which originated locally. This
2020-02-15 04:15:43 +03:00
should significantly reduce the number of unwanted notifications.
2020-02-27 22:17:37 +03:00
- Renamed `maestral notifications` to `maestral notify` for brevity.
2020-02-19 14:54:07 +03:00
- Renamed the `set-dir` command to `move-dir` to emphasize that it moves the local Dropbox
2020-02-09 17:54:34 +03:00
folder to a new location.
2020-02-24 23:07:42 +03:00
- Configurations are now tied to a Dropbox account:
2020-03-01 18:38:24 +03:00
- New configurations are now created on-demand when calling `maestral gui` or
2020-02-27 22:17:37 +03:00
`maestral start` with a new configuration name.
- A configuration is automatically removed when unlinking a Dropbox account.
- All configurations can be listed together with the account emails with
`maestral configs`. This replaces `maestral config list`.
2020-02-24 23:07:42 +03:00
- For app bundles on macOS, you can now pass a config option `--config-name` to the
2020-02-27 22:17:37 +03:00
bundle's executable ("Maestral.app/Contents/MacOS/main"). It will then use the specified
configuration if it already exists or to create a new one.
- The GUI no longer restarts after completing the setup dialog.
2020-02-15 04:15:43 +03:00
- Removed sync and application state info from the config file. Sync and application
states are now saved separately in '~/.local/share/maestral/CONFIG_NAME.state' on Linux
and '~/Library/Application Support/maestral/CONFIG_NAME.state' on macOS.
2020-02-19 14:54:07 +03:00
- Use atomic save to prevent corruption of the sync index if Maestral crashes or is killed
2020-02-15 04:15:43 +03:00
during a save.
- Moved the sync index to the same folder as the application state.
2020-02-21 20:18:38 +03:00
- Improved conflict detection and resolution when changing files which are currently being
uploaded or downloaded.
2020-02-15 04:15:43 +03:00
2020-01-31 23:19:32 +03:00
#### Fixed:
2020-02-24 23:07:42 +03:00
- Fixes an issue where local changes while maestral was not running could be overwritten
2020-02-28 00:36:58 +03:00
by remote changes instead of resulting in a conflicting copy.
2020-02-15 04:15:43 +03:00
- Fixes an issue where local file events could be ignored while a download is in progress.
2020-03-01 18:38:24 +03:00
- Fixes an issue where a new local file could be incorrectly deleted if it was created
2020-02-28 00:36:58 +03:00
just after a remote item at the same path was deleted.
2020-02-27 22:17:37 +03:00
- Fixes an issue where `maestral stop` and `maestral restart` would not interrupt running
sync jobs but instead wait for them to be completed. Now, aborted jobs will be resumed
when starting Maestral again.
2020-02-28 00:36:58 +03:00
- Correctly handle when a folder is replaced by a file and vice versa.
- Correctly handle additional error types: internal Dropbox server error, insufficient
space on local drive, file name too long for local file system and out-of-memory error.
2020-02-28 00:36:58 +03:00
- Automatically resume upload in case of dropped packages instead of raising a sync issue.
2020-02-24 23:07:42 +03:00
- Set the log level for the systemd journal according to user settings instead of always
2020-02-15 04:15:43 +03:00
using logging.DEBUG.
- Run checks for Dropbox folder location and link status when invoking `maestral restart`.
2020-02-09 17:54:34 +03:00
- Notify the user through the GUI when moving the Dropbox directory fails instead of
silently keeping the old directory.
2020-02-28 00:36:58 +03:00
- Fixes an issue where the environment variable XDG_DATA_DIR would not be respected in
Linux.
2020-02-24 23:07:42 +03:00
2020-02-14 00:42:16 +03:00
#### Removed:
- Removed "-a" option from `maestral ls`. List all entries by default, even if they start
with a period.
2020-02-24 23:07:42 +03:00
- Removed the `maestral config` command group. Configurations are now created and deleted
on-demand and can be listed with `maestral configs`.
2020-01-30 02:02:29 +03:00
## v0.5.2
2019-12-20 19:39:23 +03:00
2020-01-08 00:16:52 +03:00
#### Added:
2020-01-08 16:56:47 +03:00
- Added automatic crash and error reporting with [bugsnag](https://www.bugsnag.com). This
2020-01-30 00:30:48 +03:00
is *disabled* by default and can be enabled in the Settings pane or with the command
`maestral analytics -Y`. The information sent with the bug report contains a traceback,
the Python version, basic platform information (e.g, 'Darwin-19.2.0-x86_64-i386-64bit')
and potentially the version of PyQt5 and the user's desktop environment. No personal
information will be shared.
2020-01-08 00:16:52 +03:00
2020-01-05 22:43:03 +03:00
#### Changed:
2020-01-30 00:30:48 +03:00
- Improved the code which handles multiple configurations: Explicitly pass the config name
to classes instead of keeping it as a global variable.
2020-01-30 00:59:35 +03:00
- Improved starting of the daemon: ensure that the right python executable is used.
- Order of commands returned by `maestral --help` by importance instead of alphabetically.
2020-01-30 00:30:48 +03:00
- Sync errors will now be listed by `maestral status` if present.
- Live updates to the Settings window when settings are changed from the command line.
2019-12-20 19:39:23 +03:00
#### Fixed:
2020-01-28 22:50:31 +03:00
- Fixed an issue on macOS where some directory deletions could be ignored in case of rapid
successive deletions.
2019-12-20 19:39:23 +03:00
- Fixed an unexpected exception when attempting to create a directory that already exists.
Do not rely on the `exists_ok` parameter in `os.makedirs` but catch `FileExistsError`
explicitly (see https://bugs.python.org/issue13498).
2020-01-06 20:42:23 +03:00
- Fixed an `AttributeError` when a local folder is replaced by file: the Dropbox metadata
2020-01-08 00:16:52 +03:00
of the folder will not have a content hash. This mostly occurs when modifying a folder
2020-01-25 23:48:38 +03:00
structure programmatically, for instance with git.
2020-01-06 20:42:23 +03:00
- Fixed an `AttributeError` when a remote file has been replaced by a folder before its
changes could be downloaded: the Dropbox metadata of the folder will not have a content
hash.
2020-01-08 16:56:47 +03:00
- Fixed an bug introduced in v0.5.0 which would cause rebuilding the index to block
indefinitely.
2020-01-08 17:48:33 +03:00
- Fixed a crash of the GUI when closing the settings window shortly after closing the
"Chose folders to sync..." dialog. This was caused by QThreads being destroyed while
the threads were still running.
2020-01-17 00:47:04 +03:00
- Fixed an issue where the local revision number of a file could be set to 'folder',
resulting in an exception from the Dropbox API.
2020-01-20 20:39:03 +03:00
- Fixed a bug when the "relink dialog" (shown when Maestral's Dropbox access has expired)
might use the wrong Dropbox account when syncing multiple accounts.
2020-01-25 23:48:38 +03:00
- Fixed an issue with imports in Pyro5 5.7 which prevented the daemon from starting.
2020-01-08 16:56:47 +03:00
2020-01-08 00:16:52 +03:00
#### Removed:
2020-01-30 00:30:48 +03:00
- Removed the command `maestral errors` from the CLI.
2019-12-20 19:39:23 +03:00
2019-12-19 17:38:25 +03:00
## v0.5.0
2019-12-06 14:00:20 +03:00
2019-12-11 17:17:15 +03:00
This release improves the sync reliability in case of rapid successive changes to the
2019-12-17 19:25:58 +03:00
local Dropbox folder. It also improves error handling and includes other bug fixes. This
may be considered the first release candidate for a stable v1.0.0.
2019-12-11 19:17:42 +03:00
2019-12-13 02:56:22 +03:00
#### Added:
2019-12-11 19:17:42 +03:00
2019-12-17 19:25:58 +03:00
- Show a small bell on top of system tray icon in case of sync issues.
2019-12-12 21:42:52 +03:00
- Notify the user when the local Dropbox folder contains too many items to watch and
recommend increasing the maximum number of inotify watches (Linux only).
- Notify the user when an upload fails because a file exceeds the size limit of 350 GB.
- Notify the user when an upload fails due to dropped network packages.
2019-12-19 17:38:25 +03:00
- Adds a command line option `maestral link -r` to relink to an existing account without
2019-12-19 14:49:58 +03:00
resetting the sync state. This is the equivalent of the GUI 'relink dialog'.
2019-12-13 02:56:22 +03:00
#### Changed:
2019-12-13 23:03:11 +03:00
2019-12-19 17:38:25 +03:00
- Refines some error messages.
- Improves error handling in CLI: avoid printing full Python tracebacks to the console.
2019-12-19 14:49:58 +03:00
Print concise and actionable error messages instead if possible.
2019-12-19 17:38:25 +03:00
- Improves formatting of `maestral ls` output.
- Improves status notifications for large uploads: dynamically adapt the unit to show up
2019-12-12 21:42:52 +03:00
to four significant digits (e.g., "16MB/1.6GB" instead of "0/1.6GB").
2020-04-05 22:44:59 +03:00
- Reduces memory footprint of macOS app by stripping doc strings (at least 5MB in dropbox
2019-12-17 14:19:01 +03:00
package only).
2019-12-11 17:17:15 +03:00
2019-12-09 18:52:24 +03:00
#### Fixed:
2019-12-06 14:00:20 +03:00
2019-12-19 17:38:25 +03:00
- Fixes multiple sync issues and corner cases due to rapid and successive file changes:
The algorithm which combines successive changes of a local file to a single file event
(created / deleted / modified / moved) has been simplified and improved.
- Fixes an issue which could cause the watchdog thread to crash silently on case-sensitive
2019-12-11 17:17:15 +03:00
file systems when saving changes to a file.
2019-12-19 17:38:25 +03:00
- Removes sip import because it may fail depending on how PyQt was installed.
2019-12-11 17:17:15 +03:00
- Fixed an issue where user notifications would not appear for certain implementations of
2019-12-09 18:52:24 +03:00
'notify-send'.
2019-12-09 21:57:06 +03:00
- Fixes an error when setting the log level from the CLI.
2019-12-13 23:03:11 +03:00
- Fixes an error when relinking Maestral through the GUI after its Dropbox access has been
revoked.
2019-12-10 16:32:11 +03:00
2019-11-29 21:16:27 +03:00
## v0.4.4
2019-11-04 14:16:30 +03:00
2019-11-24 20:21:49 +03:00
This updates focuses on bug fixes and performance improvements. Notably, it reduces the
2019-11-29 21:16:27 +03:00
memory usage of the GUI by ~ 30MB. If you are upgrading from v0.2.4 or earlier, please
perform an incremental update to v0.4.3 first (see Removed section).
2019-11-14 18:25:33 +03:00
2019-11-04 14:16:30 +03:00
#### Changed:
- Show a progress dialog while checking for updates when requested by the user.
2019-11-12 22:36:59 +03:00
- Show an error message when the GUI cannot connect to or start a sync daemon.
2019-11-24 20:21:49 +03:00
- Reduces the memory footprint of the GUI by ~ 30 MB by avoiding Dropbox API imports and
2020-04-05 22:44:59 +03:00
deleting QtWidgets when they are not visible.
2019-11-24 20:21:49 +03:00
- Changing the log level (e.g., `maestral log level DEBUG`) no longer requires a restart
of the maestral daemon to become effective.
2019-11-15 00:11:11 +03:00
- `maestral set-dir` now takes the new path as an argument: `maestral set-dir PATH`. If
not given, the user will be prompted to input a path or use the default.
2019-11-29 21:16:27 +03:00
- Migrated from Pyro4 to Pyro5 for communication with sync daemon.
2019-11-04 14:16:30 +03:00
2019-11-09 02:19:25 +03:00
#### Fixed:
2019-11-09 02:54:33 +03:00
- Fixes an unhandled error when trying to upload changes to a file which is not currently
2019-11-09 02:19:25 +03:00
indexed by Maestral.
- Fixes an unhandled error when attempting to calculate the content hash of a file which
has been deleted locally. This can occur after Maestral has been notified of remote
2019-11-14 18:25:33 +03:00
changes to a file which is deleted locally before comparing file contents.
- Fixes a bug which could result in multiple false "conflicting copies" of a file when the
2019-11-10 00:30:42 +03:00
user modifies the file while it is being uploaded.
- Fixes a regression bug which would prevent the creation and selection of new configs for
different Dropbox accounts.
- Fixes a bug that would prevent Maestral from properly shutting down a sync daemon which
was started from the GUI. This was a result of the daemon's sync threads not exiting as
2019-11-14 18:25:33 +03:00
long as a parent process from the same process group is still alive (the GUI in our
case). We prevent this by using "double-fork" magic to properly orphan the daemon
process so that init will perform its cleanup. See Stevens' "Advanced Programming in the
UNIX Environment" for details (ISBN 0201563177).
2019-11-14 19:44:18 +03:00
- Fixes an issue where the application launcher which is used to start Maestral on login
in Linux may be untrusted.
2019-11-15 00:11:11 +03:00
- Fixes an issue where `maestral set-dir` would fail if the new directory is the same as
the old directory.
2019-11-24 20:21:49 +03:00
2019-11-14 18:25:33 +03:00
#### Removed:
- Removed code to migrate config files and sync indices from Maestral versions prior to
v0.2.5.
- Removed code to migrate authentication keys to the system keyring when upgrading from
v0.1.2 or earlier.
2019-11-04 14:16:30 +03:00
2019-11-02 14:31:46 +03:00
## v0.4.3
2019-10-25 14:54:50 +03:00
#### Fixed:
- Fixes a bug which would prevent periodic update checks from running.
2019-10-29 14:32:23 +03:00
- Fixes an issue where the system tray icon would not be displayed on Qt 5.13.1 with
2019-10-26 15:38:00 +03:00
enabled HighDpi support.
2019-10-29 14:32:23 +03:00
- Fixes an issue which would prevent system tray icons from loading on Gnome 3.
2019-11-02 14:36:06 +03:00
- Fixes and issue which would prevent macOS binaries from running due to the team ID
missing in the a code-signing certificate. Note that, even though the macOS binary is
code-signed, the certificate is not from Apple's Developer Program. Therefore, to run
the app, you will have to "right-lick -> Open".
2019-10-29 14:32:23 +03:00
#### Changed:
- Tweaked system tray icon design.
2019-11-01 21:10:07 +03:00
- Use NSUserNotificationCenter when running from Python outside of an app bundle.
2019-10-26 15:38:00 +03:00
#### Removed:
2019-11-02 14:51:47 +03:00
- Removed automatic detection of Gnome screen scaling factors because it caused problems on
a few desktop environments. Set the environment variable `QT_SCREEN_SCALE_FACTORS`
instead to enable it manually if required.
2019-10-25 14:54:50 +03:00
2019-10-24 17:03:51 +03:00
## v0.4.2
2019-10-03 20:02:02 +03:00
2019-10-07 22:22:12 +03:00
#### Added:
2019-10-23 23:18:29 +03:00
- Added a command `maestral activity` which gives a live view of all items queued for
syncing or currently being synced.
2019-10-03 20:02:02 +03:00
#### Fixed:
2019-10-06 22:18:45 +03:00
- Fixes crash of the sync thread when attempting to download a file from Dropbox which has
2019-10-24 17:03:51 +03:00
been deleted after it has been queued for download but before the actual download attempt.
2019-10-06 22:18:45 +03:00
- Fixes crash of the sync thread when attempting to upload a file to Dropbox which has
2019-10-24 17:03:51 +03:00
been deleted after it has been queued for upload but before the actual upload attempt.
2019-10-04 14:57:32 +03:00
- Fixes a bug where the revision number of a file could be incorrectly set to "folder".
2019-10-06 22:18:45 +03:00
- Fixes a crash of the sync thread while indexing local changes (after a restart) if an
2019-10-24 17:03:51 +03:00
indexed item has been deleted before we could check if it is a file or a folder.
- Fixes a bug where newly downloaded files could be immediately re-uploaded in some cases.
2019-10-23 19:16:46 +03:00
- Fixes a crash on startup when started as systemd service with watchdog.
2019-10-03 20:02:02 +03:00
2019-10-03 21:08:06 +03:00
## v0.4.1
2019-09-16 13:57:01 +03:00
2019-09-28 17:55:38 +03:00
This release focuses on bug fixes and performance improvements. Notable changes are:
- You can now rebuild Maestral's index from the command line with `maestral rebuild-index`.
2019-09-29 22:57:08 +03:00
- Communication between the sync daemon and frontend (GUI or CLI) is faster and more secure.
2019-10-02 12:41:21 +03:00
- Improved system tray notifications.
2019-09-28 17:55:38 +03:00
Here is the list of all changes:
#### Added:
2019-09-22 13:38:54 +03:00
- Added `maestral rebuild-index` command to CLI.
2019-10-02 12:51:09 +03:00
- Added support for systemd software watchdog (see #55).
2019-09-16 13:57:01 +03:00
2019-09-25 01:56:18 +03:00
#### Changed:
2019-09-29 15:19:31 +03:00
- Renamed command `maestral config new` to `maestral config add`.
- Renamed command `maestral config delete` to `maestral config remove`.
2019-10-02 12:51:09 +03:00
- Improved system tray notifications:
- Display the name of the user who changed a file
- Added app-icon and and -name to Linux notifications.
- Migrated macOS notifications from `NSUserNotificationCenter` (deprecated) to
`UNUserNotificatioCenter` for macOS Mojave and higher.
- Improved appearance of unlink dialog: show spinning progress indicator and perform
2019-09-28 17:55:38 +03:00
unlink in the background.
- Show menu entry "No recent files" when there are no recently changed files to display.
- Use Unix domain sockets instead of TCP/IP sockets for communication with daemon. This
means that communication is lighter, faster and more secure (other users on the same PC
can no longer connect to your sync daemon).
- Use NSTemporaryDirectory on macOS as runtime dir.
2019-09-29 22:57:08 +03:00
- Simplified code for the initial sync.
2019-09-25 01:56:18 +03:00
2019-09-16 13:57:01 +03:00
#### Fixed:
2019-09-28 17:55:38 +03:00
- Fixes a bug where the CLI setup dialog could fail when choosing to replace an existing
2019-10-02 12:51:09 +03:00
Dropbox folder.
2019-09-28 17:55:38 +03:00
- Fixes a bug which would cause `maestral start` to hang indefinitely if the daemon is not
2019-10-02 12:51:09 +03:00
created successfully (see #57).
2019-09-28 17:55:38 +03:00
- Fixes a bug which would cause `maestral unlink` to fail when the Maestral daemon is
still running.
- Fixes a bug where the Maestral GUI would show a paused icon during the initial sync
after setup.
- Fixes a bug where the menu bar item "Pause Syncing" would not change to "Resume Syncing"
when pausing sync through the CLI via `maestral pause` (and vice versa).
2019-10-02 12:51:09 +03:00
- Catch unexpected exceptions in sync threads and display to user instead of crashing.
- Do not upload changes to an excluded folder but raise a sync issue instead.
2019-09-27 00:22:45 +03:00
- Fixes wrong color of system tray / menu bar icon on macOS when clicked in light-mode.
- Fixes a regression bug from v0.4.0 which caused the creation of new configs for separate
2019-09-23 00:06:48 +03:00
Dropbox accounts to fail silently.
2019-09-28 17:55:38 +03:00
- Fixes a bug which could result in a missing sync cursor when running the Maestral after
the initial setup. This would come from parallel access to the config files from a
thread spawned by the setup dialog and the Maestral daemon itself. We now make sure that
the setup dialog leaves no threads behind after exiting.
2019-09-27 00:22:45 +03:00
- Fixes a bug which could cause false sync errors when adding a nested folder structure to
2019-09-25 01:56:18 +03:00
the local Dropbox folder.
2019-09-27 00:22:45 +03:00
- Fixes bug in converting Dropbox `DeleteError`s due to an invalid path to
2019-09-25 02:23:44 +03:00
`MaestralApiError`s.
2019-09-27 12:28:39 +03:00
- Fixes a bug which would prevent Maestral from detecting local changes to files that are
part of a batch which is currently being downloaded.
2019-09-27 15:35:56 +03:00
- Fixes a bug where the user may be asked to create a new keyring in a non-default wallet
2019-10-02 12:51:09 +03:00
if multiple wallets are available on first start (see #56).
2019-10-01 17:51:23 +03:00
See https://github.com/jaraco/keyring/issues/391 for the current behaviour of Python
2019-09-27 15:35:56 +03:00
keyring.
2019-09-29 15:19:31 +03:00
- Fixes a bug which could cause the Maestral daemon to be started with a different PATH
2019-10-02 12:51:09 +03:00
than the invoking command (see #57).
2019-10-01 17:51:23 +03:00
- Fixes a bug where changes to a file which is not synced locally would trigger "file
added" instead of "file modified" notifications.
2019-09-16 13:57:01 +03:00
2019-10-03 21:08:06 +03:00
## v0.4.0
2019-08-21 20:19:51 +03:00
2019-09-11 15:02:20 +03:00
Main changes are:
- Support the exclusion of subfolders.
- Check and notify if updates are available.
- Decoupled GUI and sync daemon.
2019-09-13 17:55:24 +03:00
- Cleaned up the command line interface. Use `maestral start` instead of
`maestral daemon start` and `maestral start --foreground` instead of `maestral sync`.
2019-09-11 15:02:20 +03:00
- Bug fixes and performance improvements.
Details are given below.
#### Added:
2019-08-21 20:19:51 +03:00
2019-09-15 16:36:34 +03:00
- Method to get the sync status of individual files or folders. This is also accessible
2019-09-15 16:38:11 +03:00
through the CLI via `maestral file-status LOCAL_PATH`. In the future, this could be used
2019-09-15 16:36:34 +03:00
by file manager plugins to overlay the sync status of files.
- Support to exclude subfolders in the main API, CLI and GUI.
- Added a command group `maestral excluded` to view and manage excluded folders. Available
commands are `add`, `remove` and `show`.
2019-09-10 23:34:02 +03:00
- For case-sensitive file systems: Automatically rename created items which have the same
name as an existing item, but with a different case. This avoids possible issues on
case-sensitive file systems since Dropbox itself is not case-sensitive.
2019-09-15 16:36:34 +03:00
- GUI notifications when a new version of Maestral is available, configurable to daily,
weekly, monthly or never.
- A new "Check for updates..." menu entry.
2019-09-13 17:55:24 +03:00
- Better integration with systemd: When the daemon is started from systemd, status updates
and ready / stopping signals are sent to systemd and the log is sent to the journal
2019-09-15 14:56:07 +03:00
instead of stdout. This requires the installation of the systemd extra as
`pip3 install -U maestral[systemd]`, which will install `sdnotify` and `systemd-python`.
The latter may require you install additional packages through your system's package
manager first. See [here](https://github.com/systemd/python-systemd) for installation
instructions.
2019-08-21 20:19:51 +03:00
2019-09-11 15:02:20 +03:00
#### Changed:
2019-08-21 20:19:51 +03:00
- Separated daemon and CLI code into different modules.
2019-09-10 23:34:02 +03:00
- Simplified CLI:
- Moved commands from `maestral daemon` to main command group, i.e.,
`maestral daemon start` is now `maestral start`.
- Removed `maestral sync`. Use `maestral start --foreground` instead.
2019-09-11 15:02:20 +03:00
- GUI now uses only the main Maestral API which is exposed over sockets.
- Changed returned values of the Maestral API to Python types only for better
serialisation.
- GUI now starts its own daemon on demand or attaches to an existing one. This daemon will
run in a separate process, unless started from a macOS App bundle.
- Improved startup time for large folders: Moved indexing of local files after a restart
to the `upload_thread`.
- Sync engine moved to a submodule.
- Setup dialog no longer returns a Maestral instance on success but just ``True``. It
is up to the GUI to create or attach to a Maestral daemon.
2019-08-21 20:19:51 +03:00
2019-09-11 15:02:20 +03:00
#### Fixed:
2019-08-21 20:19:51 +03:00
2019-09-11 15:02:20 +03:00
- Fixed an incorrect error being raised for a corrupted rev file, which could lead to a
2019-08-21 20:19:51 +03:00
crash or misleading error message.
2019-09-15 16:38:11 +03:00
- Fixed a bug which would cause a renamed file with a previously invalid name not to sync
2019-09-11 15:02:20 +03:00
to Dropbox.
2019-09-10 23:34:02 +03:00
- Fixed a bug in the GUI which would cause clicking on a recently changed file to reveal
the wrong item in the file manager.
- Fixed a bug which would cause the sync thread to crash when attempting to follow a
broken symlink (#50). Now, the error will be reported to the user as a sync issue.
Thanks to @michaelbjames for the fix.
2019-09-11 19:59:20 +03:00
- Fixes a bug where the Dropbox path is not reset when aborting the setup dialog.
2019-09-10 23:34:02 +03:00
2019-09-11 15:02:20 +03:00
#### Removed:
2019-09-10 23:34:02 +03:00
- Removed the CLI command `maestral sync`. Use `maestral start --foreground` instead.
2019-08-21 20:19:51 +03:00
2019-10-03 21:08:06 +03:00
## v0.3.2
2019-08-19 01:44:16 +03:00
This release fixes a bug that could result in only changes of top-level items being
synced. This affects users who carried out the initial linking with Maestral v0.2.5 or
later and selected to exclude folders before the first download. Users affected by this
should rebuild Maestral's index by selecting "Rebuild index..." in the main menu.
Other improvements include expanded command line scripts with more useful output, minor
bug fixes and small tweaks to the UI.
2019-08-15 14:52:50 +03:00
#### Added:
- Added a "status" property to `maestral.main` which shows the last log message.
2019-08-17 13:44:33 +03:00
- Added a command group `maestral log` to view and clear the log as well set the logging
2019-08-15 14:52:50 +03:00
level. Commands are:
2019-08-17 13:44:33 +03:00
- `maestral log show`: Shows the logs in terminal.
- `maestral log clear`: Clears the logs.
- `maestral log level`: Returns the current log level.
- `maestral log level [DEBUG|INFO|WARNING|ERROR]`: Sets the log level to the given
value. Affects both stdout and file logs.
- Added an option "-a" to `maestral ls` to include hidden files.
2019-08-18 23:27:22 +03:00
- Added tooltips for system tray icon when not on macOS.
2019-08-15 14:52:50 +03:00
#### Changed:
- Made log levels persistent between sessions.
2019-08-16 00:38:41 +03:00
- Changed the name of `maestral list` to `maestral ls` and, by default, do not list
"hidden" items that start with a dot. Added an option "-a" to explicitly list all
2019-08-17 13:44:33 +03:00
files in a directory.
2019-08-15 15:06:45 +03:00
- Improved output from command line scripts:
- Wrap all long outputs in empty lines.
- Show more informative status.
- Show Dropbox folder location in account-info.
2019-08-17 13:44:33 +03:00
- Add colours to outputs like "[OK]" and "[FAILED]".
2019-08-15 15:06:45 +03:00
- Set minimum version requirement for click package.
2019-08-17 13:44:33 +03:00
- Reduced the startup time by downloading profile picture in a thread. Periodically update
2019-08-16 13:18:41 +03:00
in the background (every 20 min).
2019-08-19 01:44:16 +03:00
- Check hashes before uploading modified files. This speeds up re-linking an old folder by
orders of magnitude.
2019-08-18 23:27:22 +03:00
- Enable the creation of multiple autostart entries for different configurations.
- Fall back to PNG tray icons if the platform may not support our svg format.
2019-08-16 13:18:41 +03:00
2019-08-15 14:52:50 +03:00
#### Fixed:
2019-08-17 13:44:33 +03:00
- Fixed a bug which would not allow running maestral for the first time before explicitly
adding a configuration with `maestral config new`. Now, a default configuration is
created automatically on first run.
2019-08-16 00:38:41 +03:00
- Prevent the GUI and a daemon from syncing the same folder at the same time.
2019-08-15 14:52:50 +03:00
- Fixed the creation of multiple daemons. A new daemon will no longer overwrite an old
one and `maestral daemon start` will do nothing if a daemon for the given configuration
is already running.
- Automatic allocation of ports for the communication between daemon and client.
2019-08-15 15:34:26 +03:00
- Show the (Dropbox) file path in the string representation of `MaestralApiError`.
Previously, one could not see from the traceback which file caused the error.
2019-08-19 01:44:16 +03:00
- Fixed a bug that would result in only changes of top-level items being synced. This
affects users who carrier out the initial linking with Maestral v0.2.5 or later
(commit 40be316b49f2198a01cc9ce9b804f8e6336e36f8) and selected to exclude folders
before the initial sync. Users affected by this bug should rebuild Maestral's index by
selecting "Rebuild index..." in the main menu.
2019-08-17 13:44:33 +03:00
#### Removed:
- No longer install a script "maestral-gui". Use "maestral gui" instead.
2019-08-15 14:52:50 +03:00
2020-04-02 23:47:16 +03:00
## v0.3.1
2019-08-15 14:52:50 +03:00
#### Fixed:
- Fixes a bug when calling the command line script `maestral daemon errors`. This bug
was the result of an error in pickling our MaestralApiExceptions (see
[https://bugs.python.org/issue1692335#msg310951](https://bugs.python.org/issue1692335#msg310951)
for a discussion).
2020-04-02 23:47:16 +03:00
## v0.3.0
This release includes several significant changes. The largest are:
1) Support for multiple Dropbox accounts (via the command line)
2) A Maestral daemon for the command line
3) A redesigned settings window with more prominent account information
The detailed list of changes is:
2019-08-09 19:53:46 +03:00
2019-08-15 14:52:50 +03:00
#### Added:
2019-08-09 15:16:46 +03:00
- Maestral can now be started as a daemon from the command line. A new command group
`maestral daemon` has been introduced to manage this.
2019-08-14 20:42:29 +03:00
- Added support for custom Dropbox folder names. The folder name must be set with the
command line scripts.
- Added a new command group `maestral config` to manage multiple Maestral configurations
for different Dropbox accounts.
- Added a new command line option `--config-name` or `-c` to select the configuration
2019-08-09 19:53:46 +03:00
file to use.
- Improved grouping and naming of command line scripts.
- Added a "relink" dialog which is shown when Maestral's Dropbox access has expired or
has been revoked by the user.
2019-08-17 22:17:14 +03:00
- Improved logic to detect system tray color and set icons accordingly. This is mostly for
2019-09-10 23:34:02 +03:00
KDE which, unlike Gnome, does not handle automatically adapting its tray icon colours.
2019-08-09 19:53:46 +03:00
2019-08-15 14:52:50 +03:00
#### Changed:
2019-08-09 15:16:46 +03:00
2019-08-12 20:13:27 +03:00
- Animated setup dialog.
2019-08-11 03:42:58 +03:00
- Redesigned the settings window to show more prominent account information.
2019-08-09 15:16:46 +03:00
- Improved command line and GUI flows for setting or moving the Dropbox folder location.
2019-08-10 16:10:13 +03:00
- Moved to an Implicit Grant OAuth2 flow. This does not require an app secret to be
stored in the client source code. Maestral will therefore no longer require the user to
get their own API keys or to use the precompiled oauth binaries hosted on PyPI.
- Improved the user massages given by command line scripts.
2019-08-18 16:41:32 +03:00
- Improved status messages given in RebuildIndexDialog.
- Unified and improved the creation of QThreads by the GUI to perform background tasks.
This fixes an issue with occasional segfaults RebuildIndexDialog and improves the
reliability of the UI.
- Started to work on providing a top-level API in `Maestral` for all functionality that is
required by the UI. There should be no need to interact with `Monitor` or `UpDownSync`
directly for high-level functionality.
2019-08-16 13:18:41 +03:00
2019-08-15 14:52:50 +03:00
#### Fixed:
2019-08-14 20:42:29 +03:00
- Fixed a crash on startup if the Meastral's Dropbox access has expired or has been
revoked.
- Fixed handling of `ListFolder` errors. Those will only occur when the user gives an
incorrect folder name to list and will (hopefully) never be caused my Maestral itself.
2019-08-09 15:16:46 +03:00
2020-04-02 23:47:16 +03:00
## v0.2.6
2019-08-08 18:58:46 +03:00
This release fixes a critical bug which would cause Maestral to get stuck after the
initial sync. This does not affect users who have already performed the initial sync
2019-08-08 19:09:24 +03:00
with a previous version of Maestral.
2019-08-08 13:09:14 +03:00
2019-08-15 14:52:50 +03:00
#### Added:
2019-08-08 18:20:34 +03:00
- Added a context menu entry to the "Sync issues" window to show a file on dropbox.com.
2019-08-15 14:52:50 +03:00
#### Changed:
2019-08-08 13:09:14 +03:00
- Move logs to '$XDG_CACHE_HOME/maestral' on Linux and '~/Library/Logs/maestral' on macOS.
2019-08-08 18:58:46 +03:00
- Reduce the number of Dropbox API calls during initial sync.
2019-08-08 13:09:14 +03:00
2019-08-15 14:52:50 +03:00
#### Fixed:
2019-08-08 18:20:34 +03:00
2019-08-08 19:09:24 +03:00
- Fixed a bug which would cause Maestral to get stuck after the initial download.
- Fixes an issue in macOS where modal dialogs in the settings window would sometimes
appear behind the window instead of in front of it.
2019-08-08 13:09:14 +03:00
2020-04-02 23:47:16 +03:00
## v0.2.5
2019-08-07 18:12:50 +03:00
This release fixes several sync issues which could occur when the internet connection is
lost during a sync. It also notifies the user if Maestral's access to their Dropbox has
been revoked.
2019-08-06 13:59:33 +03:00
2019-08-15 14:52:50 +03:00
#### Added:
2019-08-07 04:16:03 +03:00
2019-08-07 15:01:31 +03:00
- Handle expired or invalidated Dropbox access.
2019-08-07 04:16:03 +03:00
- Ask the user before overriding an existing folder in the setup dialog.
2019-08-07 15:01:31 +03:00
- Added status updates for large file uploads (e.g., "Uploading 10/545MB...").
2019-08-07 04:16:03 +03:00
2019-08-15 14:52:50 +03:00
#### Changed:
2019-08-06 13:59:33 +03:00
- Significant speedup of initial indexing. Excluded folders or subfolders will no
longer be indexed.
2019-08-08 10:58:53 +03:00
- Save config files in the systems default location: '$XDG_CONFIG_HOME/maestral' or
2019-08-07 15:01:31 +03:00
'.config/maestral' in Linux and '~/Library/Application Support/maestral' on macOS.
2019-08-09 19:53:46 +03:00
2019-08-15 14:52:50 +03:00
#### Fixed:
2019-08-06 13:59:33 +03:00
- Fixed a false "Dropbox folder cannot be found" message which would appear when
2019-08-07 15:01:31 +03:00
quitting and restarting Maestral during the first sync. Now, the initial download is
quietly resumed when relaunching Maestral.
2019-08-07 04:16:03 +03:00
- Fixed an issue where an interrupted upload would not resume without restarting Maestral.
2019-08-07 15:01:31 +03:00
- Fixed an issue where file changes while "offline" would sometimes not be synced to
Dropbox when a connection is reestablished.
2019-08-07 18:02:50 +03:00
- Fixed an issue where errors from `requests` would inadvertently get caught instead of
being raised.
2019-08-06 13:59:33 +03:00
2020-04-02 23:47:16 +03:00
## v0.2.4
2019-07-23 22:15:26 +03:00
2019-07-29 16:32:11 +03:00
This version mainly improves the appearance and responsiveness of the GUI specifically on
Linux platforms with a Gnome desktop. It also introduces a dialog to handle a deleted or
moved Dropbox folder.
2019-07-26 02:27:53 +03:00
2019-08-15 14:52:50 +03:00
#### Added:
2019-07-23 22:15:26 +03:00
- Added a "Select all" option when choosing which folders to sync.
- Handle deleted or moved Dropbox folder in setup dialog.
- Handle deleted or moved Dropbox folder while Maestral is running.
2019-07-23 22:15:26 +03:00
2019-08-15 14:52:50 +03:00
#### Changed:
2019-07-25 22:49:50 +03:00
2019-07-29 16:32:11 +03:00
- Improved performance of the GUI on some Gnome systems in case of many rapid status
2019-07-26 02:27:53 +03:00
changes.
2019-07-29 16:32:11 +03:00
- Show system tray icon already during the setup dialog.
2019-07-25 22:49:50 +03:00
2019-08-15 14:52:50 +03:00
#### Fixed:
2019-07-25 22:49:50 +03:00
2019-08-05 14:52:58 +03:00
- Fixed size of the system tray icon in Gnome desktops with high-DPI scaling.
2019-07-26 15:35:51 +03:00
- Fixed a bug which would result in an error dialog being shown for "normal" sync errors
such as an invalid file name.
- Fixed missing line-breaks in the traceback shown by the error dialog.
2019-08-04 21:01:14 +03:00
- Updated console scripts to reflect changes in MaestralMonitor and MaestralApiClient.
2019-07-25 22:49:50 +03:00
2020-04-02 23:47:16 +03:00
## v0.2.3
2019-07-22 11:31:25 +03:00
2019-07-22 21:26:35 +03:00
This release mainly fixes crashes of the setup dialog and contains tweaks to the UI.
2019-08-15 14:52:50 +03:00
#### Changed:
2019-07-22 11:31:25 +03:00
- Launch into setup dialog if no Dropbox authentication token can be found in keychain.
- Only log messages of level ERROR or higher to file.
- Show account email in the system tray menu above space usage.
- Unified the code for error dialogs and added an app icon to all dialogs.
2019-07-22 11:31:25 +03:00
2019-08-15 14:52:50 +03:00
#### Fixed:
2019-07-22 11:31:25 +03:00
- Fixed a bug which could could result in the user being asked to re-authenticate when no
Dropbox folder is detected on startup.
2019-07-23 22:15:26 +03:00
- Fixed a bug which could cause Maestral to crash during the setup dialog, immediately
after user authentication.
2019-07-22 11:31:25 +03:00
2020-04-02 23:47:16 +03:00
## v0.2.2
2019-07-19 14:18:25 +03:00
2019-08-15 14:52:50 +03:00
#### Added:
2019-07-19 14:18:25 +03:00
2019-07-20 20:21:37 +03:00
- Added support for file and folder names with two or more periods.
- Temporary autosave files that are created by macOS are now detected by their extension
and excluded from syncing.
2019-07-19 14:18:25 +03:00
- More fine-grained errors, subclassed from `MaestralApiError`.
2019-07-20 20:59:07 +03:00
- Log all events of level INFO and higher to a rotating file in '~/.maestral/logs'. The
2019-07-21 02:33:24 +03:00
log folder size will never exceed 6 MB.
2019-07-19 14:18:25 +03:00
2019-08-15 14:52:50 +03:00
#### Changed:
2019-07-19 14:18:25 +03:00
- Better handling when Dropbox resets a cursor: retry any `files_list_folder` calls and
2019-07-20 20:21:37 +03:00
prompt the user to rebuild the index on `files_list_folder_longpoll` calls.
2019-07-19 14:18:25 +03:00
- Prepare for G-suite Dropbox integration: G-suite files such as Google docs and sheets
will not be downloadable but can only be exported. Maestral will ignore such files.
- Moved deprecated API calls to v2.
2019-07-20 20:21:37 +03:00
- Better handling of `OSErrors` on download.
2019-07-21 15:37:02 +03:00
- Tweaks to logo.
2019-07-19 14:18:25 +03:00
2019-08-15 14:52:50 +03:00
#### Fixed:
2019-07-19 14:18:25 +03:00
- Fixed a bug which would prevent some error dialogs from being shown to the user.
2019-07-21 15:37:02 +03:00
- Fixed a bug which would cause the setup dialog to crash after linking to Dropbox.
2019-07-19 14:18:25 +03:00
2020-04-02 23:47:16 +03:00
## v0.2.1
2019-07-18 17:42:02 +03:00
2019-08-15 14:52:50 +03:00
#### Changed:
2019-07-18 17:42:02 +03:00
2019-07-19 14:18:25 +03:00
- Reload all file and folder icons when the system appearance changes: the system may
2019-07-18 17:42:02 +03:00
provide different icons (e.g., darker folder icons in "dark mode" on macOS Mojave).
2019-07-22 19:20:30 +03:00
- Improved notification centre alerts in macOS: when installed as a bundled app,
2019-07-18 17:42:02 +03:00
notifications are now properly sent from the Maestral itself, showing the Maestral icon,
instead of through apple script.
- Improved layout of the "Rebuild index" dialog.
2019-08-15 14:52:50 +03:00
#### Fixed:
2019-07-18 17:42:02 +03:00
2019-07-19 14:18:25 +03:00
- Fixes a bug which would prevent Meastral from starting on login: the correct startup
2019-07-18 17:42:02 +03:00
script is now called.
2020-04-02 23:47:16 +03:00
## v0.2.0
2019-07-01 20:28:18 +03:00
2019-07-13 20:10:05 +03:00
#### Major changes
2019-07-01 20:28:18 +03:00
2019-08-15 14:52:50 +03:00
#### Added:
2019-07-13 20:10:05 +03:00
- Proper handling of sync errors. Dropbox API errors are converted to a more informative
`MaestralApiError` and a log of sync errors is kept. This log is cleared as sync errors
are resolved. Errors are now handled as follows:
- Individual file sync errors are indicated by the system tray icon changing. The
can listed by the user through the GUI.
- Unexpected errors or major errors which prevent Maestral from functioning (e.g., a
corrupted index) trigger an error dialog.
- Introduced a new panel "View Sync Issues..." to show an overview of sync issues and
their cause (invalid file name, insufficient space on Dropbox, etc...)
- Added a new function to rebuild Maestral's file index which is accessible through the
GUI.
2019-07-03 00:23:10 +03:00
- Added "Recently Changed Files" submenu to the system tray menu. "Recently Changed Files"
shows entries for the 30 last-changed files (synced folders only) and navigates to the
respective file in the default file manager when an entry is clicked.
2019-07-13 20:10:05 +03:00
2019-08-15 14:52:50 +03:00
#### Changed:
2019-07-13 20:10:05 +03:00
- Refactored sync code: Collected all sync functionality in a the new class
`monitor.UpDownSync`. `MaestralClient` now only handles access to the Dropbox API itself
but is no longer concerned with version tracking, etc. `MaestralClient` no longer
catches Dropbox API errors but raises them, augmented with useful information, as
`MaestralApiError`.
2019-07-13 21:03:07 +03:00
- Moved storage of user authentication tokens from a text file to the system keyring. As a
2019-07-18 17:42:02 +03:00
result, authentication tokens will be encrypted on the hard drive and only decrypted
2019-07-13 21:03:07 +03:00
when the user logs in. On some systems, this may cause problems in headless mode, when
the Gnome keyring is not loaded. The
[keyring documentation](https://keyring.readthedocs.io/en/latest/#using-keyring-on-headless-linux-systems)
provides help for such cases.
2019-07-13 20:10:05 +03:00
#### Minor changes
2019-08-15 14:52:50 +03:00
#### Added:
2019-07-13 20:10:05 +03:00
- Added progress messages for uploads and downloads, e.g., "Downloading 3/98...". These
are output as info messages and shown in the status field of the system tray menu.
- When unlinking your Dropbox account through the GUI, Maestral is restarted to enter the
setup dialog.
2019-07-15 01:51:24 +03:00
- Refinements for dark interface themes such as Dark Mode in macOS Mojave
2019-07-03 00:23:10 +03:00
2019-08-15 14:52:50 +03:00
#### Changed:
2019-07-07 16:32:19 +03:00
2019-07-13 20:10:05 +03:00
- Use native system icons instead of macOS icons to represent files and folders.
- Some programs save file changes by deleting the old file and creating a new file. This
2019-07-08 20:30:01 +03:00
is now correctly combined to a single `FileModified` event.
2019-07-13 20:10:05 +03:00
- Some programs create temporary files when saving changes. Those temporary files are
deleted again after the save is completed. Those `FileCreated` and `FileDeleted`
2019-07-08 20:04:04 +03:00
events, which occur in quick succession, are now ignored by Maestral.
2019-07-08 20:30:01 +03:00
- The following file names have been added to the exclusion list:
- Files that start with "\~$" or ".~"
2019-07-08 20:04:04 +03:00
- Files that start with "~" and end with ".tmp"
2019-07-08 14:51:29 +03:00
- Cleaned up some of the config module code: removed Spyder specific functions and
2019-07-07 16:32:19 +03:00
obsolete Python 2 compatibility.
2019-07-18 17:42:02 +03:00
- Adapted code to correctly load resources in case Maestral is packaged as a macOS app
2019-07-16 13:27:19 +03:00
bundle.
2019-07-03 00:23:10 +03:00
2019-08-15 14:52:50 +03:00
#### Fixed:
2019-07-13 20:10:05 +03:00
- Fixed a bug which may result in a removed folder not being deleted locally if it
contains subfolders.
2019-07-13 20:10:05 +03:00
- Fixed a bug which may result in file modifications not being uploaded, depending on
2019-07-08 20:30:01 +03:00
how the changes were saved by the program which was used to edit the file.
- Fixed a bug which would incorrectly list top level files as folders in the "Exclude
folders" dialog.
- Truncate entries in the "Recently Changed Files" menu if their width exceeds 200 pixels.
2019-07-13 20:10:05 +03:00
- Fixed a bug which would cause Maestral to crash when clicking "Choose folders to sync..."
while Maestral cannot connect to Dropbox servers.
2019-07-01 20:28:18 +03:00
2020-04-02 23:47:16 +03:00
## v0.1.2
2019-08-15 14:52:50 +03:00
#### Added:
2019-07-01 20:28:18 +03:00
- Added new command line option 'autostart' to automatically start Maestral on login.
2019-08-15 14:52:50 +03:00
#### Changed:
2019-06-29 22:02:38 +03:00
- Limit notifications to remote changes only and only notify for changes in folders that
2019-07-01 20:28:18 +03:00
currently being synced, unless more than 100 files have changed.
2019-07-22 19:20:30 +03:00
- Detect colour of system tray and invert icon colour automatically if not on macOS.
- Shut down immediately and kill threads instead of waiting for timeout.
2019-06-25 21:17:44 +03:00
- Improve appearance of Settings window in GTK 3 style.
2019-08-15 14:52:50 +03:00
#### Fixed:
2019-06-25 21:17:44 +03:00
- Fixed a bug which would cause uploads to fail if they are split into multiple chunks.
- Fixed a bug that would prevent Maestral from quitting if the setup dialog is aborted.
2019-06-25 14:16:51 +03:00
- Fixed a bug that would cause Maestral to crash during the setup dialog when switching
2019-06-25 21:17:44 +03:00
multiple times between the "Select Folders to Sync" and "Select Dropbox location" panels.
2019-07-08 14:51:29 +03:00
- Do not upload files that have identical content on Dropbox. Previously: files were
2019-06-25 21:17:44 +03:00
always uploaded and conflict checking was left to do by the Dropbox server.
2020-04-02 23:47:16 +03:00
## v0.1.1
2019-06-23 19:34:47 +03:00
2019-08-15 14:52:50 +03:00
#### Fixed:
2019-06-23 19:34:47 +03:00
2019-06-25 14:16:51 +03:00
- Fixes an issue which would prevent newly created empty folders from being synced.
2019-06-25 21:17:44 +03:00
- Remove references to conda in startup script.