~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/bug-handling.txt

  • Committer: Danny van Heumen
  • Date: 2010-03-09 21:42:11 UTC
  • mto: (4634.139.5 2.0)
  • mto: This revision was merged to the branch mainline in revision 5160.
  • Revision ID: danny@dannyvanheumen.nl-20100309214211-iqh42x6qcikgd9p3
Reverted now-useless TODO list.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
***********************
 
2
Tracking Bugs in Bazaar
 
3
***********************
 
4
 
 
5
This document describes the bug-tracking processes for developing Bazaar
 
6
itself.  Bugs in Bazaar are recorded in Launchpad.
 
7
 
 
8
 
 
9
See also:
 
10
 
 
11
* `Bazaar Developer Documents <index.html>`_.
 
12
 
 
13
* `The Bazaar Development Cycle <cycle.html>`_.
 
14
 
 
15
* `The Bazaar User Guide <../en/user-guide/index.html>`_ -- for
 
16
  information on integrating Bazaar with other bug trackers.
 
17
 
 
18
 
 
19
Links
 
20
*****
 
21
 
 
22
* `bzr bugs home page <https://bugs.edge.launchpad.net/bzr>`_.
 
23
 
 
24
* `Critical bugs <https://bugs.edge.launchpad.net/bzr/+bugs?search=Search&field.importance=Critical&field.status=New&field.status=Incomplete&field.status=Confirmed&field.status=Triaged&field.status=In+Progress&field.status=Fix+Committed>`_.
 
25
 
 
26
* `Open bugs by importance <https://bugs.edge.launchpad.net/bzr/+bugs>`_.
 
27
 
 
28
* `Open bugs most recently changed first
 
29
  <https://bugs.edge.launchpad.net/bzr/+bugs?field.searchtext=&orderby=-date_last_updated&search=Search&field.status%3Alist=NEW&field.status%3Alist=INCOMPLETE_WITH_RESPONSE&field.status%3Alist=INCOMPLETE_WITHOUT_RESPONSE&field.status%3Alist=CONFIRMED&field.status%3Alist=TRIAGED&field.status%3Alist=INPROGRESS&field.status%3Alist=FIXCOMMITTED&field.assignee=&field.bug_reporter=&field.omit_dupes=on&field.has_patch=&field.has_no_package=>`_.
 
30
 
 
31
 
 
32
Generalities
 
33
************
 
34
 
 
35
Anyone involved with Bazaar is welcome to contribute to managing our bug
 
36
reports.  **Edit boldly**: try to help users out, assess importance or improve
 
37
the bug description or status.  Other people will see the bugs: it's
 
38
better to have 20 of them processed and later change the status of a
 
39
couple than to leave them lie.
 
40
 
 
41
When you file a bug as a Bazaar developer or active user, if you feel
 
42
confident in doing so, make an assessment of status and importance at the
 
43
time you file it, rather than leaving it for someone else.  It's more
 
44
efficient to change the importance if someone else feel's it's higher or
 
45
lower, than to have someone else edit all bugs.
 
46
 
 
47
It's more useful to actually ship bug fixes than to garden the bug
 
48
database.  It's more useful to take one bug through to a shipped fix than
 
49
to partially investigate ten bugs.  You don't get credit for a bug until
 
50
the fix is shipped in a release.  Users like getting a response to their
 
51
report, but they generally care more about getting bugs fixed.
 
52
 
 
53
The aim of investigating bugs before starting concentrated work on them is
 
54
therefore only to: 
 
55
 
 
56
* determine if they are critical or high priority (and
 
57
  should displace existing work)
 
58
 
 
59
* garden sufficiently to keep the database usable: meaningful summaries,
 
60
  and duplicates removed
 
61
 
 
62
It's OK to fix some bugs that just annoy you, even if they're not
 
63
rationally high.
 
64
 
 
65
You can use ``--fixes lp:12345678`` when committing to associate the
 
66
commit with a particular bug.
 
67
 
 
68
If there are multiple bugs with related fixes, putting "[master]" in the
 
69
title of one of them helps find it
 
70
 
 
71
It's often fastest to find bugs just using the regular Google search
 
72
engine, rather than Launchpad's search.
 
73
 
 
74
Martin Pitt says:
 
75
 
 
76
 | One of the things you should not do often is to start asking
 
77
 | questions/for more debug info and then forget about the bug. It's just
 
78
 | a waste of the reporter's and your time, and will create frustration
 
