Taskwarrior Changelog

New in version 2.3.0

January 17th, 2014
  • Sync with Taskserver.
  • Replacement 'tasksh' utility, which supercedes the old 'shell' command. The new shell offers readline support.
  • it-IT localization.
  • UDA default values.
  • Rewritten 'task-sync' man page.
  • JSON encoding in your .taskrc file, using \uNNNN.
  • New 'sync' verbosity token.
  • IPv4 and IPv6 support.
  • New virtual tags (WEEK, MONTH, YEAR, PARENT)

New in version 2.1.2 (September 20th, 2012)

  • This is a major critical bugfix release.

New in version 2.1.1 (September 3rd, 2012)

  • Bug fix release and minor new features.

New in version 2.0.0 (March 19th, 2012)

  • New Features in taskwarrior 2.0.0:
  • New 'ids' command that returns a filtered set of task ID numbers, instead of the actual tasks. Similarly, there is a 'uuids' command.
  • Attribute modifiers may be prefixed with '~' to return the opposite of a filter's results.
  • Status attribute can now be used in report.
  • Project names may now contain spaces.
  • New export-html.pl script.
  • Now supports the 'inverse' color attribute.
  • Reports may now be sorted by columns that are not displayed (example: ID, project, due date and description sorted by urgency).
  • Performance enhancements.
  • New 'next' report, that gauges urgency and reports the most urgent tasks.
  • The 'next' report is now the default command.
  • Fine control of verbosity through the 'verbose=' configuration variable.
  • New 'execute' command that runs external scripts/programs.
  • JSON is the new default export format.
  • New 'reports' command that lists reports and their descriptions.
  • New complex aliases.
  • Filtering now available on most read-only commands.
  • The done, delete, start and stop commands now allow modification to the task and annotations.
  • New 'columns' command to list the supported columns and formats.
  • New 'eoq' and 'soq' dates to refer to the end and start of the quarter.
  • Urgency now has an 'age' component.
  • New commands in taskwarrior 2.0.0:
  • "ids" command that accepts filters, and returns an ID sequence.
  • New configuration options in taskwarrior 2.0.0:
  • Now includes Belarus, Czech Republic and Japanese holiday data. Please note that the holiday file names now include a full locale. For example: 'holidays.en-US.rc' instead of 'holidays-US.rc'.
  • The old 'curses' configuration variable is renamed to 'detection', but retains the original meaning, which is whether or not to auto-detect the dimensions of the terminal window.
  • Extension system now controlled by the 'extensions' configuration variable.
  • Two new solarized color themes.
  • New 'dependency.indicator' for the 'depends.indicator' report field format.
  • New 'indent.annotation' for the description.default field format.
  • New 'color.label' for report column labels.
  • New 'verbose=...' support for individual verbosity settings.
  • New 'avoidlastcolumn' support for Cygwin users.
  • New 'patterns' enables/disables command line pattern support.
  • New 'expressions' enables/disables command line expression support.
  • New 'dom' enables/disables DOM support for the command line.
  • New 'json.array' determines whether 'query' command output is enclosed by '[...]'.
  • New 'regex' control determines whether substitutions use Regular Expressions or simple text patterns.
  • New 'exit.on.missing.db' control causes an exit if the ~/.task directory (or override) is missing.
  • New 'color.completed' and 'color.deleted' color rules.
  • New 'abbreviation.minimum' setting controls how short an abbreviated command or value may be.
  • New 'hyphenate' setting controls whether long lines are hyphenated when broken during text-wrapping.
  • New 'defaultheight' setting overrides the assumed 24 lines when 'detection' is disabled. This setting only affects charts.
  • New 'urgency.age.coefficient' and 'urgency.age.max' settings control the new age component to the urgency value.
  • Newly deprecated features in taskwarrior 2.0.0:
  • The 'next' configuration variable has been removed.
  • Use of 'fg:' and 'bg:' attributes are deprecated.
  • Use of 'echo.command' configuration variable. Use verbosity token 'affected' instead.
  • Use of 'edit.verbose' configuration variable. Use verbosity token 'edit' instead.
  • Use of 'export.ical.class' configuration variable. Value is now specified in the scripts/add-ons/export-ical.pl script.
  • Use of 'report..limit' configuration variable. This is now handled in the report filter as 'limit:'.
  • Use of 't', '+', 'enable' and 'enabled' in configuration values to mean 'on/yes/true'.
  • ChangeLog:
  • Untracked Features, biggest first.
  • autoconf eliminated.
  • New 'ids' command that returns a filtered set of task ID numbers, instead of the actual tasks. Similarly there is a 'uuids' commands.
  • Corrected sorting to use std::stable_sort instead of std::sort, which is not guaranteed stable (thanks to Stefan Hacker).
  • Enhanced diagnostics command.
  • Performance enhancements.
  • The old 'curses' configuration variable is now replaced by 'detection', and has the same meaning - whether or not to auto-detect terminal size.
  • Added Czech Republic holiday files (thanks to Tomas Cech).
  • Added Japanese holiday files (thanks to Takanobu Watanabe).
  • All holiday files have been renamed to include a locale, rather than just a country code. For example: holidays.en-US.rc.
  • Now ships with an add-on script, update-holidays.pl, which contacts http://holidata.net, and brings the installed holiday files up to date.
  • Extension system now controlled by the 'extensions' configuration variable.
  • HTML export in the form of an external scripts export-html.pl.
  • Two additional solarized theme files, solarized-dark-256.theme and solarized-light-256.theme (thanks to Stefan Keel).
  • New 'dependency.indicator' configuration variable for the depends.indicator report field.
  • New 'indent.annotation' for the 'description.default' field format.
  • New 'color.label' for colorizing the report column labels.
  • The 'blanklines' configuration variable now replaced by the 'verbose' token 'blanklines'.
  • The 'verbose' configuration variable now accepts a specific list of items to be verbose about. See taskrc(5).
  • New 'execute' command that runs external programs.
  • The default export format is now JSON.
  • The configuration variable 'json.array' determines whether 'query' command output is enclosed by '[...]'.
  • The duration 'm' is now interpreted as 'months', not 'minutes'.
  • Urgency now has an 'age' component.
  • Improved text wrapping of UTF8 text.
  • When duplicating a parent recurring task, a new recurring parent task is created. When a child recurring task is duplicated, a plain task is created.
  • The 'diagnostics' command now checks for duplicate UUID values in the data.
  • Tracked Features, sorted by ID.
  • Added feature #52, which provides improved text-wrapping support for UTF-8 descriptions.
  • Added feature #278, which provides a more consistent command line grammar.
  • Added feature #318, which shows a full edit history in the 'info' report, when enabled by 'journal.info=on'
  • Added feature #330, which supports the 'inverse' color attribute.
  • Added feature #340, which implements new color rules 'color.completed' and 'color.deleted'.
  • Added feature #422, #566 and #639, which allow task modifications during 'done', 'delete', 'start', 'stop' and 'duplicate' commands (thanks to Max Muller).
  • Added feature #474, which means the 'info' command accepts filters.
  • Added feature #479, which enables filtering for the 'calendar' command.
  • Added feature #496, which allows rc.default.command to be supplemented with a filter, so that 'task project:Home' applies the project filter to the default command.
  • Added feature #507, which provides an alternative mechanism for inverting attribute modifiers, in the form of new algebraic filters (thanks to Michelle Crane).
  • Added feature #514, which allows duplication of tasks based on a generalized filter, rather than just IDs (thanks to Peter De Poorter).
  • Added feature #523 & #659, adding 'status' as a reportable field (thanks to Peter De Poorter and Bryce Harrington).
  • Added feature #545, #610, #611, #646, which support complex aliases.
  • Added feature #559, that causes Taskwarrior to exit if the ~/.task (or rc.data.location override) does not exist, controlled by the rc.exit.on.missing.db configuration variable (thanks to Sander Marechal).
  • Added feature #571, which provides descriptive feedback when a special tag is applied.
  • Added feature #607, which allows modification of a task during annotation (thanks to Peter De Poorter).
  • Added feature #609, which allows suppression of output labels and verbose text.
  • Added feature #612, so that the 'info' command displays the sum of all active (start/stop) times for a task, if the 'journal.info' configuration variable is set (thanks to Andy Kriger).
  • Added feature #632, which allows environment variables TASKRC and TASKDATA to override .taskrc and .task directory locations (thanks to Steve Rader).
  • Added feature #657 & #658, using the 'ids' command, tasks matching a filter can now be modified as a group (thanks to Bryce Harrington, Eric Fluger).
  • Added feature #679, which makes color rules match project names in a left- most fashion, like filters (thanks to ch077179).
  • Added feature #682, which allows the configuration variable 'defaultheight' to override the assumed height of 24 lines when 'detection' is not enabled (thanks to Steve Rader).
  • Added feature #700, which adds tab-completion of built-in tags.
  • Added feature #710, which adds an attribute modifier prefix to return the complement of a filtered set (thanks to Dan White).
  • Added feature #714, including Belarus holidays (thanks to Alexei Romanoff).
  • Added feature #725, which provides feedback when tasks become unblocked.
  • Added feature #733, including Czech holidays (thanks to Tomas Cech).
  • Added feature #740, that allows for indented annotations, controlled by the 'indent.annotation' configuration variable (thanks to Steve Rader, Tomas Cech).
  • Added feature #755, adding a new command 'reports' that lists reports and their descriptions.
  • Added feature #779, which uses more relevant and consistent terms on the 'burndown' charts.
  • Added feature #800, adding a new command 'columns' that lists all the columns available for custom reports, and includes their formatting options (thanks to T. Charles Yun).
  • Added feature #806, which provides the ability to compare dates using the relational operator '>=' (thanks to Miguel de Val Borro).
  • Added feature #811, which makes the 'execute' command optional, and controlled by '#define HAVE_EXECUTE 1' in cmake.h. This allows a build that does not have the potential security hole, in the event that taskwarrior is run at elevated privilege, or run in the context of a web server.
  • Added feature #813, new "eoq" and "soq" dates for the end and start of quarter. (thanks to Dave French and Paulo Almeida for the patch).
  • Added feature #827, which allows augmentation of default.command with extra arguments, when default.command itself contains mulitple arguments (thanks to Aikido Guy).
  • Added feature #891, which allows for leftmost partial matches of UUID values.
  • Tracked Bugs, sorted by ID.
  • Tracked Bugs, sorted by ID.
  • Fixed bug #208, which addresses various problems with recurring tasks, and change propagation.
  • Fixed bug #403, which disambiguates certain commands involving numbers.
  • Fixed bug #447, #942, which only allowed dates to be edited if they changed day (thanks to Michelle Crane and Owen Clarke).
  • Fixed bug #458, removing the ambiguous 'm' as a duration, leaving 'mi[nutes]' and 'mo[nths]' requiring at least two characters for a match.
  • Fixed bug #475, which allowed a blank annotation command to be entered (thanks to Andreas Kalex).
  • Fixed bug #511, which caused display problem on Cygwin when colored output used the full width of the terminal. The 'avoidlastcolumn' configuration variable forces taskwarrior to never use the last column.
  • Fixed bugs #533 and #536, which prevented having correct paths for themes in .taskrc (thanks to Juergen Daubert)
  • Fixed bug #552, where 'rc.verbose=off' suppressed warnings (thanks to Peter De Poorter).
  • Fixed bug #594, which broke the 'all' report with a combination of bad regex handling and a formatting bug (thanks to Steve Rader).
  • Fixed bug #605, which gave misleading project completion percentages under certain circumstances (thanks to Steve Rader).
  • Fixed bug #636, which causes the burndown reports to not honor the _forcecolor=off setting (thanks to Steve Rader, Uli Martens).
  • Fixed bug #645 & #660, which prevented logically combining report filters (thanks to Bryce Harrington).
  • Fixed bug #683, in which the 'config' command sometimes edited comments instead of the proper line in .taskrc (thanks to Erlan Sergaziev).
  • Fixed bug #691, which was a mis-reporting of file lock state even when file locking was turned off (thanks to Tom Duffy).
  • Fixed bug #694, which allows attributes to be modified while annotating a task (thanks to Aikido Guy).
  • Fixed bug #696, where the command line parser was confused by a single '-' or '+' character.
  • Fixed bug #699, truncated ssh://... during autopush after merge.
  • Fixed bug #703, where global substitutions didn't make all expected annotation changes.
  • Fixed bug #704, which improved wording of journal messages.
  • Fixed bug #706, where deletions were recorded in the journal twice.
  • Fixed bug #707, which had inverted logic with the urgency calculation for blocked tasks.
  • Fixed bug #708, which corrected bad math in project % complete calculations (thanks to Michelle Crane).
  • Fixed bug #713, which fixes typos in the holidays-UK.rc file (thanks to Alexei Romanoff).
  • Fixed bug #720, so that when the 'info' report renders total active time, it uses a lossless format (thanks to Bernhard B).
  • Fixed bug #722, #801, so that all recurring task change propagations are confirmed (thanks to Arkady Grudzinsky).
  • Fixed bug #723, which displayed a misleading message when the output was truncated to a page.
  • Fixed bug #732, which fixes misleading messages and documentation for merge/push/pull URIs (thanks to Tomas Cech).
  • Fixed bug #737, which allows wait dates after due dates, but provides a warning (thanks to Arkady Grudzinsky).
  • Fixed bug #741, which miscounted columns widths when a table header used unicode characters (thanks to Tomas Cech).
  • Fixed bug #744, which omitted new ID feedback for all but the first duplicated task (thanks to Uli Martens).
  • Fixed bug #745, which allows projects names with spaces, provided the values are quoted (thanks to Duane Waddle).
  • Applied patch for Bug #746, which added missing documentation for the 'entry' report column (thanks to Duane Waddle).
  • Fixed bug #761, in which the 'prepend' and 'append' commands failed to generate an error when no text was provided (thanks to Aikido Guy).
  • Fixed bug #762, #763, so that modifications to tasks are considered 'write' commands, and therefore update shadow files (thanks to Aikido Guy).
  • Applied patch for Bug #770, which fixed a broken build (thanks to Christopher J. Pilkington).
  • Applied patch for Bug #771, which looks for libuuid if uuid_unparse_lower is not located (thanks to Christopher J. Pilkington).
  • Fixed bug #777, which prevented _query command output from passing JSON validation due to missing [] around the task list.
  • Fixed bug #781, which prevented tasks with dependencies from showing on the 'next' report (thanks to Wim Schuermann).
  • Fixed bug #783, which fixes completed and deleted tasks still showing as active (thanks to Adam Wolk).
  • Fixed bug #785, which fixes a broken build on Solaris (thanks to Owen Clarke).
  • Fixed bug #788, which reported regex and readline versions, even though they are not used.
  • Applied patches for bugs #792, #793, #794 and #795, so that cmake now recognizes and builds on Solaris (thanks to Owen Clarke).
  • Applied patch for bug #797 which corrects a build problem with 'srandom' (thanks to Owen Clarke).
  • Applied patches for bug #798 which allows out-of-source builds (thanks to Ben Boeckel).
  • Applied documentation patch for #799, fixing a broken link in the man page (thanks to Bryce Harrington).
  • Applied patch for #803, allowing rc.confirmation to bypass confirmation of the deletion of a recurring task (thanks to Matt Kraai).
  • Addressed bug #804 by allowing rc.hyphenate to control whether hyphens are inserted when long lines are broken. This may help prevent xterm from mis-parsing URLs in task annotations, when wrapped (thanks to Yann Davin).
  • Fixed bug #807, which caused a lack of Lua to prevent tests from building (thanks to Owen Clarke).
  • Fixed bug #808, which generated compiler warnings on Solarix (thanks to Owen Clarke).
  • Fixed bug #817, which caused a build problem with a Core2 Duo processor on a Mac OSX 10.6 machine. Notes updated in INSTALL file (thanks to John Hammond).
  • Fixed bug #818, which caused partial tag matching (thanks to Joe Holloway).
  • Fixed bug #822, #845, which generated incorrect IDs (thanks to Matt Kraai and Michelle Crane).
  • Fixed bug #823, so that recurring task change propagations are now always confirmed (thanks to Miguel de Val Borro).
  • Fixed bug #824, which caused probles when completing recurring tasks (thanks to Matt Kraai).
  • Fixed bug #831, which prevented some date fields from being properly parsed.
  • Fixed bug #835, which prevented hierarchical projects from being recognized.
  • Fixed bug #836, which preserves numeric arguments as-is (thanks to Matt Kraai for the patch).
  • Fixed bug #837, which caused incorrect urgency calculations for tasks that have completed dependencies, and problems when editing those tasks (thanks to Matt Kraai).
  • Fixed bug #839, which caused problems when recurrence frequencies of '1m' were used. This is an obsolete form, and should now be '1mo' (thanks to Gour D).
  • Fixed bug #846, which prevented the default.command configuration from handling multiple arguments (thanks to Uli Martens).
  • Fixed bug #850, which failed when newline characters were in a modified task description. They are now stripped (thanks to Aikido Guy).
  • Fixed bug #851, which failed to recognize durations like '1day' when filtering date attributes (thanks to Philipp Woelfel).
  • Fixed bug #856, which prevented filters on missing project from working (thanks to Michelle Crane).
  • Fixed bug #859, which used only one color for the 'ghistory.*' report legends (thanks to Uli Martens).
  • Fixed bug #860, which prevented lower-case priority values from being accepted (thanks to Michelle Crane).
  • Fixed bug #862, which suppressed feedback from the 'denotate' command.
  • Fixed bug #863, which suppressed report labels with rc.verbose=off (thanks to Michelle Crane).
  • Fixed bugs #865 and #886, which caused silent failure of unrecognized dates (thanks to Michelle Crane).
  • Fixed bug #879, which mis-parsed escaped characters in the data file (thanks to Michelle Crane).
  • Fixed bug #880, which listed the wrong file paths for themes (thanks to Peter Lewis).
  • Fixed bug #892, which caused a segfault due to misuse of std::map::operator[] (thanks to Dmitriy Samborskiy).
  • Fixed bug #897, which adds the UUID field to the 'completed' report (thanks to Eli Lev).
  • Fixed bug #899, which displayed incorrect project completion numbers (thanks to Paul-Gheorghe Barbu).
  • Fixed bug #901, which was preventing multiple IDs and UUIDs from being used as a filter (thanks to Bryce Harrington).
  • Fixed bug #906, which caused problems with inverted project matching (thanks to Uli Martens).
  • Fixed bug #910, which caused unexpected behavior when duplicating a recurring task (thanks to Jennifer Cormier).
  • Fixed bug #917, which mis-encoded quotes (thanks to Uli Martens).
  • Fixed bug #929, which corrected argument handling for aliases (thanks to Uli Martens).
  • Fixed bug #932, which fixed change propagation for recurring tasks (thanks to Jennifer Cormier).
  • Fixed bug #936, which caused tests to fail on Solaris (thanks to Owen Clarke).
  • Fixed bug #937, which failed 'stat' calls on Solaris (thanks to Owen Clarke).
  • Fixed bug #938, which corrected compiler warnings on Solaris (thanks to Owen Clarke).
  • + Fixed bug #944, which caused a test to fail when it was run on an NFS share.
  • Fixed bug #946, which caused 'edit' command problems when 'dateformat.annotation' did not contain any date elements (thanks to Tuomas Toivola).
  • Fixed bug #950, which warned about dependency chain problems during annotation, which makes no sense (thanks to Uli Martens).
  • Fixed bug #951, which caused tag filtering to fail (thanks to Max Muller).
  • Fixed bug #952, which generated cmake warnings on Cygwin.
  • Untracked Bugs, biggest first.
  • Fixed bug that required the '%YAML' prologue in a YAML import.
  • Fixed bug that showed the 'due' date, under the heading 'until' date, in the info report (thanks to Michael McCann).
  • Fixed burndown chart y-axis height calculation (thanks to Ben Boeckel).
  • Fixed missing recurrence values in zsh completion script (thanks to Ben Boeckel).
  • Fixed problem with DOM-checking the 'limit' pseudo-attribute (thanks to Barton Meeks).
  • Fixed problem with duplicate 'project changed' messages (thanks to Owen Clarke).
  • Fixed problem with non-UTC defaults for "TZ" (thanks to Owen Clarke).
  • Removed use of Lua API call that is deprecated in 5.1 and removed from 5.2 (thanks to Michal Vyskocil).
  • Fixed problem where update-holidays.pl did not properly handle UTF8 JSON data.
  • Fixed problem where update-holidays.pl did not use the YYYYMMDD date foramt.
  • Fixed problem where urgency was not properly calculated for waiting tasks.
  • Fixed problem where 'project' was not supported as a verbosity token (thanks to Adam Gibbins).

