mirror of
https://github.com/borgbackup/borg.git
synced 2026-06-09 17:00:11 -04:00
Merge pull request #9608 from ThomasWaldmann/versioning-1.4
Some checks failed
CI / lint (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Windows CI / msys2-ucrt64 (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 (OpenBSD, false, openbsd, 7.7) (push) Has been cancelled
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Has been cancelled
Some checks failed
CI / lint (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Windows CI / msys2-ucrt64 (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 (OpenBSD, false, openbsd, 7.7) (push) Has been cancelled
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Has been cancelled
properly handle invalid and dev versions in version parser, fixes #9014
This commit is contained in:
commit
1f356d8a87
2 changed files with 4 additions and 4 deletions
|
|
@ -10,7 +10,7 @@ __version_tuple__ = parse_version(__version__).release
|
|||
# assert that all semver components are integers
|
||||
# this is mainly to show errors when people repackage poorly
|
||||
# and setuptools_scm determines a 0.1.dev... version
|
||||
assert all(isinstance(v, int) for v in __version_tuple__), \
|
||||
assert not __version__.startswith("0.1.dev") and all(isinstance(v, int) for v in __version_tuple__), \
|
||||
"""\
|
||||
broken borgbackup version metadata: %r
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ def parse_version(version):
|
|||
"""
|
||||
version_re = r"""
|
||||
(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+) # version, e.g. 1.2.33
|
||||
(?P<prerelease>(?P<ptype>a|b|rc)(?P<pnum>\d+))? # optional prerelease, e.g. a1 or b2 or rc33
|
||||
(?P<prerelease>\.?(?P<ptype>a|b|rc|dev)(?P<pnum>\d+))? # optional prerelease, e.g. a1 or b2 or rc33 or .dev1
|
||||
"""
|
||||
m = re.match(version_re, version, re.VERBOSE)
|
||||
if m is None:
|
||||
|
|
@ -25,7 +25,7 @@ def parse_version(version):
|
|||
gd = m.groupdict()
|
||||
version = [int(gd['major']), int(gd['minor']), int(gd['patch'])]
|
||||
if m.lastgroup == 'prerelease':
|
||||
p_type = {'a': -4, 'b': -3, 'rc': -2}[gd['ptype']]
|
||||
p_type = {'a': -4, 'b': -3, 'rc': -2, 'dev': -9}[gd['ptype']]
|
||||
p_num = int(gd['pnum'])
|
||||
version += [p_type, p_num]
|
||||
else:
|
||||
|
|
@ -44,6 +44,6 @@ def format_version(version):
|
|||
elif part == -1:
|
||||
break
|
||||
else:
|
||||
f[-1] = f[-1] + {-2: 'rc', -3: 'b', -4: 'a'}[part] + str(next(it))
|
||||
f[-1] = f[-1] + {-2: 'rc', -3: 'b', -4: 'a', -9: '.dev'}[part] + str(next(it))
|
||||
break
|
||||
return '.'.join(f)
|
||||
|
|
|
|||
Loading…
Reference in a new issue