79
 | on the reporter side. 
 
80
 
 
81
 
 
82
Priorities
 
83
**********
 
84
 
 
85
The suggested priorities for bug work are:
 
86
 
 
87
1. Fix critical bugs.
 
88
   
 
89
2. Get existing fixes through review and landed.
 
90
 
 
91
3. Fix bugs that are already in progress.
 
92
 
 
93
4. Look at bugs already assigned to you, and either start them, or change
 
94
   your mind and unassign them.
 
95
 
 
96
5. Take new bugs from the top of the stack.
 
97
 
 
98
6. Triage new bugs.
 
99
 
 
100
It's not strict and of course there is personal discretion but our work
 
101
should be biased to the top of this hierarchy.
 
102
 
 
103
 
 
104
Clear Bugs
 
105
**********
 
106
 
 
107
Bugs should have clear edges, so that you can make a clear statement about
 
108
whether a bug is fixed or not.  (Sometimes reality is complicated, but aim
 
109
for each bug to be clear.)
 
110
 
 
111
Bugs on documentation, performance, or UI are fine as long as they're
 
112
clear bugs.
 
113
 
 
114
Examples of good bugs:
 
115
 
 
116
* "ValueError in frob_foo when committing changed symlink" - although
 
117
  there may be many possible things that could cause a ValueError there,
 
118
  you should at least know when you've fixed the problem described in this
 
119
  bug.
 
120
 
 
121
* "Unclear message about incompatible repositories" - even though the user
 
122
  may not agree the new message is sufficiently clear, at least you know
 
123
  when you've tried to fix it.
 
124
 
 
125
Examples of bad bugs:
 
126
 
 
127
* "Commit is too slow" - how fast is fast enough to close it?  "Commit
 
128
  reads the working tree twice" is clearer.
 
129
 
 
130
 
 
131
Bug Status
 
132
**********
 
133
 
 
134
New
 
135
    The bug has just been filed and hasn't been examined by a developer
 
136
    yet.
 
137
Incomplete
 
138
    The bug requires more information from the reporter to make progress.
 
139
Confirmed
 
140
    The bug report has been seen by a developer and we agree it's a bug.  
 
141
    You don't have to reproduce the bug to mark it confirmed.  (Generally
 
142
    it's not a good idea for a developer to spend time reproducing the bug
 
143
    until they're going to work on it.)
 
144
Triaged
 
145
    This is an odd state - one we consider a bug in launchpad, as it really
 
146
    means "Importance has been set". We use this to mean the same thing
 
147
    as confirmed, and set no preference on whether Confirmed or Triaged are
 
148
    used. Please do not change a "Confirmed" bug to "Triaged" or vice verca -
 
149
    any reports we create or use will always search for both "Confirmed" and
 
150
    "Triaged" or neither "Confirmed" nor "Triaged".
 
151
In Progress
 
152
    Someone has started working on this.
 
153
Won't Fix
 
154
    The behaviour complained about is intentional and we won't fix it.
 
155
    Needless to say, be thoughtful before using this status, and consider if
 
156
    the user experience can be improved in some other way.
 
157
Invalid
 
158
    The reporter was confused, and this is not actually a bug.
 
159
    Again, be sensitive in explaining this to the user.
 
160
Fix Committed
 
161
    A fix for this bug exists in a branch somewhere.  Ideally the bug will
 
162
    be linked to the branch.
 
163
Fix Released
 
164
    The fix for this bug is now in the bzr trunk.  It's not necessarily
 
165
    true that it's released yet, but it will be in the next release.  The
 
166
    bug target milestone should be set to the release it went into, but
 
167
    don't spend too much time updating this if you don't immediately know.
 
168
 
 
169
 
 
170
Bug Importance
 
171
**************
 
172
 
 
173
Critical
 
174
    This is a serious bug that could cause data loss, stop bzr being
 
175
    usable in an important case, or represents a regression in something
 
176
    previously working.  We should fix critical bugs before doing other
 
177
    work, or seriously consider whether the bug is really critical
 
178
    or whether the other change is more urgent.
 
179
High
 
180
    This is a bug that can seriously interfere with people's use of
 
181
    Bazaar.  We should seriously consider fixing these bugs before
 
182
    working on new features.
 
183
Medium
 
184
    A regular bug.  We'd like to fix them, but there may be a long delay.
 
185
Low
 
186
    Something suboptimal that may affect an unimportant case or have a
 
