Distribution Wide Tracker Tool

Codename: wotomae (Working Together Made Easy)

This project is being developed for the Google Summer of Code. Any comments are welcome. You can view the proposal at this URL. My blog is also available at http://blogs.hurdfr.org/arnau for following the progress of the project.

Wotomae is available at http://wotomae.debian.net/. Feel free to send comments or bug reports to arnaud _AT_ andesi.org.

Summary

DWTT is a tool to make it easier to manage changes which affect other packages, like library transitions, moving to another python/perl version, policy changes, etc.

Rationale

Currently, transitions aren't easy to follow because a lot of developers have to collaborate together on a lot of packages. DWTT will provide an efficient tool for handling transitions and thereby reaching release goals in shorter timeframes.

Use cases

Case 1

A developer, "foo", would like to make changes to the package "bar". However, these changes affect many other packages, which need to be fixed.

  1. Create a "changes to bar" project using DWTT with its description and the given usertag.
  2. If some bugs have already been filed with the given usertag, they are automatically added by DWTT. "foo" can complete the list of affected packages by hand.
  3. "foo" may associate a bug with a package, and the usertag is automatically sent to the BTS by DWTT.
  4. DWTT can also display a global view of the transition progress using different criteria (whether patches are available or not, etc.).

Case 2

Now the developer, "foo", who is very productive, decides to audit packages in order to check the their licenses. DWTT allows collaboration on a task without the BTS; actually, the main part of the work happens before filing bug reports.

  1. Create task.
  2. "foo" describes the steps involved in the task. DWTT will make it possible to add comments in order to keep other developers informed about the problems.
  3. When a developer finds a problem with a package's license, he submits it, then the team maintaining the package can update the status to "no problem" or "problem found" or add a comment without updating the status. Every status change must be described.

Examples of the coordination that should be possible with DWTT/wotomae

Design

Web interface

Tree

The Wotomae web interface will look like alioth. There will be two top menus. The user can log in or create an account using links at the top of the interface.

The top menu items will be in italics and the subitems will be in bold.

--

[0] The user will have the ability to bookmark a tracker which will appear in this page.

[1] The blacklisted users can't do anything with the tracker except look at it.

[2] When a developer finds a problem with the license of a package, he submits it, then the team maintaining the package can update the status to "no problem" or "problem found" or add a comment without updating the status. Every status change must be described.

Mock-up of the web interface

http://bzr.debian.org/bzr/wotomae/mainline/doc/mockups/

Mail interface

Anybody will be able to send mail to control@wotomae for the following operations:

The following operations can be made only by the tracker administrator's team. The sender's address will be checked and confirmation will be sent to the sender before processing the request:

The blacklist will be searched for the e-mail address; if found, the mail will be rejected with a notice to the sender and the administrators. For each operation, a notification will be sent to the administrators (they will be able to choose whether to activate notification in their account settings).

Mail example:

# The following command will apply to the tracker "python2.4".
tracker python2.4

# Assign packages to the tracker
assign python-medusa kid

# Assign the bugs "123" and "134" to "kid".
assign kid 1234 123

# Lock package "formencode" and "turbogears".
lock formencode turbogears

# Leave a comment about "kid" and "cheetah".
addcomment kid cheetah 'this is a comment'

# Change the status of "kid" and "cheetah" to "done" (no BTS).
# Confirmation will be sent.
setfield pyme done

# We are now working on the "gnome2.14" transition
tracker gnome2.14

# Update the upstream-version of evolution.
# Confirmation is sent.
setfield evolution upstream-version 2.4.6

# End of the commands
thanks

Implementation

Finally, I have chosen to use Turbogears, which provides some interesting features in one framework:

How to get the source code

$ bzr get http://bzr.debian.org/bzr/wotomae/mainline/ wotomae
Branched 55 revision(s).
$ cd wotomae/src
$ less README