Commit graph

9848 commits

Author SHA1 Message Date
Ebuzer Celil Durmaz
6bc41465a4
Add --json flag to borg prune for structured output (#9512)
Some checks failed
Lint / lint (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / security (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
CI / asan_ubsan (push) Has been cancelled
CI / native_tests (push) Has been cancelled
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Has been cancelled
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Has been cancelled
CI / vm_tests (OmniOS, false, omnios, r151056) (push) Has been cancelled
CI / vm_tests (OpenBSD, false, openbsd, 7.8) (push) Has been cancelled
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Has been cancelled
CI / windows_tests (push) Has been cancelled
prune: add --json option, fixes #9222

Enable programmatic extraction of prune/keep decisions via
structured JSON output, instead of parsing log message text.

Follows the repo-list --json pattern: outputs a single JSON object
with repository, encryption, and archives array. Each archive
includes pruned (bool), rule, and rule_number fields.
2026-03-20 21:03:01 +01:00
TW
8eff8270c0
Merge pull request #9525 from ThomasWaldmann/remove-backslash-assertion
Some checks failed
Lint / lint (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / security (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
CI / asan_ubsan (push) Has been cancelled
CI / native_tests (push) Has been cancelled
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Has been cancelled
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Has been cancelled
CI / vm_tests (OmniOS, false, omnios, r151056) (push) Has been cancelled
CI / vm_tests (OpenBSD, false, openbsd, 7.8) (push) Has been cancelled
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Has been cancelled
CI / windows_tests (push) Has been cancelled
patterns: allow backslashes in paths, fixes #9518
2026-03-19 18:56:31 +01:00
Thomas Waldmann
2ac51d71cf
patterns: allow backslashes in paths, fixes #9518
On all POSIX systems, a backslash is a normal character in filenames and not a path separator.
2026-03-19 17:41:51 +01:00
TW
742978911c
Merge pull request #9501 from ebuzerdrmz44/fix/transfer-cwd-metadata
Some checks are pending
Lint / lint (push) Waiting to run
CI / lint (push) Waiting to run
CI / security (push) Waiting to run
CI / asan_ubsan (push) Blocked by required conditions
CI / native_tests (push) Blocked by required conditions
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Blocked by required conditions
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Blocked by required conditions
CI / vm_tests (OmniOS, false, omnios, r151056) (push) Blocked by required conditions
CI / vm_tests (OpenBSD, false, openbsd, 7.8) (push) Blocked by required conditions
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Blocked by required conditions
CI / windows_tests (push) Blocked by required conditions
CodeQL / Analyze (push) Waiting to run
Fixes #9495 preserve cwd archive metadata
2026-03-19 10:42:45 +01:00
ebuzerdrmz44
6b51f36569 passing black lint 2026-03-18 16:15:30 +03:00
ebuzerdrmz44
440b7039af addressing review 2026-03-18 16:02:34 +03:00
ebuzerdrmz44
6a3158729f about issue 2026-03-18 02:00:21 +03:00
TW
be640e982f
Merge pull request #9348 from trxvorr/fix-9339-msys2-paths
Some checks failed
Lint / lint (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / security (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
CI / asan_ubsan (push) Has been cancelled
CI / native_tests (push) Has been cancelled
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Has been cancelled
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Has been cancelled
CI / vm_tests (OmniOS, false, omnios, r151056) (push) Has been cancelled
CI / vm_tests (OpenBSD, false, openbsd, 7.8) (push) Has been cancelled
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Has been cancelled
CI / windows_tests (push) Has been cancelled
archiver: warn about MSYS2 path translation, fixes #9339
2026-03-17 15:37:13 +01:00
TW
ee2bb95020
Merge pull request #9493 from borgbackup/dependabot/github_actions/actions-0bdddc0270
Some checks are pending
Lint / lint (push) Waiting to run
CI / lint (push) Waiting to run
CI / security (push) Waiting to run
CI / asan_ubsan (push) Blocked by required conditions
CI / native_tests (push) Blocked by required conditions
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Blocked by required conditions
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Blocked by required conditions
CI / vm_tests (OmniOS, false, omnios, r151056) (push) Blocked by required conditions
CI / vm_tests (OpenBSD, false, openbsd, 7.8) (push) Blocked by required conditions
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Blocked by required conditions
CI / windows_tests (push) Blocked by required conditions
build(deps): bump psf/black from 26.3.0 to 26.3.1 in the actions group
2026-03-17 12:53:10 +01:00
TW
ced8d93d8f
Merge pull request #9492 from borgbackup/dependabot/pip/requirements.d/pip-dependencies-5816b45d2e
build(deps): bump the pip-dependencies group in /requirements.d with 2 updates
2026-03-17 12:52:31 +01:00
dependabot[bot]
af967dabf0
build(deps): bump psf/black from 26.3.0 to 26.3.1 in the actions group
Bumps the actions group with 1 update: [psf/black](https://github.com/psf/black).


Updates `psf/black` from 26.3.0 to 26.3.1
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](35ea67920b...c6755bb741)

---
updated-dependencies:
- dependency-name: psf/black
  dependency-version: 26.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-17 05:44:57 +00:00
dependabot[bot]
b2cd0b8fdd
build(deps): bump the pip-dependencies group
Bumps the pip-dependencies group in /requirements.d with 2 updates: [pyinstaller](https://github.com/pyinstaller/pyinstaller) and [tox](https://github.com/tox-dev/tox).


Updates `pyinstaller` from 6.18.0 to 6.19.0
- [Release notes](https://github.com/pyinstaller/pyinstaller/releases)
- [Changelog](https://github.com/pyinstaller/pyinstaller/blob/develop/doc/CHANGES.rst)
- [Commits](https://github.com/pyinstaller/pyinstaller/compare/v6.18.0...v6.19.0)

Updates `tox` from 4.34.1 to 4.35.0
- [Release notes](https://github.com/tox-dev/tox/releases)
- [Changelog](https://github.com/tox-dev/tox/blob/main/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/tox/compare/4.34.1...4.35.0)

---
updated-dependencies:
- dependency-name: pyinstaller
  dependency-version: 6.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-dependencies
- dependency-name: tox
  dependency-version: 4.35.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: pip-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-17 05:43:09 +00:00
TW
97b392a6ac
Merge pull request #9486 from ThomasWaldmann/windows-canary-fixes
Some checks are pending
CI / lint (push) Waiting to run
CI / security (push) Waiting to run
CI / asan_ubsan (push) Blocked by required conditions
CI / native_tests (push) Blocked by required conditions
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Blocked by required conditions
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Blocked by required conditions
CI / vm_tests (OmniOS, false, omnios, r151056) (push) Blocked by required conditions
CI / vm_tests (OpenBSD, false, openbsd, 7.8) (push) Blocked by required conditions
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Blocked by required conditions
CI / windows_tests (push) Blocked by required conditions
canary CI job: windows: do it like in ci.yml
2026-03-16 15:31:45 +01:00
Thomas Waldmann
1356aeb8ae
canary CI job: windows: do it like in ci.yml 2026-03-16 15:30:30 +01:00
TW
f12f464099
Merge pull request #9481 from ThomasWaldmann/rel200b21
Some checks failed
CI / lint (push) Waiting to run
CI / security (push) Waiting to run
CI / asan_ubsan (push) Blocked by required conditions
CI / native_tests (push) Blocked by required conditions
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Blocked by required conditions
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Blocked by required conditions
CI / vm_tests (OmniOS, false, omnios, r151056) (push) Blocked by required conditions
CI / vm_tests (OpenBSD, false, openbsd, 7.8) (push) Blocked by required conditions
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Blocked by required conditions
CI / windows_tests (push) Blocked by required conditions
Lint / lint (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Release 2.0.0b21
2026-03-15 19:50:30 +01:00
Thomas Waldmann
2d6d900231
update CHANGES 2026-03-15 17:03:12 +01:00
Thomas Waldmann
5eb2dd5328
canary CI job: use bash shell
Even on Windows.

Also:
- run daily (until all issues have been found / fixed)
- fix trailing blanks.
2026-03-15 17:03:10 +01:00
trxvorr
d7bbcfb98b archiver: warn about MSYS2 path translation, fixes #9339
This adds a runtime warning when running under MSYS2/Git Bash without the necessary environment variables to disable automatic path translation. The documentation is also updated to explain this behavior and how to mitigate it.
2026-03-15 20:54:59 +05:30
Thomas Waldmann
2322d24e91
add .DS_Store to .gitignore 2026-03-15 14:37:51 +01:00
Thomas Waldmann
f12f67a76d
build_usage build_man 2026-03-15 14:37:50 +01:00
TW
1706e0d36b
Merge pull request #9480 from ThomasWaldmann/add-rest-store-support
add REST store support
2026-03-15 14:29:49 +01:00
Thomas Waldmann
a2ea1e9883
add rest store support 2026-03-15 13:19:39 +01:00
TW
93dfcf4565
Merge pull request #9475 from ThomasWaldmann/update-changes-master
Some checks failed
Lint / lint (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / security (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
CI / asan_ubsan (push) Has been cancelled
CI / native_tests (push) Has been cancelled
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Has been cancelled
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Has been cancelled
CI / vm_tests (OmniOS, false, omnios, r151056) (push) Has been cancelled
CI / vm_tests (OpenBSD, false, openbsd, 7.8) (push) Has been cancelled
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Has been cancelled
CI / windows_tests (push) Has been cancelled
update CHANGES
2026-03-13 15:30:48 +01:00
TW
0d784d00d2
Merge pull request #9474 from ThomasWaldmann/use-jsonargparse-release
jsonargparse: pull from pypi, fixes #9460
2026-03-13 15:29:54 +01:00
Thomas Waldmann
d0c5a04a2a
update CHANGES 2026-03-13 15:29:33 +01:00
Thomas Waldmann
2f99890487
jsonargparse: pull from pypi, fixes #9460 2026-03-13 13:12:14 +01:00
TW
a32d9724f0
Merge pull request #9472 from ThomasWaldmann/ci-openbsd78
adapt for OpenBSD 7.8 (CI and setup.py, master)
2026-03-13 11:36:45 +01:00
TW
ff9af9d4d5
Merge pull request #9471 from ThomasWaldmann/ci-timeouts-master
Some checks are pending
CI / lint (push) Waiting to run
CI / security (push) Waiting to run
CI / asan_ubsan (push) Blocked by required conditions
CI / native_tests (push) Blocked by required conditions
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Blocked by required conditions
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Blocked by required conditions
CI / vm_tests (OmniOS, false, omnios, r151056) (push) Blocked by required conditions
CI / vm_tests (OpenBSD, false, openbsd, 7.7) (push) Blocked by required conditions
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Blocked by required conditions
CI / windows_tests (push) Blocked by required conditions
CI timeouts (master)
2026-03-13 00:47:50 +01:00
Thomas Waldmann
b35a76dd3c
adapt for OpenBSD 7.8 (CI and setup.py) 2026-03-13 00:39:13 +01:00
Thomas Waldmann
8ca88165ac
CI: increase timeout, see #9470
Especially OpenBSD with Coverage is rather slow.
2026-03-12 23:59:27 +01:00
TW
20078f5ab8
Merge pull request #9469 from ThomasWaldmann/ci-locked-and-canary
Some checks are pending
Lint / lint (push) Waiting to run
CI / lint (push) Waiting to run
CI / security (push) Waiting to run
CI / asan_ubsan (push) Blocked by required conditions
CI / native_tests (push) Blocked by required conditions
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Blocked by required conditions
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Blocked by required conditions
CI / vm_tests (OmniOS, false, omnios, r151056) (push) Blocked by required conditions
CI / vm_tests (OpenBSD, false, openbsd, 7.7) (push) Blocked by required conditions
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Blocked by required conditions
CI / windows_tests (push) Blocked by required conditions
CI: use locked requirements, add canary job, fixes #9361
2026-03-12 16:56:36 +01:00
Thomas Waldmann
0f1e3f90fe
CI: use locked requirements, add canary job, fixes #9361 2026-03-12 15:01:00 +01:00
TW
463aafde65
Merge pull request #9468 from ThomasWaldmann/tag-validator
Some checks failed
Lint / lint (push) Waiting to run
CI / lint (push) Waiting to run
CI / security (push) Waiting to run
CI / asan_ubsan (push) Blocked by required conditions
CI / native_tests (push) Blocked by required conditions
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Blocked by required conditions
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Blocked by required conditions
CI / vm_tests (OmniOS, false, omnios, r151056) (push) Blocked by required conditions
CI / vm_tests (OpenBSD, false, openbsd, 7.7) (push) Blocked by required conditions
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Blocked by required conditions
CI / windows_tests (push) Blocked by required conditions
CodeQL / Analyze (push) Has been cancelled
enhance tag_validator, fixes #9466
2026-03-12 01:17:07 +01:00
Thomas Waldmann
65de69943e
enhance tag_validator, fixes #9466 2026-03-11 23:11:38 +01:00
TW
7f7e6061fb
Merge pull request #9464 from ThomasWaldmann/create-set-metadata
borg create: add --hostname/--username/--tags
2026-03-11 21:04:45 +01:00
Thomas Waldmann
5f4e921b9a
create: add --tags, fixes #9401
- add `--tags TAG [TAG ...]` option to `borg create` to tag newly created archives.
- validate the tags exactly like `borg tag` does, including checking that any special tags starting with `@` are known `SPECIAL_TAGS`.
- add `test_create_tags` and `test_create_invalid_tags` to ensure proper behavior.
2026-03-11 19:28:56 +01:00
Thomas Waldmann
90f84e7219
create: add --hostname/--username, fixes #9402
- Added `--hostname` and `--username` command-line options to `borg create`
- Updated Archive to capture and store these explicit values, falling back to system defaults
- Added `test_explicit_hostname_and_username` to verify the functionality
2026-03-11 18:21:38 +01:00
TW
a03d1780a5
Merge pull request #9462 from ThomasWaldmann/trailing-sparse-windows-master
Some checks are pending
Lint / lint (push) Waiting to run
CI / lint (push) Waiting to run
CI / security (push) Waiting to run
CI / asan_ubsan (push) Blocked by required conditions
CI / native_tests (push) Blocked by required conditions
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Blocked by required conditions
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Blocked by required conditions
CI / vm_tests (OmniOS, false, omnios, r151056) (push) Blocked by required conditions
CI / vm_tests (OpenBSD, false, openbsd, 7.7) (push) Blocked by required conditions
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Blocked by required conditions
CI / windows_tests (push) Blocked by required conditions
CodeQL / Analyze (push) Waiting to run
fix spurious sparse test fail on win32, fixes #7616
2026-03-11 13:57:56 +01:00
TW
1c75f505d6
Merge pull request #9461 from ThomasWaldmann/fix-with-lock-test-master
fix race condition in test_with_lock, fixes #8810
2026-03-11 13:23:36 +01:00
Thomas Waldmann
871c89bea0
Fix intermittent test_with_lock failure (race condition), fixes #8810.
test_with_lock previously relied on a hardcoded timeout
(`time.sleep(4)`) to ensure the first background command acquired
the repository lock before the second command tried to get it. On
extremely slow CI runners, this was sometimes too short, allowing
the second command to falsely acquire the lock.

This commit replaces the arbitrary sleep with true synchronization:
- The first command now blocks indefinitely using `sys.stdin.read()`.
- The test deterministically waits for lock acquisition by reading
  `p1.stdout.readline()` which guarantees the lock is held.
- After the second command correctly fails, the first command is
  smoothly unblocked and terminated by passing `input=""` to
  `p1.communicate()`.
2026-03-11 11:40:42 +01:00
Thomas Waldmann
6d85812e12
fix spurious sparse test fail on win32, fixes #7616
Python's `os.truncate()` on Windows relies on `SetEndOfFile()`, which does
not initialize the extended disk space with zeroes. This means that
trailing sparse holes simply leave uninitialized garbage data at the end
of the file.

During sparse file extraction, when the very last chunk is a sparse hole,
the VDL (Valid Data Length) is not properly advanced by `os.truncate()`.
As a result, reading from the end of the file fetches random disk garbage
instead of zeroes, causing spurious test failures at boundaries (like
2MB or 8MB) depending on what was in the uninitialized disk sectors.

Fix this by tracking trailing holes and manually writing a single `b"\0"`
byte at the end of the file before truncating on Windows. Writing explicit
data forces NTFS to officially advance the VDL and securely zero-fill the
preceding hole space.

Re-enable `test_sparse_file` on Windows.
2026-03-11 10:58:54 +01:00
Thomas Waldmann
c98e93bc0b
fix race condition in test_with_lock, fixes #8810 2026-03-11 00:13:53 +01:00
TW
3d437d8589
Merge pull request #9413 from ThomasWaldmann/jsonargparse2
Some checks are pending
Lint / lint (push) Waiting to run
CI / lint (push) Waiting to run
CI / security (push) Waiting to run
CI / asan_ubsan (push) Blocked by required conditions
CI / native_tests (push) Blocked by required conditions
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Blocked by required conditions
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Blocked by required conditions
CI / vm_tests (OmniOS, false, omnios, r151056) (push) Blocked by required conditions
CI / vm_tests (OpenBSD, false, openbsd, 7.7) (push) Blocked by required conditions
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Blocked by required conditions
CI / windows_tests (push) Blocked by required conditions
CodeQL / Analyze (push) Waiting to run
use jsonargparse
2026-03-10 23:44:48 +01:00
Thomas Waldmann
4f2f2255c3
create --paths-from-shell-command, fixes #5968
This adds the `--paths-from-shell-command` option to the `create` command, enabling the use of shell-specific features like pipes and redirection when specifying input paths. Includes related test coverage.
2026-03-10 20:16:26 +01:00
Thomas Waldmann
bcce0c13f7
pyproject.toml: pull jsonargparse from main branch zip 2026-03-10 20:16:03 +01:00
Thomas Waldmann
e15547a685
import ActionSubCommands from jsonargparse 2026-03-10 20:15:59 +01:00
Thomas Waldmann
4a6b4130ef
completion: use new get_completion_script method 2026-03-10 18:36:35 +01:00
Thomas Waldmann
f2bdb689c5
improve configuration precedence docs 2026-03-10 18:36:34 +01:00
Thomas Waldmann
cf6fd0769d
use jsonargparse's PositiveInt 2026-03-10 18:36:32 +01:00
Thomas Waldmann
678df16bad
add support for auto-generated environment variables (jsonargparse) 2026-03-10 18:36:31 +01:00