Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,12 @@ jobs:
- os: ubuntu-24.04
python-version: '3.12'
toxenv: py312-fuse3
- os: ubuntu-24.04
python-version: '3.13'
toxenv: py313-fuse3
- os: ubuntu-24.04
python-version: '3.14'
toxenv: py314-fuse3
- os: macos-15
python-version: '3.11'
toxenv: py311-none # note: no fuse testing, due to #6099, see also #6196.
Expand Down
10 changes: 7 additions & 3 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,10 @@
prefer_system_libxxhash = not bool(os.environ.get('BORG_USE_BUNDLED_XXHASH'))
system_prefix_libxxhash = os.environ.get('BORG_LIBXXHASH_PREFIX')

# Number of threads to use for cythonize, not used on windows
cpu_threads = multiprocessing.cpu_count() if multiprocessing and multiprocessing.get_start_method() != 'spawn' else None
# Number of threads to use for cythonize, not used on windows.
# Only with the "fork" start method: "spawn" and "forkserver" (default on Linux since Python 3.14)
# re-import setup.py in the worker processes, which recursively runs setup() there.
cpu_threads = multiprocessing.cpu_count() if multiprocessing and multiprocessing.get_start_method() == 'fork' else None

# Are we building on ReadTheDocs?
on_rtd = os.environ.get('READTHEDOCS')
Expand All @@ -75,7 +77,7 @@
# Please note:
# using any other msgpack version is not supported by borg development and
# any feedback related to issues caused by this will be ignored.
'msgpack >=0.5.6, <=1.1.1, !=1.0.1',
'msgpack >=0.5.6, <=1.2.4, !=1.0.1',
'packaging',
]

Expand Down Expand Up @@ -297,6 +299,8 @@ def members_appended(*ds):
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: 3.12',
'Programming Language :: Python :: 3.13',
'Programming Language :: Python :: 3.14',
'Topic :: Security :: Cryptography',
'Topic :: System :: Archiving :: Backup',
],
Expand Down
2 changes: 1 addition & 1 deletion src/borg/archiver.py
Original file line number Diff line number Diff line change
Expand Up @@ -1908,7 +1908,7 @@ def do_with_lock(self, args, repository):
# any other mechanism relying on existing segment data not changing).
# see issue #1867.
repository.commit(compact=False)
return ret
return ret

@with_repository(manifest=False, exclusive=True)
def do_compact(self, args, repository):
Expand Down
2 changes: 1 addition & 1 deletion src/borg/helpers/msgpack.py
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ def is_slow_msgpack():
def is_supported_msgpack():
# DO NOT CHANGE OR REMOVE! See also requirements and comments in setup.py.
import msgpack
return (0, 5, 6) <= msgpack.version[:3] <= (1, 1, 1) and \
return (0, 5, 6) <= msgpack.version[:3] <= (1, 2, 4) and \
msgpack.version not in [(1, 0, 1), ] # < add bad releases here to deny list


Expand Down
5 changes: 4 additions & 1 deletion src/borg/testsuite/repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -977,7 +977,10 @@ def test_rpc_exception_transport(self):
self.repository.call('inject_exception', {'kind': 'divide'})
except RemoteRepository.RPCError as e:
assert e.unpacked
assert e.get_message() == 'ZeroDivisionError: integer division or modulo by zero\n'
assert e.get_message() in (
'ZeroDivisionError: integer division or modulo by zero\n', # Python < 3.14
'ZeroDivisionError: division by zero\n', # Python >= 3.14
)
assert e.exception_class == 'ZeroDivisionError'
assert len(e.exception_full) > 0

Expand Down
2 changes: 1 addition & 1 deletion tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# fakeroot -u tox --recreate

[tox]
envlist = py{39,310,311,312}-{none,fuse2,fuse3}
envlist = py{39,310,311,312,313,314}-{none,fuse2,fuse3}
minversion = 3.2
requires =
pkgconfig
Expand Down
Loading