~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/HACKING.txt

  • Committer: Kit Randel
  • Date: 2014-12-15 20:24:42 UTC
  • mto: This revision was merged to the branch mainline in revision 6602.
  • Revision ID: kit.randel@canonical.com-20141215202442-usf2ixhypqg8yh6q
added a note for bug-1400567 to the 2.7b release notes

Show diffs side-by-side

added added

removed removed

Lines of Context:
117
117
`your_lp_username`.  You can push your branch to Launchpad directly from
118
118
Bazaar::
119
119
 
120
 
  $ bzr push lp:~your_lp_username/bzr/meaningful_name_here
 
120
  $ bzr push lp:~<your_lp_username>/bzr/meaningful_name_here
121
121
 
122
122
After you have pushed your branch, you will need to propose it for merging to
123
123
the Bazaar trunk.  Go to
124
 
<https://launchpad.net/your_lp_username/bzr/meaningful_name_here> and choose
125
 
"Propose for merging into another branch".  Select "~bzr/bzr/trunk" to hand
 
124
<https://launchpad.net/~<your_lp_username>/bzr/meaningful_name_here> and choose
 
125
"Propose for merging into another branch".  Select "lp:bzr" to hand
126
126
your changes off to the Bazaar developers for review and merging.
127
127
 
128
128
Alternatively, after pushing you can use the ``lp-propose`` command to 
254
254
    This file covers a brief introduction to Bazaar and lists some of its
255
255
    key features.
256
256
 
257
 
NEWS
258
 
    Summary of changes in each Bazaar release that can affect users or
259
 
    plugin developers.
260
 
 
261
257
setup.py
262
258
    Installs Bazaar system-wide or to your home directory.  To perform
263
259
    development work on Bazaar it is not required to run this file - you
285
281
    Documentation specifically targeted at Bazaar and plugin developers.
286
282
    (Including this document.)
287
283
 
 
284
doc/en/release-notes/
 
285
 
 
286
    Detailed changes in each Bazaar release (there is one file by series:
 
287
    bzr-2.3.txt, bzr-2.4.txt, etc) that can affect users or plugin
 
288
    developers.
 
289
 
 
290
doc/en/whats-new/
 
291
 
 
292
    High-level summaries of changes in each Bazaar release (there is one
 
293
    file by series: whats-new-in-2.3.txt, whats-new-in-2.4.txt, etc).
288
294
 
289
295
 
290
296
Automatically-generated API reference information is available at
291
 
<http://starship.python.net/crew/mwh/bzrlibapi/>.
 
297
<http://people.canonical.com/~mwh/bzrlibapi/>.
292
298
 
293
299
See also the `Bazaar Architectural Overview
294
300
<http://doc.bazaar.canonical.com/developers/overview.html>`_.
359
365
can't fix.
360
366
 
361
367
 
362
 
Documenting Changes
363
 
===================
364
 
 
365
 
When you change bzrlib, please update the relevant documentation for the
366
 
change you made: Changes to commands should update their help, and
367
 
possibly end user tutorials; changes to the core library should be
368
 
reflected in API documentation.
369
 
 
370
 
NEWS File
371
 
---------
372
 
 
373
 
If you make a user-visible change, please add a note to the NEWS file.
374
 
The description should be written to make sense to someone who's just
375
 
a user of bzr, not a developer: new functions or classes shouldn't be
376
 
mentioned, but new commands, changes in behaviour or fixed nontrivial
377
 
bugs should be listed.  See the existing entries for an idea of what
378
 
should be done.
379
 
 
380
 
Within each release, entries in the news file should have the most
381
 
user-visible changes first.  So the order should be approximately:
382
 
 
383
 
 * changes to existing behaviour - the highest priority because the
384
 
   user's existing knowledge is incorrect
385
 
 * new features - should be brought to their attention
386
 
 * bug fixes - may be of interest if the bug was affecting them, and
387
 
   should include the bug number if any
388
 
 * major documentation changes, including fixed documentation bugs
389
 
 * changes to internal interfaces
390
 
 
391
 
People who made significant contributions to each change are listed in
392
 
parenthesis.  This can include reporting bugs (particularly with good
393
 
details or reproduction recipes), submitting patches, etc.
394
 
 
395
 
To help with merging, NEWS entries should be sorted lexicographically
396
 
within each section.
397
 
 
398
 
Commands
399
 
--------
400
 
 
401
 
The docstring of a command is used by ``bzr help`` to generate help output
402
 
for the command. The list 'takes_options' attribute on a command is used by
403
 
``bzr help`` to document the options for the command - the command
404
 
docstring does not need to document them. Finally, the '_see_also'
405
 
attribute on a command can be used to reference other related help topics.
406
 
 
407
 
API Documentation
408
 
-----------------
409
 
 
410
 
Functions, methods, classes and modules should have docstrings
411
 
describing how they are used.
412
 
 
413
 
The first line of the docstring should be a self-contained sentence.
414
 
 
415
 
For the special case of Command classes, this acts as the user-visible
416
 
documentation shown by the help command.
417
 
 
418
 
The docstrings should be formatted as reStructuredText_ (like this
419
 
document), suitable for processing using the epydoc_ tool into HTML
420
 
documentation.
421
 
 
422
 
.. _reStructuredText: http://docutils.sourceforge.net/rst.html
423
 
.. _epydoc: http://epydoc.sourceforge.net/
424
 
 
425
 
 
426
368
General Guidelines
427
369
==================
428
370
 
494
436
be disabled if necessary by setting the environment variable
495
437
``BZR_SIGQUIT_PDB=0``.
496
438
 
 
439
All tests inheriting from bzrlib.tests.TestCase can use ``self.debug()``
 
440
instead of the longer ``import pdb; pdb.set_trace()``. The former also works
 
441
when ``stdin/stdout`` are redirected (by using the original ``stdin/stdout``
 
442
file handles at the start of the ``bzr`` script) while the later doesn't.
 
443
``bzrlib.debug.set_trace()`` also uses the original ``stdin/stdout`` file
 
444
handles.
497
445
 
498
446
Debug Flags
499
447
===========
575
523
Because Transports work in URLs (as defined earlier), printing the raw URL
576
524
to the user is usually less than optimal. Characters outside the standard
577
525
set are printed as escapes, rather than the real character, and local
578
 
paths would be printed as ``file://`` urls. The function
 
526
paths would be printed as ``file://`` URLs. The function
579
527
``unescape_for_display`` attempts to unescape a URL, such that anything
580
528
that cannot be printed in the current encoding stays an escaped URL, but
581
529
valid characters are generated where possible.
640
588
stuff covered above, "core" developers have responsibility for:
641
589
 
642
590
* reviewing changes
643
 
* reviewing blueprints
644
591
* planning releases
645
592
* managing releases (see `Releasing Bazaar <http://doc.bazaar.canonical.com/developers/releasing.html>`_)
646
593