summaryrefslogtreecommitdiff
path: root/script
diff options
context:
space:
mode:
authorPierre Sassoulas <pierre.sassoulas@gmail.com>2021-06-26 14:25:20 +0200
committerPierre Sassoulas <pierre.sassoulas@gmail.com>2021-06-29 18:17:19 +0200
commit498261fba45c55a108539c8308d1ccbb442094c7 (patch)
treefde7192c54078dfacc52258973e16f2b02b3863f /script
parent34c8a49474ad5cd1c7e0fe4855cf272136790746 (diff)
downloadastroid-git-498261fba45c55a108539c8308d1ccbb442094c7.tar.gz
Better get next version according to version type
Diffstat (limited to 'script')
-rw-r--r--script/bump_changelog.py25
-rw-r--r--script/test_bump_changelog.py22
2 files changed, 35 insertions, 12 deletions
diff --git a/script/bump_changelog.py b/script/bump_changelog.py
index 648479d8..f1e04420 100644
--- a/script/bump_changelog.py
+++ b/script/bump_changelog.py
@@ -40,23 +40,32 @@ class VersionType(enum.Enum):
PATCH = 2
-def get_next_patch_version(
+def generic_get_next_version(
version: str, version_type: VersionType = VersionType.PATCH
) -> str:
new_version = version.split(".")
part_to_increase = new_version[version_type.value]
- reminder = None
if "-" in part_to_increase:
- part_to_increase, reminder = part_to_increase.split("-")
- part_to_increase = str(int(part_to_increase) + 1)
- new_version[version_type.value] = (
- part_to_increase if reminder is None else f"{part_to_increase}-{reminder}"
- )
+ part_to_increase = int(part_to_increase.split("-")[0])
+ for i in range(version_type.value, 3):
+ new_version[i] = "0"
+ new_version[version_type.value] = str(int(part_to_increase) + 1)
return ".".join(new_version)
+def get_next_version(version: str) -> str:
+ if version.endswith("0.0"):
+ version_type = VersionType.MAJOR
+ elif version.endswith("0"):
+ version_type = VersionType.MINOR
+ else:
+ version_type = VersionType.PATCH
+ next_version = generic_get_next_version(version, version_type)
+ return next_version
+
+
def transform_content(content: str, version: str) -> str:
- next_version = get_next_patch_version(version)
+ next_version = get_next_version(version)
wn_next_version = FULL_WHATS_NEW_TEXT.format(version=next_version)
# There is only one field where the release date is TBA
assert content.count(RELEASE_DATE_TEXT) == 1, TBA_ERROR_MSG
diff --git a/script/test_bump_changelog.py b/script/test_bump_changelog.py
index dc05742f..c51b59e7 100644
--- a/script/test_bump_changelog.py
+++ b/script/test_bump_changelog.py
@@ -1,12 +1,26 @@
import pytest
-from bump_changelog import get_next_patch_version, transform_content
+from bump_changelog import VersionType, generic_get_next_version, transform_content
@pytest.mark.parametrize(
- "version,expected", [["2.6.1", "2.6.2"], ["2.6.1-dev0", "2.6.2-dev0"]]
+ "version,version_type,expected",
+ [
+ ["2.6.1", VersionType.PATCH, "2.6.2"],
+ ["2.6.1", VersionType.MINOR, "2.7.0"],
+ ["2.6.1", VersionType.MAJOR, "3.0.0"],
+ ["2.6.1-dev0", VersionType.PATCH, "2.6.2"],
+ ["2.6.1-dev0", VersionType.MINOR, "2.7.0"],
+ ["2.6.1-dev0", VersionType.MAJOR, "3.0.0"],
+ ["2.7.0", VersionType.PATCH, "2.7.1"],
+ ["2.7.0", VersionType.MINOR, "2.8.0"],
+ ["2.7.0", VersionType.MAJOR, "3.0.0"],
+ ["2.0.0", VersionType.PATCH, "2.0.1"],
+ ["2.0.0", VersionType.MINOR, "2.1.0"],
+ ["2.0.0", VersionType.MAJOR, "3.0.0"],
+ ],
)
-def test_get_next_version(version, expected):
- assert get_next_patch_version(version) == expected
+def test_generic_get_next_version(version, version_type, expected):
+ assert generic_get_next_version(version, version_type) == expected
@pytest.mark.parametrize(