summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Collins <rbtcollins@hp.com>2015-04-30 09:47:22 +1200
committerRobert Collins <rbtcollins@hp.com>2015-04-30 11:26:00 +1200
commita67e2c346c5193cf36e381694d8fddb0d826df6b (patch)
treed3a5cb0ac1c8993153ddf994361586d8dba15e0e
parent0971d6f63adf19eea45791d34619d27a0ba73553 (diff)
downloadpbr-a67e2c346c5193cf36e381694d8fddb0d826df6b.tar.gz
Issue #1450210: Preversioning rc tag handling0.11.0
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
-rw-r--r--pbr/packaging.py8
-rw-r--r--pbr/tests/test_packaging.py7
-rw-r--r--tools/integration.sh1
3 files changed, 13 insertions, 3 deletions
diff --git a/pbr/packaging.py b/pbr/packaging.py
index e266d4f..9ed1dbb 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 9e08b82..3b19516 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 0847481..c03c6f3 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