summaryrefslogtreecommitdiff
path: root/packaging/release
diff options
context:
space:
mode:
authorMatt Davis <nitzmahone@users.noreply.github.com>2018-06-12 16:57:47 -0700
committerGitHub <noreply@github.com>2018-06-12 16:57:47 -0700
commit0c92b113358d7cac91e9d382360c3c3edfa9e052 (patch)
tree7b0509b5d838ae9403713b0e811198b9d622b26f /packaging/release
parenta5fd86cf6d62bb6ecb624edfc0b3775705e46f06 (diff)
downloadansible-0c92b113358d7cac91e9d382360c3c3edfa9e052.tar.gz
allow dev and prerelease at the same time (#41464)
Diffstat (limited to 'packaging/release')
-rw-r--r--packaging/release/tests/version_helper_test.py14
-rw-r--r--packaging/release/versionhelper/version_helper.py15
2 files changed, 17 insertions, 12 deletions
diff --git a/packaging/release/tests/version_helper_test.py b/packaging/release/tests/version_helper_test.py
index 72271e4d66..f06e00012f 100644
--- a/packaging/release/tests/version_helper_test.py
+++ b/packaging/release/tests/version_helper_test.py
@@ -8,23 +8,25 @@ from versionhelper.version_helper import AnsibleVersionMunger
@pytest.mark.parametrize('version,revision,codename,output_propname,expected', [
- ('2.5.0dev1', None, None, 'raw', '2.5.0dev1'),
+ ('2.5.0.dev1', None, None, 'raw', '2.5.0.dev1'),
('2.5.0', None, None, 'raw', '2.5.0'),
- ('2.5.0dev1', None, None, 'major_version', '2.5'),
+ ('2.5.0.dev1', None, None, 'major_version', '2.5'),
('2.5.0', None, None, 'major_version', '2.5'),
- ('2.5.0dev1', None, None, 'base_version', '2.5.0'),
+ ('2.5.0.dev1', None, None, 'base_version', '2.5.0'),
('2.5.0', None, None, 'base_version', '2.5.0'),
- ('2.5.0dev1', None, None, 'deb_version', '2.5.0~dev1'),
+ ('2.5.0.dev1', None, None, 'deb_version', '2.5.0~dev1'),
('2.5.0b1', None, None, 'deb_version', '2.5.0~b1'),
+ ('2.5.0b1.dev1', None, None, 'deb_version', '2.5.0~b1~dev1'),
('2.5.0', None, None, 'deb_version', '2.5.0'),
- ('2.5.0dev1', None, None, 'deb_release', '1'),
+ ('2.5.0.dev1', None, None, 'deb_release', '1'),
('2.5.0b1', 2, None, 'deb_release', '2'),
- ('2.5.0dev1', None, None, 'rpm_release', '0.1.dev1'),
+ ('2.5.0.dev1', None, None, 'rpm_release', '0.1.dev1'),
('2.5.0a1', None, None, 'rpm_release', '0.101.a1'),
('2.5.0b1', None, None, 'rpm_release', '0.201.b1'),
('2.5.0rc1', None, None, 'rpm_release', '0.1001.rc1'),
('2.5.0rc1', '0.99', None, 'rpm_release', '0.99.rc1'),
('2.5.0.rc.1', None, None, 'rpm_release', '0.1001.rc.1'),
+ ('2.5.0.rc1.dev1', None, None, 'rpm_release', '0.1001.rc1.dev1'),
('2.5.0', None, None, 'rpm_release', '1'),
('2.5.0', 2, None, 'rpm_release', '2'),
('2.5.0', None, None, 'codename', 'UNKNOWN'),
diff --git a/packaging/release/versionhelper/version_helper.py b/packaging/release/versionhelper/version_helper.py
index 051e7998fe..018d979a00 100644
--- a/packaging/release/versionhelper/version_helper.py
+++ b/packaging/release/versionhelper/version_helper.py
@@ -31,15 +31,16 @@ class AnsibleVersionMunger(object):
match = self._parsed_regex_match
- if v.is_prerelease:
+ # treat dev as prerelease for now
+ if v.is_prerelease or match.group('dev'):
if match.group('pre'):
tag_value = match.group('pre')
tag_type = match.group('pre_l')
- tag_ver = match.group('pre_n')
+ if match.group('dev'):
+ tag_value += ('~%s' % match.group('dev').strip('.'))
elif match.group('dev'):
tag_type = "dev"
- tag_value = match.group('dev')
- tag_ver = match.group('dev_n')
+ tag_value = match.group('dev').strip('.')
else:
raise Exception("unknown prerelease type for version {0}".format(self._raw_version))
@@ -48,7 +49,6 @@ class AnsibleVersionMunger(object):
else:
tag_type = None
tag_value = ''
- tag_ver = 0
# not a pre/post/dev release, just return base version
if not tag_type:
@@ -66,11 +66,14 @@ class AnsibleVersionMunger(object):
v = self._parsed_version
match = self._parsed_regex_match
- if v.is_prerelease:
+ # treat presence of dev as prerelease for now
+ if v.is_prerelease or match.group('dev'):
if match.group('pre'):
tag_value = match.group('pre')
tag_type = match.group('pre_l')
tag_ver = match.group('pre_n')
+ if match.group('dev'):
+ tag_value += match.group('dev')
elif match.group('dev'):
tag_type = "dev"
tag_value = match.group('dev')