If you don't know
tracker, as the script is called), take a short look at the nice demo here (and if you've got a lot of time on your hand, you can read these (old) slides explaining the architecture and implementation).
A:TT:Category uses some nice Moose Metaprogramming and dynamic type constraints to implement a new command line option
--cat for lazy and/or bad typists). The idea here is to specify a list of task categories (per project, job, or even global) like "bug", "feature", "meeting" etc, and when starting to work on a task reminding (or forcing..) you to choose which category the current task belongs to:
~/projects/some_job$ tracker start --rt 31420 --cat feature Started working on some_job (RT31420, feature) at 21:30:59
Internally, the category is stored as a regular tag, but
A:TT:Category makes sure you stick to one of the valid categories.
A:TT:Category only alters
start and similar commands, but I plan to add some nice reporting tools. Which are the real reason I've added this feature: I want to know how much time I spend on "productive" task (like "feature"), and how much is wasted (at least from my perspective) by working on bugs, maintenance, support etc.
I also plan to split up the monolithic App::TimeTracker distribution into a small core, and extract various current features into plugins (eg "RT"). Currently you have to install RT::Client::REST even if you're not using RT at all. So stay tuned for some more
App::TimeTracker related updates!
App::TimeTracker::Command::Category 1.001 now includes a
statistic command, which produces output like this:
domm@t430:~/projects$ tracker statistic --last day From 2016-01-29T00:00:00 to 2016-01-29T23:59:59 you worked on: 07:27:46 10.1% bug 00:45:23 34.0% feature 02:32:21 29.0% maint 02:09:52 13.3% meeting 00:59:21 13.6% support 01:00:49
P.S.: And if I happen to come upon copious free time, I might port the beast to Perl 6...