diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 94564c7f..028e7fee 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -6,6 +6,32 @@ Change Log All notable changes to this code base will be documented in this file, in every released version. +Version 2.10.1 (WIP) +==================== + +:Released: 2020-0x-0y +:Maintainer: + + +Features +-------- + + +Bug Fixes +--------- + +* :gh:`251` (:pr:`254`): Fixed return type of ``semver.VersionInfo.next_version`` + to always return a ``VersionInfo`` instance. + + +Additions +--------- + + +Removals +-------- + + Version 2.10.0 ============== diff --git a/semver.py b/semver.py index c2697dd5..cf535350 100644 --- a/semver.py +++ b/semver.py @@ -471,7 +471,8 @@ def next_version(self, part, prerelease_token="rc"): :param part: One of "major", "minor", "patch", or "prerelease" :param prerelease_token: prefix string of prerelease, defaults to 'rc' - :return: + :return: new object with the appropriate part raised + :rtype: :class:`VersionInfo` """ validparts = { "major", @@ -495,7 +496,7 @@ def next_version(self, part, prerelease_token="rc"): return version.replace(prerelease=None, build=None) if part in ("major", "minor", "patch"): - return str(getattr(version, "bump_" + part)()) + return getattr(version, "bump_" + part)() if not version.prerelease: version = version.bump_patch() diff --git a/test_semver.py b/test_semver.py index db0c7f4e..8ecc81fb 100644 --- a/test_semver.py +++ b/test_semver.py @@ -1050,4 +1050,6 @@ def test_next_version_with_invalid_parts(): ) def test_next_version_with_versioninfo(version, part, expected): ver = VersionInfo.parse(version) - assert str(ver.next_version(part)) == expected + next_version = ver.next_version(part) + assert isinstance(next_version, VersionInfo) + assert str(next_version) == expected