public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Suggestion for a new GNATS policy
@ 2003-05-11 20:31 Volker Reichelt
  2003-05-11 20:46 ` Daniel Berlin
  2003-05-11 20:55 ` Joseph S. Myers
  0 siblings, 2 replies; 41+ messages in thread
From: Volker Reichelt @ 2003-05-11 20:31 UTC (permalink / raw)
  To: gcc; +Cc: bangerth, giovannibajo

There has been some effort over the last year to clean up GCC's bug database.
One problem is that many bug reports have to be revisited several times
(which is just a waste of resources), because of two problems:

1) The state "analyzed" does not help much, because the requirements are
   too weak: It just means that somebody has looked at it and agrees that
   there's a bug in GCC. Very often not even the class of the PR is set
   correctly. Preprocessed files (especially for C++ bugs) are often huge
   so that somebody who tries to fix a bug has to do major work (which
   could be done by somebody else) before being able to tackle the core
   of the problem.
   So IMHO we need some stricter requirements for reports in state "analyzed".
   Knowing that any analyzed PR is in the right class and has a simple testcase
   attached and a suitable synopsis line would help the bug fixers to do their
   work efficiently.

2) To close the PRs that got fixed silently the PRs have to be revisited from
   time to time. But there should be some way to give the PR's a time stamp
   so that one can easily see (without having to read the whole audit-trail)
   when a PR should be revisited again.

To tackle both of the problems, Wolfgang Bangerth and Giovanni Bajo are
wading through the PR's to meet the requirements mentioned in 1) for each
analyzed PR (for C++ category first, but C, optimization and middle-end will
hopefully follow). And they are putting time stamps on those PRs.

In addition, I've collected quite a number of testcases that are tested
automatically almost daily so that the related PRs do not require manual
rechecking. Therefore, I want to give them a special stamp "[monitored]"
instead of a date stamp.

To keep the shape of the bug database from deteriorating again, I'd like
to formalize the strategy above by suggesting the following change to
"bugs/management.html":

===============================================================================
--- management.html	Fri May  9 11:44:50 2003
+++ management.html.new	Fri May  9 17:26:09 2003
@@ -105,11 +105,25 @@ some fields. The State field should be u
 <dd>The PR has been filed and the responsible person(s) notified.</dd>
 
 <dt>analyzed</dt>
-
-<dd>A maintainer has verified that this is indeed a bug in GCC. Every
-once in a while, old reports will need to be rechecked, to find out
-whether the bug still exists. At that time, an indication should be
-left in the report who tested the bug and when.</dd>
+<dd>A maintainer has verified that this is indeed a bug in GCC.
+All analyzed reports should
+<ul>
+<li>contain a <strong>small testcase</strong>,</li>
+<li>be in the <strong>right category and class</strong>,</li>
+<li>have a suitable <strong>synopsis</strong>,</li>
+<li>have a stamp "<strong>[... regression]</strong>" in the synopsis line
+if it is indeed a regression (see "Procedures and Policies")</strong>,</li>
+<li>have a date stamp "<strong>[YYYY-MM-DD]</strong>" in the synopsis line
+that indicates when the report was last checked.</li>
+</ul>
+Otherwise the PR should remain open.<br />
+Every once in a while, old reports will need to be rechecked, to find out
+whether the bug still exists. At that time, please bump the date in the
+synopsis line. Some reports have a stamp "<strong>[monitored]</strong>"
+instead of a date stamp in the synopsis line. This means that the PR is
+checked automatically (currently against the 3.3 branch and mainline almost
+daily by a program run by Volker Reichelt). These reports do not have to be
+rechecked manually.</dd>
 
 <dt>feedback</dt>
 <dd>The submitter was asked for further information, or asked to try
===============================================================================

The requirement of a short testcase is probably only feasible for some
categories like C++, but not for others like bootstrap.

One last remark: It's easy to decide whether a PR was analyzed according
to the new or old rules by just looking for the date stamp in the synopsis
line.

Regards,
Volker Reichelt


^ permalink raw reply	[flat|nested] 41+ messages in thread
* RE: Suggestion for a new GNATS policy
@ 2003-05-11 21:52 S. Bosscher
  2003-05-12  0:58 ` Daniel Berlin
                   ` (2 more replies)
  0 siblings, 3 replies; 41+ messages in thread