New in version 1.9.4 (March 7th, 2011)

  • New version with lots of enhancements and bug fixes.

New in version 1.9.3 (November 10th, 2010)

  • Start and stop times for a task can now be recorded as annotations.
  • Special tags 'nocolor', 'nocal' and 'nonag'.
  • Now supports durations in dates, such as:
  • $ task ... due:4d
  • $ task ... due:3wks
  • 'sow', 'som' and 'soy' are now accepted in dates. 'soww' and 'eoww' are now synonyms for 'sow' and 'eow' (ww = working week) 'socw' and 'eocw' refer to the calendar week (starting Sunday/Monday and
  • Now supports the beginning of the week, month and year in dates.
  • Now supports 'now' as a date/time.
  • Now defines an overdue task as being one second after the due date, instead of the day after the due date.
  • Import and export of YAML 1.1, including round-trip capability, and detection of duplicate imports.
  • New merge capability for syncing task data files.
  • New push capability for distributing merged changes.
  • New pull capability for copying data files from a remote location.
  • When completing or modifying a task, the project status is displayed.
  • The 'info' report is now colorized.
  • Certain characters (#, $, @) are now supported for use in tags.
  • User-controlled color rule precedence.
  • Two new color themes.
  • New holiday files for US, SE, DE, CA, FR, UK, ES, NL and NO localizations.
  • Task dependencies, and new 'blocked' and 'unblocked' reports for list those tasks.

New in version 1.9.2 (July 16th, 2010)

  • Enhancement and bug fix release

New in version 1.9.1 (May 24th, 2010)

  • Minor bug fix release.

New in version 1.9.0 (February 23rd, 2010)

  • Color:
  • 256-color support, for more interesting and subtle color control.
  • Color 'blending' which is the mixing of foreground and background colors for when multiple color rules apply.
  • Alternating line coloration.
  • Color rules now match on partial project names, like filters.
  • The 'color' command now allows you to test various color combinations ("task color red on rgb315")
  • Calendar:
  • Calendar report can now list due tasks beneath the calendar.
  • Holidays can now be marked on the calendar.
  • Configuration:
  • New 'config' command to modify your .taskrc file, report on the current configuration, and check your .taskrc file for problems.
  • Ability to nest configuration files with the "include" keyword.
  • More data format options, including the ability to control date format by report.
  • More control over the display of annotations.
  • Ability to include the date and time on certain fields.
  • New 'countdown' report column showing time until task is due.
  • Several other new report columns.
  • More control over calendar colors.
  • Ability to color tasks due today differently, to make them stand out.
  • Configurable case-sensitivity for searches, subsitutions.
  • Configurable tag-, recurrenceand active-indicators.
  • Documentation:
  • New task-faq man page.
  • New task-color man page explaining color usage.
  • Updates to all man pages.
  • Filters:
  • New 'word' and 'noword' attribute modifiers.
  • Miscellaneous:
  • More vim syntax highlighting of task data files and configuration files.
  • Lots of bug fixes, and a huge increase in the size of the test suite, for improved quality.