187
    fairly easy workaround.
 
188
Wishlist
 
189
    These will basically never get done.
 
190
 
 
191
Bugs rated Medium or lower are unlikely to get fixed unless they either
 
192
pique the interest of a developer or are escalated due eg to many users
 
193
being affected.
 
194
 
 
195
Not every existing bug is correctly rated according to this scale, and we
 
196
don't always follow this process, but we'd like to do it more.  But
 
197
remember, fixing bugs is more helpful than gardening them.
 
198
 
 
199
 
 
200
Assignment
 
201
**********
 
202
 
 
203
Assigning a bug to yourself, or someone else, indicates a real intention
 
204
to work on that bug soon.
 
205
 
 
206
 
 
207
Targetting Bugs
 
208
***************
 
209
 
 
210
It's possible to target a bug to a milestone, eg
 
211
<https://bugs.edge.launchpad.net/bzr/+milestone/1.16>.  We use this mostly
 
212
to help the release manager know what **must** be merged to make the
 
213
release.
 
214
 
 
215
Therefore, we don't target bugs that we'd like to have fixed or that could
 
216
be fixed in a particular release, we only target bugs that must be fixed
 
217
and that will or might cause us to decide to slip the release if they're
 
218
not fixed.  At any time, very few if any of the bugs targetted to a
 
219
release should be still open.  By definition, these bugs should normally
 
220
be Critical priority.
 
221
 
 
222
 
 
223
Backports
 
224
*********
 
225
 
 
226
Sometimes we'll want to make a special point-release update (eg 1.15.1)
 
227
off an already-released branch including a fix for a particular bug.  To
 
228
represent this, create a new bug task (ie link in the status table on the
 
229
bug page) by clicking the `poorly-named
 
230
<https://bugs.launchpad.net/bugs/132733>`_ "Target to Release" link.
 
231
Target it to the appropriate series (ie 1.15) and then to the milestone
 
232
within that release.  
 
233
 
 
234
This bug task then has a separate status and importance to indicate the
 
235
separate work to get it into that release.
 
236
 
 
237
 
 
238
The News File
 
239
*************
 
240
 
 
241
Most bugs that are fixed should be mentioned in a `NEWS
 
242
<../en/release-notes/NEWS.html>`_ file entry,
 
243
including the bug number.
 
244
(Exceptions might be bugs that are not at all user visible.)
 
245
 
 
246
 
 
247
Tags
 
248
****
 
249
 
 
250
Here are some bug tags we use.  In Malone tags are currently of limited use, so don't feel obliged to tag bugs unless you're finding it useful.
 
251
 
 
252
 
 
253
authentication
 
254
    authenticating to servers
 
255
 
 
256
backport 
 
257
    candidate for backporting to an update of the previous release
 
258
 
 
259
dirstate 
 
260
    WorkingTree4
 
261
 
 
262
easy 
 
263
    should be possible to finish in an hour or two
 
264
 
 
265
hpss 
 
266
    bugs about the High-Performance Smart Server, i.e. bzr+ssh://, etc.
 
267
 
 
268
hpssvfs 
 
269
    bugs for causes of VFS methods of the smart server
 
270
 
 
271
launchpad 
 
272
    bugs about interactions with launchpad (typically this means bzrlib.plugins.launchpad).
 
273
 
 
274
locale 
 
275
    problems using locales other than English
 
276
 
 
277
memory 
 
278
    problems where we use too much memory for some reason
 
279
 
 
280
newformat 
 
281
    fixing this would need a new disk format
 
282
 
 
283
performance 
 
284
    bugs about performance problems.
 
285
 
 
286
test 
 
287
    needs changes to the test framework
 
288
 
 
289
transport 
 
290
    virtual filesystem for http, sftp, etc
 
291
 
 
292
trivial 
 
293
    should be very easy to fix (10-20 minutes) and easily landed: typically just spelling errors and the like
 
294
 
 
295
ui 
 
296
    bugs relating to the bzr user interface, e.g. confusing error messages.
 
297
 
 
298
win32 
 
299
    bugs that mainly affects Windows. Also there is cygwin and win98 tags for marking specific bugs. 
 
300
 
 
301
You can see the full list of tags in use at
 
302
<https://bugs.edge.launchpad.net/bzr/+bugs>.  As of September 2008 the
 
303
list is on the right. 
 
304
 
 
305
.. vim: ft=rst