github mutagen-io/mutagen v0.9.0-beta2

latest releases: v0.16.3, v0.16.2, v0.16.1...
pre-release5 years ago

NOTE: This is an experimental, beta-quality, pre-release version of Mutagen. This release in particular is very large and contains changes to significant portions of Mutagen's implementation. It may have unknown issues. It should not be used on production or mission-critical systems. Use on any system is at your own risk (please see the license). For a better experience, you may wish to use the latest stable release.

NOTE: Sessions created with previous non-beta Mutagen releases are forward-compatible, but sessions created with beta releases are not guaranteed to be compatible with their corresponding final release version. Please wait for the final tagged release (v0.9.0 - which will be released shortly) if you want to be sure that you can avoid recreating sessions. Documentation is also still pending for the new features in this release.

Changes

This release includes the following changes from the v0.8.x series:

  • Added a "scan mode" option that allows for accelerated filesystem scans that reduce synchronization latency by utilizing filesystem watching information. This is controlled by the --scan-mode flag in the create command and the scanMode setting in the [sync] section of ~/.mutagen.toml. The options for this flag are full (the default) and accelerated. Please be aware that accelerated scans are experimental, though testing is appreciated! Using mutagen flush always forces a full scan.
  • Support for session labels has been added. The syntax and semantics of these labels are identical to those of Kubernetes (in fact the underlying implementation is shared). Labels can be attached to a session at creation time using the create commands -l/--label flag, e.g. --label=mutagen=awesome. Multiple labels can be created by specifying this flag repeatedly. Labels can be used to identify sessions in the list, monitor, flush, pause, resume, and terminate commands using the --label-selector flag, e.g. `--label-selector='mutagen==awesome'.
  • Added a "probe mode" option and optimized fast paths that allow endpoints to avoid probing filesystem behavior with temporary files. This is controlled by the --probe-mode flag in the create command and the probeMode setting in the [sync] section of ~/.mutagen.toml. The options for this flag are probe (the default) and assume. With the probe setting, Mutagen will attempt to determine filesystem behavior using filesystem queries, falling back to probe files if these queries aren't available or the filesystem format is unknown. Using assume will cause endpoints to assume session behavior based on the platform, which is less accurate but significantly faster.
  • Added a "stage mode" option that controls where Mutagen stages files before transforming a synchronization root, allowing for more efficient synchronization when working across volumes. This is controlled by the --stage-mode flag in the create command and the stageMode setting in the [sync] section of ~/.mutagen.toml. The options for this flag are mutagen (the default) and neighboring. With the mutagen setting, files will be staged in the Mutagen data directory (~/.mutagen). With the neighboring setting, files will be staged in a temporary directory that neighbors the synchronization root.
  • Added a --no-global-configuration flag to the create command to exclude the global configuration (~/.mutagen.toml) from the session configuration
  • Added the ability to specify a custom TOML configuration file (with the same format as ~/.mutagen.toml) to the create command using the -c/--configuration-file flag. This file will be loaded and merged on top of the ~/.mutagen.toml file (unless that file has been disabled with the --no-global-configuration flag).
  • Filesystem watching has been completely refactored and should be significantly more reliable (though still limited on platforms without recursive watching support)
  • Filesystem probing using temporary files has been modified to work on filesystems that don't support POSIX-compliant behavior
  • Added a check to all commands that they are communicating with a compatible version of the daemon.
    Compatibility is currently restricted to daemons with the same version. The Mutagen daemon termination API is frozen, so mutagen daemon stop will always work to terminate an older daemon instance.
  • Added myriad internal optimizations and fixes
  • Performed significant code reorganization and refactoring
  • Updated code and module files for Go 1.12
  • Increased Go version dependency to 1.12
  • Updated all dependencies

Platforms

The following platform support has been added:

  • Windows ARM

Don't miss a new mutagen release

NewReleases is sending notifications on new releases.