~bzr-pqm/bzr/bzr.dev

4439.1.5 by Martin Pool
Bug process docs
1
***********************
4439.1.4 by Martin Pool
Start cleaning up docs on bugs and release process
2
Tracking Bugs in Bazaar
4439.1.5 by Martin Pool
Bug process docs
3
***********************
4439.1.4 by Martin Pool
Start cleaning up docs on bugs and release process
4
5
This document describes the bug-tracking processes for developing Bazaar
4439.1.5 by Martin Pool
Bug process docs
6
itself.  Bugs in Bazaar are recorded in Launchpad.
7
4439.1.4 by Martin Pool
Start cleaning up docs on bugs and release process
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
4439.1.5 by Martin Pool
Bug process docs
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
    We don't use this status.  If it is set, it means the same as
146
    Confirmed.
147
In Progress
148
    Someone has started working on this.
149
Won't Fix
150
    The behaviour complained about is intentional and we won't fix it.
151
    Needless to say, be thoughtful before using this status, and consider if
152
    the user experience can be improved in some other way.
153
Invalid
154
    The reporter was confused, and this is not actually a bug.
155
    Again, be sensitive in explaining this to the user.
156
Fix Committed
157
    A fix for this bug exists in a branch somewhere.  Ideally the bug will
158
    be linked to the branch.
159
Fix Released
160
    The fix for this bug is now in the bzr trunk.  It's not necessarily
161
    true that it's released yet, but it will be in the next release.  The
162
    bug target milestone should be set to the release it went into, but
163
    don't spend too much time updating this if you don't immediately know.
164
165
166
Bug Importance
167
**************
168
169
Critical
170
    This is a serious bug that could cause data loss, stop bzr being
171
    usable in an important case, or represents a regression in something
172
    previously working.  We should fix critical bugs before doing other
173
    work, or seriously consider whether the bug is really critical
174
    or whether the other change is more urgent.
175
High
176
    This is a bug that can seriously interfere with people's use of
177
    Bazaar.  We should seriously consider fixing these bugs before
178
    working on new features.
179
Medium
180
    A regular bug.  We'd like to fix them, but there may be a long delay.
181
Low
182
    Something suboptimal that may affect an unimportant case or have a
183
    fairly easy workaround.
184
Wishlist
185
    These will basically never get done.
186
187
Bugs rated Medium or lower are unlikely to get fixed unless they either
188
pique the interest of a developer or are escalated due eg to many users
189
being affected.
190
191
Not every existing bug is correctly rated according to this scale, and we
192
don't always follow this process, but we'd like to do it more.  But
193
remember, fixing bugs is more helpful than gardening them.
194
195
196
Assignment
197
**********
198
199
Assigning a bug to yourself, or someone else, indicates a real intention
200
to work on that bug soon.
201
202
203
Targetting Bugs
204
***************
205
206
It's possible to target a bug to a milestone, eg
207
<https://bugs.edge.launchpad.net/bzr/+milestone/1.16>.  We use this mostly
208
to help the release manager know what **must** be merged to make the
209
release.
210
211
Therefore, we don't target bugs that we'd like to have fixed or that could
212
be fixed in a particular release, we only target bugs that must be fixed
213
and that will or might cause us to decide to slip the release if they're
214
not fixed.  At any time, very few if any of the bugs targetted to a
215
release should be still open.  By definition, these bugs should normally
216
be Critical priority.
217
218
219
Backports
220
*********
221
222
Sometimes we'll want to make a special point-release update (eg 1.15.1)
223
off an already-released branch including a fix for a particular bug.  To
224
represent this, create a new bug task (ie link in the status table on the
225
bug page) by clicking the `poorly-named
226
<https://bugs.launchpad.net/bugs/132733>`_ "Target to Release" link.
227
Target it to the appropriate series (ie 1.15) and then to the milestone
228
within that release.  
229
230
This bug task then has a separate status and importance to indicate the
231
separate work to get it into that release.
232
233
234
The News File
235
*************
236
237
Most bugs that are fixed should be mentioned in a `NEWS
238
<../en/release-notes/NEWS.html>`_ file entry,
239
including the bug number.
240
(Exceptions might be bugs that are not at all user visible.)
241
242
243
Tags
244
****
245
246
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.
247
248
249
authentication
250
    authenticating to servers
251
252
backport 
253
    candidate for backporting to an update of the previous release
254
255
dirstate 
256
    WorkingTree4
257
258
easy 
259
    should be possible to finish in an hour or two
260
261
hpss 
262
    bugs about the High-Performance Smart Server, i.e. bzr+ssh://, etc.
263
4543.1.1 by Andrew Bennetts
Document hpssvfs tag.
264
hpssvfs 
265
    bugs for causes of VFS methods of the smart server
266
4439.1.5 by Martin Pool
Bug process docs
267
launchpad 
268
    bugs about interactions with launchpad (typically this means bzrlib.plugins.launchpad).
269
270
locale 
271
    problems using locales other than English
272
273
memory 
274
    problems where we use too much memory for some reason
275
276
newformat 
277
    fixing this would need a new disk format
278
279
performance 
280
    bugs about performance problems.
281
282
test 
283
    needs changes to the test framework
284
285
transport 
286
    virtual filesystem for http, sftp, etc
287
288
trivial 
289
    should be very easy to fix (10-20 minutes) and easily landed: typically just spelling errors and the like
290
291
ui 
292
    bugs relating to the bzr user interface, e.g. confusing error messages.
293
294
win32 
295
    bugs that mainly affects Windows. Also there is cygwin and win98 tags for marking specific bugs. 
296
297
You can see the full list of tags in use at
298
<https://bugs.edge.launchpad.net/bzr/+bugs>.  As of September 2008 the
299
list is on the right. 
300
4439.1.4 by Martin Pool
Start cleaning up docs on bugs and release process
301
.. vim: ft=rst