~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/en/release-notes/bzr-2.4.txt

  • Committer: Martin
  • Date: 2011-04-15 21:22:57 UTC
  • mto: This revision was merged to the branch mainline in revision 5797.
  • Revision ID: gzlist@googlemail.com-20110415212257-jgtovwwp4be7egd9
Add release notes

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
####################
 
2
Bazaar Release Notes
 
3
####################
 
4
 
 
5
.. toctree::
 
6
   :maxdepth: 1
 
7
 
 
8
bzr 2.4b2
 
9
#########
 
10
 
 
11
:2.4b2: NOT RELEASED YET
 
12
 
 
13
External Compatibility Breaks
 
14
*****************************
 
15
 
 
16
.. These may require users to change the way they use Bazaar.
 
17
 
 
18
New Features
 
19
************
 
20
 
 
21
.. New commands, options, etc that users may wish to try out.
 
22
 
 
23
Improvements
 
24
************
 
25
 
 
26
.. Improvements to existing commands, especially improved performance 
 
27
   or memory usage, or better results.
 
28
 
 
29
* When building a new WorkingTree (such as during ``bzr co`` or
 
30
  ``bzr branch``) we now properly store the stat and hash of files that
 
31
  are old enough. This saves a fair amount of time on the first
 
32
  ``bzr status`` (on a 500MB tree, it saves about 30+s).
 
