mirror of
https://github.com/frappe/bench.git
synced 2024-11-14 09:14:04 +00:00
fix: proper semantic version bumping
- also included tests for the same Signed-off-by: Ameya Shenoy <shenoy.ameya@gmail.com>
This commit is contained in:
parent
222d4605f6
commit
64a3a5c40a
@ -154,34 +154,43 @@ def get_current_version(repo_path, to_branch):
|
|||||||
|
|
||||||
def get_bumped_version(version, bump_type):
|
def get_bumped_version(version, bump_type):
|
||||||
v = semantic_version.Version(version)
|
v = semantic_version.Version(version)
|
||||||
if bump_type == 'minor':
|
if bump_type == 'major':
|
||||||
v.minor += 1
|
|
||||||
v.patch = 0
|
|
||||||
v.prerelease = None
|
|
||||||
|
|
||||||
elif bump_type == 'major':
|
|
||||||
v.major += 1
|
v.major += 1
|
||||||
v.minor = 0
|
v.minor = 0
|
||||||
v.patch = 0
|
v.patch = 0
|
||||||
v.prerelease = None
|
v.prerelease = None
|
||||||
|
|
||||||
elif bump_type == 'patch':
|
elif bump_type == 'minor':
|
||||||
v.patch += 1
|
v.minor += 1
|
||||||
|
v.patch = 0
|
||||||
v.prerelease = None
|
v.prerelease = None
|
||||||
|
|
||||||
|
elif bump_type == 'patch':
|
||||||
|
if v.prerelease == ():
|
||||||
|
v.patch += 1
|
||||||
|
v.prerelease = None
|
||||||
|
|
||||||
|
elif len(v.prerelease) == 2:
|
||||||
|
v.prerelease = ()
|
||||||
|
|
||||||
elif bump_type == 'stable':
|
elif bump_type == 'stable':
|
||||||
# remove pre-release tag
|
# remove pre-release tag
|
||||||
v.prerelease = None
|
v.prerelease = None
|
||||||
|
|
||||||
elif bump_type == 'prerelease':
|
elif bump_type == 'prerelease':
|
||||||
if v.prerelease == ():
|
if v.prerelease == ():
|
||||||
v.prerelease = ('beta',)
|
v.patch += 1
|
||||||
|
|
||||||
if len(v.prerelease)==1:
|
|
||||||
v.prerelease = ('beta', '1')
|
v.prerelease = ('beta', '1')
|
||||||
else:
|
|
||||||
|
elif len(v.prerelease) == 2:
|
||||||
v.prerelease = ('beta', str(int(v.prerelease[1]) + 1))
|
v.prerelease = ('beta', str(int(v.prerelease[1]) + 1))
|
||||||
|
|
||||||
|
else:
|
||||||
|
raise ("Something wen't wrong while doing a prerelease")
|
||||||
|
|
||||||
|
else:
|
||||||
|
raise ("bump_type not amongst [major, minor, patch, prerelease]")
|
||||||
|
|
||||||
return str(v)
|
return str(v)
|
||||||
|
|
||||||
def set_version(repo_path, version, to_branch):
|
def set_version(repo_path, version, to_branch):
|
||||||
|
@ -6,6 +6,7 @@ import bench.utils
|
|||||||
import bench.app
|
import bench.app
|
||||||
import bench.config.common_site_config
|
import bench.config.common_site_config
|
||||||
import bench.cli
|
import bench.cli
|
||||||
|
from bench.release import get_bumped_version
|
||||||
|
|
||||||
bench.cli.from_command_line = True
|
bench.cli.from_command_line = True
|
||||||
|
|
||||||
@ -20,6 +21,18 @@ class TestBenchInit(unittest.TestCase):
|
|||||||
if os.path.exists(bench_path):
|
if os.path.exists(bench_path):
|
||||||
shutil.rmtree(bench_path, ignore_errors=True)
|
shutil.rmtree(bench_path, ignore_errors=True)
|
||||||
|
|
||||||
|
def test_semantic_version(self):
|
||||||
|
self.assertEqual( get_bumped_version('11.0.4', 'major'), '12.0.0' )
|
||||||
|
self.assertEqual( get_bumped_version('11.0.4', 'minor'), '11.1.0' )
|
||||||
|
self.assertEqual( get_bumped_version('11.0.4', 'patch'), '11.0.5' )
|
||||||
|
self.assertEqual( get_bumped_version('11.0.4', 'prerelease'), '11.0.5-beta.1' )
|
||||||
|
|
||||||
|
self.assertEqual( get_bumped_version('11.0.5-beta.22', 'major'), '12.0.0' )
|
||||||
|
self.assertEqual( get_bumped_version('11.0.5-beta.22', 'minor'), '11.1.0' )
|
||||||
|
self.assertEqual( get_bumped_version('11.0.5-beta.22', 'patch'), '11.0.5' )
|
||||||
|
self.assertEqual( get_bumped_version('11.0.5-beta.22', 'prerelease'), '11.0.5-beta.23' )
|
||||||
|
|
||||||
|
|
||||||
def test_init(self, bench_name="test-bench", **kwargs):
|
def test_init(self, bench_name="test-bench", **kwargs):
|
||||||
self.init_bench(bench_name, **kwargs)
|
self.init_bench(bench_name, **kwargs)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user