Merge lp:~stevenk/launchpad/approximateduration-no-words into lp:launchpad

Proposed by Steve Kowalik
Status: Merged
Approved by: Aaron Bentley
Approved revision: no longer in the source branch.
Merged at revision: 13358
Proposed branch: lp:~stevenk/launchpad/approximateduration-no-words
Merge into: lp:launchpad
Diff against target: 610 lines (+65/-115)
13 files modified
lib/canonical/launchpad/doc/presenting-lengths-of-time.txt (+15/-15)
lib/lp/app/browser/tales.py (+13/-45)
lib/lp/app/doc/tales.txt (+0/-18)
lib/lp/bugs/templates/bugtarget-patches.pt (+1/-1)
lib/lp/code/mail/tests/test_sourcepackagerecipebuild.py (+1/-1)
lib/lp/code/stories/codeimport/xx-codeimport-results.txt (+7/-7)
lib/lp/registry/browser/tests/poll-views.txt (+2/-2)
lib/lp/registry/doc/teammembership-email-notification.txt (+5/-5)
lib/lp/soyuz/doc/build-failedtoupload-workflow.txt (+1/-1)
lib/lp/soyuz/stories/soyuz/xx-buildfarm-index.txt (+4/-4)
lib/lp/soyuz/stories/soyuz/xx-builds-pages.txt (+14/-14)
lib/lp/translations/browser/tests/test_baseexportview.py (+1/-1)
lib/lp/translations/stories/buildfarm/xx-build-summary.txt (+1/-1)
To merge this branch: bzr merge lp:~stevenk/launchpad/approximateduration-no-words
Reviewer Review Type Date Requested Status
Aaron Bentley (community) Approve
Review via email: mp+66586@code.launchpad.net

Commit message

[r=abentley][bug=138490] fmt:approximateduration has forgotten how to use words.

Description of the change

Utterly rip out all uses (as well as the code itself) of approximateduration(use_words) and fmt:approximateduration/use-digits.

