From 25c694d53aa387272b6be751ddbe68b6b6be0242 Mon Sep 17 00:00:00 2001 From: Aayush Kumar Date: Wed, 8 Jan 2025 14:59:51 +0530 Subject: [PATCH] Fix handling of prerelease versions in next_major, next_minor, and next_patch methods referenced in issue #121 Signed-off-by: Aayush Kumar --- src/univers/versions.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/univers/versions.py b/src/univers/versions.py index 14b3e007..e104c114 100644 --- a/src/univers/versions.py +++ b/src/univers/versions.py @@ -218,13 +218,19 @@ def build(self): return self.value and self.value.build def next_major(self): - return self.value and SemverVersion(str(self.value.next_major())) + if self.prerelease: + return SemverVersion(f"{self.major + 1}.0.0") + return SemverVersion(str(self.value.next_major())) def next_minor(self): - return self.value and SemverVersion(str(self.value.next_minor())) + if self.prerelease: + return SemverVersion(f"{self.major}.{self.minor + 1}.0") + return SemverVersion(str(self.value.next_minor())) def next_patch(self): - return self.value and SemverVersion(str(self.value.next_patch())) + if self.prerelease: + return SemverVersion(f"{self.major}.{self.minor}.{self.patch}") + return SemverVersion(str(self.value.next_patch())) def is_even(s):