Skip to content

Releases: kopia/kopia

v0.22.3

02 Dec 06:37
154bf56

Choose a tag to compare

Defect Fixes

  • Fixes regression in dependency used for compression (#5049)

Snapshots

  • New Feature localfs support for passing options (#5044) by Jarek Kowalski

CI/CD

  • Remove ineffective omitempty tags (#5037) by Julio López

v0.22.2

26 Nov 07:29
e456f78

Choose a tag to compare

Storage Providers

  • Fix regression #5039: execute rclone with non-cancelling context (#5040) by Julio López

Testing

  • allow S3 versioned tests cleanup to succeed (#5038) by Julio López

CI/CD

  • make PR title options consistent with chlog (#5036) by Julio López

v0.22.1

25 Nov 04:45
4526f03

Choose a tag to compare

Graphical User Interface

  • Fix issue showing an empty UI for some users (#5006, #5029,#5034,#5035) by Jarek Kowalski and Julio López.

Other Improvements

  • make purpose a string parameter (#5015) by Julio López

Testing Improvements

  • leverage testing.T.Context in testlogging (#5008) by Julio López
  • use contexts in tests (#5009) by Julio López
  • pass context in helpers for running Docker (#5012) by Julio López
  • cleanup TestKopiaRunner (#5010) by Julio López

CI/CD

  • enable noctx linter (#4972) by Nathan Baulch
  • prevent writing outside of installation target directory (#5003) by Julio López

v0.22.0

18 Nov 00:28
1aaf433

Choose a tag to compare

Command-Line Interface

  • potential overflow in integer conversion (#4993) by Julio Lopez
  • make --progress flag visible and use it in sync-to command (#3542) (#4877) by yinheli
  • ensure auto-maintenance errors are propagated (#4851) by Julio Lopez
  • enable quick maintenance by default on repo creation (#4840) by Julio Lopez
  • New Feature extend stats for content verification (#4830) by Julio Lopez
  • additional safeguard dangerous commands (#4767) by Julio Lopez
  • deprecate dangerous repo repair sub-command (#4766) by Julio Lopez
  • reword message for dangerous commands (#4765) by Julio Lopez
  • remove deprecated no-op flags (#4764) by Julio Lopez

General Improvements

  • handle errors closing writable descriptors (#4998) by Julio Lopez
  • avoid wrapping always-nil error (#4997) by Julio Lopez
  • check for nil before de-refencing field (#4996) by Julio Lopez
  • check bounds for memory allocation (#4995) by Julio Lopez
  • fix typos (#4986) by Julio Lopez
  • New Feature fix display errors for maintenance stats (#4984) by lyndon-li
  • omitzero JSON tag in policy structs (#4910) by Julio Lopez
  • New Feature add stats to maintenance run - SnapshotGC (#4964) by lyndon-li
  • leverage stats.CountSum in maintenance stats (#4963) by Julio Lopez
  • remove dry run option for blob retention ext (#4962) by Julio Lopez
  • maintenance stats for rewrite contents phase (#4961) by lyndon-li
  • extendBlobRetentionTime (#4960) by Julio Lopez
  • New Feature maintenance stats for clean up logs phase (#4959) by lyndon-li
  • consistent use "pack" where possible (#4952) by Julio Lopez
  • fix field names in ExtendBlobRetentionStats (#4958) by Julio Lopez
  • New Feature maintenance stats for delete unreferenced packs phase (#4955) by lyndon-li
  • New Feature maintenance stats for drop deleted contents and compact indexes (#4948) by lyndon-li
  • fix field names in CompactSingleEpochStats (#4947) by Julio Lopez
  • use explicit return values (#4940) by Julio Lopez
  • New Feature add stats to maintenance run - AdvanceEpoch (#4937) by lyndon-li
  • diskCommitedContentIndexCache (#4939) by Julio Lopez
  • buildinfo helpers (#4936) by Julio Lopez
  • improve randRead helper (#4934) by Julio Lopez
  • index.maxContentLengths (#4932) by Julio Lopez
  • simplify function and generics signatures (#4930) by Julio Lopez
  • lastSettledEpochNumber() helper (#4927) by Julio Lopez
  • fix return value order to match return names (#4926) by Julio Lopez
  • rename GenerateRangeCheckpointStats fields (#4925) by Julio Lopez
  • New Feature add maintenance phase stats - CleanupSupersededIndexes (#4916) by lyndon-li
  • field and variable names (#4911) by Julio Lopez
  • New Feature add stats to maintenance run - CleanupMarkers (#4900) by lyndon-li
  • simplify construction of error messages (#4913) by Julio Lopez
  • omitzero JSON tag (#4907) by Julio Lopez
  • leverage maps.Clone (#4905) by Julio Lopez
  • modernize bloop (#4904) by Julio Lopez
  • modernize (#4903) by Julio Lopez
  • modernize min/max (#4898) by Julio Lopez
  • New Feature reduce number of open file descriptors for indexes on Unix (#4866) by Samuel Maynard
  • address linter warnings (#4897) by Julio Lopez
  • New Feature interfaces and structures for maintenance stats (#4890) by lyndon-li
  • expand triggers for endurance tests (#4860) by Julio Lopez
  • fix endurance test failures (#4859) by Julio Lopez
  • remove unused pproflogging package (#4850) by Julio Lopez
  • cleanup observabilityFlags (#4852) by Julio Lopez
  • New Feature rewrote content logs to always be JSON-based and reorganized log structure (#4822) by Jarek Kowalski
  • increase number of retained maintenance run info (#4846) by Julio Lopez
  • set packID when creating the map entry (#4843) by Julio Lopez
  • minor cleanups (#4842) by Julio Lopez
  • stop background workers when test fails (#4841) by Julio Lopez
  • New Feature content-to-pack consistency checks in maintenance (#4832) by Julio Lopez
  • move content verify functionality to the content package (#4827) by Julio Lopez
  • use testify in content_formatter_test.go (#4775) by Julio Lopez
  • cleanup VSS trailer handling (#4776) by Julio Lopez
  • miscellaneous cleanups (#4774) by Julio Lopez

Snapshots

  • New Feature Flush after restoring each file (#4825) by lyndon-li
  • Append path separator to Shadow Copy root directory on Windows (#3891) by Hakkin Lain

Storage Providers

  • make azure.TestUserAgent more robust (#4781) by Julio Lopez
  • fix azure.TestUserAgent (#4780) by Julio Lopez

CI/CD

  • remove GOEXPERIMENT=coverageredesign (#4988) by Julio Lopez
  • make socket activation test more robust (#4985) by Julio Lopez
  • build kopia with -trimpath (#4983) by Julio Lopez
  • enable wsl_v5:{assign,expr} linter settings (#4982) by Julio Lopez
  • enable wsl_v5:err linter (#4928) by Julio Lopez
  • enable modernize:omitzero linter setting (#4981) by Julio Lopez
  • require Go 1.24 to build site (#4980) by Julio Lopez
  • upgrade to golangci-lint 2.6.1 (#4973) by Nathan Baulch
  • enable wsl_v5:return linter (#4975) by Julio Lopez
  • upgrade to golangci-lint v2.5.0 (#4931) by Nathan Baulch
  • update copilot instructions for reviews (#4935) by Julio Lopez
  • add copilot instructions (#4933) by Julio Lopez
  • add linter config for gofumpt (#4929) by Julio Lopez
  • run endurance test every 6 hours (#4861) by Julio Lopez
  • cleanup parameters for actions/setup-go (#4813) by Julio Lopez
  • upgrade Go toolchain to 1.24.7 (#4807) by Julio Lopez

Graphical User Interface

  • fix failing test (#384) by Jarek Kowalski

v0.21.1

22 Jul 01:40
0733cb4

Choose a tag to compare

Server

  • fixed scheduling bug (#4732) by Jarek Kowalski

Storage Providers

  • New Feature Azure Federated Identity support (#4728) by Julio Lopez

v0.21.0

20 Jul 00:30
3a38279

Choose a tag to compare

Command-Line Interface

  • New Feature human-readable sizes for kopia ls (#4696) by Kian Kasad
  • New Feature add --disable-file-logging to suppress log file output (#4686) by Leonardo Cecchi
  • fix path printed by "kopia snapshot fix" commands (#4638) by Kian Kasad

General Improvements

  • cleanup clock bounds check (#4720) by Julio Lopez
  • New Feature check for clock skew on write session creation (#4719) by Julio Lopez
  • rename variable to humanReadable for consistency (#4709) by Julio Lopez
  • use require to cleanup snapshot tests (#4708) by Julio Lopez
  • add {peta,exa}byte prefixes (#4707) by Julio Lopez
  • use snapshot end time as tie breaker for equal start time (#4705) by Julio Lopez
  • minor cleanups (#4704) by Julio Lopez
  • migrate remnant piece to crypto/hkdf (#4691) by Julio Lopez
  • migrate to crypto/{hkdf,pbkdf2,sha3} (#4678) by Julio Lopez
  • small misc. cleanups (#4666) by Julio Lopez
  • typos (#4659) by Nathan Baulch
  • misc cleanups (#4652) by Julio Lopez
  • enable forcetypeassert linter (#4624) by Julio Lopez
  • minor cleanups (#4621) by Julio Lopez
  • upload tests (#4619) by Julio Lopez
  • misc cleanups (#4615) by Julio Lopez
  • minor cleanups in snapshot GC (#4612) by Julio Lopez
  • convenience make targets to install tools (#4616) by Julio Lopez
  • s/interface{}/any/ (#4614) by Julio Lopez
  • fix TestSnapshotNoLeftoverCheckpoints slowness (#4611) by Julio Lopez

Repository

  • create minimal cache.Storage interface (#4618) by Jarek Kowalski

Server

  • fix snapshot scheduling in the event of machine goes to sleep (#4682) by Jarek Kowalski

Snapshots

  • New Feature Add periodic JSON progress output to snapshot verify (#4645) by Nick
  • completely ignore unsupported entries instead of reporting them as ignored errors to avoid snapshot warnings (#4613) by Jarek Kowalski

Storage Providers

  • Azure client cert env var (#4726) by Julio Lopez
  • rename Options.ClientCertificate for clarity (#4724) by Julio Lopez
  • add omitempty JSON tags in azure.Options (#4721) by Julio Lopez
  • add tags in azure.Options (#4716) by Julio Lopez

CI/CD

  • upgrade to Go 1.24 (#4675) by Julio Lopez
  • pin actions (#4657) by Julio Lopez
  • upgrade Go toolchain to 1.23.10 (#4656) by Julio Lopez
  • include date-time in temp dir name used for tests (#4651) by Julio Lopez

Graphical User Interface

  • extracted formatting utilities to separate module (#370) by Jarek Kowalski
  • moved policy utils to a separate module (#367) by Jarek Kowalski
  • component refactoring (#365) by Jarek Kowalski
  • fixed warnings during 'npm test' (#345) by Jarek Kowalski
  • reorganized test utilities (#369) by Jarek Kowalski
  • speed up tests that use polling with long intervals (#368) by Jarek Kowalski
  • refactored router mock setup (#366) by Jarek Kowalski
  • move cancelTask to a separate module (#364) by Jarek Kowalski
  • added test for top-level index.jsx (#363) by Jarek Kowalski
  • added tests for the App component (#362) by Jarek Kowalski
  • added tests for Policies page (#361) by Jarek Kowalski
  • added tests for DirectoryItems (#360) by Jarek Kowalski
  • added tests for DirectoryBreadcrums (#359) by Jarek Kowalski
  • added tests for SnapshotCreate component (#358) by Jarek Kowalski
  • added tests for SnapshotDirectory component (#357) by Jarek Kowalski
  • added forms test (#351) by Jarek Kowalski
  • more test coverage (#350) by Jarek Kowalski
  • added tests for the Logs component (#349) by Jarek Kowalski
  • add tests for Snapshots tab (#348) by Jarek Kowalski
  • added tests for the Repository tab (#347) by Jarek Kowalski
  • added tests for Tasks (#346) by Jarek Kowalski
  • added tests for TimesOfDayTest component (#344) by Jarek Kowalski
  • added tests for snapshot estimation (#343) by Jarek Kowalski
  • increased coverage for NotificationEditor.jsx (#342) by Jarek Kowalski
  • added tests for remaining repository setup pages (#341) by Jarek Kowalski
  • increase code coverage (#340) by Jarek Kowalski
  • moved tests to tests/ directory and reorganized by their target (#339) by Jarek Kowalski

v0.20.1

26 May 00:07
1ee2497

Choose a tag to compare

Command-Line Interface

  • minor cleanups in diff tests (#4594) by Julio Lopez

Server

  • fixed server-based notifications (#4598) by Jarek Kowalski

Snapshots

  • fixed snapshotting of \server\share (#4603) by Jarek Kowalski
  • Remove checkpoints after a complete snapshot (#4439) by shniubobo

Notifications

  • fixed notification severities on snapshot creation (#4604) by Jarek Kowalski

CI/CD

  • enforce consistent formatting of KopiaUI code (#4586) by Jarek Kowalski

Graphical User Interface

  • reformat code to 120 characters per line (#338) by Jarek Kowalski
  • fixed 'Set Policy' button (#337) by Jarek Kowalski
  • SMTP credentials should not be required (#336) by Jarek Kowalski
  • ignore exceptions when making incremental changes to the policy (#335) by Jarek Kowalski
  • report code coverage (#334) by Jarek Kowalski
  • globally apply prettier formatting (#333) by Jarek Kowalski

v0.20.0

20 May 18:50
496f2d5

Choose a tag to compare

Command-Line Interface

  • New Feature helper functions to get preceding snapshots for diff (#4559) by Rohit-BM18
  • Fix crash when doing kopia policy show <path> (#4560) by Donatas Abraitis
  • rename function to setListBlobsParallelismFromFlags (#4564) by Julio Lopez
  • New Feature --stats-only flag for the diff command (#4557) by Rohit-BM18
  • add flag for rclone's startup timeout (#4543) by Julio Lopez
  • cleanup cli.repositoryAccessMode (#4541) by Julio Lopez
  • clarify documentation regarding per-user and per-host (#4512) by blenderfreaky
  • create cache marker in log directories (#4517) by Julio López
  • set build info version and info when not set (#4498) by Julio López
  • misc cleanups in internal/diff (#4484) by Julio López
  • add details to persistent password error message (#4480) by Julio López
  • add newline after policy export output (#4476) by Julio López
  • New Feature compute snapshot diff stats (#4444) by Rohit-BM18
  • diff test (#4422) by Julio López

KopiaUI App

  • adjust handling of default repository (#4561) by remigius42

General Improvements

  • cleanup forbidigo linter config (#4540) by Julio Lopez
  • cleanup linter config (#4538) by Julio Lopez
  • avoid removing error cause (#4536) by Julio Lopez
  • enable wsl for all go files (#4524) by Matthieu MOREL
  • cleanup a few tests (#4519) by Julio Lopez
  • leverage os.CreateTemp (#4513) by Julio López
  • minor cleanups and other nits (#4507) by Julio López
  • tempfile.Create on Linux (x64/arm64) (#4504) by Julio López
  • use correct error in call to errors.Wrap (#4477) by alingse
  • prevent infinite loop while resolving ignore file symlinks (#4413) by Julio López

Repository

  • New Feature role assumption for S3 storage (#4182) by ashmrtn

Server

  • add empty line between headers and body in email payload (#4545) by Julio Lopez
  • prevent maintenance task on read-only repos (#4408) by Julio López

Snapshots

  • extracted snapshot.FindPreviousManifests() (#4453) by Jarek Kowalski
  • refactored uploader into separate package (#4450) by Jarek Kowalski

Storage Providers

  • human-friendly persistence of role durantion (#4546) by Julio Lopez
  • New Feature Azure Blob client certificate authentication (#4535) by Julio Lopez

CI/CD

  • fix HTMLUI changelog (#4579) by Jarek Kowalski
  • auto-generate clean htmlui changelog (#4578) by Jarek Kowalski
  • upgrade Go toolchain to 1.23.9 (#4568) by Julio Lopez
  • remove exclusion for unused ctx parameters (#4530) by Julio Lopez
  • replace multierr with errors.Join (#4529) by Julio Lopez
  • remove gocritic unnecessaryDefer exclusion (#4525) by Matthieu MOREL
  • enable exptostd linter (#4509) by Julio López
  • utc commit date (#4506) by Julio López
  • bump golangci-lint to v2.1.2 (#4500) by Matthieu MOREL
  • use GH Linux ARM runners (#4367) by Julio López
  • upgrade Go to 1.23 (#4248) by Jarek Kowalski

Graphical User Interface

  • New Feature add max file size field to policy editor (#321) by blenderfreaky
  • New Feature allow creating per-host, per-user and foreign policies (#320) by blenderfreaky
  • Remove misleading asterisk from extension placeholders (#327) by Kian Kasad
  • don't require login and password to allow using SMTP instead of upgrading to SMTPs (#313) by anaxita
  • reformatted all code using prettier (#330) by Jarek Kowalski
  • added eslint (#329) by Jarek Kowalski
  • migrate htmlui framework to vite, because CRA is deprecated (#316) by Jarek Kowalski

v0.19.0

24 Jan 01:49
1f8f728

Choose a tag to compare

Kopia v0.19 improves support for notifications, including:

  • ability to define notification profiles in the web UI/desktop app (in the Preferences tab)
  • notification format tweaks and improvements
  • sending snapshot report notifications from servers

Full change log follows:

Graphical User Interface

  • New Feature upgraded htmlui to the latest version (#4317) by Kopia Builder [bot]
  • New Feature upgraded htmlui to the latest version (#4301) by Kopia Builder [bot]
  • New Feature upgraded htmlui to the latest version (#4300) by Kopia Builder [bot]

KopiaUI App

  • New Feature support for desktop notifications (#4352) by Jarek Kowalski
  • New Feature support for AppArmor on Ubuntu 24.04 (#4318) by Jarek Kowalski

General Improvements

  • reduce verbosity for noisy log message (#4357) by Julio López
  • cleanup symlink tests (#4347) by Julio López
  • New Feature misc notifications improvements (#4319) by Jarek Kowalski

Server

  • ensure server uploads "repodiag" blobs (#4358) by Julio López
  • New Feature emit notifications as JSON to stderr when running under KopiaUI (#4322) by Jarek Kowalski
  • New Feature only log successful authentication events when --log-server-requests is enabled (#4296) by Jarek Kowalski

Notifications

  • New Feature tweak snapshot report template (#4338) by Jarek Kowalski
  • New Feature emit snapshot report notifications in the UI/server (#4323) by Jarek Kowalski
  • New Feature improved notification templates (#4321) by Jarek Kowalski

Dependencies

  • bump codecov/codecov-action to 5.2.0 (#4362) by Julio López
  • bump docker/setup-qemu-action (#4361) by Julio López
  • github.com/Azure/azure-sdk-for-go/sdk/storage/azblob (#4360) by Julio López
  • bump google.golang.org/api (#4356) by dependabot[bot]
  • drop Go patch version to 1.22.0 (#4353) by Julio López
  • upgrade grpc and opentelemetry dependencies (#4354) by Julio López
  • bump the telemetry-dependencies group with 4 updates (#4350) by dependabot[bot]
  • bump the common-golang-dependencies group with 3 updates (#4349) by dependabot[bot]
  • bump github.com/sanity-io/litter from 1.5.5 to 1.5.6 (#4344) by dependabot[bot]
  • bump github.com/mattn/go-colorable from 0.1.13 to 0.1.14 (#4343) by dependabot[bot]
  • bump cloud.google.com/go/storage (#4342) by dependabot[bot]
  • bump github.com/minio/minio-go/v7 from 7.0.82 to 7.0.83 in the common-golang-dependencies group (#4337) by dependabot[bot]
  • bump the kopia-ui-npm-dependencies group (#4327) by dependabot[bot]
  • bump codecov/codecov-action from 5.0.7 to 5.1.2 (#4330) by dependabot[bot]
  • bump docker/setup-buildx-action in the docker group (#4329) by dependabot[bot]
  • bump the github-actions group with 3 updates (#4328) by dependabot[bot]
  • bump github.com/studio-b12/gowebdav from 0.9.0 to 0.10.0 (#4315) by dependabot[bot]
  • bump the common-golang-dependencies group across 1 directory with 8 updates (#4336) by dependabot[bot]
  • bump the common-golang-dependencies group with 4 updates (#4314) by dependabot[bot]
  • bump the telemetry-dependencies group with 4 updates (#4312) by dependabot[bot]
  • bump the common-golang-dependencies group with 4 updates (#4311) by dependabot[bot]
  • bump the common-golang-dependencies group across 1 directory with 3 updates (#4299) by dependabot[bot]
  • bump github.com/prometheus/common (#4298) by dependabot[bot]
  • bump github/codeql-action in the github-actions group (#4286) by dependabot[bot]
  • bump github.com/mocktools/go-smtp-mock/v2 (#4277) by dependabot[bot]
  • bump codecov/codecov-action from 4.6.0 to 5.0.7 (#4287) by dependabot[bot]
  • bump the kopia-ui-npm-dependencies group (#4288) by dependabot[bot]
  • bump github.com/hanwen/go-fuse/v2 from 2.6.4 to 2.7.2 (#4291) by dependabot[bot]
  • bump github.com/minio/minio-go/v7 (#4290) by dependabot[bot]
  • bump github.com/stretchr/testify from 1.9.0 to 1.10.0 (#4275) by dependabot[bot]
  • bump google.golang.org/api (#4274) by dependabot[bot]

v0.18.2

21 Nov 00:13
c70f1a1

Choose a tag to compare

Kopia v0.18.2

Kopia v0.18.2 is a hot fix release which fixes compatibility with repository server clients which were connected using previous versions.

General Improvements

  • New Feature JSON marshaler helper for time.Duration (#4194) by Julio López

Server

  • handle unset password hash version in user profile (#4259) by Julio López

Snapshots

  • New Feature Fix for #2037 Add symlink support for .kopiaignore (#4190) by Mario Camou

Notifications

  • fixed headers for email notifications (#4258) by Jarek Kowalski

Release notes for v0.18:

There are over 240 changes in this release. Huge thanks to all contributors, testers, doc writers and everybody else who helped make this happen.

Full list of changes can be found in: v0.17.0...v0.18.0

Release highlights

Notifications

You can now define notification profiles to be notified whenever errors occur.

  • support for defining notification profiles and templates via CLI (#4034) by Jarek Kowalski
  • send error notifications and snapshot reports (#4233) by Jarek Kowalski
  • improved snapshot reports (#4244) by Jarek Kowalski
  • added API to manipulate notification profiles in the UI - not used yet (#4171) by Jarek Kowalski

Maintenance

Maintenance and manifest management improvements should make working with larger repositories somewhat easier.

  • run epoch maintenance for quick maintenance (#4185) by Julio López
  • allow running quick maintenance with epoch manager (#4198) by Julio López
  • do not run auto-maintenance after a command fails (#4168) by Julio López
  • Reduce memory usage for epoch index compaction (#4139) by lyndon-li
  • Reduce memory allocations during manifest compaction (#4084) by ashmrtn
  • remove ability to enable compaction on index load (#3834) by Julio López
  • Allow extending blob retentions (#4151) by Mike McKay-Dirden

Snapshot/Restore

Improvements for snapshot/restore progress reporting.

  • introduce adaptive estimation mechanism (#4218) by Eugene Sumin
  • Increase restore progress granularity (#3655) by Eugene Sumin

Policies

  • add policy import/export commands to im-/export policies from/to json ([#4020]) by blenderfreaky
  • added support for per-directory splitter overrides (#3887) by Jarek Kowalski
  • Metadata compression config support for directory and indirect content (#4080) by Prasad Ghangal

Server

  • BREAKING CHANGE remove support for HTTP-based repository API (#3745) by Jarek Kowalski
  • add server user set-password-hash command (#3974) by Julio López
  • user add set user-password-hashing-algorithm cli option (#3815) by Sirish Bathina
  • Fix client IPv6 URI generation for gRPC connections (#3830) by Nick

Providers

  • GCS immutability (#4134) by Mike McKay-Dirden
  • info about the B2 S3-compatible endpoint (#3860) by Wyatt Childers
  • upgraded rclone to 1.68.2, fixed Google Drive rclone compatibility (#4249) by Jarek Kowalski

Other Notable Changes

  • cache hard limits flags (#3846) by Wyatt Childers
  • avoid memory bloat in benchmark encryption command (#4213) by Julio López
  • include clock skew in error message (#4186) by Julio López
  • avoid using empty master keys (#3835) by Mark Severson
  • key derivation algorithm for cache encryption (#3799) by Sirish Bathina
  • allow setting key derivation algorithm for format blob (#3779) by Sirish Bathina
  • include parameters in pbkdf2 instantiation (#3811) by Julio López
  • change default number of iterations for PBKDF2 (#3810) by Julio López