How to do a Code Tour

From Dreamwidth Notes
Revision as of 19:59, 26 April 2010 by Foxfirefey (Talk | contribs)

Jump to: navigation, search

What is a code tour?

A code tour lists information about all of the bugs in Bugzilla that have been closed in the past week. You can view previous code tours in [info]dw_dev here.

How to make a code tour

First, get a link to a Bugzilla search from [info]denise or by putting the start and end dates of the week into this search form. Then, put the information each bug into this example format:

<a href="http://bugs.dwscoalition.org/show_bug.cgi?id=NNNN">Bug NNNN</a>: Bug Title
Category: What section of the site is this bug about?
Patch by: <user name="username"> or submitter name
Description: What problem does this bug solve, or what new feature does it add?

Then, make a post to [info]dw_dev tagged "code tour". The time to do these is generally Monday, so they can be included in the [info]dw_news update.

Makes sure to double check the bug--sometimes the "patch by" field only includes who made the patch, but other people may have worked on it, especially in the arena of themes.

How to make a Bugzilla search for a code tour

The base link is this: http://bugs.dwscoalition.org/buglist.cgi?&query_format=advanced&chfield=bug_status&bug_status=RESOLVED&resolution=FIXED

To that link, you want to add this to the end: &chfieldfrom=2010-03-02&chfieldto=Now where chfieldfrom has the day after the last code code tour on it (replace the 2010-03-02 with the appropriate date). You can replace chfieldto with a date, too, if you like, but "Now" should work.

Template Making Script

If you are comfortable with using Python on the command line, here is a script that can help you make a template with all the bugs in a CSV download of the week's bugs. (You can find the CSV download link on the bottom of the search page. You'll want to make sure to have these columns listed: Full Summary, Component, Assignee Realname, and Resolution.)

#!/usr/bin/env python
 
# usage: python code_tour_template.py bugs-2009-09-15.csv
 
import csv, re, sys
 
def parse_assignment(assign):
    """Attempt to parse the assignment for the submitter's username.
    Use the full assignment field otherwise."""
    # [:username]
    match = re.search('\[\:([a-z0-9_]+)\]', assign);
 
    try:
        return '<user name="%s">' % match.group(1)
    except (IndexError, AttributeError):
        return assign
 
# Get the CSV file for the bugs
bugs_file = sys.argv[1]
 
bugReader = csv.DictReader(open(bugs_file))
 
# This is a template for a bug record
template_record = """
<b><a href="http://bugs.dwscoalition.org/show_bug.cgi?id=%(bug_id)s">Bug %(bug_id)s</a>:</b> %(title)s
<b>Category:</b> %(category)s
<b>Patch by:</b> %(patch_by)s
<b>Description:</b> FILL IN
"""
 
# For each row in the bug CSV file, put the appropriate variables into
# the template and print
for row in bugReader:
    replacements = { "patch_by": parse_assignment(row["assigned_to_realname"]),
        "bug_id": row["bug_id"],
        "category": row["component"],
        "title": row["short_desc"] }
 
    print template_record % replacements

How to do a Bugs (old and new) Tour

<a href="http://bugs.dwscoalition.org/show_bug.cgi?id=XX">Bug XX</a>: SUMMARY Category: Reported on DATE by <user name="NAME"> Severity and Priority: Status: assigned to/unassigned Description:</b>

Then, make a post to [info]dw_dev tagged "code tour". The time to do these is generally Monday, so they can be included in the [info]dw_news update.