W3C

Documentation for Extensible Issue Tracker (ExIT)

Use and Installation Guide 19 December 2003

This version:
http://dev.w3.org/cvsweb/~checkout~/2002/issues/docs/doc-20031219
Latest version:
http://dev.w3.org/cvsweb/~checkout~/2002/issues/docs/doc
Editors:
Philippe Le Hégaret, W3C
Ian Jacobs, W3C

Abstract

This is the user and installation guide for the Extensible Issue Tracker (ExIT). ExIT is an XML-based issue tracking tool that has been designed to help Working Groups satisfy the requirements of the W3C Process.

Status of this Document

This document is still a draft. In particular, the description of the logic and syntax of ExIT issue data is incomplete.

This authors welcome people to use this software. However, at this time, the authors make no commitment to maintain, develop, or provide support for this code.

This is the documentation of version 0.9 of ExIT. After the authors have broader user experience, we may advance to version 1.0 and publish a snapshot of the code elsewhere on the W3C site. Until then, we may make backwards incompatible changes.

Please send comments on this tool to the authors.

Table of Contents

1 Introduction
2 System requirements
3 Quick start for setting up an issues list
4 Issue views
    4.1 Summary view
        4.1.1 Sorting and Filtering
        4.1.2 Highlighting
            4.1.2.1 Director view
            4.1.2.2 Working Group view
    4.2 Issue details
    4.3 View by Reviewers
    4.4 View Open Actions
    4.5 View by what Topic the Issue Concerns
    4.6 View Issue Changes
    4.7 Graphical Views of Distributions
5 Creation and management of issue data
    5.1 Schema validation
    5.2 Using XInclude to store Issue Data in Multiple Files
    5.3 Abbreviating issues date with references to email archives
6 User extension through categories
7 ExIt Logic
    7.1 Structure of issue data
    7.2 Issue Logic
        7.2.1 Issue Types
        7.2.2 Transition History
    7.3 Acknowledgment Logic
    7.4 Action Logic
8 Using ExIT in Offline Mode
9 Future Work
10 Acknowledgments


1 Introduction

ExIt reflects the experience of the authors and of several W3C Working Groups regarding issue tracking. ExIt features:

2 System requirements

3 Quick start for setting up an issues list

To set up an ExIT issues list, follow these steps.

  1. Create a directory where issue data will reside.
  2. Download exit.zip and unzip in that directory.
  3. Assign the URI of your issues directory as the value of the "URI" variable at the top of the Makefile. Note that ExIT does not rely on the use of "make"; this Makefile is provided as a convenience.
  4. If you are not using xsltproc, adjust the Makefile to use your local XSLT processor. Note in particular the order of parameters to the processor if you make such changes.
  5. Type "make".
  6. Assuming you are setting this list up to work on the W3C Web site, add issues.xml and the generated files to CVS and set ACLs appropriately. If you need CVS access, use the Unix account request form.

The issues.xml file in exit.zip is a generic issues file. You can create a personalized issues.xml using the online form for list creation. You can then start adding issues to your list with the online form for issue creation. This form will generate the xml that you can add to your issues list. Whenever you edit your issues list, type "make" and check in the results. See below for more information on creating issue data.

4 Issue views

ExIT generates a number of useful views of issues and actions (see sample screenshots). Each view is URI-addressable.

4.1 Summary view

The "home page" of the issues list (issues.html) displays a summary of all issues. This home page also provides access to the other views.

For each issue, the summary table displays by default:

  • The issue identifier and title
  • The deadline for deciding the issue (if any)
  • The current state of the Working Group's work on the issue
  • The issue type
  • Any user-defined category information
  • A summary of open action items
  • The current state of the Working Group's acknowledgment to the reviewer, in the case where the group has made a decision on the issue

4.1.1 Sorting and Filtering

By default, issues are listed in the table in the order they are listed in issues.xml. It is also possible to sort by issue state, type, and acknowledgment cycle by selecting the appropriate column title.

