~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to HACKING

  • Committer: Robert Collins
  • Date: 2005-10-06 03:08:26 UTC
  • Revision ID: robertc@robertcollins.net-20051006030826-cfd416d323559cfa
update HACKING

Show diffs side-by-side

added added

removed removed

Lines of Context:
8
8
  In general, you can test at either the command-line level or the
9
9
  internal API level.  Choose whichever is appropriate: if adding a
10
10
  new command, or a new command option, then call through run_bzr().
11
 
  It is not necessary to do both.
 
11
  It is not necessary to do both. Tests that test the command line level
 
12
  are appropriate for checking the UI behaves well - bug fixes and
 
13
  core improvements should be tested closer to the code that is doing the
 
14
  work. Command line level tests should be placed in 'blackbox.py'.
12
15
 
13
16
* Before fixing a bug, write a test case so that it does not regress.
14
17
 
30
33
* Module names should always be given fully-qualified,
31
34
  i.e. ``bzrlib.hashcache`` not just ``hashcache``.
32
35
 
 
36
* If you change the behaviour of an API in an incompatible way, please
 
37
  be sure to change its name as well. For instance, if I add a keyword
 
38
  parameter to branch.commit - thats fine. On the other hand, if I add
 
39
  a keyword parameter to branch.commit which is a *required* transaction
 
40
  object, I should rename the api - i.e. to 'branch.commit_transaction'.
 
41
  This will prevent users of the old api outside of the tree getting
 
42
  surprising results. 
 
43
  Instead, they will get an Attribute error as the api is missing, and
 
44
  will know to update their code. If in doubt, just ask on #bzr.
33
45
 
34
46
 
35
47
Documentation