summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2017-11-27 19:59:32 +0100
committerGuido Günther <agx@sigxcpu.org>2017-11-27 22:49:52 +0100
commitf777a46d612f4d1727f1947f191b46bcacb5f378 (patch)
treed7e1fd5532b20e7f10e5eb846e68576d7a80040b
parent09e013ffed5c4d64b2c4bc04755c5b8921f554f4 (diff)
guess_version_from_upstream: allow to work without a changelog
This makes it usable when creating changelogs but it can also be useful when we don't want to compare to changelog version. Gbp-Dch: Ignore
-rw-r--r--gbp/scripts/dch.py8
-rw-r--r--tests/03_test_dch_guess_version.py17
2 files changed, 22 insertions, 3 deletions
diff --git a/gbp/scripts/dch.py b/gbp/scripts/dch.py
index 9db1a233..0d66a801 100644
--- a/gbp/scripts/dch.py
+++ b/gbp/scripts/dch.py
@@ -36,18 +36,20 @@ user_customizations = {}
snapshot_re = re.compile("\s*\*\* SNAPSHOT build @(?P<commit>[a-z0-9]+)\s+\*\*")
-def guess_version_from_upstream(repo, upstream_tag_format, upstream_branch, cp):
+def guess_version_from_upstream(repo, upstream_tag_format, upstream_branch, cp=None):
"""
Guess the version based on the latest version on the upstream branch.
If the version in dch is already higher this function returns None.
"""
+ epoch = cp.epoch if cp else None
+ cmp_version = cp.version if cp else '0~'
try:
version = repo.debian_version_from_upstream(upstream_tag_format,
upstream_branch,
- epoch=cp.epoch,
+ epoch=epoch,
debian_release=False)
gbp.log.debug("Found upstream version %s." % version)
- if compare_versions(version, cp.version) > 0:
+ if compare_versions(version, cmp_version) > 0:
return "%s-1" % version
except GitRepositoryError as e:
gbp.log.debug("No upstream tag found: %s" % e)
diff --git a/tests/03_test_dch_guess_version.py b/tests/03_test_dch_guess_version.py
index 1677b4ab..37f6da35 100644
--- a/tests/03_test_dch_guess_version.py
+++ b/tests/03_test_dch_guess_version.py
@@ -117,3 +117,20 @@ class TestGuessVersionFromUpstream(testutils.DebianGitTestRepo):
upstream_branch,
cp)
self.assertEqual('1.1~rc1-1', guessed)
+
+ def test_no_changelog(self):
+ tagformat = 'upstream/%(version)s'
+ uversion = '1.1'
+ upstream_branch = 'upstream'
+
+ self.add_file('doesnot', 'matter')
+ self.repo.create_branch('upstream')
+ tag = self.repo.version_to_tag(tagformat, uversion)
+ self.repo.create_tag(name=tag, msg="Upstream release %s" % uversion,
+ sign=False)
+ self.repo.set_branch("master")
+ guessed = dch.guess_version_from_upstream(self.repo,
+ tagformat,
+ upstream_branch,
+ None)
+ self.assertEqual('1.1-1', guessed)