diff options
author | Robert Collins <rbtcollins@hp.com> | 2015-04-30 09:47:22 +1200 |
---|---|---|
committer | Robert Collins <rbtcollins@hp.com> | 2015-04-30 11:26:00 +1200 |
commit | a67e2c346c5193cf36e381694d8fddb0d826df6b (patch) | |
tree | d3a5cb0ac1c8993153ddf994361586d8dba15e0e | |
parent | 0971d6f63adf19eea45791d34619d27a0ba73553 (diff) | |
download | pbr-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.py | 8 | ||||
-rw-r--r-- | pbr/tests/test_packaging.py | 7 | ||||
-rw-r--r-- | tools/integration.sh | 1 |
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 |