diff options
author | Pierre Sassoulas <pierre.sassoulas@gmail.com> | 2021-06-26 14:25:20 +0200 |
---|---|---|
committer | Pierre Sassoulas <pierre.sassoulas@gmail.com> | 2021-06-29 18:17:19 +0200 |
commit | 498261fba45c55a108539c8308d1ccbb442094c7 (patch) | |
tree | fde7192c54078dfacc52258973e16f2b02b3863f | |
parent | 34c8a49474ad5cd1c7e0fe4855cf272136790746 (diff) | |
download | astroid-git-498261fba45c55a108539c8308d1ccbb442094c7.tar.gz |
Better get next version according to version type
-rw-r--r-- | script/bump_changelog.py | 25 | ||||
-rw-r--r-- | script/test_bump_changelog.py | 22 |
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( |