GothenburgBitFactory / GothenburgBitFactory/taskwarrior

Integrate timewarrior functionality into taskwarrior core, using new subcommand "time"

Open
#2,654 1 comment 0 reactions 0 assignees View on GitHub
topic:time
Dominant language
C++
Stars
6.1k
Forks
423
Avg merge
1d 19h
Merged PRs (30d)
11

Description

For many (most?) of us, time-tracking is important. Timewarrior was designed to do this, but presents considerable barriers to adoption;
- install/ learn/ update another application
- configure hooks for integration
- learn new (and often conflicting) terms, concepts, reports etc.
All of which can be annoying, personally, especially considering that task _almost_ provides all of the data to track time spent.

There is an argument that taskwarrior wasn't designed to track time intervals (that's what timewarrior's for) but I might contend that task has all of the foundations and the functionality to handle time-tracking in a manner similar to timewarrior. Extending timew compatible reports and exports would be amazing for all task users, and current timewarrior users would have options.

Instead, I think tw time-tracking data could be solidified with a small change to the way that start/stop times are recorded. Currently, start/stop durations are recorded as "start-time added and start-time removed" and presented in task-info by parsing backlog data. This is somewhat impermanent and very tricky to parse or use in any way. Instead, imho, start and stop time should simply be recorded as annotations;
```
2021-10-23 11:23:14 -- Started
2021-10-23 11:25:16 -- Stopped (duration 00:02:02)
```
making that interval a part of the task data (not parsed from backlog) and providing an opportunity to track cumulative time for any task, and by extension, for any project (or any filter, for that matter) using the new subcommand "time".

With the start/stop times recorded as annotations, many timewarrior commands (https://timewarrior.net/docs/#basic-commands) would be obviated, and handled by regular task commands. There would still be opportunities to use some timewarrior-like reporting commands;
```
task [filter] time day
task [filter] time week
task [filter] time month
task [filter] time summary
task [filter] time report
task [filter] time export
```
which could result in reports similar to, and compatible with the equivalent timewarrior commands. Some timewarrior modification commands would also be desirable;
```
task [filter] time modify ## select interval, prompt for start:time and stop:time
task [filter] time recalc ## to recalculate durations after editing datetimes
task [filter] time split
task [filter] time join
```
as these sub-sub-commands would act on, and recalculate durations of, start/stop annotations.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.