/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

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

  • Committer: Gustav Hartvigsson
  • Date: 2021-01-09 21:36:27 UTC
  • Revision ID: gustav.hartvigsson@gmail.com-20210109213627-h1xwcutzy9m7a99b
Added 'Case Preserving Working Tree Use Cases' from Canonical Wiki

* Addod a page from the Canonical Bazaar wiki
  with information on the scmeatics of case
  perserving filesystems an a case insensitive
  filesystem works.
  
  * Needs re-work, but this will do as it is the
    same inforamoton as what was on the linked
    page in the currint documentation.

Show diffs side-by-side

added added

removed removed

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