From: S. Bosscher @ 2003-05-11 21:52 UTC (permalink / raw)
  To: 'Daniel Berlin ', 'Volker Reichelt '
  Cc: 'gcc@gcc.gnu.org ', 'bangerth@ices.utexas.edu ',
	'giovannibajo@libero.it '

Dan wrote:
> On Sunday, May 11, 2003, at 04:30  PM, Volker Reichelt wrote:
> > 1) The state "analyzed" does not help much, because the requirements 
> > are too weak: It just means that somebody has looked at it and agrees
> > that there's a bug in GCC. Very often not even the class of the PR is
> > set correctly. Preprocessed files (especially for C++ bugs) are often 
> > huge so that somebody who tries to fix a bug has to do major work 
> > (which could be done by somebody else) before being able to tackle
> > the core of the problem.

I agree.  For many PRs, "analyzed" now just means "yup, I see it, too",
which is not what I call analysis :-)

> > So IMHO we need some stricter requirements for reports in state 
> > "analyzed". Knowing that any analyzed PR is in the right class and
> > has a simple testcase attached and a suitable synopsis line would 
> > help the bug fixers to do their work efficiently.

We should have a "confirmed" state, which would mean that somebody with GCC
PR DB write access can reproduce the bug (possibly after receiving
feedback).  "analyzed" should mean that at least the category is set and
that a reduced test case is available.

> Analyzed does not exist in Bugzilla (analyzed becomes "ASSIGNED"
> if assigned to someone, "NEW" otherwise).

Aieee, please no.  There are so many analyzed PRs that are
unassigned, so what you say here would only make things harder.

We should have "NEW" for new and unconfirmed PRs and "CONFIRMED"
for confirmed PRs.  PRs should have the "ANALYZED" status when
somebody has zoomed in at the problem a bit closed.  PRs that are
"analyzed" now should stay "ANALYZED" in bugzilla IMHO.

I don't know how many states you defined,  gcc.gnu.org/bugzilla
used to work but now it fails...  (Does Bugzilla allow you to
define your own states at all???)  But I suppose we should have
"NEW", "FEEDBACK", "CONFIRMED", "ANALYZED", "ASSIGNED", "CLOSED",
"REOPENED" (yes this happens), and "SUSPENDED".

(Yes that's very much like what we have in GNATS now, but that's because
GNATS is not so bad, really.  It just misses one or two states and its user
interface is very poor.)

> > 2) To close the PRs that got fixed silently the PRs have to
> > be revisited from time to time. But there should be some way
> > to give the PR's a time stamp so that one can easily see
> > (without having to read the whole audit-trail) when a PR
> > should be revisited again.

There's also the "Last-Modified" field, what is wrong with that?

Now all the synopses are being cluttered with date stamps, and
that is IMHO just wrong.  The markers like [New parser], 
[<some_target>], etc. are useful, because they make it so much
easier to find related PRs real quick.  The date stamps don't
do anything that can't be done with basic GNATS functionality,
at least AFAICT.
 
> In most cases, there is no need. One just has to remember to
> put the right thing in the CVS commit message, and it'll get
> added to the PR as a comment.

It's not unusual for a PR to be fixed without anyone noticing.
For 3.3, I closed some PRs that got fixed by some patch, but
the CVS commit message didn't mention the PR (probably because
nobody knew about the PR...) so the PR stayed open.  I think
everybody has seen PRs like that.

> You can easily query for bugs that haven't (or have) been
> touched in x days in Bugzilla, so there is no need to put
> timestamps on bugs and whatnot.

You can do that with GNATS, too.  Just not very user friendly,
it _can_ be done.

Greetz
Steven

