pbeckingham / task

A command line GTD application for managing text todo lists.

This URL has Read+Write access

pbeckingham (author)
Tue Jun 09 16:49:36 -0700 2009
commit  1422a15cbc470cff590bf06daad20d01fe1b05ef
tree    78bf87805b7b398f3e4bd01931254c5a188bae5c
parent  9c15457d7f8f945f41da94ff8d5a8063c0638195 parent  20d8124a1dfc3ff7ba683b57ef6e0e8585d07fda
task / ChangeLog
100644 396 lines (355 sloc) 18.562 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
 
------ current release ---------------------------
 
1.7.1 (6/8/2009)
 + Fixed build failure on OpenBSD (thanks to Mike Adonay).
 + Took the opportunity of a patch release to update the various email
   addresses and URLs in the various documents.
 
------ old releases ------------------------------
 
1.7.0 (5/14/2009)
 + Improved the errors when parsing a corrupt or unrecognized pending.data
   or completed.data file (thanks to T. Charles Yun).
 + Added details to the "info" report about recurring tasks (thanks to T.
   Charles Yun).
 + Now writes a sample "defaultwidth" configuration variable to the default
   .taskrc file (thanks to T. Charles Yun).
 + Task allows commands that require an ID to now be given a sequence, which
   is a set of IDs. This allows commands like "task delete 1 2 5-10,12".
 + Fixed bug in the ghistory report, which caused it to only show a new
   month if a task was added during that month.
 + New command "duplicate" which allow existing task(s) to be duplicated,
   and also have modifications applied (thanks to David J Patrick).
 + The "append", and "done" commands now allow modifications to be applied
   to the task(s) (thanks to David J Patrick).
 + Improved word wrapping in various output.
 + Fixed bug that added an extra line between header and graph in the
   ghistory report.
 + Added simple 'taskprogram' mailing list subscribe form to the web site.
 + For custom reports that define a "limit" to the number of rows of output
   such as "oldest" and "newest", task allows an override value. For
   example "task oldest 5" will display the 5 oldest tasks.
 + Modified the "stats" report so that it has the same aesthetics as the
   other reports.
 + New "timesheet" command displays tasks completed and started, per week,
   and can display multiple weeks.
 + New tab completion script, task_completion.sh, for bash users, is installed
   to /usr/local/share/task (thanks to Federico Hernandez).
 + Applied patch to allow task to build on Arch Linux (thanks to Johan Friis).
 + Applied patch to fix a UUID bug on Solaris 8 (thanks to Steven de Brouwer).
 + The task man page is now installed. Try "man task" (thanks to Federico
   Hernandez and P.C. Shyamshankar).
 + Fixed bug that causes task to create a default .task directory, even if
   data.location specified otherwise (thanks to Federico Hernandez).
 + New "edit" command that fires up a text editor (uses 'editor' configuration
   variable, $VISUAL or $EDITOR environment variable) and allows direct
   editing of all editable task details.
 
1.6.1 (4/24/2009) 1b6faf57c998617024d0348a87b941a5d2ab2249
  + Fixed bug that caused new, first-time .taskrc files to be written without
    including the custom report labels (thanks to P.C. Shyamshankar).
 
1.6.0 (4/12/2009) 06062a96eb57d10dcd7fbe1edf968bb638a0b3a9
  + Added support for new "append" command that adds more description text to
    an existing task.
  + Added support for the "weekdays" recurrence, which means a task can recur
    five times a week, and not on weekends (thanks to Chris Pride).
  + UTF8 text is now supported in task project names, tags and descriptions.
  + Fixed bug that caused the y/n confirmation on task deletion to ignore the
    Enter key and fail to re-prompt (thanks to Bruce Dillahunty).
  + When the "echo.command" configuration variable is set to "yes", it causes
    commands that modify tasks to display which task was affected (thanks to
    Bruce Dillahunty).
  + A task can now be annotated with the command "task <id> annotate ...", and
    a timestamped annotation will appear in reports.
  + A 'description_only' column is now available for use in custom reports,
    and it excludes annotations.
  + A task can now be upgraded to a recurring task by adding a recurrence
    frequency, a due date, and an optional until date.
  + When a recurring task is modified, all other instances of the recurring
    task are also modified.
  + Custom reports now support user-specified column labels (thanks to T.
    Charles Yun).
  + Task can now import tasks from a variety of data formats, including task
    export files from versions 1.4.3 and earlier, versions 1.5.0 and later,
    todo.sh 2.x, CSV, plain text and task command line. See online docs for
    full details.
  + Export was including 'id' in the column header even though it was not
    included in the data.
  + The task file format has changed slightly. Please back up your task
    data files before upgrading to 1.6.0.
  + Added new column 'recurrence_indicator' that displays an 'R' if the task
    is a recurring task. This column can be added to any custom report.
  + Added new column 'tag_indicator' that displays a '+' if the task
    has any tags. This column can be added to any custom report.
  + Fixed bug where sometimes a task description was concatenated oddly if
    there was a colon somewhere in the description.
  + Fixed bug that caused recurring annual tasks to exhibit a creeping due
    date, because of an assumption of 365 days per year, which failed to
    consider leap years (thanks to T. Charles Yun).
  + Annotations can now be modified with the substitution commands /from/to/.
  + Substitutions can now be made global with /from/to/g and all occurrences
    of "from" will be replaced with "to".
 
