Releases: netinvent/npbackup
The Backups that Man (will) Do
Features
--repo-name
and--repo-group
now accept multiple (comma separated) repos / groups- Add new GUI for repo statistics
- Added raw repo statistics
- Allow forgetting multiple snapshots at once using
--forget
with comma separated snapshot-ids
Fixes
- Avoid panic when backend doesn't output anything
- Allow critical errors in group operation since it should only fail current operation
- Fixed a regression with missing exec time in backup process
Misc
- Updated Grafana dashboard
- Updated KVM backup script
- Improved
--json
output to include optional errors - Don't emit warnings when running in
--dry-run
mode - Deprecated
--check-quick
,--check-full
in favor of--check quick|full
- Deprecated
--repair-index
,--repair-snapshots
,--repair-packs
in favor of--repair index|snapshots|packs
- Deprecated
--group-operation
since--repo-name
and--repo-group
now accept multiple repos / groups
two release candidates a day !
Features
- Add
--check-config-file
parameter - Refactored pre/post exec hooks so that we always get metrics regardless of their execution state
Fixes
- Fixed a regression introduced in rc4 preventing
--dry-run
to work - Fixed a regression with missing exec time in backup process
Misc
- Refactored repo anonymiser code for future enhancements
Tasked to near release
Another rc release.
Features
- Add task creation for different repo / repo groups
- Config window now shows config file name in window title
Fixes
- Fixes backup task creation under Linux
- Fixes task creation under Windows introduced with last rc7
Misc
- Windows x64 builds updated from Python 3.11 to Python 3.12
- Changed default upgrade log file location
Infamous JSON error fix
So this release candidate adresses a couple of minor issues of which the most annoying was introduced in last rc.
- Bogus json decode messages introduced with RC6 newer json decoder. Those error messages weren't a stopper, but annoying
- Missing on the fly output in GUI introduced with RC5
- Fixed repo unlocking didn't work since it first checked if repo is locked
- Fixed error message propagation to json output didn't work properly
- Improve housekeeping error messages
Be quick or be dredd
Yet another release candidate.
While discussing with @markft in issue #87 about GUI performance which has been adressed in latest RC5, we also discussed memory usage.
I've switched the standard json
library to msgspec
, and use msgspec.struct
internal data representation, for a whopping 40% memory usage improvement in restore window.
Since msgspec
is only available for Python 3.8+, there are now legacy builds using Python 3.7, and fast Python 3.9+ builds that leverage msgspec
. These builds also highly improve GUI responsiveness on Linux, since they use a newer Tcl/tk implementation.
On linux, the legacy builds require glibc >= 2.17, and the newer builds require glibc >= 2.34.
On windows, the legacy x86 builds work on vista+, and the newer x64 builds work on anything windows 7+.
Features
- Added exec time to prometheus metrics
- Added cancel button for GUI execution window
- Added heartbeat logging every hour
- Symlinks and irregular files are now shown in restore GUI
Misc
- Minor GUI improvements and more clear log messages
- EV Signature is now part of compilation process
This is it (second edition)
Yet another release candidate !
But hey, restic 0.17.1 came out, with some interesting fixes, so here we are.
Also implemented two new commands (that's fairly easy now and shouldn't break anything).
Metrics and auto upgrade have been reworked as part of what we missed before going final.
Also, the Grafana Dashboard has been updated for new metrics.
Features
- Improved restore GUI UX
- Implemented
recover
command - Implemented
repair packs
command - Implemented config file identification via CRC32
- Metrics
- Metrics are now sent for every action, including upgrade
- Merged oper and state metrics into one single metric
- Updated Grafana Dashboard for new metrics
Fixes
- Fix upgrade client, since we don't ship single binaries anymore
- Don't report auto upgrades as errors when self invoked (prevents errors when upgrade server is not reachable, prefer prometheus metrics for reporting)
- Hide repository uri in logs
- Fixed snapshot date parsing in GUI which is not platform agnostic
- Fixed exclude file search expansion implemented in last rc
Misc
- Added VSS mountpoints windows_excludes
- Reworded some logs
Interim build
This is a test build to validate various enhancements and restic 0.17.1 support
The GUI, the bad and the ugly
So this is hopefully the last release candidate before RTM.
Usually, at this stage, we wouldn't add new features, but restic 0.17 made a killer feature that was quite easy to implement.
The feature allows to run commands and backup their stdout, while getting the error codes from said command (I look at you mysqldump !)
It has been implemented as backup_opts.source_type: stdin_from_command
and backup_opts.stdin_from_command: your command
parameters in the config file.
Another minor feature is --housekeeping
CLI parameter which is just a quick shorthand for existing code.
Finally, and since we have housekeeping, a new task creation entry was necessary, in order to fully appreciate it ;)
As usual for the last RCs, CLI didn't really need a lot of love (it's used for more than 100 workloads), but GUI did.
Getting the GUI right si really a painfull experience, but the payout is enough when it comes to quickly write config files that later can be used on headless servers.
Anyway, here's the full list of changes since RC3
- Features
- Implement --stdin-from-command restic function
- Implement --housekeeping shorthand for --check, --forget & --prune
- Improve task creation
- Implement housekeeping task creation
- Fix double task creation on linux
- GUI fixes
- Fix slow GUI when lots of snapshots exists, thanks to @markft
- Fix loading alternative config file, also try to load default config files with absolute paths
- Fix prometheus labels not saving
- Fix reloading config UX
- Improve group inheritance by removing identical group/repo values from repo config
- Allow the GUI to act as CLI with
--run-as-cli
argument - Improve UX by allowing non existent repos to not drop errors on first load
- Default logs to current dir for Windows
- Reintroduce --debug parameter on top of _DEBUG=true
- Check source type before launching backup
Interim build
This is a quick and dirty interim build for internal testing purposes.
The release I wanted
This third release candidate of NPBackup v3 is mostly done because we shifted from PySimpleGUI to FreeSimpleGUI framework.
Other minor issues resolved:
- Added special
__all__
argument to --repo-name for group operations - Fixed group operations when bogus repo names / group names were given
- Better error messages when missing subject for restic commands