/breezy/trunk

To get this branch, use:
bzr branch https://code.breezy-vcs.org/breezy/trunk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
####################
Breezy Release Notes
####################

.. toctree::
   :maxdepth: 1

brz 3.0.0 is the first release of ``Breezy``, a fork of Bazaar. For more
information, see our release announcement on the Bazaar mailing list and
README.

brz 3.0.0
#########

:Codename: Pelican
:3.0.0: NOT RELEASED YET

External Compatibility Breaks
*****************************

 * The bzr command has been renamed to brz, to prevent clashes with upstream
   Bazaar.
   (Martin Packman, Jelmer Vernooij)

 * The --prefix/-p argument for ``brz diff`` now defaults to -p1 rather
   than -p0. (Jelmer Vernooij, #1695126)

 * The ``brz register-branch`` command from the Launchpad plugin has been
   removed, because it has not worked for at least five years: it relies on
   password authentication rather than SSO, the relevant systems no longer
   have firewall-level access to the outside world, and in general the
   Mirrored branch type is deprecated.  Either just push the branch to
   Launchpad or use code imports instead
   (https://help.launchpad.net/VcsImports).
   (Colin Watson, #254567, #483689)

 * brz no longer supports building the C extensions using Pyrex.
   Only Cython is supported. (Jelmer Vernooij)

 * Support for HTTP support using "pycurl" and the associated
   URL schemes "http+pycurl://" and "https+pycurl://" has been dropped.
   (Jelmer Vernooij, #82086, #377389, #122258, #516222, #545776, #1696602)

 * Support for medusa for FTP tests has been dropped, only
   pyftpdlib is now supported. (Jelmer Vernooij)

 * The deprecated ``brz get`` and ``brz clone`` commands have been
   removed. (Jelmer Vernooij)

 * The setting to ignore missing C extensions has been changed from
   ``ignore_missing_extensions=True`` to
   ``suppress_warnings=missing_extensions``. (Jelmer Vernooij)

 * Remove format names as options to ``brz init`` and ``brz
   init-repository``.. Now you must use ``brz init --format=...``.
   This simplifies ``brz init --help``.
   (Neil Martinsen-Burrell, #330494)

 * ``python-gpg`` is now used for checking GPG signatures rather than
   ``python-gpgme``. (Jelmer Vernooij, #1702308)

 * ``python-gpg`` is now used for signing commits, rather than shelling
   out to the gnupg command. The ``gpg_signing_command`` option has been
   removed.  (Jelmer Vernooij, #847388)

 * The ``bzr.transform.orphan_policy`` configuration option
   has been renamed to ``transform.orphan_policy``.
   (Jelmer Vernooij)

 * Backslash (\) is no longer accepted as a path separator
   on platforms where it is not the default path separator,
   e.g. POSIX systems. This is so that filenames with backslashes
   in their name can be added explicitly. (#176263, #165151)

 * One-letter shortcuts for Ubuntu releases are no
   longer supported after 'ubuntu:'. Bazaar's mapping for
   one-letter distroseries had not been updated since natty.
   (Jelmer Vernooij)

New Features
************

 * The 'bisect' plugin is now shipped with brz. (Jelmer Vernooij)

 * The 'fastimport' plugin is now bundled with Breezy.
   (Jelmer Vernooij)

 * The 'stats' plugin is now bundled with Breezy.
   (Jelmer Vernooij)

 * The 'upload' plugin is now bundled with Breezy.
   (Jelmer Vernooij)

 * The 'cvs' and 'mtn' plugins are now bundled with Breezy.
   (Jelmer Vernooij)

 * The 'email' plugin is now bundled with Breezy.
   (Jelmer Vernooij)

 * The 'import' command is now bundled with brz.
   Imported from bzrtools by Aaron Bentley. (Jelmer Vernooij, #773241)

 * The 'link-tree' command is now bundled with brz.
   Imported from bzrtools by Aaron Bentley. (Jelmer Vernooij)

 * The 'fetch-ghosts' command is now bundled with brz.
   Imported from bzrtools by Aaron Bentley. (Jelmer Vernooij)

 * The 'commitfromnews' plugin is now bundled and
   can be enabled by setting ``commit.template_from_files = NEWS``.
   (Jelmer Vernooij)

 * The 'darcs' plugin is now bundled.
   (Jelmer Vernooij)

 * The functionality from ``bzr-guess`` is now merged into Breezy.
   It will provide suggestions if the user typoes a command.
   (Jelmer Vernooij)

 * Support the creation of colocated branches in ``brz fast-import``.
   (Jelmer Vernooij, #1744626)

 * New ``lp-logout`` command to unset launchpad username.
   (Jelmer Vernooij, #349143)

Improvements
************

 * Doc generators now support the SOURCE_DATE_EPOCH environment
   variable (https://reproducible-builds.org/specs/source-date-epoch/).
   (Jelmer Vernooij)

 * The ``repodebug`` plugin is now bundled.
   (Jelmer Vernooij)

 * New ``brz cp`` command which copies files (but does not currently track
   history). (Jelmer Vernooij, start towards #269095)

 * HPSS calls for ``RevisionTree.archive`` and
   ``RevisionTree.annotate_iter`` have been added. (Jelmer Vernooij,
   #897781)

Bug Fixes
*********

* Support Server Name Indication (SNI) when talking to https servers.
  Cherry-picked from lp:~vila/bzr/1089352-sni-support
  (Vincent Ladeuil, #1089352)

* The ``bisect`` command now works in non-``.bzr`` directories.
  (Jelmer Vernooij)

* When creating ``authentication.conf``, umask is now set so only the
  current user can read the file. Breezy warns if the file is
  accessible for other users when it starts.
  (Joke de Buhr, Jelmer Vernooij, #475501)

* Support ``brz commit -x`` in combination with iter_changes.
  (Jelmer Vernooij, #796582, #403811, #694946, #268135, #299879)

* Print a proper error when encountering ghost revisions in
  mainline in ``brz log``. (Jelmer Vernooij, #726466)

* Security fix: hostnames starting with a dash in bzr+ssh URLs
  are now filtered out when using a subprocess SSH client.
  .
  Thanks to Augie Fackler for reporting.
  (Jelmer Vernooij, #1710979)

* Mark all options as unicode. Allows using non-ASCII values in most
  options. (Jelmer Vernooij, #563692)

* Support automatic rename tracking into new directories.
  (mnn, #373319)

* Avoid writing directly to sys.stdout, but use self.outf in
  Command implementations instead. (#268573, B. Clausius)

* It is now possible to version files with backslashes in their name
  on platforms that support it. (Jelmer Vernooij, #81844)

* Support '0' markers in fastimport plugin. (Jelmer Vernooij, #1744615)

* Support adding/removing filenames that consist of just
  backslashes in where backslash is not the path separator.
  (Jelmer Vernooij, #176263, #165151)

* Report correct path in output of ``brz add``.
  (Brian de Alwis, Jelmer Vernooij, #1799482)

Documentation
*************

 * Various documents have been updated to explain that Breezy is a fork
   of Bazaar.

 * Documentation translations into Japanese, Spanish and Russian have been
   removed since there are no current translators to update them.
   (Jelmer Vernooij)

API Changes
***********

 * bzrlib has been renamed to breezy. (Martin Packman, Jelmer Vernooij)

 * Signature of ``load_tests`` used by ``TestLoader`` changed to be
   compatible with standard libarary unittest.  (Martin Packman)

 * All previously deprecated functionality has been removed.
   (Jelmer Vernooij)

 * ``CommitBuilder.record_entry_contents`` has been removed.
   (Jelmer Vernooij, #731433, #604953)

 * Renamed ``breezy.delta.report_delta`` parameter ``filter=`` to
   ``predicate=``. (Martin Packman)

 * ``Branch.bzrdir``, ``Repository.bzrdir`` and ``WorkingTree.bzrdir``
   have been renamed to ``Branch.controldir``, ``Repository.controldir``
   and ``WorkingTree.controldir``, respectively.
   (Jelmer Vernooij, #1695774)

 * ``BzrBranch`` and the various bzr branch format implementations
   have been moved to ``breezy.bzr``. (Jelmer Vernooij)

 * ``MetaDirBranchFormatFactory`` has been removed.
   Use lazy registration on ``breezy.branch.format_registry``
   instead. (Jelmer Vernooij)

 * ``breezy.bzrdir.format_registry`` has been removed; use
   ``breezy.controldir.format_registry`` instead.
   (Jelmer Vernooij)

 * ``breezy.api`` has been removed.  (Jelmer Vernooij, #742192)

 * ``ControlDir.find_bzrdirs`` has been renamed to
   ``ControlDir.find_controldirs``. (Jelmer Vernooij)

 * ``Repository.get_revisions`` no longer accepts ``None`` as
   argument. (Jelmer Vernooij)

 * A new ``Repository.iter_revisions`` method has been added.
   (Jelmer Vernooij)

 * A new ``WorkingTreeFormat.supports_setting_file_ids`` property
   has been added that can be set to False to indicate a working tree
   doesn't support e.g. passing a file_id into ``WorkingTree.mkdir``.
   (Jelmer Vernooij, #1707533)

 * A new ``RepositoryFormat.supports_setting_revision_ids`` property
   has been added that can be set to False to indicate a repository
   doesn't support passing revision ids to ``CommitBuilder.commit``.
   (Jelmer Vernooij)

 * A new ``RepositoryFormat.supports_overriding_transport`` property
   has been added that can be set to False to indicate a repository
   doesn't support passing an alternative transport to
   ``RepositoryFormat.open``.
   (Jelmer Vernooij)

 * ``Repository.print_file`` and ``Branch.print_file`` have been removed.
   (Jelmer Vernooij)

 * Various ``lock_write`` and ``lock_read`` functions now return a
   context manager. (Jelmer Vernooij)

 * The ``BranchWriteLockResult.branch_token`` (returned by
   ``Branch.lock_write``) has been renamed to
   ``BranchWriteLockResult.token``. (Jelmer Vernooij)

 * ``breezy.decorators.needs_write_lock``,
   ``breezy.decorators.needs_read_lock`` and
   ``breezy.mutabletree.needs_tree_write_lock`` have been deprecated.
   Instead, use the context managers returned by ``.lock_write``,
   ``.lock_read`` and ``.lock_tree_write`` respectively. (Jelmer Vernooij)

 * ``Tree`` methods now take a ``path`` as primary key argument, rather
   than a ``file_id``. ``file_id`` is still present as optional argument
   for most functions, and can be specified to speed up lookups.
   (Jelmer Vernooij)

Internals
*********

.. Major internal changes, unlikely to be visible to users or plugin 
   developers, but interesting for brz developers.

* Allow overriding of default HTTP headers by caller.
  (Jelmer Vernooij, #1753734)

Testing
*******

 * Allow /dev/null to be a symlink to a chardev. (Igo Pashev, #832257)

 * A test isolation issue in ``breezy.tests.test_ui`` was fixed,
   which caused ``output_encoding = iso-8859-1`` to be added to the
   users' bazaar.conf. (Jelmer Vernooij)

 * Newer versions of ``pyftpdlib`` are now supported for running FTP tests.
   (Jelmer Vernooij)

 * The ``--subunit`` argument for ``brz selftest`` has been renamed to
   ``--subunit1``, and a new argument ``--subunit2`` has been added that
   outputs subunit v2.
   (Jelmer Vernooij, #1699346, #661205)

 * Launchpad plugin tests no longer try to connect to production
   Launchpad. (Jelmer Vernooij, #723183)

 * Set the ``GPGHOME`` environment variable during testing, to prevent
   e.g. leaking keys into the users' GNUPG directory.
   (Jelmer Vernooij, #843885)

..
   vim: tw=74 ft=rst ff=unix