1.5.0 (3/15/2009) 87be68e2e83d7bb628be1e5679b16a49a26d3549
  + Removed deprecated TUTORIAL file.
  + Removed "showage" configuration variable.
  + "task stop" can now remove the start time from a started task.
  + "task ghistory" now displays a differently aligned graph, allowing
    easier comparison by month of tasks added versus completed and deleted.
  + "task version" command now reports unrecognized configuration variables,
    which may be spelling mistakes or deprecated variables.
  + "configure --enable-debug" now supported to suppress compiler optimization
    to allow debugging.
  + Allow lower case priorities, and automatically upper case them.
  + Added support for "due" configuration variable which defines the number
    of days in the future when a task is considered due.
  + Added support for custom reports, comprised of a set of column names and
    sort order, with optional filtering in the configuration file. This
    means user-defined reports can be written, and the reports currently
    in the configuration file can be renamed. Several of task's built in
    reports have been converted to user-defined reports.
  + New online documentation for custom reports.
  + New algorithm for determining when the "nag" message is displayed.
  + Fixed bug where task hangs with a certain combination of recurring tasks
    and shadow files.
  + Fixed bug with the task sort algorithm, which led to an unstable sequence
    when there were only a handful of tasks.
  + Performance enhanced by eliminating unnecessary sorting.
  + Task now has a large (and growing) test suite and bug regression tests
    to help ensure higher quality releases.
  + Fixed bug that caused performance hit during table rendering.
  + Fixed bug that concatenated a modified description without spaces.
  + Added new column 'recur' that displays the recurrence period of any
    recurring tasks. This column can be added to any custom report.
  + Added support for "color.recurring" configuration variable which
    specifies the color of recurring tasks.
  + Added support for "locking" configuration variable that controls whether
    file locking is used.
  + Task export feature now includes recurrence information, removes nested
    quotes, and limits output to pending tasks.
  + Task no longer includes deleted tasks in the summary report (thanks to
    Benjamin Tegarden).
  + Fixed bug that prevented the summary report from properly reporting
    recently completed tasks.
 
1.4.3 (11/1/2008) 8639e9260646c8c9224e0fc47e5d2443b46eecfc
  + Fixed misleading task count at bottom on "info" report.
  + Added support for a shadow file that contains a plain text task report,
    with the "shadow.file" and "shadow.command" configuration variables.
    The shadow file is automatically updated whenever the task database
    changes. Useful for integrating with "Samurize".
  + Task now displays a message whenever a shadow file is updated, if the
    "shadow.notify" configuration variable is set "on".
  + Bug: adding a task with a \n, \r or \f in it now fails properly.
  + Removed "usage" command, and support for "command.logging" configuration
    variable.
  + Added documentation for Shadow files.
  + Added documentation for task filters.
 
1.4.2 (9/18/2008) e7304e86ce9bb80978c7055fd2a9e999619a6fb8
  + "task undo" can now retract a "task done" command, provided no reports
    have been run (and therefore TDB::gc run).
  + Task now correctly sorts on entire strings, instead of just the first
    character (thanks to Andy Lester).
  + Task now uses dashes (-----) to column underlines when color is disabled
    (thanks to Vincent Fleuranceau).
  + Task now allows mixed case attribute names (pri:, PRI:, Pri: ...) and
    commands (add, ADD, Add ...) (thanks to Vincent Fleuranceau).
  + Task now supports a default project and priority for new tasks, via
    the new "default.project" and "default.priority" configuration variables
    (thanks to Vincent Fleuranceau).
  + Task supports improved word-wrapping to the terminal width.
  + Task now supports "default.command" configuration variable (for example
    it could contain "list due:tomorrow") that is the command that is run
    whenever task is invoked with no arguments.
  + Task supports modifying the existing description of a task, with the
    following syntax: task <id> "new description ...".
  + Bug: Now properly supports relative dates in filters (task list due:eom,
    task list due:tomorrow, task list due:23rd ...).
  + Bug: Source now properly includes <string.h> in order to build clean
    using gcc 4.3 (thanks to H. İbrahim Güngör).
 