^ permalink raw reply	[flat|nested] 41+ messages in thread
* Re: Suggestion for a new GNATS policy
@ 2003-05-11 22:24 Volker Reichelt
  2003-05-12  1:56 ` Daniel Berlin
  0 siblings, 1 reply; 41+ messages in thread
From: Volker Reichelt @ 2003-05-11 22:24 UTC (permalink / raw)
  To: S.Bosscher; +Cc: dberlin, gcc, bangerth, giovannibajo

On 11 May, S. Bosscher wrote:
> Dan wrote:
>> On Sunday, May 11, 2003, at 04:30  PM, Volker Reichelt wrote:
>> > 1) The state "analyzed" does not help much, because the requirements 
>> > are too weak: It just means that somebody has looked at it and agrees
>> > that there's a bug in GCC. Very often not even the class of the PR is
>> > set correctly. Preprocessed files (especially for C++ bugs) are often 
>> > huge so that somebody who tries to fix a bug has to do major work 
>> > (which could be done by somebody else) before being able to tackle
>> > the core of the problem.
> 
> I agree.  For many PRs, "analyzed" now just means "yup, I see it, too",
> which is not what I call analysis :-)
> 
>> > So IMHO we need some stricter requirements for reports in state 
>> > "analyzed". Knowing that any analyzed PR is in the right class and
>> > has a simple testcase attached and a suitable synopsis line would 
>> > help the bug fixers to do their work efficiently.
> 
> We should have a "confirmed" state, which would mean that somebody with GCC
> PR DB write access can reproduce the bug (possibly after receiving
> feedback).  "analyzed" should mean that at least the category is set and
> that a reduced test case is available.
> 
>> Analyzed does not exist in Bugzilla (analyzed becomes "ASSIGNED"
>> if assigned to someone, "NEW" otherwise).
> 
> Aieee, please no.  There are so many analyzed PRs that are
> unassigned, so what you say here would only make things harder.

Me too: Aieee, please no!
We would lose a *lot* of valuable information and would force much more
work on the bug fixers, leaving the "bug report preprocessors" unemployed.

> We should have "NEW" for new and unconfirmed PRs and "CONFIRMED"
> for confirmed PRs.  PRs should have the "ANALYZED" status when
> somebody has zoomed in at the problem a bit closed.  PRs that are
> "analyzed" now should stay "ANALYZED" in bugzilla IMHO.
> 
> I don't know how many states you defined,  gcc.gnu.org/bugzilla
> used to work but now it fails...  (Does Bugzilla allow you to
> define your own states at all???)  But I suppose we should have
> "NEW", "FEEDBACK", "CONFIRMED", "ANALYZED", "ASSIGNED", "CLOSED",
> "REOPENED" (yes this happens), and "SUSPENDED".

I don't know if we really need REOPENED. A PR should go into "CONFIRMED"
or "ANALYZED" then, IMHO.

If we cannot get these states into bugzilla, we could make dummy
maintainers called "CONFIRMED" and "ANALYZED" etc. to whom we assign
the PRs, but that's only an ugly kludge.

> (Yes that's very much like what we have in GNATS now, but that's because
> GNATS is not so bad, really.  It just misses one or two states and its user
> interface is very poor.)
> 
>> > 2) To close the PRs that got fixed silently the PRs have to
>> > be revisited from time to time. But there should be some way
>> > to give the PR's a time stamp so that one can easily see
>> > (without having to read the whole audit-trail) when a PR
>> > should be revisited again.
> 
> There's also the "Last-Modified" field, what is wrong with that?

Because a new addition to the audit-trail doesn't mean that the
PR was really rechecked. Modified doesn't imply reconfirmed.

> Now all the synopses are being cluttered with date stamps, and
> that is IMHO just wrong.  The markers like [New parser], 
> [<some_target>], etc. are useful, because they make it so much
> easier to find related PRs real quick.  The date stamps don't
> do anything that can't be done with basic GNATS functionality,
> at least AFAICT.

I'd prefer shorter synopsis lines, too. So, if we can have a seperate
field for the date stamp in bugzilla, I'm in for it. But as long as we
don't have one the information should be stored in the synopsis line IMHO.

>> In most cases, there is no need. One just has to remember to
>> put the right thing in the CVS commit message, and it'll get
>> added to the PR as a comment.
> 
> It's not unusual for a PR to be fixed without anyone noticing.
> For 3.3, I closed some PRs that got fixed by some patch, but
> the CVS commit message didn't mention the PR (probably because
> nobody knew about the PR...) so the PR stayed open.  I think
> everybody has seen PRs like that.

Right. That's the reason for the time stamps.

>> You can easily query for bugs that haven't (or have) been
>> touched in x days in Bugzilla, so there is no need to put
>> timestamps on bugs and whatnot.
>
> You can do that with GNATS, too.  Just not very user friendly,
> it _can_ be done.

Once again: "touched" doesn't mean "reconfirmed".

> 
> Greetz
> Steven

Regards,
Volker



^ permalink raw reply	[flat|nested] 41+ messages in thread
* Re: Suggestion for a new GNATS policy
@ 2003-05-12 16:34 Nathanael Nerode
  0 siblings, 0 replies; 41+ messages in thread
From: Nathanael Nerode @ 2003-05-12 16:34 UTC (permalink / raw)
  To: dberlin, gcc

>Yes it is. Reconfirmed is either true or false. There is no "kinda 
>reconfirmed".
Sadly, this isn't actually true.  Explanation follows...

> The time when something was reconfirmed is just extra info about 
>*when* the state happened, not information stored in the state itself. 

The date something was reconfirmed indicates *which snapshot of GCC* it 
was confirmed with.  This turns out to be very important information.  
If I indicate "Reconfirmed on 3.2 branch, not present on 3.3 branch, 
present on mainline", *plus* the date on which I did this, it contains a 
lot of information.  This isn't boolean at all.  Also note that the 
timestamp isn't technically the date I confirmed it, it's the date of 
the CVS sources I confirmed it with, although those are usually the 
same.

Essentially, we're encoding, for each active branch, the state (present 
or not present) on that branch as of a particular date.  There are many 
correct ways to do this, but it's far from being  boolean information.  
I welcome suggestions from the other regular 'bug  managers' as to what 
would be best.

The audit trail entries for confirmations (as of particular dates) are 
useful for tracking *when* a bug was fixed, as well.

The simplest way is the date-in-the-title currently used.  Each time a 
branch dies (for instance, the 3.2 branch will die when 3.3 is 
released), all reports confirmed prior to the branch 'death date' should 
be checked to make sure that they weren't already confirmed fixed on the 
active branches.

--
Here's a more complex proposal, which I think actually gets at the 
heart of the issue:

For each active branch, there's a flag "Confirmed present in this 
branch" and a flag "Confirmed absent in this branch".  (There should 
also be corresponding flags for actual past releases.)  This is 
what maintainers generally will poke, rather than the bug state.  (Two 
flags are necessary because of the third state: uncertain.  Programmatically, 
setting one should unset the other.)

For automated maintenance, do the following.  Maintain a list 
of 'live' branches.  Confirmation on any live branch makes a bug 
confirmed ('NEW' rather than 'UNCONFIRMED').  Confirmation of 
absence from all live branches closes a bug.  When a branch dies, 
run a script through the bug database; any bug confirmed absent on all live
branches is closed as fixed.  When a branch splits, clone the tags from 
the branch it split from (usually mainline).  

It should be easy to query when (and by who!) the 'confirmed in branch 
X' flag was last set, so that you can easily check for:

* Reports never confirmed present or absent on branch X (need testing)
* Reports confirmed present on branch X, but only before date Y (need 
retesting)

This should be easy to combine with other tests, so that I can search 
for (for example) reports not tested or tested prior to date Y on the 
3.3 branch, but confirmed present on mainline as of date Y.

There's no need under this complex scheme for special regression 
markers; reports confirmed absent on an 'old release' and present on 
branch X are regressions for branch X, and it should be easy to do a 
search for that.

Can it be done?  Does it sound good?  :-)

--
Ugh.  I realized an alternative means of implementing the same thing: 
have a bug STATE field for *each* branch, which is unfortunately the 
correct thing, but is probably close to impossible in Bugzilla.

"Analyzed" (i.e. reduced) should certainly be a flag; it's not nearly so 
complicated as 'confirmed'.  :-)

--Nathanael

^ permalink raw reply	[flat|nested] 41+ messages in thread
* Re: Suggestion for a new GNATS policy
@ 2003-05-12 16:37 Nathanael Nerode
  0 siblings, 0 replies; 41+ messages in thread
From: Nathanael Nerode @ 2003-05-12 16:37 UTC (permalink / raw)
  To: dberlin, gcc

>>>>I
>>>>would not mind Bugzilla to have such a timestamp.
>>>
>>>You already have one when you define the flag. 
>>Yup, but we need one that we can update anytime we want. And if we could do
>>that with a single mouse click, it would be even better. 
>as i said, 6 mouse clicks.
 
This *is* too many.


>I can make a radio button labeled "Reconfirm" (right under "Leave as 
>NEW") for you guys if you want, so it's just "select reconfirm, click 
>commit".
 
That would rock.  :-)

--Nathanael

 

^ permalink raw reply	[flat|nested] 41+ messages in thread
* Re: Suggestion for a new GNATS policy
@ 2003-05-12 16:44 Nathanael Nerode
  0 siblings, 0 replies; 41+ messages in thread
From: Nathanael Nerode @ 2003-05-12 16:44 UTC (permalink / raw)
  To: dberlin, gcc

> I was told it was simply a timestamp of when the bug was last 
>confirmed, not the date of the version it was CVS snapshot it was last 
>confirmed with.
> These are two very different things. In fact, it's not even a 
>timestamp 
>in the second case, it's a date-only field (IE no hour:minute:secs)
> Can someone please clarify which is correct?
This is nice.  A date-only field stating "Reconfirmed with snapshot of 
this date" is probably the correct way to indicate status (on mainline, 
anyway) for bug triage purposes.  Didn't know it was easy to add new 
fields. :-)

Doesn't deal with the other thing I'd really like to clean up, which is 
the 'which branches' issue, but it's a somewhat separate issue.

>If it's the second, you'll need a new field, i'll add one and make it 
>visible only to bug triagers.

Well, make it optionally visible to anyone who wants to look; you never 
know who will become a triager.  :-)

The classic search is for bugs with various other characteristics *plus* 
'reconfirmed before date Y (or never reconfirmed and originally 
confirmed before date Y)'.  This is the option which needs to be easy on 
the search screen.

Thanks for your hard work, Daniel...

--Nathanael

^ permalink raw reply	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2003-05-12 18:57 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-05-11 20:31 Suggestion for a new GNATS policy Volker Reichelt
2003-05-11 20:46 ` Daniel Berlin
2003-05-11 20:55 ` Joseph S. Myers
2003-05-12  0:51   ` Daniel Berlin
2003-05-12  2:08   ` Giovanni Bajo
2003-05-12  2:40     ` Gabriel Dos Reis
2003-05-12 17:29     ` Janis Johnson
2003-05-12 14:55   ` Wolfgang Bangerth
2003-05-11 21:52 S. Bosscher
2003-05-12  0:58 ` Daniel Berlin
2003-05-12  2:00   ` Giovanni Bajo
2003-05-12  3:10     ` Daniel Berlin
2003-05-12  1:24 ` Daniel Berlin
2003-05-12 14:50 ` Wolfgang Bangerth
2003-05-12 18:56   ` Daniel Berlin
2003-05-11 22:24 Volker Reichelt
2003-05-12  1:56 ` Daniel Berlin
2003-05-12  2:03   ` Giovanni Bajo
2003-05-12  2:23     ` Daniel Berlin
2003-05-12  2:51       ` Giovanni Bajo
2003-05-12  4:16         ` Daniel Berlin
2003-05-12 10:59           ` Christian Ehrhardt
2003-05-12 13:46             ` Daniel Berlin
2003-05-12 14:28               ` Wolfgang Bangerth
2003-05-12 17:42                 ` Daniel Berlin
2003-05-12 18:19                   ` Wolfgang Bangerth
2003-05-12 16:36               ` Steven Bosscher
2003-05-12 16:38                 ` Wolfgang Bangerth
2003-05-12 13:53             ` Daniel Berlin
2003-05-12 15:10               ` Christian Ehrhardt
2003-05-12 15:57                 ` Wolfgang Bangerth
2003-05-12 14:39           ` Wolfgang Bangerth
2003-05-12 16:35             ` Steven Bosscher
2003-05-12 18:04               ` Janis Johnson
2003-05-12 18:57               ` Daniel Berlin
2003-05-12 17:58             ` Daniel Berlin
2003-05-12 18:24               ` Wolfgang Bangerth
2003-05-12 14:48       ` Wolfgang Bangerth
2003-05-12 16:34 Nathanael Nerode
2003-05-12 16:37 Nathanael Nerode
2003-05-12 16:44 Nathanael Nerode

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).