(Good thing you put 'usually' in there, because I've got a patch in the
system that fixes a bug in the *test suite* that's been hanging for over a
week now)
It's not on the verified patches list, so it's unlikely to get much attention.
http://dev.rubyonrails.org/report/12
Is it the policy of the Rails project that defect reports without a
verifiable test case are invalid and will be closed?
No, defect reports without test cases aren't supposed to be
automatically closed. A great way for people to help is to find
defect reports, then attach failing test cases, or at the very least
confirm that they experience the same behaviour.
However I believe you're overstating the impact of closing a defect.
There are two possibilities when someone reports a bug:
a) The bug was invalid, and caused either by the user's system, the
alignment of jupiter's moons or some other freak occurrence
b) The bug is valid, someone else will be able to verify it
Prematurely closing defects has no adverse impact on the first case.
In the second case, the submitter can simply reopen them. Now even
if you assume that closing the ticket has so completely enraged the
submitter that they've gone off to write web frameworks in ocaml,
we're still ok. Someone else will hit the same bug, and will either
reopen the original report (unlikely because trac's search is shit) or
submit a new one.
The new ticket can then be fixed, or we can repeat this process again.
The reality is that there are bugs in every system, and if there's a
defect which is so rare that only one person has ever hit it, then I'm
not going to lose any sleep over continuing to ship that bug.
> The problem is we have tons of unverified (and bogus)
> defect reports with no easy way to prove them.
So mark them "more info required" with a note that they need to have more
info attached or they'll be closed in N days/weeks/months.
That's exactly the same as closing them, as they're unlikely to
continue to receive any attention. I think lying to our submitters by
leaving an issue 'open' when no one intends to even look at it is
worse than closing it prematurely.
<advocate type="devil">
That cuts both ways, though -- I, as a developer, don't have time to debug a
problem in Rails. That problem isn't mine -- I didn't write the buggy code
that's causing the hassle. It's *your* fault, dammit.
</advocate>
In reality, I know all about the OSS project philosophy, I'm a great
believer in it myself. If you want support, take out a support contract,
and all that.
That's a complete mischaracterisation of the situation we're in, I'm
more than willing to help people fix the problems they have. I spend
a good portion of my time doing just that.
We have too many reports, so many that it's impossible to make a dent
in them. Reporters hear nothing back about their bug report, get
disenchanted and leave. The patch queue fills up to the point we
don't know where to start. If we get better turnaround time on
patches and encourage contributors, and in the process prematurely
close a few edge-case defects. So be it.
Going back to my original point, though, about actively *closing* tickets
that document *real* bugs that are trivially verifiable[1] simply because
the patch isn't sufficient is only reasonable in one circumstance -- if
defect reports without test cases are summarily closed. I haven't seen that
policy documented anywhere (and I would imagine something that it would want
to be in big letters on the front page), and in fact the exact opposite is
stated on the dev front page -- "Tickets are fine". I'm just reporting an
irritating inconsistency in the handling of tickets, biased against
well-meaning but insufficiently clued contributors (which are the sort of
people I'd be wanting to encourage, not discourage, if it were my project).
Indeed, while reports without failing test cases aren't as likely to
get attention, they're still valuable information, and could provide
indications of where to start contributing for people who are keen to
help out. Please don't close them unless you've tried to reproduce
the bug, and are unable to do so.
However I don't buy the sky is falling hypothesis of closing a ticket
prematurely, just reopen it, explain it's still a bug. If the
disagreement continues, start a thread here.