mirror of
https://github.com/kevinveenbirkenbach/docker-volume-backup.git
synced 2026-08-20 13:12:48 +00:00
Release version 5.0.0
This commit is contained in:
40
CHANGELOG.md
40
CHANGELOG.md
@@ -1,5 +1,45 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [5.0.0] - 2026-08-18
|
||||||
|
|
||||||
|
**[5.0.0] - 2026-08-18**
|
||||||
|
|
||||||
|
Breaking:
|
||||||
|
- Library: *BackupException* is now *BackupError* and *VersionMismatch* is now
|
||||||
|
*VersionMismatchError*. Both names violated the convention that an exception
|
||||||
|
class ends in *Error*; the first is imported by six modules, so the rename is
|
||||||
|
atomic across the package.
|
||||||
|
- Library: *backup_dumps_for_volume* and *backup_mariadb_or_postgres* return a
|
||||||
|
*VolumeOutcome* instead of a *(bool, bool)* tuple. The pair could not carry
|
||||||
|
the detected engine, which the caller needs for the manifest.
|
||||||
|
|
||||||
|
New:
|
||||||
|
- Backup: every generation carries a *manifest.json* stating its layout and,
|
||||||
|
per volume, *database* (it held one), *dumped* (a dump was produced) and
|
||||||
|
*engine* (which one was detected). A volume with *database* and no *dumped*
|
||||||
|
was copied as raw engine files — under *--only-sql* that fallback is the
|
||||||
|
documented behaviour, and until now nothing in the finished tree said it had
|
||||||
|
happened. Restoring such a volume replays engine files instead of a dump.
|
||||||
|
- Library: *baudolo.generation* states the generation layout once — *files*,
|
||||||
|
*sql*, the dump suffixes, the manifest name. *BackupPaths*, the dump writer
|
||||||
|
and the volume copier stop spelling them out separately. The module is
|
||||||
|
import-free on purpose, so a consumer can read a manifest with nothing but
|
||||||
|
*json* on a host where this package is not installed.
|
||||||
|
|
||||||
|
Changed:
|
||||||
|
- Build: the test targets no longer depend on *clean*. *clean* is
|
||||||
|
*git clean -fdX .*, so running the unit tests deleted every git-ignored file
|
||||||
|
in the working tree. It was compensating for a missing *.dockerignore*, which
|
||||||
|
now keeps *__pycache__*, egg-info and build output out of the image context
|
||||||
|
where that belongs. *clean* remains available as its own target.
|
||||||
|
- Lint: a ruff configuration is declared. The package ran on ruff's defaults
|
||||||
|
while its consumer held itself to a far wider selection; measured against
|
||||||
|
that selection the tree had 224 findings and now has none. Includes a full
|
||||||
|
*os.path* to *pathlib* migration, with two deliberate exceptions: *abspath*
|
||||||
|
stays where *Path.resolve()* would follow symlinks and let a symlinked volume
|
||||||
|
test as inside the snapshot subject, and the rsync trailing separator is kept
|
||||||
|
explicit where *Path* would drop it.
|
||||||
|
|
||||||
## [4.0.0] - 2026-08-17
|
## [4.0.0] - 2026-08-17
|
||||||
|
|
||||||
Breaking:
|
Breaking:
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "backup-docker-to-local"
|
name = "backup-docker-to-local"
|
||||||
version = "4.0.0"
|
version = "5.0.0"
|
||||||
description = "Backup Docker volumes to local with rsync and optional DB dumps."
|
description = "Backup Docker volumes to local with rsync and optional DB dumps."
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.9"
|
requires-python = ">=3.9"
|
||||||
|
|||||||
Reference in New Issue
Block a user