Merge lp:~jelmer/brz/merge-3.2 into lp:brz

Proposed by Jelmer Vernooij
Status: Merged
Approved by: Jelmer Vernooij
Approved revision: no longer in the source branch.
Merge reported by: The Breezy Bot
Merged at revision: not available
Proposed branch: lp:~jelmer/brz/merge-3.2
Merge into: lp:brz
Diff against target: 426 lines (+57/-29)
23 files modified
breezy/bzr/bundle/serializer/v4.py (+2/-1)
breezy/bzr/chk_serializer.py (+2/-1)
breezy/bzr/remote.py (+2/-1)
breezy/bzr/smart/branch.py (+2/-1)
breezy/bzr/smart/bzrdir.py (+2/-1)
breezy/bzr/smart/protocol.py (+3/-1)
breezy/bzr/smart/repository.py (+2/-1)
breezy/bzr/tag.py (+2/-1)
breezy/bzr/tests/test_remote.py (+2/-1)
breezy/bzr/tests/test_smart.py (+2/-1)
breezy/bzr/transform.py (+2/-2)
breezy/bzr/versionedfile.py (+4/-2)
breezy/git/mapping.py (+2/-1)
breezy/multiparent.py (+8/-5)
breezy/plugins/bash_completion/tests/test_bashcomp.py (+5/-2)
breezy/shelf.py (+2/-1)
breezy/tests/__init__.py (+0/-1)
breezy/tests/test_source.py (+0/-2)
breezy/tests/test_transform.py (+2/-1)
breezy/tests/test_transport.py (+1/-0)
byov.conf (+1/-1)
doc/en/release-notes/brz-3.2.txt (+8/-0)
setup.py (+1/-1)
To merge this branch: bzr merge lp:~jelmer/brz/merge-3.2
Reviewer Review Type Date Requested Status
Jelmer Vernooij Approve
Review via email: mp+407455@code.launchpad.net

Commit message

Merge lp:brz/3.2.

Description of the change

Merge lp:brz/3.2.