By default, all issues (rows) and all columns are displayed in the summary table. It is possible to filter out rows and columns in a variety of ways. For each of the following, to invoke the filter, select the appropriate check box and push the "Reformat" button.

  • Show open issues only (i.e., only display rows in the table for open issues)
  • Expert mode options:
    • Hide the deadline, categories, type, action, or acknowledgment column.
    • Hide issues by type (i.e., only display rows in the table for issues not having the selected types).
    • Hide issues by state (i.e., only display rows in the table for issues not having the selected states).
    • Hide issues by status of the acknowledgment cycle (i.e., only display rows in the table for issues not having the selected acknowledgment states).

4.1.2 Highlighting

ExIT is designed to highlight information (using colors and font styles) that is relevant in two situations:

  1. A document transition meeting with the Director. For this highlight, select "Director" in the "Highlight for:" pulldown menu and push Reformat.
  2. Agenda building for a group meeting. For this highlight, select "Working group" in the "Highlight for:" pulldown menu and push Reformat.

Currently, three classes of information are highlighted: errors, warnings, and notes. The interpretation of these classes depends on the view. A highlight view in conjunction with "Show open issues only" work well together to provide a view of issues that required attention.

4.1.2.1 Director view

In the Director view:

  • Errors (i.e., the state of affairs is such that the group should not generally even be at the meeting with the Director)
    • The group has not reached a decision for an issue.
    • There are open action items. However, an action item is not always in the critical path of the Director's decision.
    • The group has reached a decision on an issue and not informed the reviewer.
    • The group has declined to address the issue and not replied to the reviewer.
    • The group has received an objection from a reviewer and has not addressed it.
    • The group has received a counter-proposal from a reviewer and has not addressed it.
  • Warnings (i.e., the state of affairs is legal, but an item needs particular attention)
    • The group has maintained its position in the face of an objection (i.e., has not satisfied the reviewer).
    • The reviewer has made a counter-proposal to a group decision that the group has declined to integrate.
    • The group has decided to move the issue to another forum, but has not announced the decision.
  • Notes: (i.e., some items are imperfect but usually do not require particular attention)
    • The group has agreed with the reviewer's position and announced their agreement, but has not received confirmation from the reviewer. Normally, since all parties are in agreement, this open acknowledgment cycle should not be problematic.
    • The group has announced that a reviewer's issue has been subsumed by another issue and has not received confirmation of this assessment from the reviewer.
    • The group has decided to move the issue to another forum and announced the decision, but has not received confirmation from the reviewer that this is an acceptable outcome.
4.1.2.2 Working Group view

In the Working Group view:

  • Errors (i.e., the group cannot advance because a work item has not been completed, an issue has not been decided, etc.)
    • The group has not reached a decision for an issue.
    • The group has reached a decision for an issue but has not yet informed the reviewer.
    • An individual has accepted an action item but has not yet provided a proposal to the group.
    • The group has received an objection from a reviewer and has not addressed it.
    • The group has declined to address an issue and has not informed the reviewer.
  • Warnings (i.e., the group should focus on an item as it is near completion)
    • An individual with an action item has provided a proposal to the group but the group has not yet considered it.
  • Notes: (i.e., some items are imperfect but usually do not require particular attention)
    • The group has agreed with the reviewer's position and announced their agreement, but has not received confirmation from the reviewer. Normally, since all parties are in agreement, this open acknowledgment cycle should not be problematic.
    • The group has announced that a reviewer's issue has been subsumed by another issue and has not received confirmation of this assessment from the reviewer.
    • The group has decided to move the issue to another forum and announced the decision, but has not received confirmation from the reviewer that this is an acceptable outcome.

4.2 Issue details

The "home page" of the issues list (issues.html) also shows the details of each issue (available by following the issue identifier link in the summary table). The details section is sorted according to the sort order chosen for the summary table.

The details of each issue include:

  • The issue identifier and title
  • The issue description
  • The list of topics that the issue concerns
  • The history of the group's discussion of the issue
  • Any user-specified category information
  • The issue transition history. Each transition may have an accompanying description, which is displayed if present.
  • When an issue has been decided, the acknowledgment cycle
  • The list of all action items associated with this issue. Each action item indicates the action owner, action description, action deadline if present, and action history. Each action item is delimited by a box. The box is displayed in gray when the issue has been closed.

