[Qt-interest] (Qt support salesforce "downgrade", bug priorities) (was Qt for the iPad?)
Thiago Macieira
thiago at kde.org
Wed Apr 14 12:18:43 CEST 2010
Em Quarta-feira 14 Abril 2010, às 10:04:48, Ross Bencina escreveu:
> >As for fixing bugs, that's about priorities: yours and ours will not
> >always match. The team has a lot to do and fixing the P0s and P1s as well
> >as getting
> >the releases out are very important. (Where P1 means "will stop the
> >release from happening" and P0 means "stops Qt development itself so stop
> >whatever you're doing and do this NOW")
>
> While we're on the topic of bug classification... I would like to see any
> cosmetic rendering bug which makes an app look broken (ie badly computed
> update rects which break redraws) raised to P0. I have had support tell me
> that rendering bugs will not be fixed in a minor update because they are
> not "critical" enough. This is completely unacceptable. What commercial
> app would ship with a redraw bug -- like lines corrupting a widget due to
> un-updated regions when scrolling? Would you go out in public with a black
> line painted accross your face? In the past I've seen this in QTableView
> and currently I have a similar update issue in QGraphicsView in 4.6.2
> (bug report on the way..)
This is exactly what I said about the definition of priorities not matching.
Your example is perfect: a rendering glitch is DEFINITELY not a P0. It may
stop your shipping of your product, but that's a long way away from "Qt
developers cannot do their work".
See http://qt.nokia.com/developer/task-tracker/qt-bug-tracker-getting-
started#8-how-we-prioritize-bugs
P0 means "work stops for engineers developing Qt itself until this bug is
fixed". A rendering bug hardly qualifies as that. It's reserved for us only, for
things like "doesn't compile on a Tier 1 platform", "binary compatibility
issue", "autotest regression that stops the workflow".
P1 means "critical issue that must be fixed before the release" and is used for
most regressions, crashes that are not edge cases, likely lockups, etc.
P2 means "important but won't stop the release" and might include the crashes
and lockups that are unlikely.
Depending on the rendering glitch, it would be a P1 or a P2. If it is as you
say "scrolling corrupts widget due to not updating" and we're talking about
proper code that used to work, then it's a P1. If you're misusing the code, or
if this has never worked, or is easily worked around, it's probably going to
be a P2.
A crash that is very unlikely or an edge case, for example, will probably be a
P3.
What I need you to understand is that P2 and P3 bugs are still important. We
would very much like to fix them all. But while there are P0s and P1s
remaining, we have to devote our attention to those. What's more, there's such
a thing as "skills" and "knowledge": fixing a bug requires understanding the
code in question and the bug report. There are only so many engineers with the
skills in question and so many hours in a day.
Which brings me to the next point: the better the bug report is, the more
likely it is to be fixed, even if it is a lower priority. If you include a
testcase and a patch (and it is correct, of course), it will very likely be
fixed. If you include a testcase, it's the next best thing and helps a lot.
If you report "widget fails to redraw properly when placed inside a
QScrollArea and scrolling happens", without a testcase, description or even a
screenshot, we're probably going to close your report with "Not Enough Info".
Please take a look at http://labs.trolltech.com/blogs/2010/03/02/how-to-file-a-
qt-bug-report-in-the-new-bug-tracker/ for info on a good bug report.
Finally, if you need an engineer to dedicate his/her attention to your issue,
you have paid support and Premium Support (which is available as well for the
LGPL version of Qt -- it's not tied to the commercial license). That's why
these things are there for.
I have been involved in Premium Support cases where I had to meet face-to-face
with the customer, so that we could debug their code together. They couldn't
reproduce the problem in a testcase and they couldn't send us their codebase
either. (Turns out the problem was that they were trying to connect SLOT to
SLOT, i.e., a misspelt SIGNAL in the first argument)
In another case that comes to mind, we had a crash in QHttp that we couldn't
reproduce, and this after QNetworkAccessManager already existed. Premium
Support was activated and they gave me access to their proxy servers, so I
could reproduce the issue and fix it. (In this particular case, the proxy was
replying with Content-Length: 0)
Both of these cases would have been rejected as tasks in the bugtracker: the
first would have been closed as Not Enough Info and the second as Cannot
Reproduce.
--
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
Senior Product Manager - Nokia, Qt Development Frameworks
PGP/GPG: 0x6EF45358; fingerprint:
E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
Url : http://lists.qt-project.org/pipermail/qt-interest-old/attachments/20100414/ee1e94e1/attachment.bin
More information about the Qt-interest-old
mailing list