To post a comment you must log in.
Revision history for this message
Jelmer Vernooij (jelmer) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== removed file 'breezy/_bencode_pyx.h'
2=== removed file 'breezy/_bencode_pyx.pyx'
3=== removed file 'breezy/bencode.py'
4=== modified file 'breezy/bzr/bundle/serializer/v4.py'
5--- breezy/bzr/bundle/serializer/v4.py 2020-07-18 23:14:00 +0000
6+++ breezy/bzr/bundle/serializer/v4.py 2021-08-20 12:58:08 +0000
7@@ -20,8 +20,9 @@
8 )
9 import re
10
11+import fastbencode as bencode
12+
13 from .... import (
14- bencode,
15 errors,
16 iterablefile,
17 lru_cache,
18
19=== modified file 'breezy/bzr/chk_serializer.py'
20--- breezy/bzr/chk_serializer.py 2020-07-18 23:14:00 +0000
21+++ breezy/bzr/chk_serializer.py 2021-08-20 12:58:08 +0000
22@@ -20,6 +20,8 @@
23 BytesIO,
24 )
25
26+import fastbencode as bencode
27+
28 from .. import lazy_import
29 lazy_import.lazy_import(globals(),
30 """
31@@ -29,7 +31,6 @@
32 )
33 """)
34 from .. import (
35- bencode,
36 cache_utf8,
37 errors,
38 revision as _mod_revision,
39
40=== modified file 'breezy/bzr/remote.py'
41--- breezy/bzr/remote.py 2020-07-18 23:14:00 +0000
42+++ breezy/bzr/remote.py 2021-08-20 12:58:08 +0000
43@@ -20,8 +20,9 @@
44 import sys
45 import zlib
46
47+import fastbencode as bencode
48+
49 from .. import (
50- bencode,
51 branch,
52 bzr as _mod_bzr,
53 config as _mod_config,
54
55=== modified file 'breezy/bzr/smart/branch.py'
56--- breezy/bzr/smart/branch.py 2020-02-18 01:57:45 +0000
57+++ breezy/bzr/smart/branch.py 2021-08-20 12:58:08 +0000
58@@ -16,8 +16,9 @@
59
60 """Server-side branch related request implmentations."""
61
62+import fastbencode as bencode
63+
64 from ... import (
65- bencode,
66 errors,
67 revision as _mod_revision,
68 )
69
70=== modified file 'breezy/bzr/smart/bzrdir.py'
71--- breezy/bzr/smart/bzrdir.py 2020-05-06 02:13:25 +0000
72+++ breezy/bzr/smart/bzrdir.py 2021-08-20 12:58:08 +0000
73@@ -16,8 +16,9 @@
74
75 """Server-side bzrdir related request implmentations."""
76
77+import fastbencode as bencode
78+
79 from ... import (
80- bencode,
81 branch,
82 errors,
83 repository,
84
85=== modified file 'breezy/bzr/smart/protocol.py'
86--- breezy/bzr/smart/protocol.py 2020-02-18 01:57:45 +0000
87+++ breezy/bzr/smart/protocol.py 2021-08-20 12:58:08 +0000
88@@ -18,6 +18,7 @@
89 client and server.
90 """
91
92+
93 try:
94 from collections.abc import deque
95 except ImportError: # python < 3.7
96@@ -29,6 +30,8 @@
97 import _thread
98 import time
99
100+from fastbencode import bdecode_as_tuple, bencode
101+
102 import breezy
103 from ... import (
104 debug,
105@@ -37,7 +40,6 @@
106 )
107 from . import message, request
108 from ...trace import log_exception_quietly, mutter
109-from ...bencode import bdecode_as_tuple, bencode
110
111
112 # Protocol version strings. These are sent as prefixes of bzr requests and
113
114=== modified file 'breezy/bzr/smart/repository.py'
115--- breezy/bzr/smart/repository.py 2020-02-18 01:57:45 +0000
116+++ breezy/bzr/smart/repository.py 2021-08-20 12:58:08 +0000
117@@ -25,8 +25,9 @@
118 import threading
119 import zlib
120
121+import fastbencode as bencode
122+
123 from ... import (
124- bencode,
125 errors,
126 estimate_compressed_size,
127 osutils,
128
129=== modified file 'breezy/bzr/tag.py'
130--- breezy/bzr/tag.py 2020-02-18 01:32:25 +0000
131+++ breezy/bzr/tag.py 2021-08-20 12:58:08 +0000
132@@ -17,10 +17,11 @@
133
134 from __future__ import absolute_import
135
136+import fastbencode as bencode
137+
138 from ..tag import Tags
139
140 from .. import (
141- bencode,
142 errors,
143 trace,
144 )
145
146=== modified file 'breezy/bzr/tests/test_remote.py'
147--- breezy/bzr/tests/test_remote.py 2020-06-10 23:47:24 +0000
148+++ breezy/bzr/tests/test_remote.py 2021-08-20 12:58:08 +0000
149@@ -29,8 +29,9 @@
150 import tarfile
151 import zlib
152
153+import fastbencode as bencode
154+
155 from ... import (
156- bencode,
157 branch,
158 config,
159 controldir,
160
161=== modified file 'breezy/bzr/tests/test_smart.py'
162--- breezy/bzr/tests/test_smart.py 2020-06-10 02:56:53 +0000
163+++ breezy/bzr/tests/test_smart.py 2021-08-20 12:58:08 +0000
164@@ -29,8 +29,9 @@
165 import tarfile
166 import zlib
167
168+import fastbencode as bencode
169+
170 from breezy import (
171- bencode,
172 branch as _mod_branch,
173 controldir,
174 errors,
175
176=== modified file 'breezy/bzr/transform.py'
177--- breezy/bzr/transform.py 2020-11-19 01:52:56 +0000
178+++ breezy/bzr/transform.py 2021-08-20 12:58:08 +0000
179@@ -872,7 +872,7 @@
180
181 :param serializer: A Serialiser like pack.ContainerSerializer.
182 """
183- from .. import bencode
184+ import fastbencode as bencode
185 new_name = {k.encode('utf-8'): v.encode('utf-8')
186 for k, v in self._new_name.items()}
187 new_parent = {k.encode('utf-8'): v.encode('utf-8')
188@@ -924,7 +924,7 @@
189 :param records: An iterable of (names, content) tuples, as per
190 pack.ContainerPushParser.
191 """
192- from .. import bencode
193+ import fastbencode as bencode
194 names, content = next(records)
195 attribs = bencode.bdecode(content)
196 self._id_number = attribs[b'_id_number']
197
198=== modified file 'breezy/bzr/versionedfile.py'
199--- breezy/bzr/versionedfile.py 2020-07-18 23:14:00 +0000
200+++ breezy/bzr/versionedfile.py 2021-08-20 12:58:08 +0000
201@@ -23,11 +23,13 @@
202 import struct
203 from zlib import adler32
204
205+
206 from ..lazy_import import lazy_import
207 lazy_import(globals(), """
208+import fastbencode as bencode
209+
210 from breezy import (
211 annotate,
212- bencode,
213 graph as _mod_graph,
214 osutils,
215 multiparent,
216@@ -1984,7 +1986,7 @@
217 if record.parents is None:
218 parents = b'nil'
219 else:
220- parents = record.parents
221+ parents = tuple([tuple(p) for p in record.parents])
222 record_meta = bencode.bencode((record.key, parents))
223 record_content = record.get_bytes_as('fulltext')
224 return b"fulltext\n%s%s%s" % (
225
226=== modified file 'breezy/git/mapping.py'
227--- breezy/git/mapping.py 2021-05-24 01:44:16 +0000
228+++ breezy/git/mapping.py 2021-08-20 12:58:08 +0000
229@@ -21,8 +21,9 @@
230 import base64
231 import stat
232
233+import fastbencode as bencode
234+
235 from .. import (
236- bencode,
237 errors,
238 foreign,
239 trace,
240
241=== modified file 'breezy/multiparent.py'
242--- breezy/multiparent.py 2020-02-18 01:57:45 +0000
243+++ breezy/multiparent.py 2021-08-20 12:58:08 +0000
244@@ -28,7 +28,6 @@
245 import patiencediff
246
247 from breezy import (
248- bencode,
249 ui,
250 )
251 """)
252@@ -596,12 +595,16 @@
253 raise
254
255 def save(self):
256- open(self._filename + '.mpidx', 'wb').write(bencode.bencode(
257- (self._parents, list(self._snapshots), self._diff_offset)))
258+ import fastbencode as bencode
259+ with open(self._filename + '.mpidx', 'wb') as f:
260+ f.write(bencode.bencode(
261+ (self._parents, list(self._snapshots), self._diff_offset)))
262
263 def load(self):
264- self._parents, snapshots, self._diff_offset = bencode.bdecode(
265- open(self._filename + '.mpidx', 'rb').read())
266+ import fastbencode as bencode
267+ with open(self._filename + '.mpidx', 'rb') as f:
268+ self._parents, snapshots, self._diff_offset = bencode.bdecode(
269+ f.read())
270 self._snapshots = set(snapshots)
271
272
273
274=== modified file 'breezy/plugins/bash_completion/tests/test_bashcomp.py'
275--- breezy/plugins/bash_completion/tests/test_bashcomp.py 2020-05-30 01:48:46 +0000
276+++ breezy/plugins/bash_completion/tests/test_bashcomp.py 2021-08-20 12:58:08 +0000
277@@ -42,7 +42,8 @@
278 '--noprofile'],
279 stdin=subprocess.PIPE,
280 stdout=subprocess.PIPE,
281- stderr=subprocess.PIPE)
282+ stderr=subprocess.PIPE,
283+ env={'PYTHONPATH': ':'.join(sys.path)})
284 if cword < 0:
285 cword = len(words) + cword
286 encoding = osutils.get_user_encoding()
287@@ -164,7 +165,9 @@
288
289 def get_script(self):
290 s = super(TestBashCompletionInvoking, self).get_script()
291- return s.replace("$(brz ", "$('%s' " % self.get_brz_path())
292+ s = s.replace("$(brz ", "$('%s' " % self.get_brz_path())
293+ s = s.replace("2>/dev/null", "")
294+ return s
295
296 def test_revspec_tag_all(self):
297 self.requireFeature(features.sed_feature)
298
299=== modified file 'breezy/shelf.py'
300--- breezy/shelf.py 2020-07-18 23:14:00 +0000
301+++ breezy/shelf.py 2021-08-20 12:58:08 +0000
302@@ -17,11 +17,12 @@
303 import errno
304 import re
305
306+import fastbencode as bencode
307+
308 from . import errors
309 from .lazy_import import lazy_import
310 lazy_import(globals(), """
311 from breezy import (
312- bencode,
313 merge,
314 merge3,
315 transform,
316
317=== modified file 'breezy/tests/__init__.py'
318--- breezy/tests/__init__.py 2021-01-10 00:25:52 +0000
319+++ breezy/tests/__init__.py 2021-08-20 12:58:08 +0000
320@@ -3985,7 +3985,6 @@
321 'breezy.tests.per_uifactory',
322 'breezy.tests.per_workingtree',
323 'breezy.tests.test__annotator',
324- 'breezy.tests.test__bencode',
325 'breezy.tests.test__known_graph',
326 'breezy.tests.test__simple_set',
327 'breezy.tests.test__static_tuple',
328
329=== removed file 'breezy/tests/test__bencode.py'
330=== modified file 'breezy/tests/test_source.py'
331--- breezy/tests/test_source.py 2021-01-10 00:25:52 +0000
332+++ breezy/tests/test_source.py 2021-08-20 12:58:08 +0000
333@@ -40,13 +40,11 @@
334 # Files which are listed here will be skipped when testing for Copyright (or
335 # GPL) statements.
336 COPYRIGHT_EXCEPTIONS = [
337- 'breezy/_bencode_py.py',
338 'breezy/doc_generate/conf.py',
339 'breezy/lsprof.py',
340 ]
341
342 LICENSE_EXCEPTIONS = [
343- 'breezy/_bencode_py.py',
344 'breezy/doc_generate/conf.py',
345 'breezy/lsprof.py',
346 ]
347
348=== modified file 'breezy/tests/test_transform.py'
349--- breezy/tests/test_transform.py 2020-11-18 02:15:43 +0000
350+++ breezy/tests/test_transform.py 2021-08-20 12:58:08 +0000
351@@ -21,8 +21,9 @@
352 import sys
353 import time
354
355+import fastbencode as bencode
356+
357 from .. import (
358- bencode,
359 errors,
360 filters,
361 osutils,
362
363=== modified file 'breezy/tests/test_transport.py'
364--- breezy/tests/test_transport.py 2021-01-10 00:25:52 +0000
365+++ breezy/tests/test_transport.py 2021-08-20 12:58:08 +0000
366@@ -1068,6 +1068,7 @@
367 else:
368 bzr_remote_path = self.get_brz_path()
369 self.overrideEnv('BZR_REMOTE_PATH', bzr_remote_path)
370+ self.overrideEnv('PYTHONPATH', ':'.join(sys.path))
371
372 # Access the branch via a bzr+ssh URL. The BZR_REMOTE_PATH environment
373 # variable is used to tell bzr what command to run on the remote end.
374
375=== removed file 'breezy/util/_bencode_py.py'
376=== modified file 'byov.conf'
377--- byov.conf 2021-02-19 03:14:41 +0000
378+++ byov.conf 2021-08-20 12:58:08 +0000
379@@ -22,7 +22,7 @@
380 vm.packages = {brz.build_deps}, {subunit.build_deps}, bzr, git, python-junitxml
381 [brz-xenial]
382 vm.release = bionic
383-byoci.setup.command = (pip3 install --upgrade pip && pip3 install --upgrade cython sphinx paramiko && {subunit.clone} && {flake8.install3} && python3 setup.py develop --user && pip3 install -e '.[{brz.extras}]')
384+byoci.setup.command = (pip3 install --upgrade pip && pip3 install --upgrade cython sphinx paramiko && {subunit.clone} && {flake8.install3} && PATH="$HOME/.local/bin:$PATH" python3 setup.py develop --user && pip3 install -e '.[{brz.extras}]')
385 # FIXME: bzr log -l2 should be by default -- vila 2018-03-09
386 byoci.tests.command = bash -o pipefail -c "bzr log -l2 && PYTHONPATH=../subunit/python:$PYTHONPATH PATH=../subunit/filters:$HOME/.local/bin:$PATH make check-ci | subunit2junitxml -o ../results.xml -f | subunit2pyunit"
387 [brz-cosmic]
388
389=== modified file 'doc/en/release-notes/brz-3.2.txt'
390--- doc/en/release-notes/brz-3.2.txt 2021-08-14 15:50:14 +0000
391+++ doc/en/release-notes/brz-3.2.txt 2021-08-20 12:58:08 +0000
392@@ -23,6 +23,14 @@
393 * Extend test certificate expiry to 1000 years.
394 (Bernhard M. Wiedemann, #1926151)
395
396+External Compatibility Breaks
397+*****************************
398+
399+.. These may require users to change the way they use Breezy.
400+
401+ * Breezy now uses the fastbencode Python package for bencoding.
402+ (Jelmer Vernooij)
403+
404 brz 3.2.0
405 #########
406
407
408=== modified file 'setup.py'
409--- setup.py 2021-07-06 16:33:42 +0000
410+++ setup.py 2021-08-20 12:58:08 +0000
411@@ -59,6 +59,7 @@
412 ],
413 'install_requires': [
414 'configobj',
415+ 'fastbencode',
416 'patiencediff',
417 # Technically, Breezy works without these two dependencies too. But there's
418 # no way to enable them by default and let users opt out.
419@@ -311,7 +312,6 @@
420 ext_modules.append(Extension('breezy._static_tuple_c',
421 ['breezy/_static_tuple_c.c']))
422 add_cython_extension('breezy._annotator_pyx')
423-add_cython_extension('breezy._bencode_pyx')
424 add_cython_extension('breezy._chunks_to_lines_pyx')
425 add_cython_extension('breezy.bzr._groupcompress_pyx',
426 extra_source=['breezy/bzr/diff-delta.c'])

Subscribers

People subscribed via source and target branches