Merge lp:~jelmer/bzr-builddeb/snapshot-changelog into lp:bzr-builddeb

Proposed by Jelmer Vernooij
Status: Merged
Merged at revision: 489
Proposed branch: lp:~jelmer/bzr-builddeb/snapshot-changelog
Merge into: lp:bzr-builddeb
Diff against target: 105 lines (+50/-7)
2 files modified
merge_upstream.py (+31/-7)
tests/test_merge_upstream.py (+19/-0)
To merge this branch: bzr merge lp:~jelmer/bzr-builddeb/snapshot-changelog
Reviewer Review Type Date Requested Status
Andrew Bennetts (community) Approve
Bzr-builddeb-hackers Pending
Review via email: mp+44675@code.launchpad.net

Description of the change

Factor out the function for generating changelog entries when merging a new upstream revision.

When adding a changelog entry, support git and svn snapshots.

To post a comment you must log in.
487. By Jelmer Vernooij

When adding a changelog entry, support git and svn snapshots too.

Revision history for this message
Andrew Bennetts (spiv) wrote :

Looks ok to me.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'merge_upstream.py'
2--- merge_upstream.py 2010-08-19 21:11:02 +0000
3+++ merge_upstream.py 2010-12-24 19:50:08 +0000
4@@ -51,7 +51,7 @@
5 :param revid: Revision id of the revision
6 """
7 revno = upstream_branch.revision_id_to_revno(revid)
8-
9+
10 if "+bzr" in version_string:
11 return "%s+bzr%d" % (version_string[:version_string.rfind("+bzr")], revno)
12
13@@ -112,6 +112,14 @@
14
15 def upstream_branch_version(upstream_branch, upstream_revision, package,
16 previous_version):
17+ """Determine the version string for a revision in an upstream branch.
18+
19+ :param upstream_branch: The upstream branch object
20+ :param upstream_revision: The revision id of the upstream revision
21+ :param package: The name of the package
22+ :param previous_version: The previous upstream version string
23+ :return: Upstream version string for `upstream_revision`.
24+ """
25 dotted_revno = upstream_branch.revision_id_to_dotted_revno(upstream_revision)
26 if len(dotted_revno) > 1:
27 revno = -2
28@@ -166,6 +174,25 @@
29 return ret
30
31
32+def upstream_merge_changelog_line(upstream_version):
33+ """Describe that a new upstream revision was merged.
34+
35+ This will either describe that a new upstream release or a new upstream snapshot
36+ was merged.
37+
38+ :param upstream_version: Upstream version string
39+ :return: Line string for use in changelog
40+ """
41+ vcs_suffixes = ["~bzr", "+bzr", "~svn", "+svn", "~git", "+git"]
42+ for vcs_suffix in vcs_suffixes:
43+ if vcs_suffix in str(upstream_version):
44+ entry_description = "New upstream snapshot."
45+ break
46+ else:
47+ entry_description = "New upstream release."
48+ return entry_description
49+
50+
51 def changelog_add_new_version(tree, upstream_version, distribution_name,
52 changelog, package):
53 """Add an entry to the changelog for a new version.
54@@ -180,14 +207,11 @@
55 assert isinstance(upstream_version, str), \
56 "upstream_version should be a str, not %s" % str(
57 type(upstream_version))
58- if "~bzr" in str(upstream_version) or "+bzr" in str(upstream_version):
59- entry_description = "New upstream snapshot."
60- else:
61- entry_description = "New upstream release."
62+ entry_description = upstream_merge_changelog_line(upstream_version)
63 proc = subprocess.Popen(["dch", "-v",
64 str(package_version(upstream_version, distribution_name)),
65- "-D", "UNRELEASED", "--release-heuristic", "changelog",
66- entry_description], cwd=tree.basedir)
67+ "-D", "UNRELEASED", "--release-heuristic", "changelog", entry_description],
68+ cwd=tree.basedir)
69 proc.wait()
70 # FIXME: Raise insightful exception here rather than just checking
71 # return code.
72
73=== modified file 'tests/test_merge_upstream.py'
74--- tests/test_merge_upstream.py 2010-08-19 21:11:02 +0000
75+++ tests/test_merge_upstream.py 2010-12-24 19:50:08 +0000
76@@ -28,6 +28,7 @@
77 from bzrlib.tests import TestCase, TestCaseWithTransport
78
79 from bzrlib.plugins.builddeb.merge_upstream import (
80+ upstream_merge_changelog_line,
81 package_version,
82 _upstream_branch_version,
83 upstream_tag_to_version,
84@@ -162,3 +163,21 @@
85 def test_ubuntu_with_dash(self):
86 self.assertEquals(Version("1.2-1-0ubuntu1"),
87 package_version("1.2-1", "ubuntu"))
88+
89+
90+class UpstreamMergeChangelogLineTests(TestCase):
91+
92+ def test_release(self):
93+ self.assertEquals("New upstream release.", upstream_merge_changelog_line("1.0"))
94+
95+ def test_bzr_snapshot(self):
96+ self.assertEquals("New upstream snapshot.",
97+ upstream_merge_changelog_line("1.0+bzr3"))
98+
99+ def test_git_snapshot(self):
100+ self.assertEquals("New upstream snapshot.",
101+ upstream_merge_changelog_line("1.0~git20101212"))
102+
103+ def test_plus(self):
104+ self.assertEquals("New upstream release.",
105+ upstream_merge_changelog_line("1.0+dfsg1"))

Subscribers

People subscribed via source and target branches