33
  (John Arbash Meinel, #740932)
 
34
 
 
35
* Resolve ``lp:FOO`` urls locally rather than doing an XMLRPC request if
 
36
  the user has done ``bzr launchpad-login``. The bzr+ssh URLs were already
 
37
  being handed off to the remote server anyway (xmlrpc has been mapping
 
38
  ``lp:bzr`` to ``bzr+ssh://bazaar.launchpad.net/+branch/bzr``, rather
 
39
  than ``bzr+ssh://bazaar.launchpad.net/~bzr-pqm/bzr/bzr.dev`` for a few
 
40
  months now.) By doing it ourselves, we can cut out substantial startup
 
41
  time. From Netherlands to London it was taking 368ms to do the XMLRPC
 
42
  call as much as 2s from Sydney. You can test the local logic by using
 
43
  ``-Dlaunchpad``.  (John Arbash Meinel, #397739)
 
44
 
 
45
Bug Fixes
 
46
*********
 
47
 
 
48
.. Fixes for situations where bzr would previously crash or give incorrect
 
49
   or undesirable results.
 
50
 
 
51
* Arguments that can't be decoded to unicode in the current posix locale give
 
52
  a clearer error message without a traceback. (Martin [gz], #745712)
 
53
 
 
54
* ``bzrlib.log._DEFAULT_REQUEST_PARAMS`` is no longer accidentally
 
55
  mutated by ``bzrlib.log._apply_log_request_defaults``.  In practice
 
56
  these default values aren't relied on very often so this probably
 
57
  wasn't causing any trouble.  (Andrew Bennetts)
 
58
 
 
59
* ``bzr log`` now works on revisions which are not in the current branch.
 
60
  (Matt Giuca, #241998)
 
61
 
 
62
* Lazy hooks are now reset between test runs. (Jelmer Vernooij, #745566)
 
63
 
 
64
* Standalone bzr.exe installation on Windows: user can put additional python 
 
65
  libraries into ``site-packages`` subdirectory of the installation directory,
 
66
  this might be required for "installing" extra dependencies for some plugins.
 
67
  (Alexander Belchenko, #743256)
 
68
 
 
69
* ``TreeTransform.create_file/new_file`` can now take an optional ``sha1``
 
70
  parameter. If supplied, when the transform is applied, it will then call
 
71
  ``self._tree._observed_sha1`` for those files. This lets us update the
 
72
  hash-cache for content that we create, preventing us from re-reading the
 
73
  content in the next ``bzr status``.  (John Arbash Meinel, #740932)
 
74
 
 
75
Documentation
 
76
*************
 
77
 
 
78
* Added a section about using a shared SSH account on a server for bzr+ssh
 
79
  access.  (Russell Smith)
 
80
 
 
81
* The documentation now recommends using SSH rather than SFTP in the
 
82
  tutorials and the examples, because that will generally be much faster
 
83
  and better in cases where it can be used.  SFTP is still available and
 
84
  mentioned as an alternative.  (Martin Pool, #636712)
 
85
 
 
86
API Changes
 
87
***********
 
88
 
 
89
.. Changes that may require updates in plugins or other code that uses
 
90
   bzrlib.
 
91
 
 
92
* ``Hooks.create_hook`` is now deprecated in favour of ``Hooks.add_hook``.
 
93
  (Jelmer Vernooij)
 
94
 
 
95
* If you call `bzrlib.initialize` but forget to enter the resulting object
 
96
  as a context manager, bzrlib will now be initialized anyhow.
 
97
  (Previously simple programs calling bzrlib might find the library was
 
98
  mysteriously silent.)
 
99
  (Martin Pool)
 
100
 
 
101
* Inventory-specific functionality has been split out of ``Tree`` into
 
102
  a new ``InventoryTree`` class. Tree instances no longer
 
103
  necessarily provide an ``inventory`` attribute. (Jelmer Vernooij)
 
104
 
 
105
* New method ``Hooks.uninstall_named_hook``. (Jelmer Vernooij, #301472)
 
106
 
 
107
* ``revision_graph_can_have_wrong_parents`` is now an attribute
 
108
  on ``RepositoryFormat`` rather than a method on ``Repository``.
 
109
  (Jelmer Vernooij)
 
110
 
 
111
* The ``revno`` parameter of ``log.LogRevision`` may now be None,
 
112
  representing a revision which is not in the current branch.
 
113
  (Matt Giuca, #241998)
 
114
 
 
115
* The various knit pack repository format classes have been moved
 
116
  from ``bzrlib.repofmt.pack_repo`` to
 
117
  ``bzrlib.repofmt.knitpack_repo``. (Jelmer Vernooij)
 
118
 
 
119
Internals
 
120
*********
 
121
 
 
122
.. Major internal changes, unlikely to be visible to users or plugin 
 
123
   developers, but interesting for bzr developers.
 
124
 
 
125
* Added ``osutils.lstat`` and ``osutils.fstat``. These are just the ``os``
 
126
  functions on Linux, but they are wrapped on Windows so that fstat
 
127
  matches lstat results across all python versions.
 
128
  (John Arbash Meinel)
 
129
 
 
130
* ``WorkingTree._observed_sha1`` also updates the 'size' column. It
 
131
  happened to be updated as a side-effect of commit, but if we start using
 
132
  the function elsewhere we might as well do it directly.
 
133
  (John Arbash Meinel)
 
134
 
 
135
Testing
 
136
*******
 
137
 
 
138
.. Fixes and changes that are only relevant to bzr's test framework and 
 
139
   suite.  This can include new facilities for writing tests, fixes to 
 
140
   spurious test failures and changes to the way things should be tested.
 
141
 
 
142
 
 
143
bzr 2.4b1
 
144
#########
 
145
 
 
146
:2.4b1: 2011-04-17
 
147
 
 
148
This is the first beta of the 2.4 series, leading up to a 2.4.0
 
149
release in August 2011.  Beta releases are suitable for everyday use
 
150
but may cause some incompatibilities with plugins.  Some plugins may need
 
151
small updates to work with 2.4b1.
 
152
 
 
153
External Compatibility Breaks
 
154
*****************************
 
155
 
 
156
(none)
 
157
 
 
158
New Features
 
159
************
 
160
 
 
161
* Added ``changelog_merge`` plugin for merging changes to ``Changelog`` files
 
162
  in GNU format.  See ``bzr help changelog_merge`` for details.
 
163
  (Andrew Bennetts)
 
164
  
 
165
* Configuration options can now use references to other options in the same
 
166
  file by enclosing them with curly brackets (``{other_opt}``). This makes it
 
167
  possible to use, for example,
 
168
  ``push_location=lp:~vila/bzr/config-{nickname}`` in ``branch.conf`` when
 
169
  using a loom. During the beta period, the default behaviour is to disable
 
170
  this feature. It can be activated by declaring ``bzr.config.expand = True``
 
171
  in ``bazaar.conf``. (Vincent Ladeuil)
 
172
 
 
173
* External merge tools can now be configured in bazaar.conf. See
 
174
  ``bzr help configuration`` for more information.  (Gordon Tyler, #489915)
 
175
 
 
176
* The ``lp:`` directory service now supports Launchpad's QA staging.
 
177
  (Jelmer Vernooij, #667483)
 
178
 
 
179
Improvements
 
180
************
 
181
 
 
182
* A new hidden command ``bzr repair-workingtree``. This is a way to force
 
183
  the dirstate file to be rebuilt, rather than using a ``bzr checkout``
 
184
  workaround. (John Arbash Meinel)
 
185
 
 
186
* Added a ``Branch.heads_to_fetch`` RPC to the smart server protocol.
 
187
  This allows formats from plugins (such as looms) to efficiently tell the
 
188
  client which revisions need to be fetched.  (Andrew Bennetts)
 
189
 
 
190
* Branching, merging and pulling a branch now copies revisions named in
 
191
  tags, not just the tag metadata.  (Andrew Bennetts, #309682)
 
192
 
 
193
* ``bzr cat-revision`` no longer requires a working tree.
 
194
  (Jelmer Vernooij, #704405)
 
195
 
 
196
* ``bzr export --per-file-timestamps`` for .tar.gz files will now
 
197
  override the mtime for trees exported on Python 2.7 and later, which
 
198
  expose the 'mtime' field in gzip files. This makes the output of
 
199
  ``bzr export --per-file-timestamps`` for a particular tree
 
200
  deterministic.  (Jelmer Vernooij, #711226)
 
201
 
 
202
* ``bzr export --format=zip`` can now export to standard output,
 
203
  like the other exporters can. (Jelmer Vernooij, #513752)
 
204
 
 
205
* ``bzr export`` can now create ``.tar.xz`` and ``.tar.lzma`` files.
 
206
  (Jelmer Vernooij, #551714)
 
207
 
 
208
* Getting all entries from ``CHKInventory.iter_entries_by_dir()`` has been
 
209
  sped up dramatically for large trees. Iterating by dir is not the best
 
210
  way to load data from a CHK inventory, so it preloads all the items in
 
211
  the correct order. (With the gcc-tree, this changes it (re)reading 8GB
 
212
  of CHK data, down to just 150MB.) This has noticeable affects for things
 
213
  like building checkouts, etc.  (John Arbash Meinel, #737234)
 
214
 
 
215
 
 
216
Bug Fixes
 
217
*********
 
218
 
 
219
* A MemoryError thrown on the server during a remote operation will now be
 
220
  usefully reported, and other unexpected errors will include the class name.
 
221
  (Martin [gz], #722416)
 
222
 
 
223
* ``bzr annotate -r-1 file`` will now properly annotate a deleted file.
 
224
  (Andrew King, #537442)
 
225
 
 
226
* ``bzr export`` to zip files will now set a mode on directories.
 
227
  (Jelmer Vernooij, #207253)
 
228
 
 
229
* ``bzr export`` to tgz files will only write out the basename of the
 
230
  tarfile to the gzip file. (Jelmer Vernooij, #102234)
 
231
 
 
232
* ``bzr push --overwrite`` with an older revision specified will now correctly
 
233
  roll back the target branch. (Jelmer Vernooij, #386576)
 
234
 
 
235
* ``bzr lp-propose`` can now propose merges against packaging branches on
 
236
  Launchpad without requiring the target branch to be specified.
 
237
  (Jelmer Vernooij, #704647)
 
238
 
 
239
* ``bzr lp-propose`` no longer requires a reviewer to be specified. It will
 
240
  instead leave setting the reviewer up to Launchpad if it was not specified.
 
241
  (Jelmer Vernooij, #583772)
 
242
 
 
243
* ``bzr pull`` will now exit with exit code 1 if there were tag conflicts.
 
244
  (Jelmer Vernooij, #213185)
 
245
 
 
246
* ``bzr mv`` user errors no longer throw UnicodeEncodeError with non-ascii
 
247
  paths, however they may still print junk if not on a UTF-8 terminal.
 
248
  (Martin [gz], #707954)
 
249
 
 
250
* ``bzr reconfigure --unstacked`` now copies revisions (and their
 
251
  ancestors) named in tags into the unstacked repository, not just the
 
252
  ancestry of the branch's tip.  (Andrew Bennetts, #401646)
 
253
 
 
254
* ``bzr serve`` no longer crashes when a server_started hook is installed and
 
255
  IPv6 support is available on the system. (Jelmer Vernooij, #293697)
 
256
 
 
257
* ``bzr tags`` will no longer choke on branches with ghost revisions in
 
258
  their mainline and tags on revisions not in the branch ancestry. 
 
259
  (Jelmer Vernooij, #397556)
 
260
 
 
261
* ``bzr whoami`` will now display an error if both a new identity and
 
262
  ``--email`` were specified. (Jelmer Vernooij, #680449)
 
263
 
 
264
* ``launchpadlib`` doesn't provide the ``uris`` module in some old versions.
 
265
  (Vincent Ladeuil, #706835)
 
266
 
 
267
* Empty entries in the ``NO_PROXY`` variable are no longer treated as matching
 
268
  every host.
 
269
  (Martin Pool, #586341)
 
270
 
 
271
* Plugins incompatible with the current version of bzr no longer produce a
 
272
  warning on every command invocation.  Instead, a message is shown by
 
273
  ``bzr plugins`` and in crash reports.
 
274
  (#704195, Martin Pool)
 
275
 
 
276
* The "pretty" version of ``needs_read_lock`` and ``needs_write_lock`` now
 
277
  preserves the identity of default parameter values.
 
278
  (Andrew Bennetts, #718569)
 
279
 
 
280
* ``bzr dump-btree --raw`` no longer tracebacks on a B-Tree file
 
281
  containing no rows. (Eric Siegerman, #715508)
 
282
 
 
283
* Fix ``bzr lp-mirror`` to work on command line branch URLs and branches
 
284
  without an explicit public location. (Max Bowsher)
 
285
 
 
286
* On Python 2.6 and higher, use multiprocessing.cpu_count() to retrieve the
 
287
  number of available processors. (Jelmer Vernooij, #693140)
 
288
 
 
289
API Changes
 
290
***********
 
291
 
 
292
* Added ``Branch.heads_to_fetch`` method.  Implementations of the Branch API
 
293
  must now inherit or implement this method.  (Andrew Bennetts, #721328)
 
294
  
 
295
* Added ``bzrlib.mergetools`` module with helper functions for working with
 
296
  the list of external merge tools. (Gordon Tyler, #489915)
 
297
 
 
298
* All methods and arguments that were deprecated before 2.0
 
299
  have been removed. (Jelmer Vernooij)
 
300
 
 
301
* Branch formats should now be registered on the format registry
 
302
  (``bzrlib.branch.format_registry``) rather than using the class
 
303
  methods on ``BranchFormat``. (Jelmer Vernooij, #714729)
 
304
 
 
305
* ``BranchFormat.supports_leaving_lock()`` and
 
306
  ``RepositoryFormat.supports_leaving_lock`` flags have been added.
 
307
  (Jelmer Vernooij)
 
308
 
 
309
* ``Branch.fetch`` implementations must now accept an optional
 
310
  ``fetch_spec`` keyword argument. (Andrew Bennetts)
 
311
 
 
312
* ``Branch.import_last_revision_info`` is deprecated.  Use the
 
313
  ``import_last_revision_info_and_tags`` method instead.
 
314
  (Andrew Bennetts)
 
315
 
 
316
* Because it was too specific to BzrDir implementations,
 
317
  ``ControlDir.sprout`` no longer has a default implementation; it now
 
318
  raises ``NotImplementedError``. (Jelmer Vernooij, #717937)
 
319
 
 
320
* ``ControlDirFormat.register_format`` has been removed. Instead,
 
321
  ``Prober`` implementations should now implement a ``known_formats``
 
322
  method. (Jelmer Vernooij)
 
323
 
 
324
* ControlDirFormats can now provide a ``check_status`` method and
 
325
  raise a custom exception or warning when an unsupported or deprecated
 
326
  format is being opened.  (Jelmer Vernooij, #731311)
 
327
 
 
328
* ``bzrlib.revionspec.dwim_revspecs`` is deprecated.
 
329
  Use ``bzrlib.revisionspec.RevisionSpec_dwim.append_possible_revspec`` and
 
330
  ``bzrlib.revisionspec.RevisionSpec_dwim.append_possible_lazy_revspec``
 
331
  instead.  (Jelmer Vernooij, #721971)
 
332
 
 
333
* ``BzrDirFormat`` has a new attribute ``fixed_components`` that
 
334
  indicates whether the components of the bzrdir can be upgraded
 
335
  independent of the ``BzrDir``. (Jelmer Vernooij)
 
336
 
 
337
* ``BzrProber.register_format`` and ``BzrProber.unregister_format`` are
 
338
  now deprecated in favour of the ``BzrProber.formats`` format registry.
 
339
  (Jelmer Vernooij)
 
340
 
 
341
* ``ControlDir`` implementations no longer have to provide the
 
342
  ``get_branch_transport``, ``get_workingtree_transport`` and
 
343
  ``get_repository_transport`` methods.  (Jelmer Vernooij, #730325)
 
344
 
 
345
* ``Converter`` has been moved from ``bzrlib.bzrdir`` to
 
346
  ``bzrlib.controldir``. (Jelmer Vernooij)
 
347
 
 
348
* Repository formats can now provide
 
349
  ``_get_extra_interrepo_test_combinations`` in the same module 
 
350
  to provide extra test combinations for ``bzrlib.tests.per_repository``.
 
351
  (Jelmer Vernooij)
 
352
 
 
353
* Repository formats should now be registered on the format registry
 
354
  (``bzrlib.repository.format_registry``) rather than using the class
 
355
  methods on ``RepositoryFormat``. (Jelmer Vernooij)
 
356
 
 
357
* Repository formats can now indicate they do not support the full
 
358
  VersionedFiles API by setting the ``supports_full_versioned_files``
 
359
  attribute to False. A subset of the VersionedFiles API
 
360
  (signatures and text graphs) still needs to be supported.
 
361
  (Jelmer Vernooij)
 
362
 
 
363
* Repository formats have a new method ``is_deprecated`` that
 
364
  implementations can override to return True to trigger a deprecation
 
365
  warning. (Jelmer Vernooij)
 
366
 
 
367
* The ``revision_id`` parameter of
 
368
  ``Repository.search_missing_revision_ids`` and
 
369
  ``InterRepository.search_missing_revision_ids`` is deprecated.  It is
 
370
  replaced by the ``revision_ids`` parameter.  (Andrew Bennetts)
 
371
 
 
372
* Working tree formats should now be registered on the format registry
 
373
  (``bzrlib.working_tree.format_registry``) rather than using the class
 
374
  methods on ``WorkingTreeFormat``. (Jelmer Vernooij, #714730)
 
375
 
 
376
Internals
 
377
*********
 
378
 
 
379
* ``CatchingExceptionThread`` (formerly ThreadWithException) has been moved
 
380
  out of the ``bzrlib.tests`` hierarchy to make it clearer that it can be used
 
381
  outside of tests. This class makes it easier to track exceptions in threads
 
382
  by catching them so they can be re-raised in the controlling thread. It's
 
383
  available in the ``bzrlib.cethread`` module.  (Vincent Ladeuil)
 
384
 
 
385
* Correctly propogate malloc failures from diff-delta.c code as MemoryError
 
386
  so OOM conditions during groupcompress are clearly reported. This entailed a
 
387
  change to several function signatures. (Martin [gz], #633336)
 
388
 
 
389
* ``HookPoint.lazy_hook`` and ``Hooks.install_named_lazy_hook`` can install 
 
390
  hooks for which the callable is loaded lazily.  (Jelmer Vernooij)
 
391
 
 
392
Testing
 
393
*******
 
394
 
 
395
* The Range parsing for HTTP requests will correctly parse incomplete ranges.
 
396
  (Vincent Ladeuil, #731240)
 
397
 
 
398
..
 
399
   vim: tw=74 ft=rst ff=unix