To post a comment you must log in.
Revision history for this message
Aaron Bentley (abentley) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'lib/canonical/launchpad/doc/presenting-lengths-of-time.txt'
--- lib/canonical/launchpad/doc/presenting-lengths-of-time.txt 2011-06-23 13:10:40 +0000
+++ lib/canonical/launchpad/doc/presenting-lengths-of-time.txt 2011-07-01 19:18:42 +0000
@@ -113,31 +113,31 @@
113113
114 >>> td = timedelta(seconds=55)114 >>> td = timedelta(seconds=55)
115 >>> test_tales('td/fmt:approximateduration', td=td)115 >>> test_tales('td/fmt:approximateduration', td=td)
116 'a minute'116 '1 minute'
117 >>> td = timedelta(seconds=88.123)117 >>> td = timedelta(seconds=88.123)
118 >>> test_tales('td/fmt:approximateduration', td=td)118 >>> test_tales('td/fmt:approximateduration', td=td)
119 'a minute'119 '1 minute'
120120
121 >>> td = timedelta(seconds=90)121 >>> td = timedelta(seconds=90)
122 >>> test_tales('td/fmt:approximateduration', td=td)122 >>> test_tales('td/fmt:approximateduration', td=td)
123 'two minutes'123 '2 minutes'
124 >>> td = timedelta(seconds=149.9181)124 >>> td = timedelta(seconds=149.9181)
125 >>> test_tales('td/fmt:approximateduration', td=td)125 >>> test_tales('td/fmt:approximateduration', td=td)
126 'two minutes'126 '2 minutes'
127127
128 >>> td = timedelta(seconds=150)128 >>> td = timedelta(seconds=150)
129 >>> test_tales('td/fmt:approximateduration', td=td)129 >>> test_tales('td/fmt:approximateduration', td=td)
130 'three minutes'130 '3 minutes'
131 >>> td = timedelta(seconds=199)131 >>> td = timedelta(seconds=199)
132 >>> test_tales('td/fmt:approximateduration', td=td)132 >>> test_tales('td/fmt:approximateduration', td=td)
133 'three minutes'133 '3 minutes'
134134
135 >>> td = timedelta(seconds=330)135 >>> td = timedelta(seconds=330)
136 >>> test_tales('td/fmt:approximateduration', td=td)136 >>> test_tales('td/fmt:approximateduration', td=td)
137 'six minutes'137 '6 minutes'
138 >>> td = timedelta(seconds=375.1)138 >>> td = timedelta(seconds=375.1)
139 >>> test_tales('td/fmt:approximateduration', td=td)139 >>> test_tales('td/fmt:approximateduration', td=td)
140 'six minutes'140 '6 minutes'
141141
142 >>> td = timedelta(seconds=645)142 >>> td = timedelta(seconds=645)
143 >>> test_tales('td/fmt:approximateduration', td=td)143 >>> test_tales('td/fmt:approximateduration', td=td)
@@ -156,11 +156,11 @@
156156
157 >>> td = timedelta(seconds=3570)157 >>> td = timedelta(seconds=3570)
158 >>> test_tales('td/fmt:approximateduration', td=td)158 >>> test_tales('td/fmt:approximateduration', td=td)
159 'an hour'159 '1 hour'
160160
161 >>> td = timedelta(seconds=3899.99999)161 >>> td = timedelta(seconds=3899.99999)
162 >>> test_tales('td/fmt:approximateduration', td=td)162 >>> test_tales('td/fmt:approximateduration', td=td)
163 'an hour'163 '1 hour'
164164
165 >>> td = timedelta(seconds=5100.181)165 >>> td = timedelta(seconds=5100.181)
166 >>> test_tales('td/fmt:approximateduration', td=td)166 >>> test_tales('td/fmt:approximateduration', td=td)
@@ -176,7 +176,7 @@
176176
177 >>> td = timedelta(seconds=35850.2828)177 >>> td = timedelta(seconds=35850.2828)
178 >>> test_tales('td/fmt:approximateduration', td=td)178 >>> test_tales('td/fmt:approximateduration', td=td)
179 'ten hours'179 '10 hours'
180180
181 >>> td = timedelta(seconds=38000)181 >>> td = timedelta(seconds=38000)
182 >>> test_tales('td/fmt:approximateduration', td=td)182 >>> test_tales('td/fmt:approximateduration', td=td)
@@ -188,11 +188,11 @@
188188
189 >>> td = timedelta(seconds=171000)189 >>> td = timedelta(seconds=171000)
190 >>> test_tales('td/fmt:approximateduration', td=td)190 >>> test_tales('td/fmt:approximateduration', td=td)
191 'two days'191 '2 days'
192192
193 >>> td = timedelta(seconds=900000)193 >>> td = timedelta(seconds=900000)
194 >>> test_tales('td/fmt:approximateduration', td=td)194 >>> test_tales('td/fmt:approximateduration', td=td)
195 'ten days'195 '10 days'
196196
197 >>> td = timedelta(seconds=1160000)197 >>> td = timedelta(seconds=1160000)
198 >>> test_tales('td/fmt:approximateduration', td=td)198 >>> test_tales('td/fmt:approximateduration', td=td)
@@ -200,11 +200,11 @@
200200
201 >>> td = timedelta(seconds=1500000)201 >>> td = timedelta(seconds=1500000)
202 >>> test_tales('td/fmt:approximateduration', td=td)202 >>> test_tales('td/fmt:approximateduration', td=td)
203 'two weeks'203 '2 weeks'
204204
205 >>> td = timedelta(seconds=6000000)205 >>> td = timedelta(seconds=6000000)
206 >>> test_tales('td/fmt:approximateduration', td=td)206 >>> test_tales('td/fmt:approximateduration', td=td)
207 'ten weeks'207 '10 weeks'
208208
209 >>> td = timedelta(seconds=6350400)209 >>> td = timedelta(seconds=6350400)
210 >>> test_tales('td/fmt:approximateduration', td=td)210 >>> test_tales('td/fmt:approximateduration', td=td)
211211
=== modified file 'lib/lp/app/browser/tales.py'
--- lib/lp/app/browser/tales.py 2011-06-30 13:11:41 +0000
+++ lib/lp/app/browser/tales.py 2011-07-01 19:18:42 +0000
@@ -2144,12 +2144,7 @@
2144 if name == 'exactduration':2144 if name == 'exactduration':
2145 return self.exactduration()2145 return self.exactduration()
2146 elif name == 'approximateduration':2146 elif name == 'approximateduration':
2147 use_words = True2147 return self.approximateduration()
2148 if len(furtherPath) == 1:
2149 if 'use-digits' == furtherPath[0]:
2150 furtherPath.pop()
2151 use_words = False
2152 return self.approximateduration(use_words)
2153 else:2148 else:
2154 raise TraversalError(name)2149 raise TraversalError(name)
21552150
@@ -2179,19 +2174,12 @@
21792174
2180 return ', '.join(parts)2175 return ', '.join(parts)
21812176
2182 def approximateduration(self, use_words=True):2177 def approximateduration(self):
2183 """Return a nicely-formatted approximate duration.2178 """Return a nicely-formatted approximate duration.
21842179
2185 E.g. 'an hour', 'three minutes', '1 hour 10 minutes' and so2180 E.g. '1 hour', '3 minutes', '1 hour 10 minutes' and so forth.
2186 forth.
21872181
2188 See https://launchpad.canonical.com/PresentingLengthsOfTime.2182 See https://launchpad.canonical.com/PresentingLengthsOfTime.
2189
2190 :param use_words: Specificly determines whether or not to use
2191 words for numbers less than or equal to ten. Expanding
2192 numbers to words makes sense when the number is used in
2193 prose or a singualar item on a page, but when used in
2194 a table, the words do not work as well.
2195 """2183 """
2196 # NOTE: There are quite a few "magic numbers" in this2184 # NOTE: There are quite a few "magic numbers" in this
2197 # implementation; they are generally just figures pulled2185 # implementation; they are generally just figures pulled
@@ -2224,10 +2212,8 @@
2224 (35, '30 seconds'),2212 (35, '30 seconds'),
2225 (45, '40 seconds'),2213 (45, '40 seconds'),
2226 (55, '50 seconds'),2214 (55, '50 seconds'),
2227 (90, 'a minute'),2215 (90, '1 minute'),
2228 ]2216 ]
2229 if not use_words:
2230 representation_in_seconds[-1] = (90, '1 minute')
22312217
2232 # Break representation_in_seconds into two pieces, to simplify2218 # Break representation_in_seconds into two pieces, to simplify
2233 # finding the correct display value, through the use of the2219 # finding the correct display value, through the use of the
@@ -2235,7 +2221,7 @@
2235 second_boundaries, display_values = zip(*representation_in_seconds)2221 second_boundaries, display_values = zip(*representation_in_seconds)
22362222
2237 # Is seconds small enough that we can produce a representation2223 # Is seconds small enough that we can produce a representation
2238 # in seconds (up to 'a minute'?)2224 # in seconds (up to '1 minute'?)
2239 if seconds < second_boundaries[-1]:2225 if seconds < second_boundaries[-1]:
2240 # Use the built-in bisection algorithm to locate the index2226 # Use the built-in bisection algorithm to locate the index
2241 # of the item which "seconds" sorts after.2227 # of the item which "seconds" sorts after.
@@ -2244,34 +2230,17 @@
2244 # Return the corresponding display value.2230 # Return the corresponding display value.
2245 return display_values[matching_element_index]2231 return display_values[matching_element_index]
22462232
2247 # More than a minute, approximately; our calculation strategy
2248 # changes. From this point forward, we may also need a
2249 # "verbal" representation of the number. (We never need a
2250 # verbal representation of "1", because we tend to special
2251 # case the number 1 for various approximations, and we usually
2252 # use a word like "an", instead of "one", e.g. "an hour")
2253 if use_words:
2254 number_name = {
2255 2: 'two', 3: 'three', 4: 'four', 5: 'five',
2256 6: 'six', 7: 'seven', 8: 'eight', 9: 'nine',
2257 10: 'ten'}
2258 else:
2259 number_name = dict((number, number) for number in range(2, 11))
2260
2261 # Convert seconds into minutes, and round it.2233 # Convert seconds into minutes, and round it.
2262 minutes, remaining_seconds = divmod(seconds, 60)2234 minutes, remaining_seconds = divmod(seconds, 60)
2263 minutes += remaining_seconds / 60.02235 minutes += remaining_seconds / 60.0
2264 minutes = int(round(minutes))2236 minutes = int(round(minutes))
22652237
2266 if minutes <= 59:2238 if minutes <= 59:
2267 return "%s minutes" % number_name.get(minutes, str(minutes))2239 return "%d minutes" % minutes
22682240
2269 # Is the duration less than an hour and 5 minutes?2241 # Is the duration less than an hour and 5 minutes?
2270 if seconds < (60 + 5) * 60:2242 if seconds < (60 + 5) * 60:
2271 if use_words:2243 return "1 hour"
2272 return "an hour"
2273 else:
2274 return "1 hour"
22752244
2276 # Next phase: try and calculate an approximate duration2245 # Next phase: try and calculate an approximate duration
2277 # greater than one hour, but fewer than ten hours, to a 102246 # greater than one hour, but fewer than ten hours, to a 10
@@ -2290,12 +2259,11 @@
2290 else:2259 else:
2291 return "%d hours %s minutes" % (hours, minutes)2260 return "%d hours %s minutes" % (hours, minutes)
2292 else:2261 else:
2293 number_as_text = number_name.get(hours, str(hours))2262 return "%d hours" % hours
2294 return "%s hours" % number_as_text
22952263
2296 # Is the duration less than ten and a half hours?2264 # Is the duration less than ten and a half hours?
2297 if seconds < (10.5 * 3600):2265 if seconds < (10.5 * 3600):
2298 return '%s hours' % number_name[10]2266 return '10 hours'
22992267
2300 # Try to calculate the approximate number of hours, to a2268 # Try to calculate the approximate number of hours, to a
2301 # maximum of 47.2269 # maximum of 47.
@@ -2305,22 +2273,22 @@
23052273
2306 # Is the duration fewer than two and a half days?2274 # Is the duration fewer than two and a half days?
2307 if seconds < (2.5 * 24 * 3600):2275 if seconds < (2.5 * 24 * 3600):
2308 return '%s days' % number_name[2]2276 return '2 days'
23092277
2310 # Try to approximate to day granularity, up to a maximum of 132278 # Try to approximate to day granularity, up to a maximum of 13
2311 # days.2279 # days.
2312 days = int(round(seconds / (24 * 3600)))2280 days = int(round(seconds / (24 * 3600)))
2313 if days <= 13:2281 if days <= 13:
2314 return "%s days" % number_name.get(days, str(days))2282 return "%s days" % days
23152283
2316 # Is the duration fewer than two and a half weeks?2284 # Is the duration fewer than two and a half weeks?
2317 if seconds < (2.5 * 7 * 24 * 3600):2285 if seconds < (2.5 * 7 * 24 * 3600):
2318 return '%s weeks' % number_name[2]2286 return '2 weeks'
23192287
2320 # If we've made it this far, we'll calculate the duration to a2288 # If we've made it this far, we'll calculate the duration to a
2321 # granularity of weeks, once and for all.2289 # granularity of weeks, once and for all.
2322 weeks = int(round(seconds / (7 * 24 * 3600.0)))2290 weeks = int(round(seconds / (7 * 24 * 3600.0)))
2323 return "%s weeks" % number_name.get(weeks, str(weeks))2291 return "%d weeks" % weeks
23242292
23252293
2326class LinkFormatterAPI(ObjectFormatterAPI):2294class LinkFormatterAPI(ObjectFormatterAPI):
23272295
=== modified file 'lib/lp/app/doc/tales.txt'
--- lib/lp/app/doc/tales.txt 2011-06-23 13:10:40 +0000
+++ lib/lp/app/doc/tales.txt 2011-07-01 19:18:42 +0000
@@ -1409,9 +1409,6 @@
1409 '2 days, 0 hours, 0 minutes, 0.0 seconds'1409 '2 days, 0 hours, 0 minutes, 0.0 seconds'
14101410
1411 >>> test_tales('delta/fmt:approximateduration', delta=delta)1411 >>> test_tales('delta/fmt:approximateduration', delta=delta)
1412 'two days'
1413
1414 >>> test_tales('delta/fmt:approximateduration/use-digits', delta=delta)
1415 '2 days'1412 '2 days'
14161413
1417 >>> delta = timedelta(days=12, hours=6, minutes=30)1414 >>> delta = timedelta(days=12, hours=6, minutes=30)
@@ -1421,17 +1418,11 @@
1421 >>> test_tales('delta/fmt:approximateduration', delta=delta)1418 >>> test_tales('delta/fmt:approximateduration', delta=delta)
1422 '12 days'1419 '12 days'
14231420
1424 >>> test_tales('delta/fmt:approximateduration/use-digits', delta=delta)
1425 '12 days'
1426
1427 >>> delta = timedelta(days=0, minutes=62)1421 >>> delta = timedelta(days=0, minutes=62)
1428 >>> test_tales('delta/fmt:exactduration', delta=delta)1422 >>> test_tales('delta/fmt:exactduration', delta=delta)
1429 '1 hour, 2 minutes, 0.0 seconds'1423 '1 hour, 2 minutes, 0.0 seconds'
14301424
1431 >>> test_tales('delta/fmt:approximateduration', delta=delta)1425 >>> test_tales('delta/fmt:approximateduration', delta=delta)
1432 'an hour'
1433
1434 >>> test_tales('delta/fmt:approximateduration/use-digits', delta=delta)
1435 '1 hour'1426 '1 hour'
14361427
1437 >>> delta = timedelta(days=0, minutes=82)1428 >>> delta = timedelta(days=0, minutes=82)
@@ -1441,17 +1432,11 @@
1441 >>> test_tales('delta/fmt:approximateduration', delta=delta)1432 >>> test_tales('delta/fmt:approximateduration', delta=delta)
1442 '1 hour 20 minutes'1433 '1 hour 20 minutes'
14431434
1444 >>> test_tales('delta/fmt:approximateduration/use-digits', delta=delta)
1445 '1 hour 20 minutes'
1446
1447 >>> delta = timedelta(days=0, seconds=62)1435 >>> delta = timedelta(days=0, seconds=62)
1448 >>> test_tales('delta/fmt:exactduration', delta=delta)1436 >>> test_tales('delta/fmt:exactduration', delta=delta)
1449 '1 minute, 2.0 seconds'1437 '1 minute, 2.0 seconds'
14501438
1451 >>> test_tales('delta/fmt:approximateduration', delta=delta)1439 >>> test_tales('delta/fmt:approximateduration', delta=delta)
1452 'a minute'
1453
1454 >>> test_tales('delta/fmt:approximateduration/use-digits', delta=delta)
1455 '1 minute'1440 '1 minute'
14561441
1457 >>> delta = timedelta(days=0, seconds=90)1442 >>> delta = timedelta(days=0, seconds=90)
@@ -1459,9 +1444,6 @@
1459 '1 minute, 30.0 seconds'1444 '1 minute, 30.0 seconds'
14601445
1461 >>> test_tales('delta/fmt:approximateduration', delta=delta)1446 >>> test_tales('delta/fmt:approximateduration', delta=delta)
1462 'two minutes'
1463
1464 >>> test_tales('delta/fmt:approximateduration/use-digits', delta=delta)
1465 '2 minutes'1447 '2 minutes'
14661448
14671449
14681450
=== modified file 'lib/lp/bugs/templates/bugtarget-patches.pt'
--- lib/lp/bugs/templates/bugtarget-patches.pt 2011-02-03 20:54:43 +0000
+++ lib/lp/bugs/templates/bugtarget-patches.pt 2011-07-01 19:18:42 +0000
@@ -75,7 +75,7 @@
75 age python:view.patchAge(patch)"75 age python:view.patchAge(patch)"
76 tal:attributes="id string:patch-cell-${repeat/patch_task/index}">76 tal:attributes="id string:patch-cell-${repeat/patch_task/index}">
77 <a tal:attributes="href python:view.proxiedUrlForLibraryFile(patch)"77 <a tal:attributes="href python:view.proxiedUrlForLibraryFile(patch)"
78 tal:content="age/fmt:approximateduration/use-digits"></a>78 tal:content="age/fmt:approximateduration"></a>
79 <div class="popupTitle"79 <div class="popupTitle"
80 tal:attributes="id string:patch-popup-${repeat/patch_task/index};">80 tal:attributes="id string:patch-popup-${repeat/patch_task/index};">
81 <p tal:define="submitter patch/message/owner">81 <p tal:define="submitter patch/message/owner">
8282
=== modified file 'lib/lp/code/mail/tests/test_sourcepackagerecipebuild.py'
--- lib/lp/code/mail/tests/test_sourcepackagerecipebuild.py 2011-01-06 07:09:57 +0000
+++ lib/lp/code/mail/tests/test_sourcepackagerecipebuild.py 2011-07-01 19:18:42 +0000
@@ -26,7 +26,7 @@
26 * Recipe: person/recipe26 * Recipe: person/recipe
27 * Archive: archiveowner/ppa27 * Archive: archiveowner/ppa
28 * Distroseries: distroseries28 * Distroseries: distroseries
29 * Duration: five minutes29 * Duration: 5 minutes
30 * Build Log: %s30 * Build Log: %s
31 * Upload Log: 31 * Upload Log:
32 * Builder: http://launchpad.dev/builders/bob32 * Builder: http://launchpad.dev/builders/bob
3333
=== modified file 'lib/lp/code/stories/codeimport/xx-codeimport-results.txt'
--- lib/lp/code/stories/codeimport/xx-codeimport-results.txt 2011-06-21 01:39:18 +0000
+++ lib/lp/code/stories/codeimport/xx-codeimport-results.txt 2011-07-01 19:18:42 +0000
@@ -29,19 +29,19 @@
29 >>> import_results = find_tag_by_id(browser.contents, 'import-results')29 >>> import_results = find_tag_by_id(browser.contents, 'import-results')
30 >>> print extract_text(import_results).replace('&mdash;', '--')30 >>> print extract_text(import_results).replace('&mdash;', '--')
31 Import started on 2007-12-07 on odin and finished on 2007-12-0731 Import started on 2007-12-07 on odin and finished on 2007-12-07
32 taking seven hours -- see the log32 taking 7 hours -- see the log
33 Import started on 2007-12-06 on odin and finished on 2007-12-0633 Import started on 2007-12-06 on odin and finished on 2007-12-06
34 taking six hours -- see the log34 taking 6 hours -- see the log
35 Import started on 2007-12-05 on odin and finished on 2007-12-0535 Import started on 2007-12-05 on odin and finished on 2007-12-05
36 taking five hours -- see the log36 taking 5 hours -- see the log
37 Import started on 2007-12-04 on odin and finished on 2007-12-0437 Import started on 2007-12-04 on odin and finished on 2007-12-04
38 taking four hours -- see the log38 taking 4 hours -- see the log
39 Import started on 2007-12-03 on odin and finished on 2007-12-0339 Import started on 2007-12-03 on odin and finished on 2007-12-03
40 taking three hours -- see the log40 taking 3 hours -- see the log
41 Import started on 2007-12-02 on odin and finished on 2007-12-0241 Import started on 2007-12-02 on odin and finished on 2007-12-02
42 taking two hours -- see the log42 taking 2 hours -- see the log
43 Import started on 2007-12-01 on odin and finished on 2007-12-0143 Import started on 2007-12-01 on odin and finished on 2007-12-01
44 taking an hour -- see the log44 taking 1 hour -- see the log
4545
46Each of the lines is prefixed with a tick if the result status was46Each of the lines is prefixed with a tick if the result status was
47success, or a cross if the status was a failure. The title of the image47success, or a cross if the status was a failure. The title of the image
4848
=== modified file 'lib/lp/registry/browser/tests/poll-views.txt'
--- lib/lp/registry/browser/tests/poll-views.txt 2011-01-05 19:18:57 +0000
+++ lib/lp/registry/browser/tests/poll-views.txt 2011-07-01 19:18:42 +0000
@@ -101,7 +101,7 @@
101 >>> print extract_text(view.render())101 >>> print extract_text(view.render())
102 Polls102 Polls
103 title - closes on ...103 title - closes on ...
104 You have seven days left to vote in this poll.104 You have 7 days left to vote in this poll.
105 Show polls105 Show polls
106106
107 >>> login_person(owner)107 >>> login_person(owner)
@@ -109,7 +109,7 @@
109 >>> print extract_text(view.render())109 >>> print extract_text(view.render())
110 Polls110 Polls
111 title - closes on ...111 title - closes on ...
112 You have seven days left to vote in this poll.112 You have 7 days left to vote in this poll.
113 Show polls113 Show polls
114 Create a poll114 Create a poll
115115
116116
=== modified file 'lib/lp/registry/doc/teammembership-email-notification.txt'
--- lib/lp/registry/doc/teammembership-email-notification.txt 2011-05-31 05:25:55 +0000
+++ lib/lp/registry/doc/teammembership-email-notification.txt 2011-07-01 19:18:42 +0000
@@ -446,7 +446,7 @@
446 To: colin.watson@ubuntulinux.com446 To: colin.watson@ubuntulinux.com
447 Subject: Your membership in ubuntu-team is about to expire447 Subject: Your membership in ubuntu-team is about to expire
448 <BLANKLINE>448 <BLANKLINE>
449 On ..., nine days from now, your membership449 On ..., 9 days from now, your membership
450 in the Ubuntu Team (ubuntu-team) Launchpad team450 in the Ubuntu Team (ubuntu-team) Launchpad team
451 is due to expire.451 is due to expire.
452 <http://launchpad.dev/~ubuntu-team>452 <http://launchpad.dev/~ubuntu-team>
@@ -483,7 +483,7 @@
483 To: beta-admin@launchpad.net483 To: beta-admin@launchpad.net
484 Subject: launchpad-beta-testers will expire soon from ubuntu-team484 Subject: launchpad-beta-testers will expire soon from ubuntu-team
485 <BLANKLINE>485 <BLANKLINE>
486 On ..., nine days from now, the membership486 On ..., 9 days from now, the membership
487 of Launchpad Beta Testers (launchpad-beta-testers) (which you are487 of Launchpad Beta Testers (launchpad-beta-testers) (which you are
488 the owner of) in the Ubuntu Team (ubuntu-team) Launchpad team488 the owner of) in the Ubuntu Team (ubuntu-team) Launchpad team
489 is due to expire.489 is due to expire.
@@ -517,7 +517,7 @@
517 To: colin.watson@ubuntulinux.com517 To: colin.watson@ubuntulinux.com
518 Subject: Your membership in ubuntu-team is about to expire518 Subject: Your membership in ubuntu-team is about to expire
519 <BLANKLINE>519 <BLANKLINE>
520 On ..., nine days from now, your membership520 On ..., 9 days from now, your membership
521 in the Ubuntu Team (ubuntu-team) Launchpad team521 in the Ubuntu Team (ubuntu-team) Launchpad team
522 is due to expire.522 is due to expire.
523 <http://launchpad.dev/~ubuntu-team>523 <http://launchpad.dev/~ubuntu-team>
@@ -539,7 +539,7 @@
539 To: beta-admin@launchpad.net539 To: beta-admin@launchpad.net
540 Subject: launchpad-beta-testers will expire soon from ubuntu-team540 Subject: launchpad-beta-testers will expire soon from ubuntu-team
541 <BLANKLINE>541 <BLANKLINE>
542 On ..., nine days from now, the membership542 On ..., 9 days from now, the membership
543 of Launchpad Beta Testers (launchpad-beta-testers) (which you are543 of Launchpad Beta Testers (launchpad-beta-testers) (which you are
544 the owner of) in the Ubuntu Team (ubuntu-team) Launchpad team544 the owner of) in the Ubuntu Team (ubuntu-team) Launchpad team
545 is due to expire.545 is due to expire.
@@ -575,7 +575,7 @@
575 To: test@canonical.com575 To: test@canonical.com
576 Subject: Your membership in landscape-developers is about to expire576 Subject: Your membership in landscape-developers is about to expire
577 <BLANKLINE>577 <BLANKLINE>
578 On ..., nine days from now, your membership578 On ..., 9 days from now, your membership
579 in the Landscape Developers (landscape-developers) Launchpad team579 in the Landscape Developers (landscape-developers) Launchpad team
580 is due to expire.580 is due to expire.
581 <http://launchpad.dev/~landscape-developers>581 <http://launchpad.dev/~landscape-developers>
582582
=== modified file 'lib/lp/soyuz/doc/build-failedtoupload-workflow.txt'
--- lib/lp/soyuz/doc/build-failedtoupload-workflow.txt 2011-05-04 02:45:25 +0000
+++ lib/lp/soyuz/doc/build-failedtoupload-workflow.txt 2011-07-01 19:18:42 +0000
@@ -87,7 +87,7 @@
87 * Archive: ubuntu primary archive87 * Archive: ubuntu primary archive
88 * Component: main88 * Component: main
89 * State: Failed to upload89 * State: Failed to upload
90 * Duration: a minute90 * Duration: 1 minute
91 * Build Log: http://launchpad.dev/ubuntu/+source/cdrkit/1.0/+build/22/+fil=91 * Build Log: http://launchpad.dev/ubuntu/+source/cdrkit/1.0/+build/22/+fil=
92 es/netapplet-1.0.0.tar.gz92 es/netapplet-1.0.0.tar.gz
93 * Builder: http://launchpad.dev/builders/bob93 * Builder: http://launchpad.dev/builders/bob
9494
=== modified file 'lib/lp/soyuz/stories/soyuz/xx-buildfarm-index.txt'
--- lib/lp/soyuz/stories/soyuz/xx-buildfarm-index.txt 2011-05-03 02:39:30 +0000
+++ lib/lp/soyuz/stories/soyuz/xx-buildfarm-index.txt 2011-07-01 19:18:42 +0000
@@ -22,7 +22,7 @@
22 frog 386 Disabled22 frog 386 Disabled
23 Official distributions build status23 Official distributions build status
24 Processor Builders Queue24 Processor Builders Queue
25 386 1 1 job (a minute)25 386 1 1 job (1 minute)
26 PPA build status26 PPA build status
27 Processor Builders Queue27 Processor Builders Queue
28 386 0 empty28 386 0 empty
@@ -44,7 +44,7 @@
44 ... find_tag_by_id(anon_browser.contents, 'official-queue-status'))44 ... find_tag_by_id(anon_browser.contents, 'official-queue-status'))
45 Official distributions build status45 Official distributions build status
46 Processor Builders Queue46 Processor Builders Queue
47 386 1 1 job (a minute)47 386 1 1 job (1 minute)
4848
49 >>> print extract_text(49 >>> print extract_text(
50 ... find_tag_by_id(anon_browser.contents, 'ppa-queue-status',))50 ... find_tag_by_id(anon_browser.contents, 'ppa-queue-status',))
@@ -77,7 +77,7 @@
77 ... find_tag_by_id(anon_browser.contents, 'ppa-queue-status'))77 ... find_tag_by_id(anon_browser.contents, 'ppa-queue-status'))
78 PPA build status78 PPA build status
79 Processor Builders Queue79 Processor Builders Queue
80 386 0 1 job (a minute)80 386 0 1 job (1 minute)
8181
82If the archive for the build does not require virtual builders, then82If the archive for the build does not require virtual builders, then
83the pending job will appear in the 'official' queue. Since the build83the pending job will appear in the 'official' queue. Since the build
@@ -99,7 +99,7 @@
99 ... find_tag_by_id(anon_browser.contents, 'official-queue-status'))99 ... find_tag_by_id(anon_browser.contents, 'official-queue-status'))
100 Official distributions build status100 Official distributions build status
101 Processor Builders Queue101 Processor Builders Queue
102 386 1 2 jobs (two minutes)102 386 1 2 jobs (2 minutes)
103103
104From this page, users with the appropriate permission can register new104From this page, users with the appropriate permission can register new
105builders.105builders.
106106
=== modified file 'lib/lp/soyuz/stories/soyuz/xx-builds-pages.txt'
--- lib/lp/soyuz/stories/soyuz/xx-builds-pages.txt 2011-06-09 10:50:25 +0000
+++ lib/lp/soyuz/stories/soyuz/xx-builds-pages.txt 2011-07-01 19:18:42 +0000
@@ -144,12 +144,12 @@
144 Successfully built144 Successfully built
145 i386 build of commercialpackage 1.0-1 in ubuntu breezy-autotest RELEASE145 i386 build of commercialpackage 1.0-1 in ubuntu breezy-autotest RELEASE
146 Build started on 2007-08-09 on an unknown build machine and finished146 Build started on 2007-08-09 on an unknown build machine and finished
147 on 2007-08-09 taking ten minutes147 on 2007-08-09 taking 10 minutes
148 ------------------------------148 ------------------------------
149 Failed to upload149 Failed to upload
150 i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE150 i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE
151 Build started on 2007-04-19 on Bob The Builder and finished on 2007-04-20151 Build started on 2007-04-19 on Bob The Builder and finished on 2007-04-20
152 taking a minute &mdash; see the log152 taking 1 minute &mdash; see the log
153 ------------------------------153 ------------------------------
154 Failed to build154 Failed to build
155 i386 build of cdrkit 1.0 in ubuntu warty RELEASE155 i386 build of cdrkit 1.0 in ubuntu warty RELEASE
@@ -178,7 +178,7 @@
178 Missing dependencies:178 Missing dependencies:
179 cpp (&gt;= 4:4.0.1-3), gcc-4.0 (&gt;= 4.0.1-2)179 cpp (&gt;= 4:4.0.1-3), gcc-4.0 (&gt;= 4.0.1-2)
180 Build started on 2006-02-27 on Bob The Builder and finished on 2006-02-28180 Build started on 2006-02-27 on Bob The Builder and finished on 2006-02-28
181 taking six minutes &mdash; see the log181 taking 6 minutes &mdash; see the log
182 ------------------------------182 ------------------------------
183 Needs building183 Needs building
184 i386 build of alsa-utils 1.0.9a-4ubuntu1 in ubuntu hoary RELEASE184 i386 build of alsa-utils 1.0.9a-4ubuntu1 in ubuntu hoary RELEASE
@@ -201,22 +201,22 @@
201 Successfully built201 Successfully built
202 i386 build of commercialpackage 1.0-1 in ubuntu breezy-autotest RELEASE202 i386 build of commercialpackage 1.0-1 in ubuntu breezy-autotest RELEASE
203 Build started on 2007-08-09 on an unknown build machine and finished203 Build started on 2007-08-09 on an unknown build machine and finished
204 on 2007-08-09 taking ten minutes204 on 2007-08-09 taking 10 minutes
205 ------------------------------205 ------------------------------
206 Successfully built206 Successfully built
207 i386 build of pmount 0.1-1 in ubuntu hoary RELEASE207 i386 build of pmount 0.1-1 in ubuntu hoary RELEASE
208 Build started on 2005-03-24 on Bob The Builder and finished on 2005-03-25208 Build started on 2005-03-24 on Bob The Builder and finished on 2005-03-25
209 taking a minute &mdash; see the log209 taking 1 minute &mdash; see the log
210 ------------------------------210 ------------------------------
211 Successfully built211 Successfully built
212 hppa build of pmount 0.1-1 in ubuntu hoary RELEASE212 hppa build of pmount 0.1-1 in ubuntu hoary RELEASE
213 Build started on 2005-03-24 on Bob The Builder and finished on 2005-03-25213 Build started on 2005-03-24 on Bob The Builder and finished on 2005-03-25
214 taking a minute &mdash; see the log214 taking 1 minute &mdash; see the log
215 ------------------------------215 ------------------------------
216 Successfully built216 Successfully built
217 i386 build of pmount 0.1-1 in ubuntu breezy-autotest RELEASE217 i386 build of pmount 0.1-1 in ubuntu breezy-autotest RELEASE
218 Build started on 2005-03-24 on Bob The Builder and finished on 2005-03-25218 Build started on 2005-03-24 on Bob The Builder and finished on 2005-03-25
219 taking a minute &mdash; see the log219 taking 1 minute &mdash; see the log
220 ------------------------------220 ------------------------------
221221
222 >>> anon_browser.getControl(name="build_state").value = ['depwait']222 >>> anon_browser.getControl(name="build_state").value = ['depwait']
@@ -228,7 +228,7 @@
228 Missing dependencies:228 Missing dependencies:
229 cpp (&gt;= 4:4.0.1-3), gcc-4.0 (&gt;= 4.0.1-2)229 cpp (&gt;= 4:4.0.1-3), gcc-4.0 (&gt;= 4.0.1-2)
230 Build started on 2006-02-27 on Bob The Builder and finished on 2006-02-28230 Build started on 2006-02-27 on Bob The Builder and finished on 2006-02-28
231 taking six minutes &mdash; see the log231 taking 6 minutes &mdash; see the log
232 ------------------------------232 ------------------------------
233233
234 >>> anon_browser.getControl(name="build_state").value = ['failed']234 >>> anon_browser.getControl(name="build_state").value = ['failed']
@@ -248,7 +248,7 @@
248 Failed to build248 Failed to build
249 i386 build of pmount 0.1-1 in ubuntu warty RELEASE249 i386 build of pmount 0.1-1 in ubuntu warty RELEASE
250 Build started on 2005-10-01 on Bob The Builder and finished on 2005-10-02250 Build started on 2005-10-01 on Bob The Builder and finished on 2005-10-02
251 taking three minutes &mdash; see the log251 taking 3 minutes &mdash; see the log
252 ------------------------------252 ------------------------------
253253
254== Form errors ==254== Form errors ==
@@ -314,17 +314,17 @@
314 Successfully built314 Successfully built
315 i386 build of pmount 0.1-1 in ubuntu warty RELEASE315 i386 build of pmount 0.1-1 in ubuntu warty RELEASE
316 Build started on 2007-07-23 and finished on 2007-07-24316 Build started on 2007-07-23 and finished on 2007-07-24
317 taking a minute &mdash; see the log317 taking 1 minute &mdash; see the log
318 ------------------------------318 ------------------------------
319 Failed to build319 Failed to build
320 i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE320 i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE
321 Build started on 2007-07-07 and finished on 2007-07-08321 Build started on 2007-07-07 and finished on 2007-07-08
322 taking a minute &mdash; see the log322 taking 1 minute &mdash; see the log
323 ------------------------------323 ------------------------------
324 Failed to build324 Failed to build
325 i386 build of cdrkit 1.0 in ubuntu warty RELEASE325 i386 build of cdrkit 1.0 in ubuntu warty RELEASE
326 Build started on 2007-05-29 and finished on 2007-05-30326 Build started on 2007-05-29 and finished on 2007-05-30
327 taking a minute &mdash; see the log327 taking 1 minute &mdash; see the log
328 ------------------------------328 ------------------------------
329329
330In the second batch, additionally to the failed-to-build builds330In the second batch, additionally to the failed-to-build builds
@@ -337,7 +337,7 @@
337 Failed to upload337 Failed to upload
338 i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE338 i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE
339 Build started on 2007-04-19 and finished on 2007-04-20339 Build started on 2007-04-19 and finished on 2007-04-20
340 taking a minute &mdash; see the log340 taking 1 minute &mdash; see the log
341 ------------------------------341 ------------------------------
342 Failed to build342 Failed to build
343 i386 build of foobar 1.0 in ubuntu warty RELEASE343 i386 build of foobar 1.0 in ubuntu warty RELEASE
@@ -365,7 +365,7 @@
365 Missing dependencies:365 Missing dependencies:
366 cpp (&gt;= 4:4.0.1-3), gcc-4.0 (&gt;= 4.0.1-2)366 cpp (&gt;= 4:4.0.1-3), gcc-4.0 (&gt;= 4.0.1-2)
367 Build started on 2006-02-27 and finished on 2006-02-28367 Build started on 2006-02-27 and finished on 2006-02-28
368 taking six minutes &mdash; see the log368 taking 6 minutes &mdash; see the log
369 ------------------------------369 ------------------------------
370 ...370 ...
371371
372372
=== modified file 'lib/lp/translations/browser/tests/test_baseexportview.py'
--- lib/lp/translations/browser/tests/test_baseexportview.py 2010-10-05 00:08:16 +0000
+++ lib/lp/translations/browser/tests/test_baseexportview.py 2011-07-01 19:18:42 +0000
@@ -201,7 +201,7 @@
201201
202 backlog = timedelta(hours=2)202 backlog = timedelta(hours=2)
203 self.assertEqual(203 self.assertEqual(
204 "The backlog is approximately two hours.",204 "The backlog is approximately 2 hours.",
205 self.view.describeBacklog(backlog).strip())205 self.view.describeBacklog(backlog).strip())
206206
207 def test_export_queue_status(self):207 def test_export_queue_status(self):
208208
=== modified file 'lib/lp/translations/stories/buildfarm/xx-build-summary.txt'
--- lib/lp/translations/stories/buildfarm/xx-build-summary.txt 2011-05-27 19:53:20 +0000
+++ lib/lp/translations/stories/buildfarm/xx-build-summary.txt 2011-07-01 19:18:42 +0000
@@ -158,4 +158,4 @@
158 1 ... 1 of 1 result158 1 ... 1 of 1 result
159 ...159 ...
160 Translation template build160 Translation template build
161 Build started ... and finished ... taking five minutes161 Build started ... and finished ... taking 5 minutes