Kopia v0.6

We are very excited to announce the 0.6 release of Kopia! This is a big milestone on the way to an upcoming 1.0 release and there have not only been a large number of changes across the stack but also growth of the community.

This version brings manny performance, usability and stability improvements listed below, adds supports for new providers and CLI options and introduces major new features described below:

Upgrade notes

  • Upgrading from 0.5.x is supported and should be automatic
  • Upgrading from 0.4.0 or earlier is not officially supported, it may work but use at your own risk. It’s strongly recommended to create new repository using v0.6.0 and migrate existing snapshots as outlined in the documentation. After v0.6.0 the deprecated encryption and hashing schemes from v0.4.0 will be removed.

Key Changes

Core

  • big performance improvements when snapshotting large directories #331
  • improvements for dealing with eventually-consistent stores (S3) #437
  • GC safety improvements to resolve race condition when content is re-referenced when about to be deleted #420
  • added OpenCensus #339
  • introduced explicit maintenance operations that perform periodic repository cleanup/compaction #411
  • disabled automatic compaction on repository opening - moved to maintenance tasks
  • added AsyncWrites to ObjectWriter, which improves performance… #369
  • object: ensure that all I objects have a content prefix which improves locality by putting them in q packs
  • deduplicate multiple policies for the same source in policy manager, fixes #391
  • fixed race condition during Open() where we may read incomplete file
  • deprecated NONE algorithm, will not be available for new repositories #395
  • server: automatically flush the repository after setting or deleting a policy #489
  • snapshot checkpointing #410
  • moved creating cache directory from connect to first use #450
  • persist relative path to cache if possible, this allows config directory to be partially portable
  • server: implemented ‘flush’ and ‘refresh’ API
  • experimental support for remote repository #427
  • repo: refactored public API #318

KopiaUI

  • support for multiple repositories + portability #398
  • highlight snapshot errors #376

Providers

  • support for gather writes #373
  • b2: added provider for backblaze b2
  • sftp: add missing options for configuring sftp known_hosts
  • s3: add CLI option for disabling tls verification while connecting to s3
  • filesystem: added retry which addresses the macOS race condition

CLI Improvements

  • added flags to control progress output
  • ‘kopia server’ made –ui default #452
  • allow override of snapshot start time and end time
  • improved ‘snapshot delete’ usage #436
  • Remove legacy flags from snapshot create command #441
  • support for zip, tar and tar.gz restore outputs #482
  • support for synchronizing repositories #522
  • auto-ignore kopia cache directories when creating snapshots #524

Infrastructure

  • macOS and Windows KopiaUI builds are now signed
  • robustness testing framework
  • testing: added blob.Storage wrapper that simulates eventual consistency #434
  • switched back to using v-prefixed tag names.
  • tests: added smoke test that exercises all combinations of encryption and hashing

See full change log on GitHub.