~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/HACKING.txt

  • Committer: Vincent Ladeuil
  • Date: 2010-10-07 06:08:01 UTC
  • mto: This revision was merged to the branch mainline in revision 5491.
  • Revision ID: v.ladeuil+lp@free.fr-20101007060801-wfdhizfhfmctl8qa
Fix some typos and propose a release planning.

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 "lp:bzr" to hand
 
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
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
 
257
261
setup.py
258
262
    Installs Bazaar system-wide or to your home directory.  To perform
259
263
    development work on Bazaar it is not required to run this file - you
281
285
    Documentation specifically targeted at Bazaar and plugin developers.
282
286
    (Including this document.)
283
287
 
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).
294
288
 
295
289
 
296
290
Automatically-generated API reference information is available at
365
359
can't fix.
366
360
 
367
361
 
 
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
 
368
426
General Guidelines
369
427
==================
370
428
 
436
494
be disabled if necessary by setting the environment variable
437
495
``BZR_SIGQUIT_PDB=0``.
438
496
 
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.
445
497
 
446
498
Debug Flags
447
499
===========
523
575
Because Transports work in URLs (as defined earlier), printing the raw URL
524
576
to the user is usually less than optimal. Characters outside the standard
525
577
set are printed as escapes, rather than the real character, and local
526
 
paths would be printed as ``file://`` URLs. The function
 
578
paths would be printed as ``file://`` urls. The function
527
579
``unescape_for_display`` attempts to unescape a URL, such that anything
528
580
that cannot be printed in the current encoding stays an escaped URL, but
529
581
valid characters are generated where possible.
588
640
stuff covered above, "core" developers have responsibility for:
589
641
 
590
642
* reviewing changes
 
643
* reviewing blueprints
591
644
* planning releases
592
645
* managing releases (see `Releasing Bazaar <http://doc.bazaar.canonical.com/developers/releasing.html>`_)
593
646