🌸 Easter release 🥚
This release delivers a preview of a new Client/Server mode, Fish shell completions, Windows scheduling enhancements, and several dependency and toolchain upgrades.
Please note the documentation for the Client/Server mode is not available yet.
New Features
Client/Server Mode [PREVIEW]
- Remote configuration delivery: resticprofile can now send a configuration profile to a remote server, enabling centralized management of backup profiles across multiple hosts.
- A new
remotesection in the configuration allows specifying the server address and credentials for the client/server communication.
Fish Shell Completions
- Fish shell support: Added shell completion script generation for the Fish shell (
--fish-completionflag in thegeneratecommand).
Windows Scheduling: Start When Available
- New
schedule-start-when-availableoption: When a scheduled task is missed (e.g. because the machine was off), Windows Task Scheduler will now start it as soon as the machine is available again.
Bug Fixes
Scheduling Fixes
- Battery power: Fixed a bug where Windows Task Scheduler tasks were incorrectly set to not start when running on battery power, regardless of battery state.
- launchd log paths: When
schedule-logis configured in a profile, resticprofile now omits theStandardOutPath/StandardErrorPathentries from the launchd plist, preventing the creation of empty log files.
Maintenance and Toolchain
- Upgraded to Go 1.26
- Upgraded golangci-lint to v2
⚠️ Breaking changes ⚠️
This release introduces two breaking changes in resticprofile exit codes during a failure:
Failure because of low memory
When resticprofile failed to start because the memory remaining is under the threshold in the configuration, the exit code is now 5 and no longer 1
Failure to find any restic binary
When resticprofile failed to start because it couldn't find any restic binary, it now fails with exit code 6 and no longer 1
New contributors
Thanks to @gr1da, @wyattjoh, @hollowhemlock and other contributors for their help in this release 🎉
Changelog
- 4181598 Add Fish Shell Completions (#601)
- 81a47cf Client/Server mode: sending configuration profile to a remote server (#377)
- a64f02c Feature/589 windows start when available (#590)
- 736da3f Fix typo in docker docs (#566)
- e2ffdfb Fix windows scheduler flaky tests (#533)
- ca2ff90 Upgrade golangci lint to v2 (#562)
- 9653541 build without fuse code on unsupported platforms
- 1906875 chore: update GitHub Actions workflows and dependencies, remove SonarCloud integration (#608)
- 7bfce0b chore: update GitHub Actions workflows and improve test coverage (#612)
- cc4cec9 chore: upgrade docker/setup-qemu-action to v4 in workflows
- e03d9cd chore: upgrade goreleaser action to v7 in workflows
- 2c47715 chore: upgrade packages
- cc27dd2 chore: upgrade to go 1.26 (#610)
- fd44cf6 ci: update GitHub Actions workflow for documentation build and deployment (#618)
- 4d2a7b5 code modernisation (#611)
- 3c2965e don't check broken links on stackoverflow, it returns too many 403 errors (anti bot detection)
- dd15110 fix(schedule): allow task scheduling when on battery power (#609)
- b4984af fix(schedule): omit launchd log paths when schedule-log is configured (#600)
- 00f3f2d refactor: remove Node.js dependency and update JSON schema tests to use Go-based validation (#563)
- 70fd44b refactor: replace magic numbers with named exit codes (#615)
- c219cf1 refactor: simplify condition for including description in completions