From bcd724d05cd592373f332fb76a7df820657653bc Mon Sep 17 00:00:00 2001 From: Matt Davis Date: Tue, 12 Jun 2018 16:57:47 -0700 Subject: [PATCH] allow dev and prerelease at the same time (#41464) (cherry picked from commit 0c92b113358d7cac91e9d382360c3c3edfa9e052) --- packaging/release/tests/version_helper_test.py | 14 ++++++++------ packaging/release/versionhelper/version_helper.py | 15 +++++++++------ 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')