Commit Graph
3167 Commits
Author SHA1 Message Date
Dan Helfman f60007545b Update automated tests (#1122). 2025-09-12 12:54:38 -07:00
Dan Helfman 947dc77a50 Always error and exit when the borgmatic runtime directory overlaps with the configured excludes (#1122). 2025-09-12 11:21:11 -07:00
Dan Helfman 21ab371e9f Clarify documentation about ZFS, Btrfs, and LVM snapshotting when a separate filesystem is mounted in the source directory. 2025-09-09 16:05:34 -07:00
Dan Helfman b340ede9ac Merge branch 'main' into data-source-dump-metadata 2025-09-09 09:22:54 -07:00
Dan Helfman 82e962eae2 Include bootstrapped configuration files in spot check (#1143).
Reviewed-on: https://projects.torsion.org/borgmatic-collective/borgmatic/pulls/1143
2025-09-09 16:19:20 +00:00
Dan Helfman 85b198feb2 Get automated tests passing (#1143). 2025-09-08 23:16:27 -07:00
Dan Helfman e3f4b79e76 Fix the "spot" check to include borgmatic configuration files that were backed up to support the "bootstrap" action (#1133). 2025-09-08 12:16:59 -07:00
Dan Helfman 627898cc23 Add tests for new code. 2025-09-05 16:02:23 -07:00
Dan Helfman 46381175ef Code formatting. 2025-09-05 14:33:40 -07:00
Dan Helfman d7205694db Get existing restore tests passing (and add one test for the dumps metadata present case). 2025-09-05 14:21:53 -07:00
Dan Helfman 9bbce71673 Fix tests for database hooks. 2025-09-04 10:36:00 -07:00
Dan Helfman 6a1f2a4c86 Add SQLite dump metadata. 2025-09-03 20:20:11 -07:00
Dan Helfman 5a45a0cbc0 Add NEWS entry for dumps metadata. 2025-09-03 19:35:13 -07:00
Dan Helfman 03e3e0f5dd Add MongoDB dumps metadata. 2025-09-03 19:31:54 -07:00
Dan Helfman d40f728410 Add MySQL dump metadata. 2025-09-03 19:21:47 -07:00
Dan Helfman 049132377c Add MariaDB dumps metadata. 2025-09-03 18:54:49 -07:00
Dan Helfman fca647b3ae Fix broken fallback to dump path introspection when dumps.json is missing. Also add additional logging. 2025-09-03 16:52:26 -07:00
Dan Helfman e02c4be493 Add error handling docstrings. 2025-09-03 14:52:53 -07:00
Dan Helfman b45c9628e7 Error handling. 2025-09-03 14:49:09 -07:00
Dan Helfman 09d702ee88 Merge branch 'main' into data-source-dump-metadata 2025-09-03 10:21:18 -07:00
Dan Helfman eb971694bb PR feedback. 2025-09-03 10:20:53 -07:00
Dan Helfman f1a008ee18 Rephrase NEWS entry for clarity (#1139). 2025-09-02 09:47:53 -07:00
Dan Helfman 563cb8441e When making HTTP requests in monitoring hooks, set "borgmatic" as the user agent (#1139). 2025-09-01 16:51:33 -07:00
Dan Helfman 030abfa13c Read and write data source dump metadata files within an archive. 2025-08-27 15:53:42 -07:00
Dan Helfman 36d6619099 Create LVM snapshots as read-write to avoid an error when snapshotting ext4 filesystems with orphaned files that need recovery (#1126). 2025-08-11 10:01:13 -07:00
Dan Helfman 5f468c4261 Use borg compact --dry-run in Borg 1.2.9+. 2025-08-04 21:41:19 -07:00
Dan Helfman 88ecb96b98 Document systemd configuration changes for the ZFS filesystem hook (#1114). 2025-07-18 21:32:49 -07:00
Dan Helfman 099d30f044 Only run Python 3.9 and 3.13 in end-to-end tests since 3.11 has issues in Alpine. 2025-07-18 17:25:31 -07:00
Dan Helfman 5439e616f8 Hopefully fix end-to-end tests broken due to uv changes. 2025-07-18 17:09:48 -07:00
Dan Helfman 2d8b455e44 Switched from pipx to uv for installing development tools, and added tox-uv for speeding up test environment creation. 2025-07-18 15:16:45 -07:00
Dan Helfman 9a80fec91b When running tests, use Ruff for faster and more comprehensive code linting and formatting. 2025-07-17 23:24:58 -07:00
Dan Helfman ea72f1c367 Fix a bug in which Borg hangs during database backup when different filesystems are in use (#1118). 2025-07-15 13:05:03 -07:00
Dan Helfman 34f677dba1 Add a flake8 plugin that enforces a blank line after if/for/while/with/try blocks. 2025-06-30 22:04:05 -07:00
Dan Helfman 3eed3191e8 Add a flake8 extension to tests to detect commented out code. 2025-06-30 21:42:38 -07:00
Dan Helfman 1a33e5fa1e Bump version for release. 2.0.7 2025-06-30 18:04:06 -07:00
Dan Helfman c2d2ce18a2 Clarify documentation about interacion between "--repository" flag and command hooks (#1112). 2025-06-30 18:02:02 -07:00
Dan Helfman 1b62be0949 Fix a bug in which quoted "extra_borg_options" values containing spaces are passed to Borg incorrectly. Add a "--comment" flag to the "create" action for creating an archive with a comment (#1108). 2025-06-30 16:16:53 -07:00
Dan Helfman 392fbcd19f Add missing Bandit configuration file. 2025-06-27 23:00:35 -07:00
Dan Helfman 0d54fda27a Use the Bandit security analysis tool when running tests.
SECURITY: Add timeouts to all monitoring hooks to prevent hangs on network requests.
SECURITY: For the "spot" check, use a more secure source of randomness when selecting paths to check.
2025-06-27 22:30:00 -07:00
Dan Helfman 1e6fba6e99 Ignore Btrfs subvolumes whose read-only status can't be determined (#1048). 2025-06-27 19:41:14 -07:00
Dan Helfman a1b14d58af Support Btrfs subvolume paths in "source_directories" even when the subvolume is mounted elsewhere (#1043).
Reviewed-on: https://projects.torsion.org/borgmatic-collective/borgmatic/pulls/1113
2025-06-28 02:23:19 +00:00
Dan Helfman 6058efbaac Clarify NEWS entry (#1043). 2025-06-27 19:21:10 -07:00
Dan Helfman 05b34d4b56 Fix unit/integration tests and add coverage (#1043). 2025-06-27 12:37:03 -07:00
Dan Helfman 5f6173ab24 Clarify Btrfs subvolume path vs. mount point documentation (#1043). 2025-06-25 22:43:14 -07:00
Dan Helfman 6f92ae2462 Add documentation for "raw" Btrfs subvolume paths (#1043). 2025-06-25 22:34:14 -07:00
Dan Helfman df383be8a2 Merge branch 'main' into btrfs-raw-subvolumes 2025-06-25 15:37:56 -07:00
Dan Helfman 11da378304 Update GitHub pull request template, because it also shows up on Gitea apparently. 2025-06-25 15:37:20 -07:00
Dan Helfman 65ce7309f1 Initial WIP-level work on supporting snapshots of "raw" Btrfs subvolumes. 2025-06-25 15:29:03 -07:00
Dan Helfman 0cae581014 Add fix for failing database hook creating archive to NEWS (#1032). 2025-06-25 09:27:38 -07:00
Tobias SchlatterandDan Helfman 123f8958f6 Create a checkpoint archive first with streaming processes (#1032).
This ensures that if a streaming process fails, we do not create a
real (i.e. non-checkpoint archive), (fixes #1032).

Without this, there is a race condition where borg already creates an
archive before borgmatic can kill it.

Tested locally (with `pipx install --editable .`):

```sh
borgmatic --config config.yaml create
borgmatic --config config.yaml create --json
```

## Hold up!

Thanks for your contribution. Unfortunately, we don't use GitHub pull requests to manage code contributions to this repository (and GitHub doesn't have any way to disable pull requests entirely). Instead, please see:

https://torsion.org/borgmatic/#contributing

... which provides full instructions on how to submit pull requests. You can even use your GitHub account to login.

Reviewed-on: https://projects.torsion.org/borgmatic-collective/borgmatic/pulls/1102
Reviewed-by: Dan Helfman <witten@torsion.org>
Co-authored-by: Tobias Schlatter <schlatter.tobias@gmail.com>
Co-committed-by: Tobias Schlatter <schlatter.tobias@gmail.com>
2025-06-25 16:24:07 +00:00