Working on Issues

You can record the start of work on an issue by using the start command:

Ditz: start prog-1
Starting work on prog-1: Implement a hello-world program
Comments (ctrl-c to abort, . to finish)
> I estimate this will take no time at all.
> .
Recorded start of work for prog-1

This adds a ‘start-work’ event to the issue’s event log, and puts the issue into the ‘in process’ state. Similarly, you can stop working on it using the stop command:

Ditz: stop
Stopping work on prog-1: Implement a hello-world program
Comments (ctrl-c to abort, . to finish)
> Checked over the prototype, and it looks good.
> .
Recorded stopping of work for prog-1

This adds a ‘stop-work’ event to the event log, and the issue state becomes ‘paused’.

Whatever state an issue is in, you can add a comment to it via the comment command, which adds another event to the log:

Ditz: comment
Commenting on prog-1: Implement a hello-world program
Comments (ctrl-c to abort, . to finish)
> Wally reported an error (prog-2), but it's probably nothing.
> .
Comments recorded for prog-1

Notice, in this comment, a reference to another issue name. As mentioned in Querying the Issue Database, PyDitz will replace this with the unique identifier of the issue behind the scenes.

When an issue has been resolved, you can close it via the close command:

Ditz: close
Closing issue prog-1: Implement a hello-world program
  1) fixed           2) won't fix       3) reorganized   
Choose a disposition (1--3): 1
Comments (ctrl-c to abort, . to finish)
> Yeah, it works fine.  Job's a good 'un!
> .
Closed issue prog-1 with disposition fixed

As you can see above, there are three possible dispositions for a closed issue, with these intended meanings:

Fixed:Resolved successfully (feature implemented, task done, bug fixed).
Won’t fix:Rejected (feature or task aborted, bug wasn’t a bug or isn’t serious enough to fix).
Reorganized:Split up or rearranged into other issues.

At this point, let’s look at the event log to see what happened:

Ditz: show
Issue prog-1
------------
      Title: Implement a hello-world program
Description: Pretty lame, but one has to start somewhere.

       Type: feature
     Status: closed: fixed
    Creator: Dilbert <dilbert@cubicle.com>
    Claimer: Dilbert <dilbert@cubicle.com>
        Age: 3 seconds
    Release: 1.0
 References: 
  1. http://warez.com/hello-world-trojan.c
 Identifier: 813fae8376c79911b69b7ebfc87f25a2d4b0dad1
   See also: prog-2
In progress: just now

Event log:
- closed with disposition fixed (dilbert, just now)
  > Yeah, it works fine.  Job's a good 'un!
- commented (dilbert, just now)
  > Wally reported an error (prog-2), but it's probably nothing.
- changed status from in progress to paused (dilbert, just now)
  > Checked over the prototype, and it looks good.
- changed status from unstarted to in progress (dilbert, just now)
  > I estimate this will take no time at all.
- claimed (dilbert, just now)
  > You're my issue now!
- assigned to release 1.0 from unassigned (dilbert, 1 second ago)
- added reference 1 (dilbert, 2 seconds ago)
  > Prototype for the program.
- assigned to component prog from helloworld (dilbert, 2 seconds ago)
  > This is a programming issue.
- created (dilbert, 3 seconds ago)
  > I already have a prototype for this, off the Interweb.

Finally, if you decide that an issue has become completely redundant, you can remove it from the database completely. This is done using the drop command:

Ditz: drop doc-1
Dropped doc-1.  Other issue names may have changed.

Like the set-component command, this potentially rearranges issue names.

Note here that you don’t get to include a comment. This is because there’s no longer anywhere to store it. [1]

[1]Though if there were, in this case it would probably be “We don’t need no stinkin’ documentation!”