From a67e2c346c5193cf36e381694d8fddb0d826df6b Mon Sep 17 00:00:00 2001 From: Robert Collins Date: Thu, 30 Apr 2015 09:47:22 +1200 Subject: [PATCH] Issue #1450210: Preversioning rc tag handling We were generating versions lower than the last tag when preversioning was in use and pre-release versions had been tagged. Also attempt to run the script without devstack. Change-Id: If984939003ae7c513ee76b52c6808db0c1766050 Closes-Bug: #1450210 --- pbr/packaging.py | 8 +++++--- pbr/tests/test_packaging.py | 7 +++++++ tools/integration.sh | 1 + 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/pbr/packaging.py b/pbr/packaging.py index e266d4fa..9ed1dbb5 100644 --- a/pbr/packaging.py +++ b/pbr/packaging.py @@ -555,10 +555,12 @@ def _get_version_from_git_target(git_dir, target_version): dict(new=new_version, target=target_version)) if distance == 0: return last_semver + new_dev = new_version.to_dev(distance) if target_version is not None: - return target_version.to_dev(distance) - else: - return new_version.to_dev(distance) + target_dev = target_version.to_dev(distance) + if target_dev > new_dev: + return target_dev + return new_dev def _get_version_from_git(pre_version=None): diff --git a/pbr/tests/test_packaging.py b/pbr/tests/test_packaging.py index 9e08b82e..3b195160 100644 --- a/pbr/tests/test_packaging.py +++ b/pbr/tests/test_packaging.py @@ -317,6 +317,13 @@ class TestVersions(base.BaseTestCase): version = packaging._get_version_from_git('1.2.5') self.assertThat(version, matchers.StartsWith('1.2.5.dev1')) + def test_untagged_version_after_rc_has_dev_version_preversion(self): + self.repo.commit() + self.repo.tag('1.2.3.0a1') + self.repo.commit() + version = packaging._get_version_from_git('1.2.3') + self.assertThat(version, matchers.StartsWith('1.2.3.0a2.dev1')) + def test_preversion_too_low_simple(self): # That is, the target version is either already released or not high # enough for the semver requirements given api breaks etc. diff --git a/tools/integration.sh b/tools/integration.sh index 0847481d..c03c6f3e 100644 --- a/tools/integration.sh +++ b/tools/integration.sh @@ -29,6 +29,7 @@ BASE=${BASE:-/opt/stack} REPODIR=${REPODIR:-$BASE/new} # TODO: Figure out how to get this on to the box properly +sudo apt-get update sudo apt-get install -y --force-yes libvirt-dev libxml2-dev libxslt-dev libmysqlclient-dev libpq-dev libnspr4-dev pkg-config libsqlite3-dev libzmq-dev libffi-dev libldap2-dev libsasl2-dev ccache # FOR numpy / pyyaml