lib.version.Dependency.constraint_str(): Delimit by comma

A multi-boundary constraint is rendered as 'foo >= 1.2.3-45 foo < 1.2.4',
which is invalid: the RPM spec template writes the Requires: line from it
verbatim, and RPM entries are comma-separated, so the second clause is
swallowed into one bad entry. Debian's format_depends() normalizes runs of
whitespace to commas, so it tolerates the space join, but the comma is the
only delimiter that is correct for both.

Join the boundary clauses with ', ' instead of a space.

Also:

- Drop the stray trailing comma in the version_boundaries() call.
- Fix the untemplated docstring, which describes the opposite of the code:
  untemplated = True (the default) resolves the macros, untemplated = False
  keeps them as written.

Tests written by AI.

Signed-off-by: Jan Lindemann <jan@janware.com>
Assisted-by: unsloth/Qwen3.8-27B-GGUF:Q4_K_M with pi.dev v0.85.1
This commit is contained in:
Jan Lindemann 2026-09-15 17:24:39 +02:00
commit c23a2e4ab2
Signed by: Jan Lindemann
GPG key ID: 3750640C9E25DD61
2 changed files with 8 additions and 8 deletions

View file

@ -122,15 +122,15 @@ constraint = d.constraint_str(untemplated = False, as_range = True)
assert constraint == 'foo = VERSION-REVISION'
# A full version stays exact; a non-full one expands
d = Dependency('foo = VERSION', app.get_version)
assert d.constraint_str(as_range = True) == 'foo >= 1.2.3 foo < 1.2.4'
assert d.constraint_str(as_range = True) == 'foo >= 1.2.3, foo < 1.2.4'
d = Dependency('foo >= VERSION', app.get_version)
assert d.constraint_str(as_range = True) == 'foo >= 1.2.3 foo < 1.2.4'
assert d.constraint_str(as_range = True) == 'foo >= 1.2.3, foo < 1.2.4'
# '<' and '<=' are not expanded
d = Dependency('foo <= VERSION', app.get_version)
assert d.constraint_str(as_range = True) == 'foo <= 1.2.3'
# The bound steps a micro, so a tripartite core expands
d = Dependency('foo = 1.2.3', app.get_version)
assert d.constraint_str(as_range = True) == 'foo >= 1.2.3 foo < 1.2.4'
assert d.constraint_str(as_range = True) == 'foo >= 1.2.3, foo < 1.2.4'
# Default syntax is SEM_VER
d = Dependency('foo < 2.0')
assert d.constraint_str(untemplated = False) == 'foo < 2.0'