NAME
docs/dev/wranglers.pod - Tips for Ticket Wranglers
ABSTRACT
This document attempts to outline a set of "best practices" for dealing with tickets in Parrot's RT system. It is targeted at Parrot developers and "Ticket Wranglers" and is not intended as advice or instruction for end users. Ticket filing procedures for end users are documented in docs/submissions.pod.
WHAT IS A TICKET WRANGLER?
A developer with sufficient permissions to modify the tickets in Parrot's RT system. All Parrot developers are expected to pitch in and help keep the ticket tracker in a healthy state. This means you!
WHERE IS IT?
The Parrot ticket tracker is currently the same as the Perlbug system used for Perl5 Development. It is available at https://rt.perl.org. The Parrot issues are in the queue parrot.
TICKET HANDLING PROCEDURES
New Tickets
Where New refers to a pre-existing ticket sitting in the Parrot queue with a status of new
.
Bug Triage
Involves deciding whether the ticket is a real bug, a feature request, a duplicate or spam.
It is especially important that all new
bugs which are marked [TODO], [PATCH] or [CAGE] be checked that they really are bugs of the given class. This is because some bugs, such as [TODO] and [CAGE] get their status set to open
to indicate that something should be done, rather than something is being done.
- Is this spam?
-
Assign the issue to the queue spam. Note that if this is successful, you will no longer have permissions to view the ticket.
- Is this a duplication of an existing ticket?
-
RT doesn't handle that case in a graceful manner. Set the relationship 'dependent on' to the duplicate issue. Add a comment to the ticket along the lines of "Duplicate of Ticket #123" and change the Tag field to "duplicate". Also, change the status to "rejected".
- Is there enough information?
-
If not, ask for more input.
- Is it a [TODO] ticket?
-
Is the subject line in the format
"[TODO] subsystem - issue
?[TODO]
tickets should have their status changed toopen
to prevent them from appearing in a listing ofnew
tickets. - Is it a [PATCH] ticket?
-
Is the subject line in the format
"[PATCH] subsystem - issue
?Make sure that there is actually a patch attached to the ticket. If you've applied a patch, be sure to include the revision in your response when closing the ticket.
- * Is it a [CAGE] bug?
-
Is the subject line in the format
"[CAGE] subsystem - issue
?[CAGE]
bugs should have their status changed toopen
to prevent them from appearing in a listing ofnew
bugs. - * Assign the bug to someone if at all possible.
TODO Tickets
- Claim ownership or interest ( CC ) of the ticket.
-
This way you will receive further correspondence about the ticket.
- Run the test suite
- make manitest
- add correspondence to the ticket stating that the patch was applied and include the svn revision number in your response.
- make sure that the ticket's 'Tag' includes 'Patch'
- set the ticket's 'Patch Status' to 'Applied'
- set the ticket's 'Status' to 'resolved'
Old Tickets
If the ticket is more then 1 month old then it's considered old.
- Ping the requestor
-
Give the requestor at least 1 week to respond. If no response is received then add a comment to the ticket saying that it is stalled because of no response from the requestor. Change the status to
stalled
.If it's a [PATCH] ticket, it's possible that the patch was applied but the ticket/patch status was never changed. Also, not all list traffic regarding a ticket ends up in RT. It's best to look at the SVN repo to attempt to determine if the ticket was resolved.
- Review of stalled tickets
-
Sometimes tickets are marked
stalled
because there's no hope if fixing them soon. Sometimes, no response is available from the requestor, or it can't be verified. Periodically, these tickets should be reviewed, and when possible, moved back toopen
orclosed
, as appropriate.
TIPS FOR CORRESPONDENCE
Don't be a Butthead
Remember that every word you type into the ticket tracker is On The Record. Try not to say anything that could offend or hurt the feelings of anyone. That includes the ticket submitter and other developers. When, as a Parrot developer with commit rights, you send correspondence you are representing the Parrot project and by proxy TPF. If in doubt, either send the message privately or not at all.
Say thank you!
Try to add a little token of appreciation to every message you send in response to a ticket. Ticket requestors are doing labor for free! The least you can do is let them know that you appreciate their efforts.
Something like:
Thanks,
Thanks for following up.
Thanks for reporting.
Thanks for X!
Can work wonders. If you can make someone feel good about themselves maybe they'll submit another ticket/patch/whatever or perhaps some day become a Parrot developer.
Don't say "problem"
Supposedly it's better customer relations to use issue(s) instead of the problem(s). Don't ask me why...
Make it clear why the ticket status changed
Always note why the ticket is having it's status changed. Particularly if it is being closed or rejected. Nothing will irritate people more then letting them think that their ticket was unimportant or ignored.
Example Correspondence
Hi,
Can you retest for this ticket with the latest sources from SVN and confirm
that this still an open issue?
Thanks,
-J
or
Hi,
Would you mind retesting with the latest sources from SVN?
Thanks,
-J
or
Hi,
Can you resubmit this patch different against SVN trunk?
Thanks,
-J
or
Patch applied as rXXX. Thanks for submitting.
-J
or
No response for requestor. Ticket being marked as 'rejected'.
Thanks for reporting.
-J
or
This doesn't appear to be an issue anymore.
Thanks for submitting
-J
or
Marking this ticket as 'resolved' because it seems to have fixed itself.
Thanks for following up.
-J
SVN USAGE TIPS
Commit messages
- Put a subsystem identifier out the front
-
[tcl]: commit message
-
[tcl]: #37301: [BUG] 9262: env tests failing on win32
- Add a "Courtesy of <foo>" if supplied by someone else
-
Courtesy of A. U. Thor <author@cpan.org>
- Detailed commit messages are preferred
-
Make it clear what your intent is when committing. It makes future maintenance much easier.
[PGE]: * Switched "PGE::Regex" to be "PGE::Grammar", to be more accurate. * Moved default rules from PGE::Regex into PGE::Match. * Updated various languages and tools to match.
- Commit file names
-
You don't need to include the filename in the commit message as that's part of the commit itself. However, if your commit affects multiple directories, you may mention that, especially if it's part of a group of commits.
[PDD07]: whitespace -- part 5 ~ removed trailing spaces and tabs from t/exit/, t/dynpmc/, t/dynoplibs/
- Group similar commits by parts
-
If all commits are much the same and require basically the same commit message, it can be useful to number the commit messages. For example:
[tools]: smartlink functionality -- part 3 ~ added regex attribute to Keyphrase class ~ filled in some more SmartLinkServer attribute init code ~ expanded LinkTree class functionality still TODO: merge smartlink and spec info, emit html, improve cmdline option code
You may optionally include items that are still todo, as it helps make your intentions clear.
- More ideas
-
Look at past commit messages, and http://cia.navi.cx/stats/project/parrot for more best practices.
AUTHOR
Joshua Hoblitt (JHOBLITT) jhoblitt@cpan.org
2 POD Errors
The following errors were encountered while parsing the POD:
- Around line 80:
Expected text after =item, not a bullet
- Around line 87:
Expected text after =item, not a bullet