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
This commit is contained in:
Robert Collins 2015-04-30 09:47:22 +12:00
parent 0971d6f63a
commit a67e2c346c
3 changed files with 13 additions and 3 deletions

View File

@ -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):

View File

@ -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.

View File

@ -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