mirror of
https://github.com/kevinveenbirkenbach/docker-volume-backup.git
synced 2026-08-20 13:12:48 +00:00
ruff was never wired into this repository: no target, no CI step, no pin. It reported 45 findings across sources and tests, so nothing enforced what the codebase already mostly followed. Adds `make ruff` (check + format --check), `make ruff-fix`, and `make lint` as its alias, and makes `make test` run lint as a fourth parallel spur. The CI workflow calls `make test`, so it is covered there too. The linter is pinned in a `lint` extra: a ruff minor bump changes which rules fire, and with the suite gating on a clean run an unpinned linter would fail it on an unrelated day. The 45 findings are fixed rather than configured away. Three needed a decision instead of the mechanical fix: - The generation timestamp keeps its local wall clock (DTZ005 waived). Generations sort by that name, and UTC would order new ones before the existing ones wherever the offset is positive - "newest generation" is what every restore path selects on. - The per-volume `copy` closure now binds volume_name and vol_dir as default arguments (B023). It only worked because it is called inside the same iteration. - The two CLI top-level handlers keep their blind except (BLE001 waived): turning any failure into exit 1 is what a CLI boundary is for. The two in run.py did not need it and were narrowed to what they actually catch. Also drops the comments that restate the code: the section banners in restore/__main__.py, the filename repeated as line 1 of nine test files, step narration above the statement it narrates, and a block in app.py documenting parameters that had moved to another module. What names a trip-wire stays - the snapshot destination rule, the mysql-binary absence in MariaDB 11 images, the session-scoped FOREIGN_KEY_CHECKS, the spooled temp file for multi-GB dumps, and the negative control that loses its discriminating power if it ever passes. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
38 lines
965 B
TOML
38 lines
965 B
TOML
[build-system]
|
|
requires = ["setuptools>=69", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "backup-docker-to-local"
|
|
version = "3.4.3"
|
|
description = "Backup Docker volumes to local with rsync and optional DB dumps."
|
|
readme = "README.md"
|
|
requires-python = ">=3.9"
|
|
license = { text = "AGPL-3.0-or-later" }
|
|
authors = [{ name = "Kevin Veen-Birkenbach" }]
|
|
|
|
dependencies = [
|
|
"pandas",
|
|
"dirval",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
# Pinned: a ruff minor bump changes which rules fire, and `make test` gates on
|
|
# a clean run, so an unpinned lint would fail the suite on an unrelated day.
|
|
lint = ["ruff==0.16.1"]
|
|
|
|
[project.scripts]
|
|
baudolo = "baudolo.backup.__main__:main"
|
|
baudolo-restore = "baudolo.restore.__main__:main"
|
|
baudolo-seed = "baudolo.seed.__main__:main"
|
|
|
|
[tool.setuptools]
|
|
package-dir = { "" = "src" }
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["src"]
|
|
exclude = ["tests*"]
|
|
|
|
[tool.setuptools.package-data]
|
|
"baudolo.restore.db" = ["*.sql"]
|