For more information on the meaning of issue transitions, acknowledgment cycle, and action history, see the section below on ExIT logic.

4.3 View by Reviewers

The reviewers view lists the groups and individuals who raised issues. An issue is associated with an individual only when the individual did not raise it on behalf of a group.

By the Candidate Recommendation transition on the Recommendation track, a Working Group is expected to be able to show the Director that the specification has received wide review. To help the Director determine at a glance that a specification has received wide review, check "Hide issue details" checkbox then push Reformat. The resulting view summarizes the names and number of reviewing groups and individuals. The default view ("Hide issue details" is not checked) lists the issues raised by each group and individual (with links back to the issue details).

4.4 View Open Actions

Two views of open action items are available:

  1. View by action owners
  2. View by issue

The first view is designed to help group participants track their open action items. The second view is designed to help a group close a particular issue.

4.5 View by what Topic the Issue Concerns

This view lists all topics that are concerned by the issues. Each topic indicates which issue(s) refer to it. An issue may refer to more than one topic. Issues refer to topics by URI.

4.6 View Issue Changes

Because ExIT keeps a running history of message dates (for discussions, transitions, announcements, etc.), groups can view the state of the issues list between two arbitrary dates. The changes view is generated dynamically from an issue home page by entering at least the "start date" and optionally an interval "end date", and pushing the "Changes" button.

Absence of an "end date" means "from the start date onward." Both start and end dates are inclusive; an event is considered within the range if it occurs on or after the start date and prior to or on the end date.

Some uses of the changes view include:

  • Building a summary of changes during a particular interval (e.g., in the last month or since the last AC meeting).
  • Establishing whether an interval was discussed on or near a particular date (that may be associated with another event, such as a workshop).
  • Announcing issue changes to individuals who wish to monitor such changes; see the section on future work.

4.7 Graphical Views of Distributions

There are two graphical views of issue data (in SVG):

  1. A bar graph showing the distribution of issues by type.
  2. A bar graph showing the distribution of issues according to the latest transition (decided, accepted, etc.).

5 Creation and management of issue data

ExIT issues are represented in XML according to the ExIT XML Schema. Later sections describe the shape of valid ExIT data and the corresponding semantics. This section focusses on the creation and storage of the XML.

