Published by samschott over 3 years ago
IndexError
during conflict resolution when the local item is a non-empty folder.Published by samschott over 3 years ago
Published by samschott over 3 years ago
Edit: Updated App bundle for macOS, the previous bundle was built with the wrong version of the toga GUI toolkit.
This release introduces support for tab-completion in the shell, allows you to choose the actual Dropbox folder instead of its parent folder / location from the GUI, and further reduces memory usage during startup indexing. As usual, several bugs have been squashed.
The website has also moved to its own domain at maestral.app. The source still lives in the website
branch of the GitHub repo and contributions are welcome.
maestral completion
to generate shell completion scripts for bash, zsh or fish. See maestral completion --help
for instructions on enabling shell completion.diff
CLI command and selecting the local file as the base version.Published by samschott over 3 years ago
This release improves performance and memory usage by switching from sqlalchamey to our own database interaction layer. It is also the first release with an app bundle that runs natively on Apple Silicon.
Maestral now also has a website with a detailed documentation of the command line interface, released with GitHub pages at https://samschott.github.io/maestral.
Published by samschott over 3 years ago
Fixes an issue where the daemon might restart syncing when an internet connection is reestablished even though it should be paused.
Published by samschott over 3 years ago
Fixes an issue where the daemon status may incorrectly report "Connecting..." even though the daemon is connected.
Published by samschott over 3 years ago
This release brings significant extensions to the command line interface: It introduces commands to create and manage shared links, to compare older version of a file and print the diff output to the terminal, and commands for direct access to config values (note the warning below). It also adds optional one-way syncing, for instance to keep a mirror of a remote Dropbox folder while ignoring local changes.
Several bugs have been fixed which could occur when resuming the sync activity after the connection had been lost while indexing a remote folder.
Finally, this release removes automatic error reporting via Bugsnag. Please file any bug reports as issues on GitHub where it is possible to follow up.
maestral diff
to compare different versions of a text file. The resulting diff is printed to the console. Credit goes to @OrangeFran.maestral revs
to list previous versions (revisions) of a file.maestral sharelink
to create and manage shared links. Subcommands are create
to create a shared link for a file or folder, list
to list shared links, either for a specific file or folder or for all items in your Dropbox, and revoke
to revoke a shared link.maestral config
to provide direct access to config values. Subcommands are get
and set
to read and write config values, respectively. This provides access to previously inaccessible config values such as reindex_interval
or max_cpu_percent
. Please refer to a Wiki for an overview of all config values. Use the set
command with caution: setting some config values may leave the daemon in an inconsistent state (e.g., changing the location of the Dropbox folder). Always use the equivalent command from the Settings group (e.g., maestral move-dir
).upload
or download
to False. Note that conflict resolution remains unaffected. For instance, when an unsynced local change would be overwritten by a remote change, the local file will be moved to a "conflicting copy" first. However, the conflicting copy will not be uploaded.Changes to daemon:
.mignore
pattern (file watches will still be added however). This results in performance improvements during startup and resume. A resulting behavioral change is that maestral will remove files matching an ignore pattern from Dropbox. After this change it will be immaterial if an .mignore
pattern is added before or after having matching files in Dropbox.max_user_watches = 524288
and max_user_instances = 1024
or double the current values, whichever is higher. Advise to apply the changes with sysctl -p
.Changes to CLI:
maestral auth
with subcommands link
, unlink
and status
.file-status
to filestatus
.--yes, -Y
flag to the unlink
to command to skip the confirmation prompt.configs
command to list config files to config-files
.--clean
to config-files
to remove all stale config files (those without a linked Dropbox account).maestral restart
. Use stop
and start
instead.maestral account-info
. Use maestral auth status
instead.Maestral.resume_sync
and Maestral.pause_sync
. Use Maestral.start_sync
and Maestral.stop_sync
instead.desktop-notifier
dependency. This is spin-off project from Maestral, built on the code previously in the notify
module.Published by samschott almost 4 years ago
Fixes an incorrect entry point for the Qt GUI. Fixes a wrong version of survey
bundled in the macOS App.
Published by samschott almost 4 years ago
This release features an overhaul of the command line interface: commands are grouped by sections in the help output, dialogs and output formatting have been improved and many commands have become significantly faster.
This release also significantly reduces the CPU usage when idle and provides a whole series of bug fixes for GUI and daemon.
Maetral.status_change_longpoll
for frontends to wait for status changes without frequent polling. status_change_longpoll
blocks until there is a change in status and then returns True
. The default timeout is 60 sec.survey
package.ls
, activity
, and restore
.Maestral.include_item()
API now accepts paths which lie inside an excluded folder. When called with such a path, all immediate parents will be included as well.Maestral.excluded_items
property is no longer read-only.cli
module to prepare for shell completion support.pending_downloads
or download_errors
would contain an invalid path, i.e., a Dropbox path for which we cannot get any current or deleted metadata.BusyError
instead.maestral ls
would fail when run with the -l, --long
flag.IndexError
during a download sync when trying to query past versions of a deleted item.maestral rev
command to list old file revisions. Instead maestral restore
will list possible revisions to restore.Maestral.set_excluded_items
API. Use the setter for Maestral.excluded_items
instead.watchdog<=10.3
because of an unresolved issue in watchdog 0.10.4 on macOS.dropbox<12.0
to avoid bad surprises in case of breaking changes.survey
for an interactive CLI.Published by samschott almost 4 years ago
This release focuses on bug fixes and performance improvements. In particular, memory usage has been improved when syncing a Dropbox folder with a large number of items. It also fixes an issue with running the app bundle on macOS High Sierra.
maestral file-status
now accepts relative paths.pkg_resources
to locate entry points and other metadata to the faster and more light-weight importlib.metadata
.SyncEngine
and DropboxClient
that return iterators over remote changes. Dropbox servers are queried on every iteration and memory is freed after applying each batch of remote changes.Maestral.get_history
now returns only the last 100 sync events by default. This can be increased by setting the limit
argument manually.Mastral.excluded_status
would return "included" for items inside an excluded folder.Published by samschott about 4 years ago
This update provides bug fixes and some improvements to error handling. Major changes don't regard Maestral itself but its distribution: a Docker image is now available, thanks to @aries1980, and the macOS app bundle has been rebuilt with the macOS 11 SDK, providing full compatibility from macOS 10.14 Mojave to macOS 11.0 Big Sur.
-V, --version
option to the command line interface to show the version and exit.-f, --foreground
option. Previously, any required setup such as linking, etc, would still be performed in a subprocess.maestral activity
in case of very large sync queues.maestral move-dir
or through the GUI.alembic
dependency for database migrations.Published by samschott about 4 years ago
The local file index and sync history are now stored in a SQLite database. After the update, Maestral will reindex your Dropbox to populate the new index. This may take a few minutes, depending on the number of files in your Dropbox.
This change enables several improvements to the command line interface and GUI: The command maestral activity
now shows the progress of individual uploads or downloads. maestral history
has been added to list recent sync events. In the GUI, the recent changes menu now has been replaced by a "Activity" window which shows all sync events of the past week.
This release also introduces clickable desktop notifications, performance improvements to indexing of local file changes, and bug fixes and smaller changes listed below.
Finally, this release introduces support for macOS 11 (Big Sur).
--external
/-e
to maestral log show
to open the log in the platform's default program instead of showing it in the console.history
to show all sync events of the past week.maestral_gui
entry point to be launched with the maestral gui
CLI command. If installed, maestral gui
will default to the 1st party maestral-cocoa
or maestral-qt
GUIs on macOS and Linux, respectively.Maestral.get_activity
from namedtuple to dict for better consistency throughout the API. Every uploading or downloading item will have 'size' and 'completed' entries to monitor the progress of syncing individual items.maestral activity
now shows the progress of uploads and downloads for individual files.maestral status
.maestral ls
is now printed in a grid, similar to the ls
command included with most platforms.Stop.Failed
is returned instead.maestral autostart -Y|-N
to replace old unit files.jeepney
dependency on Linux with dbus-next
.Published by samschott over 4 years ago
This release expands the CLI functionality and improves the handling of file modification times during upload and download (used for display purposes only). It also fixes bugs with the "start on login" functionality of the macOS app bundle. After updating, please toggle "start on login" in the GUI or maestral autostart
in the CLI to replace any old login items on macOS.
--include-deleted | -d
option to maestral ls
.--long | -l
option to maestral ls
to include metadata in listing.maestral revs
command to list revisions of a file.maestral restore
command to restore an old revision of a file.maestral autostart -Y
CLI command would start the GUI on login in case of the macOS app bundle.Published by samschott over 4 years ago
Thanks to generous Github sponsors, the macOS app bundle is now properly signed and notarized.
Edit: The previous macOS app bundle had the wrong version number. This has been corrected now.
lockfile
dependency.fasteners
dependency.Published by samschott over 4 years ago
lockfile
dependency.fasteners
dependency.Published by samschott over 4 years ago
This release fixes bugs in the command line interface.
maestral ls
.Published by samschott over 4 years ago
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 all pending sync jobs instead of waiting for them to complete. The macOS GUI switches from Qt to using a native Cocoa interface and the macOS app bundle finally includes a full command line interface which can be installed from the settings window.
Maestral.get_auth_url
and Maestral.link
. Frontends no longer need to import maestral.oauth
.notify-send
is not available.Published by samschott over 4 years ago
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.
keyrings.backends.kwallet.DBusKeyring
. You will need to migrate your credentials manually to the new keyring if you change this setting.--verbose
flag to maestral start
and maestral restart
commands to print log output to stdout.maestral start --foreground
no longer prints log messages to stdout by default.six
to work around an upstream issue in Dropbox.Published by samschott over 4 years ago
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.
psuitl
package to determine the CPU usage. This eliminates the psuitl
dependency which can be difficult to install on some systems.Published by samschott over 4 years ago
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. This feature is considered 'alpha' and may change in the future. Feedback is welcome.
maestral exclude
), they will be removed from the local folder and kept in the cloud only. The ".mignore" file enables the reverse: files or folders which exist locally will not be uploaded to Dropbox. It uses the same syntax as gitignore files and, similar to gitignore, files which are already tracked by Maestral will not be affected. More details are given in the Wiki.excluded_files
and excluded_folders
settings from the config file with a unified excluded_items
setting. Entries from excluded_folders
will be migrated to the excluded_items
setting.exclude_item
etc.ValidationError
during sync startup.maestral stop
would block until all pending syncs have completed. This could potentially take a very long time for large downloads. Instead, any interrupted downloads will be restarted on next launch.