Skip to content

Commit b51847a

Browse files
committed
fix: allow partial versions in semver
Signed-off-by: Lea Konvalinka <lea.konvalinka@dynatrace.com>
1 parent 6b7c78e commit b51847a

3 files changed

Lines changed: 10 additions & 1 deletion

File tree

tools/openfeature-flagd-core/src/openfeature/contrib/tools/flagd/core/targeting/custom_ops.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,4 +176,10 @@ def parse_version(arg: typing.Any) -> semver.Version:
176176
if version.startswith(("v", "V")):
177177
version = version[1:]
178178

179+
# Pad partial versions (e.g. "1" → "1.0.0", "1.2" → "1.2.0")
180+
numeric_part = version.split("-")[0].split("+")[0]
181+
dot_count = numeric_part.count(".")
182+
if dot_count < 2:
183+
version = version + ".0" * (2 - dot_count)
184+
179185
return semver.Version.parse(version)

tools/openfeature-flagd-core/tests/test_targeting.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,9 @@ def test_minor_no_match(self) -> None:
113113
def test_v_prefix(self) -> None:
114114
assert sem_ver({}, "v2.0.0", "=", "2.0.0") is True
115115

116+
def test_partial_version(self) -> None:
117+
assert sem_ver({}, "2", "=", "2.0.0") is True
118+
116119
def test_invalid_version(self) -> None:
117120
result = sem_ver({}, "not-a-version", "=", "1.0.0")
118121
assert result is None

0 commit comments

Comments
 (0)