Today, there are three ways to create issue data:

  1. Copy and modify an existing file (e.g., one of the templates in the ExIT distribution, or another group's data).
  2. Generate it using the issue creation online Web interface. This interface allows you to create the basic issue structure. It does not allow you to specify all aspects of an issue, or to edit an existing issue; see the section future work for plans for additional tools.
  3. Edit the data by hand. In this case, it is useful to refer to sample data in existing issues lists.

Once you have created or modified issues.xml you must regenerate files (e.g., using "make") for the various views described below.

5.1 Schema validation

To ensure that your issue data is valid, we encourage you to use the online XML Schema Validator. Each issue home page includes a link to the online Schema validator for the issue data of that list.

The default Makefile also allows you to type "make validate", which also calls the online validator.

5.2 Using XInclude to store Issue Data in Multiple Files

ExIT supports XInclude and allows you (but does not require you) to create a single issues list from multiple source files. Your issues.xml file should include all of the metadata in the file header. In place of the <issue> element, refer to an external issue file with <xi:include href="myissue.xml"/>.

Some XSLT processors (including xsltproc) support XInclude natively. To use XSLT processor support, adjust your Makefile accordingly (e.g., see the "--xinclude" option for xsltproc).

If your XSLT processor does not support XInclude, you may use ExIT's implementation of XInclude (an XSLT transform). Here is an example of an xsltproc call that takes an issues.xml and expands the XInclude markup:

xsltproc $(EXITXSLPATH)xinclude.xsl issues.xml

where $(EXITXSLPATH) represents the path to the ExIT XSLT file xinclude.xsl. The result of this processing should be issues data that conforms to the ExIT XML Schema.

For a more complete example, see the xinclude example in the ExIT source.

5.3 Abbreviating issues date with references to email archives

ExIT includes a mechanism to take advantage of the XHTML structure W3C mailing list archives. The abbreviated syntax (which does not conform to the ExIT XML Schema) lets you:

  • Extract certain pieces of issue data from the generic W3C mailing list by reference to an email with a URI.
  • Override certain parts of the source in the issues data file.

For example, suppose that the "full form" of an issue in its initial state is:

  <issue id="issue-1" type="proposal">
    <title>
       Section 4.1 should be deleted
    </title>
    <transitions>
     <raised xlink:type="simple" 
          xlink:href="http://www.example.com/list/">
        <date>2003-12-12</date>
	<description>
  	  <eg>
            ...description of issue here...
 	  </eg>
	</description>
        <originator>
         <loc xlink:type="simple" 
              xlink:href="mailto:joe@example.com">Joe Reviewer</loc>
       </originator>
     </raised>
   </transitions>
  </issue>
 

The most compact abbreviated form is:

  <issue id="issue-1" type="proposal"
            src="http://lists.w3.org/Archives/Public/...">
  </issue>
 

The value of the "src" attribute is a URI that refers to an email in a mailing list archive. The following xlstproc call shows how one would expand an issues.xml file with data in this abbreviated form into a form conforming to the ExIT XML Schema:

xsltproc $(EXITXSLPATH)abbr2full.xsl issues.xml

The abbreviation mechanism allows you to extract the following information from an email automatically:

  • The email subject is used as the issue title.
  • The email body is used as the issue description.
  • The email data is used as the date of the "raised" transition.
  • The sender email address is used as the "mailto" URI for the originator. The same information is used as the originator name.

An email subject line may not make the best issue title, so ExIT lets you override the issue title locally as follows:

  <issue id="issue-1" type="proposal"
            src="http://lists.w3.org/Archives/Public/...">
    <title>
       This title overrides the email subject.
    </title>
  </issue>
 

Similarly, ExIT lets you to override the issue description locally as follows:

  <issue id="issue-1" type="proposal"
            src="http://lists.w3.org/Archives/Public/...">
    <transitions>
      <override>
         <description>
           This description overrides the email body.
         </description>
      </override>
    </transitions>
  </issue>
 

The title and description overrides may be used together. The abbreviated form is compatible with the remaining pieces of issue data (e.g., discussion, other transitions, actions, etc.).

Since this mechanism automatically retrieves data from the W3C mailing list when ExIT generates views, you may wish to use this mechanism in combination with the XInclude mechanism. This allows you to "expand" the abbreviated form once, then include the expanded form in issues.xml. The ExIT source includes an example issues file that includes individual issue files that themselves use the abbreviation mechanism. The associated Makefile illustrates how to expand individual issues into a file that can be included into an issues.xml file. The individual issues files are only expanded when the issue data is modified to avoid unnecessary requests to the mailing list server.

Note:

Today, this abbreviation mechanism is only available for public W3C mailing lists due to the implementation of ExIT.

6 User extension through categories

Users may wish to further categorize a set of issues. ExIT allows users to include arbitrary XML data within a <categories> element, which is an optional child of the <issue> element. By default, ExIT simply ignores this data. However, list owners may define three XSLT templates to change the default handling:

  1. 'categories:summary-display': This template defines how the user's category data will be displayed in the summary table. Each template must produce content that is capable of being displayed in an XHTML table data cell.
  2. 'categories:detail-display': This template defines how the user's category data will be displayed in the details view.
  3. 'categories:detail-display': This template allows the user to document the meaning of the categories. This documentation appears on the issue home page.

The easiest way to define these templates is as follows:

  1. In the issues directory (where your issues.xml resides), edit the Makefile to set the variable MAINFILE=main.xsl. This will cause ExIT to invoke a local file to generate the result files, rather than the file in the online distribution.
  2. Use xsl:include to include the main.xsl file of the online distribution (so that you have access to all of its templates):

    <xsl:include href='http://dev.w3.org/cvsweb/~checkout~/2002/issues/xsl/main.xsl?content-type=text/xsl'/>

    The value of the "href" attribute refers to the main.xsl file of the current ExIT distribution.

  3. After that include, define the three templates. Each template takes one parameter. When one of these templates is invoked, the parameter (named "categories") will have as its value the node corresponding to the <categories> element.

See the example main.xsl file in the ExIT distribution that illustrates how the W3C TAG has used the category mechanism.

7 ExIt Logic

7.1 Structure of issue data

The ExIT XML Schema is the definitive source of information on issue data. A few notes:

  • The ExIt namespace URI is "http://www.w3.org/2003/10/issues"
  • Familiarity with the XMLSpec DTD will be useful for creating structured content inside of descriptions and certain other elements of ExIT. This data is converted to XHTML using tools provided by the XMLSpec community.

7.2 Issue Logic

The primary logical component of ExIt is the "issue". An issue consists of:

  • A title
  • A unique identifier
  • A list of resources that the issue concerns (e.g., specifications)
  • An issue type
  • An optional deadline by which the issue must be addressed
  • A transition history
  • An action item history
  • User-specified categories (for extensions to ExIT)

ExIt considers that an issue is "closed" when all of the following are true:

  1. The issue is in a decision state.
  2. The transition cycle is in a decision state.
  3. Each associated action is in the decision state.

Otherwise an issue is open. Note that an issue may be "decided" without being "closed". This means that the Working Group has reached a decision, but has more to do: to complete actions or the acknowledgment cycle.

7.2.1 Issue Types

An issue has one of the following types:

  • editorial
  • clarification
  • error
  • proposal: This is a proposal for a new feature in the specification.
  • request: This is a request from the reviewer to address an issue unrelated to a specification.

7.2.2 Transition History

The transition history of the issue refers to the states leading up to an eventual decision by the Working Group on the issue. The transitions are:

  • Initial states
    • Raised: An individual has raised an issue (e.g., on a mailing list or in a meeting). The group has not accepted the issue.
    • Accepted: The Group has agreed to address a raised issue. Note Most groups other than the TAG will use this as their initial state as they are more constrained to accept issues than the TAG.
  • Deferred state
    • Deferred: The Group has not reached a decision on this issue, but does not intend to work on it further without new input.
  • Decision state
    • Decided: The Group has reached a decision on this issue.

Each transition type requires that the user provide the date of the transition and a link to the message that caused the transition. In addition, these transition types require additional information:

  • Raised:
    • A description of the issue
    • The name of the reviewer and a link to information about the reviewer.
    • The group the reviewer represents and a link to information about the group.
  • Deferred:
    • A description of why deferred
    • A response to the reviewer that the issue has been deferred.
  • Decided:
    • A description of the decision
    • An acknowledgment cycle

An issue in the decided state has a "disposition" that represents the type of group decision.

  • Declined: The Group has decided not to address this issue.
  • Subsumed: The issue has been subsumed by an other issue.
  • Moved: The issue was moved in an other group. The Group does not intend to resolve this issue.
  • Agreed: The Group agrees to a resolution on the issue.

7.3 Acknowledgment Logic

Once an issue is in the decision state, the Working Group announces the decision to the reviewer and seeks acknowledgment from the reviewer that the reviewer is satisfied. This is called the acknowledgment cycle. The transitions of the acknowledgment cycle are:

  • Initial states
  • Proposal states
  • Decision states

7.4 Action Logic

8 Using ExIT in Offline Mode

If you have checked the ExIT source files out of the CVS archive, you may modify them and use the issues list in "offline mode". Change the value of the EXITXSLPATH variable in the Makefile to refer to your local installation. All links (to generated files, style sheets, and scripts) will point to your local installation files rather than those on the Web.

Functionalities that rely on the online XSLT processor (changes view) and the online Schema validator will not work in offline mode.

9 Future Work

10 Acknowledgments

The authors would like to thank the DOM WG and TAG WGs for being guinea pigs. Also, a suggestion from Dan Connolly led to the abbreviated syntax.