Merge lp:~jelmer/bzr-builddeb/move-upstream-tag into lp:bzr-builddeb

Proposed by Jelmer Vernooij
Status: Merged
Approved by: James Westby
Approved revision: 579
Merged at revision: 580
Proposed branch: lp:~jelmer/bzr-builddeb/move-upstream-tag
Merge into: lp:bzr-builddeb
Diff against target: 216 lines (+69/-75)
5 files modified
cmds.py (+2/-9)
tagging.py (+0/-38)
tests/test_tagging.py (+0/-28)
tests/test_upstream.py (+30/-0)
upstream/pristinetar.py (+37/-0)
To merge this branch: bzr merge lp:~jelmer/bzr-builddeb/move-upstream-tag
Reviewer Review Type Date Requested Status
James Westby Approve
Review via email: mp+65954@code.launchpad.net

Description of the change

Move upstream tag code to upstream/pristinetar.py, as it is specific to pristine tar branches.

To post a comment you must log in.
Revision history for this message
James Westby (james-w) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'cmds.py'
2--- cmds.py 2011-06-24 10:51:46 +0000
3+++ cmds.py 2011-06-27 10:35:50 +0000
4@@ -86,10 +86,6 @@
5 MergeModeDistiller,
6 NativeSourceDistiller,
7 )
8-from bzrlib.plugins.builddeb.tagging import (
9- is_upstream_tag,
10- upstream_tag_version,
11- )
12 from bzrlib.plugins.builddeb.upstream import (
13 AptSource,
14 GetOrigSourceSource,
15@@ -952,11 +948,8 @@
16 if db.pristine_upstream_source.has_version(None, version):
17 raise BzrCommandError("Version %s is already present." % version)
18 tagged_versions = {}
19- for tag_name, tag_revid in branch.tags.get_tag_dict().iteritems():
20- if not is_upstream_tag(tag_name):
21- continue
22- tag_version = Version(upstream_tag_version(tag_name))
23- tagged_versions[tag_version] = tag_revid
24+ for tag, tag_version, revid in db.pristine_upstream_source.iter_versions():
25+ tagged_versions[Version(tag_version)] = revid
26 tag_order = sorted(tagged_versions.keys())
27 if tag_order:
28 parents = [tagged_versions[tag_order[-1]]]
29
30=== modified file 'tagging.py'
31--- tagging.py 2011-01-10 22:44:18 +0000
32+++ tagging.py 2011-06-27 10:35:50 +0000
33@@ -19,9 +19,6 @@
34
35 """Tagging related functions for bzr-builddeb."""
36
37-__all__ = ['is_upstream_tag', 'upstream_tag_version']
38-
39-
40 try:
41 from debian.changelog import Version
42 except ImportError:
43@@ -29,41 +26,6 @@
44 from debian_bundle.changelog import Version
45
46
47-def is_upstream_tag(tag):
48- """Return true if tag is an upstream tag.
49-
50- :param tag: The string name of the tag.
51- :return: True if the tag name is one generated by upstream tag operations.
52-
53- >>> is_upstream_tag('2.1')
54- False
55- >>> is_upstream_tag('upstream-2.1')
56- True
57- """
58- return tag.startswith('upstream-') or tag.startswith('upstream/')
59-
60-
61-def upstream_tag_version(tag):
62- """Return the upstream version portion of an upstream tag name.
63-
64- :param tag: The string name of the tag.
65- :return: The version portion of the tag.
66-
67- >>> upstream_tag_version('upstream-2.1')
68- '2.1'
69- """
70- assert is_upstream_tag(tag), "Not an upstream tag: %s" % tag
71- if tag.startswith('upstream/'):
72- tag = tag[len('upstream/'):]
73- elif tag.startswith('upstream-'):
74- tag = tag[len('upstream-'):]
75- if tag.startswith('debian-'):
76- tag = tag[len('debian-'):]
77- elif tag.startswith('ubuntu-'):
78- tag = tag[len('ubuntu-'):]
79- return tag
80-
81-
82 def sort_debversion(branch, tags):
83 """Sort tags using Debian version in-place.
84
85
86=== modified file 'tests/test_tagging.py'
87--- tests/test_tagging.py 2011-01-10 22:44:18 +0000
88+++ tests/test_tagging.py 2011-06-27 10:35:50 +0000
89@@ -25,34 +25,6 @@
90 )
91
92
93-class TestIsUpstreamTag(TestCase):
94-
95- def test_plain_version(self):
96- self.assertFalse(tagging.is_upstream_tag('2.1'))
97-
98- def test_simple_upstream(self):
99- self.assertTrue(tagging.is_upstream_tag('upstream-2.1'))
100-
101- def test_distro_upstream(self):
102- self.assertTrue(tagging.is_upstream_tag('upstream-debian-2.1'))
103-
104- def test_git_upstream(self):
105- self.assertTrue(tagging.is_upstream_tag('upstream/2.1'))
106-
107-
108-class TestUpstreamTagVersion(TestCase):
109-
110- def test_simple_upstream(self):
111- self.assertEqual('2.1', tagging.upstream_tag_version('upstream-2.1'))
112-
113- def test_distro_upstream(self):
114- self.assertEqual('2.1',
115- tagging.upstream_tag_version('upstream-debian-2.1'))
116-
117- def test_git_upstream(self):
118- self.assertEqual('2.1', tagging.upstream_tag_version('upstream/2.1'))
119-
120-
121 class TestDebVersionSort(TestCase):
122
123 def test_sort(self):
124
125=== modified file 'tests/test_upstream.py'
126--- tests/test_upstream.py 2011-06-15 18:44:09 +0000
127+++ tests/test_upstream.py 2011-06-27 10:35:50 +0000
128@@ -71,6 +71,8 @@
129 )
130 from bzrlib.plugins.builddeb.upstream.pristinetar import (
131 PristineTarSource,
132+ is_upstream_tag,
133+ upstream_tag_version,
134 )
135
136
137@@ -661,6 +663,34 @@
138 self.assertEquals("svn:2424", get_snapshot_revision("0.4.4+svn2424"))
139
140
141+class TestIsUpstreamTag(TestCase):
142+
143+ def test_plain_version(self):
144+ self.assertFalse(is_upstream_tag('2.1'))
145+
146+ def test_simple_upstream(self):
147+ self.assertTrue(is_upstream_tag('upstream-2.1'))
148+
149+ def test_distro_upstream(self):
150+ self.assertTrue(is_upstream_tag('upstream-debian-2.1'))
151+
152+ def test_git_upstream(self):
153+ self.assertTrue(is_upstream_tag('upstream/2.1'))
154+
155+
156+class TestUpstreamTagVersion(TestCase):
157+
158+ def test_simple_upstream(self):
159+ self.assertEqual('2.1', upstream_tag_version('upstream-2.1'))
160+
161+ def test_distro_upstream(self):
162+ self.assertEqual('2.1',
163+ upstream_tag_version('upstream-debian-2.1'))
164+
165+ def test_git_upstream(self):
166+ self.assertEqual('2.1', upstream_tag_version('upstream/2.1'))
167+
168+
169 class PristineTarSourceTests(TestCaseWithTransport):
170
171 def setUp(self):
172
173=== modified file 'upstream/pristinetar.py'
174--- upstream/pristinetar.py 2011-06-23 21:41:36 +0000
175+++ upstream/pristinetar.py 2011-06-27 10:35:50 +0000
176@@ -318,3 +318,40 @@
177 else:
178 ret["deb-pristine-delta"] = uuencoded
179 return ret
180+
181+ def iter_versions(self):
182+ """Iterate over all upstream versions.
183+
184+ :return: Iterator over (tag_name, version, revid) tuples
185+ """
186+ for tag_name, tag_revid in self.branch.tags.get_tag_dict().iteritems():
187+ if not is_upstream_tag(tag_name):
188+ continue
189+ yield (tag_name, upstream_tag_version(tag_name), tag_revid)
190+
191+
192+def is_upstream_tag(tag):
193+ """Return true if tag is an upstream tag.
194+
195+ :param tag: The string name of the tag.
196+ :return: True if the tag name is one generated by upstream tag operations.
197+ """
198+ return tag.startswith('upstream-') or tag.startswith('upstream/')
199+
200+
201+def upstream_tag_version(tag):
202+ """Return the upstream version portion of an upstream tag name.
203+
204+ :param tag: The string name of the tag.
205+ :return: The version portion of the tag.
206+ """
207+ assert is_upstream_tag(tag), "Not an upstream tag: %s" % tag
208+ if tag.startswith('upstream/'):
209+ tag = tag[len('upstream/'):]
210+ elif tag.startswith('upstream-'):
211+ tag = tag[len('upstream-'):]
212+ if tag.startswith('debian-'):
213+ tag = tag[len('debian-'):]
214+ elif tag.startswith('ubuntu-'):
215+ tag = tag[len('ubuntu-'):]
216+ return tag

Subscribers

People subscribed via source and target branches