1.4.1 (7/18/2008) e080c3168c6064628ab85b21bd859d9875a3a9a7
  + Bug: Descriptions can not be altered with "task 123 New description".
  + Tweak: For "task calendar" month names are now centered over the month.
  + Removed TUTORIAL file contents in favor of online version.
  + Provided Mac .pkg binary.
 
1.4.0 (7/10/2008) 60b7d15a1d22e064acf0974c5d7eabbb57dd8071
  + New recurring tasks feature.
  + "task undelete" can now undelete erroneously deleted tasks, provided no
    reports have been run (and therefore TDB::gc run).
  + Added averages to the "task history" report.
  + Added ability to override ~/.taskrc with rc:<file>.
  + Added bar chart history report "task ghistory".
  + Added task filtering on all reports.
  + Automatically shuts off color, curses when output is not a tty.
  + Supports relative due: dates (tomorrow, wednesday, 23rd, eom ...).
  + Supports the ~ character in .taskrc data.location.
  + Allows colons on the description, provided what is to the left of the colon
    is not a standard attribute name.
  + Bug: Fixed where Esc[0m sequences were being emitted for no good reason.
  + Bug: Fixed underlined table headers when color is turned off.
  + Bug: Adding a blank priority resulted in an assigned garbage value.
  + Bug: Fixed parsing of date "07/08/2008" when using dateformat "m/d/Y".
 
1.3.1 (6/21/2008) 3a6de7d9402f2609a773a73b16eff97b14a32869
  + New configuration variable, "defaultwidth" that determines the width
    of tables when ncurses support is not available.
  + Bug: "showage" configuration variable should apply to all reports, not
    just the ones based on "list".
  + Bug: Fixed segmentation faults on Ubuntu when the "dateformat"
    configuration variables was missing. This was a code bug, and should
    have affected more platforms.
  + Bug: Task now will recreate a missing ~/.taskrc file, OR a missing
    ~/.task directory.
 
1.3.0 (6/18/2008) 6673e408a223af98c38779c20b08524042c0edfa
  + "task calendar" now displays multiple months per line, adjustable by the
    "monthsperline" configuration variable. Feature added by Damian Glenny.
  + "task export" can now filter tasks like the reports.
  + Factored out code to filter tasks.
  + Displays shorter message when a command is entered incorrectly, and the
    full usage for "task help".
  + "task oldest" shows the oldest tasks.
  + "task newest" shows the newest tasks.
  + Bug: Segmentation fault when no "dateformat" configuration variable
    specified.
  + Bug: Fixed bug whereby if you have more than one task with a due date, 7
    days gets added to the entry date of task 2..n.
  + Bug: Fixed bug whereby "1 wks" was being improperly pluralized.
 
1.2.0 (6/13/2008) c393d47cdfe7e197a31e94f4bb764474fa05ad8d
  + Bug: "dateformat" configuration variable used to display dates, but
    not parse them.
  + "task list x" now performs a caseless comparison between "x" and the
    description.
  + Task sub projects supported.
  + "showage" confguration determines whether "Age" column appears on the
    "list" and "next" reports.
  + Improved TUTORIAL.
 
1.1.0 (6/7/2008) 73286e86628725b346db2a25fbcd4bd68efb9b3a
  + "blanklines" configuration to stop displaying unnecessary white
     space and thus work better on small-screen devices.
  + "dateformat" configuration now determines how dates are formatted.
  + Better formatting of "task tags" output.
  + http://www.beckingham.net/task.html home page set up.
  + Added tags to the "task long" report.
 
1.0.1 (6/4/2008) d216d401217027d93581808fc8944ab7d6b85fb0
  + Bug: UUID generator not properly terminating string.
  + Bug: srandom/srand not called prior to UUID generation.
 
1.0.0 (6/3/2008) f3de5c07118c597091a05c7d7fe8bdeae95474c1
  + New movie made, uploaded.
  + Bug: assertion fails on mobile for t v.
  + Bug: configure.ac does not properly determine ncurses availability.
  + Bug: Cannot seem to use the percent character in a task description.
  + Bug: New installation "task stats" reports newest task 12/31/1969.
  + Bug: New installation task projects displays header but no data - should short-circuit.
  + Bug: incorrect color specification in sample .taskrc file.
  + Bug: when run without arguments, task dumps core on Solaris 10.
  + "task calendar" now reports all months with due pending tasks.
  + Added rules for colorization by tag, project and keyword.
  + Added legend to "task calendar".
 
0.9.9 (5/27/2008) 2ecf50032226c91b406f247417a063dc17c8e324
  + Autoconf/automake behaving properly.
  + Clean build on OS X 10.5.
  + Clean build on Ubuntu 8.0.
  + Clean build on Fedora Core 8.
  + Clean build on Fedora Core 9.
 
0.9.8 (5/25/2008) 18fd59a1edb20e5c68d086a97fae5fa9f6bb348a
  + Added "task color" command.
  + Removed unnecessary files.
  + Completed documentation.
 
0.9.7 (5/24/2008) 25dc4150947a3e612c8118838d04b3bbe68441f7
  + Migrated old compiler flags into Makefile.am.
  + Added ncurses endwin function check to configure.ac.
  + Set up structure for AUTHORS file.
  + Set up NEWS file, with pleas for feedback.
  + Added welcome message to README.
  + Completed a chunk of the TUTORIAL.
  + Added error handling for "task export" when a file name is not specified.
  + Task offers to create a sample ~/.taskrc file if one is not found.
  + Task offers to create a ~/.task directory if one is not found.
  + Removed unnecessary SAMPLE_taskrc, and assorted references.
  + Cleaned up ChangeLog.
  + Minor mods to standard docs.
  + Bumped version to 0.9.7.
  + Changed some autoconf details.
  + Corrected comment in T.cpp.
  + Made unit tests compile and run again.
  + Removed tests from distibution.
 
0.9.6 (5/13/208)
  + Corrected wrong include file in Table.cpp.
  + Replaced color management code.
  + Improved color rules code.
 
0.9.5 (5/12/2008)
  + Replaced Table storage with Grid.
  + Added Grid.cpp to configure.ac.
  + Added Makefile to src/.gitignore.
  + Makefile should not be part of the repository.
  + Added Grid.cpp.
  + Added Grid::Cell::operator==.
  + ChangeLog file begun.
  + Bumped version to 0.9.5 for next release.
 
0.9.4 (4/26/2008)
  + Integrated new Grid object into build - not yet integrated into Table.
  + More .gitignore tweaks.
  + Added .gitignore.
  + Added more missing files.
  + Added all source code.
  + Generic OSS files added.
  + Initial commit on Github.
 
0.9.3 (4/6/2008)
  + Added "task completed" command.
  + Properly recognizes ncurses.
 
0.9.2 (4/3/2008)
  + Recognizes whether ncurses, flock is available.
  + "task" duplicated to "task_rel" for preparation of a fork.
 
0.9.1 (4/1/2008)
  + Blank attributes read are no longer written out.
  + Completed "task export" command.
  + Added configuration values to "task version" command.
  + Consolidated header files, removed unnecessary ones.
 
0.9.0 (3/23/2008)
  + flat source directory.
  + autoconf complete.
  + "task next".
  + "task stats".
  + "task export".
  + Rules-based colorization.
 
0.8.1 (1/28/2008) - 0.8.16 (3/13/2008)
  + autoconf conversion (many builds).
 
0.8.0 Polish (1/25/2008)
  + Code cleanup, reorganization.
  + "task overdue".
  + Add "age" column to list and long.
  + Use 'conf' for build, version tracking.
  + Add "/from/to/" description editing.
 
0.7.0 Multi-user, File handling, atomicity (1/8/2008)
  + Clean, publishable API reimplementation.
  + File locking.
  + retain deleted tasks.
  + "task info ID" report showing all metadata.
  + File format v2, including UUID.
 
[Development hiatus while planning for T, TDB API, new features and the future
of the project. Seeded to two testers for feedback, suggestions. Development
deliberately stopped to allow extended use of task, allowing command logging and
regular usage to determine which features were needed or unnecessary.]
 
0.6.0 Reports (12/27/2006)
  + "task history".
  + "task summary".
  + "task calendar".
  + due support.
  + Table sorting.
 
0.5.0 Multi-user support (12/10/2006)
  + Command logging.
  + "task usage" report.
 
0.4.0 Destructive / modification commands (12/3/2006)
  + "task delete" complete.
  + "task id ..." complete.
  + "task list ..." synonym for "task find ...".
 
0.3.0 Work in progress support (12/3/2006)
  + "task start" complete.
  + "task done" complete.
  + completed.data support.
 
0.2.0 Neutral commands (12/2/2006)
  + "task find" complete.
  + "task projects" complete.
  + "task tags" complete.
 
0.1.0 Constructive commands (12/1/2006)
  + "task add" complete.
  + completed.data support.
  + ~/.taskrc support.
 
0.0.1 Basic infrastructure (11/29/2006)
  + Command line parsing.
  + API layer.
  + Usage.
 
------ start -----------------------------------