TW
dd67bf371f
Merge pull request #9800 from ThomasWaldmann/requirements-fixes-master
...
Requirements fixes (master)
2026-06-23 10:45:37 +02:00
Thomas Waldmann
5237f9a002
setuptools-scm: tag.strict = false
2026-06-23 09:46:25 +02:00
Thomas Waldmann
84281c3670
requirements.d/development.*: remove requirements that are in pyproject.toml build-system
2026-06-23 09:46:22 +02:00
Thomas Waldmann
4fdf38ebcf
setuptools-scm: be consistent with dash and toml requirement
2026-06-23 09:46:20 +02:00
Thomas Waldmann
aa9a4c1416
blake3: exclude 1.0.9 release
...
1.0.9 does not build on windows/msys2/mingw.
2026-06-23 09:46:14 +02:00
TW
cf6d70fd61
Merge pull request #9803 from borgbackup/dependabot/github_actions/actions-d9db5a10fc
...
build(deps): bump the actions group with 2 updates
2026-06-23 09:44:04 +02:00
TW
cb6b4a32d5
Merge pull request #9802 from borgbackup/dependabot/pip/requirements.d/pip-dependencies-7be846ec3e
...
build(deps-dev): bump coverage from 7.14.0 to 7.14.3 in /requirements.d in the pip-dependencies group
2026-06-23 09:43:31 +02:00
dependabot[bot]
ea6ef5ffbf
build(deps): bump the actions group with 2 updates
...
Bumps the actions group with 2 updates: [actions/checkout](https://github.com/actions/checkout ) and [cross-platform-actions/action](https://github.com/cross-platform-actions/action ).
Updates `actions/checkout` from 6 to 7
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v6...v7 )
Updates `cross-platform-actions/action` from 1.2.0 to 1.3.0
- [Release notes](https://github.com/cross-platform-actions/action/releases )
- [Changelog](https://github.com/cross-platform-actions/action/blob/master/changelog.md )
- [Commits](https://github.com/cross-platform-actions/action/compare/v1.2.0...v1.3.0 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
- dependency-name: cross-platform-actions/action
dependency-version: 1.3.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-23 05:43:34 +00:00
dependabot[bot]
7e66e1e1e1
build(deps-dev): bump coverage
...
Bumps the pip-dependencies group in /requirements.d with 1 update: [coverage](https://github.com/coveragepy/coveragepy ).
Updates `coverage` from 7.14.0 to 7.14.3
- [Release notes](https://github.com/coveragepy/coveragepy/releases )
- [Changelog](https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst )
- [Commits](https://github.com/coveragepy/coveragepy/compare/7.14.0...7.14.3 )
---
updated-dependencies:
- dependency-name: coverage
dependency-version: 7.14.3
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: pip-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-23 05:42:48 +00:00
TW
840de26662
Merge pull request #9798 from mr-raj12/pack-files-remove-objects-helper
...
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 (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
repository: add replace_pack helper
2026-06-22 17:10:57 +02:00
Mrityunjay Raj
bf36090497
repository: compact_pack takes sets, unifies keep/drop loop, renames kept
...
keep_ids/drop_ids are now keyword-only sets; one loop over their union
replaces two; survivors renamed to kept; intersection asserted empty.
2026-06-22 19:05:17 +05:30
Mrityunjay Raj
a56518e41f
repository: compact_pack takes keep and drop ids, owns the index update
...
Rename replace_pack to compact_pack; it now repoints kept and deletes dropped
index entries, asserting keep + drop tile the whole pack. refs #8572 #8514
2026-06-22 17:34:11 +05:30
Mrityunjay Raj
55dc65c1c4
repository: clarify replace_pack docs and cover the keep-all case
...
Document the old_pack_id return and the caller's index-durability duty, reword
the delete-old-last rationale, and test the reproduced-pack skip and survivor sort.
2026-06-22 05:15:53 +05:30
Mrityunjay Raj
e2c7a2c8e0
repository: add replace_pack to keep a subset of a pack's objects, refs #8572 #8514
...
Copies the kept objects into a new pack via store.defrag, repoints their chunk
index entries, and deletes the old pack; an empty keep set drops the pack whole.
2026-06-22 04:41:13 +05:30
TW
17c3d67624
Merge pull request #8775 from Goddesen/prune-timely-by-interval
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 (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
2026-06-21 11:59:17 +02:00
Hugo Wallenburg
ab2d78b84a
Tests keep-all with shorter archive span
...
33333 days in the past is before 1970 and may not be representable on
some platforms. 3333 is just ~9 years.
2026-06-21 10:00:00 +02:00
TW
c2b325b76f
Merge pull request #9796 from mr-raj12/fix-flaky-windows-corruption-offset
...
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 (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
testsuite: corrupt archive metadata mid-object to fix flaky windows check test
2026-06-20 22:40:35 +02:00
Mrityunjay Raj
abd3f6a4fb
testsuite: corrupt archive metadata mid-object to fix flaky windows check test
...
The last byte can land on store-level framing instead of the authenticated payload, making test_manifest_rebuild_corrupted_chunk fail intermittently on Windows.
2026-06-20 22:16:07 +05:30
Hugo Wallenburg
c0a69611a8
Renames --since to --from
2026-06-20 18:36:59 +02:00
Hugo Wallenburg
fe0d2d117d
Adds a specific keep=all test
2026-06-20 18:35:34 +02:00
Hugo Wallenburg
89c6a2cccc
Improves interval example
...
Makes specific notes on week numbers, clears some ambiguity in the
yearly candidate wording, and more.
The matching test was previously missing assertions on the weekly
archives, now fixed along with better explanations.
2026-06-20 18:09:41 +02:00
Hugo Wallenburg
378f7c27cc
Moves keep-all test
...
Moves it out of the nicely organized increasing retention rule tests.
2026-06-20 18:09:40 +02:00
Hugo Wallenburg
790871ee59
Comments on zfill
...
While the exact stated reason doesn't currently apply in the code, I
believe that any future work and debugging is aided by this ordering
guarantee.
2026-06-20 18:09:40 +02:00
Hugo Wallenburg
79388320c2
Makes archive interval timestamp check inclusive
2026-06-20 18:09:40 +02:00
Hugo Wallenburg
47d88682c1
Fixes pytest warning for non-list in parametrize
2026-06-20 18:09:40 +02:00
Hugo Wallenburg
01aff2b7e2
Sets base_timestamp for prune only once
2026-06-20 18:09:39 +02:00
Daniel Rudolf
1073da9eb1
Refactor the interval-based pruning example
...
Co-Authored-By: Hugo Wallenburg <hugo@hugow.no>
2026-06-20 18:09:39 +02:00
Hugo Wallenburg
d9b35f2eeb
Simplifies retention granularity ordering check
2026-06-20 18:09:39 +02:00
Hugo Wallenburg
304a2fa5b9
Removes --keep-last and --keep-within, superseded by --keep
2026-06-20 18:09:38 +02:00
Hugo Wallenburg
d9f9f1dd45
Updates prune parser epilog to match new int/interval behavior
...
Along with reordering and improvements.
2026-06-20 18:09:38 +02:00
Hugo Wallenburg
4382b3a8f2
Updates usage docs for prune and new int/interval handling
2026-06-20 18:09:38 +02:00
Hugo Wallenburg
7948625442
Fixes prune error tests with binary borg
2026-06-20 18:09:37 +02:00
Hugo Wallenburg
f7a848ed6f
Rewords original prune example with more precise terminology
2026-06-20 18:09:37 +02:00
Hugo Wallenburg
318c53fcf9
Adds full-scale example using pruning intervals
...
Also rewrites some of the older example to match terminology and wording
from the newer example.
2026-06-20 18:09:37 +02:00
Hugo Wallenburg
369fd466f1
Fixes timestamp parsing error on Python 3.10
2026-06-20 18:09:36 +02:00
Hugo Wallenburg
72e72dc431
Adds 'prune --since', base timestamp to prune from
...
A flag to explicitly "save" all archives older than a certain timestamp,
and to function as a base timestamp from which to base interval
timedelta calculations. Allows for precise time interval manipulation
for superusers and as a bonus simplifies time-based testing and
alleviates the need for an external dependency to freeze time in test.
Includes some refactoring of do_prune for logical flow & naming that
came up while iterating on these changes.
2026-06-20 18:09:36 +02:00
Hugo Wallenburg
eca719aeec
Assert output format without dry run in basic pruning test
2026-06-20 18:09:36 +02:00
Hugo Wallenburg
4bf60336b2
Adds optional interval support for all prune retention flags
...
Support is added for setting prune retention with either an int (keep n
archives) or an interval (keep within). This works much like
--keep-within currently does, but extends support to all retention
filters.
Additionally adds a generic --keep flag to take over (or live alongside)
both --keep-last and --keep-within. --keep-last is no longer an alias of
--keep-secondly, now keeps archives made on the same second.
Comparisons against archive timestamp are made to use local timezone
instead of UTC. Should be equal result in practice, but allows for
easier testing with frozen local time.
2026-06-20 18:09:36 +02:00
Hugo Wallenburg
5f07e76ef7
Adds int_or_interval format parser
...
Accepts either int or interval, first tries parsing int then tries
parsing as interval if that fails. Returns a timedelta for easy date
math later. Now allows intervals of length 0 as a 0-length timedelta is
perfectly fine to work with.
2026-06-20 18:09:35 +02:00
TW
5eb194cdc6
Merge pull request #9795 from mr-raj12/packreader-class
...
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 (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
repository: add PackReader to walk pack object headers
2026-06-20 17:26:21 +02:00
Mrityunjay Raj
ccf8084cc4
repository: address review, build PackReader key from pack_id and detect in-memory packs in iter_headers
2026-06-20 19:32:57 +05:30
Mrityunjay Raj
e0d781d50c
repository: add PackReader to walk pack object headers, refs #8476
...
Move pack-level header iteration out of RepoObj into a PackReader class and use it to build the chunk index.
2026-06-20 17:13:17 +05:30
TW
5d80b95a12
Merge pull request #9794 from mr-raj12/pack-files-step9-check-repo-readonly-storehash
...
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 (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
repository: read-only check by hashing pack/index objects
2026-06-19 21:30:05 +02:00
Mrityunjay Raj
27d693c222
repository: read-only check by hashing pack/index objects, refs #8476 #8572
...
Implement the read-only repository check by hashing pack and index
objects and comparing against the stored hashes, without writing to the
repository.
Report check progress separately for the index and for the packs, each
ending at 100%.
2026-06-19 23:30:33 +05:30
TW
cd91cfdab8
Merge pull request #9793 from ThomasWaldmann/support-msgpack121-master
...
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 (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
support msgpack 1.2.1
2026-06-18 23:42:00 +02:00
Thomas Waldmann
890da42276
support msgpack 1.2.1
...
Port of borgbackup/borg#9790 to master.
Note: the PR's second commit (Archive.delete: don't reuse msgpack Unpacker
after an unpacking failure) does not apply here - on master Archive.delete
no longer unpacks item metadata (it just removes the archive and lets
"borg compact" reclaim space), so the reuse-after-failure code path does
not exist. The streaming RobustUnpacker already creates a fresh Unpacker
on resync.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 22:08:48 +02:00
TW
1dce2eba20
Merge pull request #9789 from mr-raj12/pack-files-step8-sha256-pack-id
...
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 (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
repository: always name packs by sha256(pack)
2026-06-18 17:52:47 +02:00
Mrityunjay Raj
0ece418991
cleanup: drop leftover pack_id==chunk_id references after sha256 naming, refs #8572
...
Remove the dead BORG_TESTONLY_SHA256_PACK_ID tox env and CI job, fix the packs.rst pack-id docs, and reword comments/tests to describe sha256 pack naming instead of the removed shortcut.
2026-06-18 19:33:50 +05:30
Mrityunjay Raj
fd17753561
repository: always name packs by sha256(pack), refs #8572
...
Drop the single-chunk shortcut that reused the chunk_id as the pack_id.
A pack is now always named by sha256 of its bytes, even when it holds a
single chunk, so no code can depend on pack_id == chunk_id.
2026-06-18 18:50:46 +05:30
TW
c63435ebc2
Merge pull request #9787 from ThomasWaldmann/cleanup-common-options
...
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 (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
CI / sha256 pack-id (informational) (push) Blocked by required conditions
CodeQL / Analyze (push) Waiting to run
remote: mark legacy cli options for ssh-rpc remoting
2026-06-18 00:44:23 +02:00