diff options
author | Guido Günther <agx@sigxcpu.org> | 2017-11-27 19:59:32 +0100 |
---|---|---|
committer | Guido Günther <agx@sigxcpu.org> | 2017-11-27 22:49:52 +0100 |
commit | f777a46d612f4d1727f1947f191b46bcacb5f378 (patch) | |
tree | d7e1fd5532b20e7f10e5eb846e68576d7a80040b | |
parent | 09e013ffed5c4d64b2c4bc04755c5b8921f554f4 (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.py | 8 | ||||
-rw-r--r-- | tests/03_test_dch_guess_version.py | 17 |
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) |