Taskwarrior Changelog

What's new in Taskwarrior 2.5.1

Jun 27, 2016
  • TD-104 Unrecognized taskwarrior file format (thanks to Jeremy John Reeder, Reg).
  • TW-38 Dates in the far future give bad estimates in burndown (thanks to Ben Boeckel).
  • TW-188 short help text (thanks to David Patrick).
  • TW-311 Estimated completion in burndown.daily shows impossible results (thanks to Michele Santullo).
  • TW-1313 some recurring intervals reset due time to midnight (thanks to James Dietrich).
  • TW-1425 The 'age' format rounds in odd ways (thanks to Black Ops testing).
  • TW-1435 Ability to sync the full history of tasks including completed ones (thanks to Renato Alves).
  • TW-1446 Difference in how relative dates are specified in report filters since 2.3.0 (thanks to atomicules).
  • TW-1481 Unable to assign a completed task as dependency (thanks to Tomas Babej).
  • TW-1500 Dates formatted as ".age", ".remaining", or ".countdown" often give blank results (thanks to Jeremy John Reeder).
  • TW-1582 Wrong urgency for first report after reviving task with "mod status:pending"
  • TW-1658 rc override to non-existent alternate rc quietly uses default (thanks to David Patrick).
  • TW-1697 Inconsistent failure mode on invalid task id (thanks to Daniel Shahaf).
  • TW-1698 tests: 'make test' should exit non-zero if tests failed (thanks to Daniel Shahaf).
  • TW-1703 When on-modify hook is installed, some messages print UUIDs instead of IDs (thanks to Robin Green).
  • TW-1704 Use Task::identifier to reference the Task in the output
  • TW-1705 Directories in .task/hooks should not be reported as invalid hooks (thanks to Tomas Babej).
  • TW-1709 Parsing bug when doing "task undo" (thanks to Scott Kostyshak).
  • TW-1710 Setting wait date on status:completed / status:deleted (thanks to Daniel Shahaf).
  • TW-1714 Starting recurring task starts all recurrences (thanks to Robin Green).
  • TW-1718 String UDA not passed through unchanged (thanks to Wim Schuermann).
  • TW-1719 Description cannot contain improper ordinals (thanks to Ben Boeckel).
  • TW-1720 CmdContext uses a mix of both throw and std::cout to convey errors (thanks to Paul Beckingham).
  • TW-1723 task info causes segfault (thanks to Roman Golovin).
  • TW-1724 some commands show color codes when redirected (thanks to Alan Young).
  • TW-1729 zsh completion: zregexparse:4: not enough regex argument (thanks to Daniel Shahaf).
  • TW-1733 taskwarrior 2.5.0 can not compile FreeBSD 10.1 (thanks to ribbon).
  • TW-1734 calendar gives an error when context is set (thanks to Simon Michael).
  • TW-1735 context with no subcommand should do something (thanks to Simon Michael).
  • TW-1736 Error on detection of BOM in files.
  • TW-1738 add defined languages JAPANESE (thanks to ribbon).
  • TW-1741 Warning "ignoring return value of ‘int ftruncate" while doing make on xubuntu15.10 (thanks to Sunil Joshi).
  • TW-1742 Indian Holiday Calendar (Master HolidayFile) (thanks to Sunil Joshi).
  • TW-1748 CMakeLists shouldn't hardcode libc++ on Darwin (thanks to Misty De Meo).
  • TW-1749 PATH_MAX isn't defined in FS.cpp in some versions of OS X (thanks to Misty De Meo).
  • TW-1750 REG_ENHANCED, used in RX.cpp, isn't defined in all versions of Darwin (thanks to Misty De Meo).
  • TW-1752 cleanup of diag output (thanks to David Patrick).
  • TW-1754 '' at end of description in 'task edit' merges task with following task (thanks to Scott Kostyshak).
  • TW-1756 The columns.t unit test fails two tests after 2300 local.
  • TW-1763 Removing the due date of a task with no due date modifies the task (thanks to Scott Kostyshak).
  • TW-1768 Task sync failed: "Either your credentials are incorrect, or your account doesn't exist on the Taskserver." (thanks to Konstantin).
  • TW-1773 one task eaten all my RAM (thanks to Yaroslav Molochko).
  • Fixed broken build for Cygwin and older GCC (thanks to Richard Boß).
  • The default configuration is now 256-color only.
  • The 'columns' report now shows whether a column is modifiable or read only.
  • UDA indicator column did not properly default to 'U' (thanks to JDufault).
  • Removed task.fish arguments until TW-1404 is fixed (thanks to Roman Inflianskas)
  • Removed unused 'dom' and 'shell.prompt' configuration settings.
  • Numerous performance improvements. Taskwarrior 2.5.1 is between X% and Y% faster than 2.5.0 when running various commands.
  • New formatting specifier 'relative' for columns of Date type was introduced.
  • Fixed bug where 'rc.allow.empty.filter' was not behaving properly (thanks to Scott Kostyshak).
  • Fixed man page bugs (thanks to pawprint).
  • Improved OpenBSD support (thanks to Kent R. Spillner).
  • Included 'problems' script in build dir (thanks to Gordon Ball).
  • The 'run_all' script was not correctly using exit code 0 when all tests pass (thanks to Gordon Ball).

New in Taskwarrior 2.4.4 (May 11, 2015)

  • Fixed a problem where the wrong task may be updated, if GC is disabled. This is the primary reason for the release.
  • Fixed a problem where filters including parenthesized tags (... and (+DUE or +OVERDUE)) were incorrectly handled.
  • 32-bit platform support.
  • The obfuscate configuration setting will hide private data, intended for bug reporting.
  • An early Japanese localization.
  • Several bug fixes.

New in Taskwarrior 2.4.3 (Apr 20, 2015)

  • Primarily a bug fix release to address a bad hook problem that prevented on-modify hooks from modifying tasks.
  • User Defined Attributes (UDAs) have been enhanced so that type string attributes may now designate the sort order of allowed values. This enhancement permits the migration of the priority attribute to a UDA. This means you may now define your own priority levels, sorting and urgency coefficients.
  • It may appear otherwise, there is no new monthly release cycle, it's all a coincidence. The next release will likely take a little longer as we shift focus to Taskserver improvements.
  • Although this is a minor release, there are significant bug fixes and new features make this a recommended upgrade.
  • Changes include:
  • Hooks API v2, which is backwards compatible with v1. This allows hooks to be more aware of the context in which they are run.
  • Default values no longer are applied to recurring tasks.
  • Default values no longer are applied to synced tasks.
  • UDA sorting order can be defined.
  • Priority attribute gone, replaced by a default UDA configuration.
  • Command line lexer bugs fixed, which caused a hang.
  • Urgency improvements for tasks with dependencies, which were repoting bad values.
  • The isnt and not attribute modifiers were mapped to hte wrong operator.
  • Invalid IDs were displayed after a done or delete command.
  • Example export scripts have been updated so they work again.
  • The summary report can now be configured to show old projects, not just current ones.
  • The info report failed to show negative urgency values.
  • Added a new rc.bulk value (0) that is interpreted as infinity.
  • Minor command line parser improvements.
  • Minor command performance improvements.
  • Documentation improvements.
  • Several bug fixes.

New in Taskwarrior 2.4.2 (Mar 16, 2015)

  • TW-41 Tasks in subprojects are not counted in project completion (thanks to Renato Alves).
  • TW-1450 Projects command should trigger running garbage collector (thanks to Tomas Babej).
  • TW-1535 move default listing-break from list to ls (thanks to David Patrick).
  • TW-1545 cc1plus: error: unrecognized command line option '-std=c++11' (thanks to Petteri).
  • TW-1546 column type due.remaining breaks colors on due tasks (thanks to Renato Alves).
  • TW-1547 Recur column is always shown even if no recurring task is displayed (thanks to Renato Alves).
  • TW-1549 task annotate hangs with specific text pattern (thanks to Alexandre de Verteuil).
  • TW-1550 _contexts helper-command (thanks to David Patrick).
  • TW-1551 Unable to get a UDA value from DOM (thanks to Tomas Babej).
  • Eliminated some code that is not UTF8-safe.
  • Removed pthreads linkage.
  • Implemented the context feature.
  • Closed dangling pipes in execute (), resolving problems when a hook script forks (thanks to Jens Erat).
  • Re-enabled hook script feedback when exiting with 0 exit status.
  • The 'info' command now shows virtual tags.
  • Fixed major on-modify hooks regression where hooks could no longer modify the tasks handed to them.
  • 'task _version' now outputs "2.4.2 (git-ref)" when built from git. "2.4.2" when built from release tarballs (thanks to Renato Alves).

New in Taskwarrior 2.4.1 (Feb 17, 2015)

  • TW-1457 Non-existent attributes are not properly handled
  • TW-1484 The 'history' and 'ghistory' reports do not obey rc.color.label.
  • TW-1486 task wait shows completed tasks which has a wait attribute
  • TW-1487 Task export exports some numeric attributes as strings
  • TW-1491 Regression in deleting due dates
  • TW-1492 compiling v2.4.0 using musl(libc)
  • TW-1495 German translation for taskwarrior .
  • TW-1498 Filtering for presence of UDA matches all tasks
  • TW-1501 Calc can't handle multi-digit numbers in some expressions
  • TW-1502 Successful on-add hook with no output confuses TW
  • TW-1504 On-modify hook does not accept correct JSON format
  • TW-1505 completely ignore mis-named hook scripts
  • TW-1509 Hooks modifications performed on sync not sycning back
  • TW-1510 Task can save empty value in the data backlog
  • TW-1517 Hook performance should be measured individually for each hook
  • TW-1518 Misbehaving hooks silently break task processing
  • TW-1519 Testing suite forces taskd.trust="ignore hostname"
  • TW-1522 Date format doesn't like hyphens
  • TW-1524 Build Broken
  • TW-1530 Multiple on-add hooks generating new tasks are ignored
  • TW-1531 'task export' should handle recurrence.
  • TW-1532 Hooks does not execute any script on Cygwin
  • TW-1534 Urgency coefficient for user project disables 'info' output
  • TW-1542 Large numeric UDA values get rendered in scientific notation on export
  • Fixed assorted color theme problems.
  • Changed assorted reports so they do not use '.age' format for dates that are in the future, because those are never shown with this format
  • New 'recurrence' configuration setting can disable recurring task generation.

New in Taskwarrior 2.4.0 (Jan 15, 2015)

  • New localization: Portuguese and Esperanto translations
  • New dateformat space handling
  • New date support: 'february', extensive support for ISO-8601
  • New column formats: description.truncated_count, uda.NAME.indicator, recur.short, tag sorting
  • New color rules: color.uda.NAME.VALUE, color.label.sort, color.until
  • New virtual tags: READY, YESTERDAY, TOMORROW, PENDING, DELETED, COMPLETED, TAGGED
  • New verbosity tokens: new-uuid
  • New command: calc, _zshattributes
  • New theme: dark-gray-blue­256.theme
  • New report feature: listing breaks
  • New Python testing framework for higher-level testing
  • New DOM support: ID.annotation.0.description, ID.due.month ...
  • New Hooks support: on-add, on-modify, on-launch and on-exit event hook support
  • New Regular Expression support enabled by default
  • New algebraic expression support: date math, fuzzy matches
  • Improved command line: handling of quoted and escaped content, partial UUIDs, searching all attributes, projects with spaces
  • Improved utilities: l10n
  • Improved show command: displays default settings
  • Improved information command: urgency calculation details, runs by default when just an ID/UUID is specified
  • Improved diagnostics command: shows environment variables, hooks, indicates configuration errors
  • Improved urgency calculations: inherited urgency via dependencies, UDA participation, affects nag feature
  • Improved documentation: redesigned reference PDF, man pages moved online
  • Improved security: certificate validation, hostname validation
  • Improved report filters
  • Improved front-end support: file locking, confirmation suppression
  • Improved debugging output, sync diagnostics
  • Improved completion scripts: zsh, fish
  • Improved Vim support files
  • Updated holiday files
  • Removed deprecated features: push, pull, merge, old file formats, unused configuration settings
  • Removed the misunderstood 'total active time' feature, replaced by a 3rd party hook script
  • Removed the shadow file feature, replaced by a hook script example

New in Taskwarrior 2.4.0 Beta 1 (Sep 16, 2014)

  • TD-42 Cannot compile taskd - GNUTLS_VERSION undefined in diag.cpp
  • TD-45 Fix preprocessor define
  • TD-55 TLSServer/Client need to include on Solaris. Also applied to NetBSD.
  • TD-56 File.cpp needs to include on Solaris
  • TD-57 taskdctl script assumes /bin/sh is /bin/bash
  • 1255 l10n translation utility improvements
  • 1473 Make TASK_RCDIR customizable
  • 1486 Truncated sentence in task-sync(5) manpage
  • 487 `tasksh` segmentation fault
  • 1492 task show to display default values when appropriate
  • 1501 info report streamlining - partially implemented.
  • 1503 build failure with musl libc due to undefined GLOB_BRACE and GLOB_TILDE
  • 1508 Show command highlight configuration
  • 511 sync init crashes if client certification file is empty or invalid
  • TW-5 color.due.today does not work
  • TW-15 'task recurring' shows only children of recurring tasks
  • TW-21 do not match a UDA if not followed by colon
  • TW-28 Inserts spaces before punctuation characters
  • TW-43 Better error handling than: "Found extra operands."
  • TW-44 Space handling in dateformat
  • - TW-72 extend info report with urgency column.
  • TW-99 info report streamlining.
  • TW-101 New description column format: Truncated WITH annotation count
  • TW-115 allow "0day" durations for UDAs.
  • TW-128 new helper command; _envs.
  • TW-168 modification of due date relative to current due date
  • TW-186 Increase for numerical UDAs
  • TW-193 Support listing breaks.
  • TW-197 New virtual tag READY.
  • TW-218 Reveal terms of urgency calculation for a given task
  • TW-221 Migrate task-faq man page to the Wiki.
  • TW-230 Filter tasks on partial UUIDs (
  • TW-241 new column format; recur.short.
  • TW-242 extra Space when annotating a path/filename, taskopen can not open the file
  • TW-244 task add "Description (Information)" results in "Description ( Information)".
  • TW-248 Substitute text doesn't work with forward slash
  • TW-249 Report filters don't allow parantheses
  • TW-250 Opening parenthesis in description gets padded in task 2.0.0 bet 2
  • TW-251 extra spaces added after
  • TW-252 task done - Doesn't stop task before marking complete
  • TW-253 Unrecognized taskwarrior file format. in /Users/user/Dropbox/.task/completed.data at line 1
  • TW-255 'Mask' instead of 'iMask' shown in info report
  • TW-257 limit: not working properly
  • TW-259 Hyphenated words are split when added
  • TW-261 Easy to create "not deletable" task .
  • TW-262 Attribute modifiers not working within parentheses
  • TW-266 Allow project auto-completion to search completed tasks
  • TW-268 escaped backslashes do not work with "modify"
  • TW-271 Parser still looks for task id even when -- is used.
  • TW-276 Path is wrongly added when using annotate
  • TW-277 Complex filters can skip infix term expansion.
  • TW-278 Cygwin throws warnings building mk_wcwidth() in wcwidth6.c.
  • TW-279 ".monthly" unexpectedly appended to task annotation
  • TW-285 DUETODAY doesn't give any output
  • TW-288 `task edit` mangles descriptions with embedded newlines
  • TW-294 Display UUID of task created by add (thanks to John West).
  • TW-296 urgency of blocked task should affect urgency of blocking task
  • TW-306 Wrong date format in burndown view
  • TW-752 task ID no longer defaults to info.
  • TW-1243 Automatically insert ( ) around user-supplied filter, if any.
  • TW-1254 Calc command can segfault on negative numbers
  • TW-1255 New testing framework (
  • TW-1257 The 'Syncing with :' message ignores verbosity tokens.
  • TW-1258 Portuguese Localization
  • TW-1260 New virtual tags YESTERDAY, TOMORROW.
  • TW-1261 Migrate test bug.360.t to new unit testing framework
  • TW-1263 Command Reference Redesign.
  • TW-1264 Project | Tags assigned ratio of tasks
  • TW-1265 cannot add UDA with underscore
  • TW-1267 If default.project is defined it's not possible to add a task without a project
  • - TW-1273 Words in task descriptions and annotations are cut-off after a hyphen
  • TW-1274 Map 'modification' attribute to 'modified'
  • TW-1278 Next report filters tasks with due date set until due date arrives
  • TW-1282 incorrect URLs in man task-sync
  • TW-1288 Added missing locking for task modifications
  • TW-1293 Modifying or deleting a child task does not propagate if there are no siblings
  • TW-1294 Modifying a child task does not propagate to parent
  • TW-1295 test/time.t fails on the last day of the month
  • TW-1296 make test/run_all exit with non-zero code if a test fail
  • TW-1298 The color 'orange' is not recognized. - taskwarrior will not start anymore
  • TW-1300 _get could use return codes
  • TW-1301 Virtual tag +PENDING
  • TW-1302 CmdShow.cpp:244: bad length in substr ?
  • TW-1304 Minor build and install fix for NetBSD
  • TW-1306 Arguments before 'add' are ignored.
  • TW-1307 burndown is aliased to burndown.weekly
  • TW-1309 memory error, if misconfigured calendar.details.report
  • TW-1316 Some filter expressions require space before closing paren
  • TW-1318 creating a UDA in the wrong sequence will cripple taskwarrior
  • TW-1320 Provide output of malformed row if invalid Taskwarrior file format
  • TW-1321 Unit test view.t fails oddly on Ubuntu 13.10
  • TW-1324 Numeric UDAs are compared as strings
  • TW-1329 Short UUIDs
  • TW-1331 date more than 5 years away is faulty
  • TW-1334 task mod description:"word1 word2" fails to handle space
  • TW-1336 Project attribute does not allow whitespace
  • TW-1341 confirmation config setting should apply to config command as well
  • TW-1345 taskrc.5 manpage errors.
  • TW-1359 "one-two-three" in description triggers Malformed ID error.
  • TW-1360 color.until directive missing.
  • TW-1361 Strange results with complex filter
  • TW-1366 In diagnostics it's called 'Cert', and in config it's called 'certificate'
  • TW-1373 taskrc.vim VIM syntax file updated
  • TW-1377 Tags in default.command are treated as "operator text".
  • TW-1381 blocking report exits with "Unknown error" and exit code 3.
  • TW-1383 Segmentation fault running import-yaml.pl with included example
  • TW-1400 task "" gives a segfault
  • TW-1403 fish shell: no option "modify" after task selection
  • TW-1405 Add command _zshattributes
  • TW-1407 'task calendar 2014' leaks.
  • TW-1409 Allow "1 of N tasks remaining" to be correctly localized
  • Removed deprecated 'echo.command' setting, in favor of the 'header' and 'affected' verbosity tokens.
  • Removed deprecated 'edit.verbose' setting, in favor of the 'edit' verbosity token.
  • Includes utility 'calc' for quick command line calculations using the new expression evaluator.
  • Deprecated '_query' alias.
  • Removed deprecated 'push', 'pull' and 'merge' commands.
  • Removed version 1.x column name support.
  • Removed version 1.x sort column support.
  • Old-style color names including underscores are no longer supported.
  • Removed priority counts from the 'projects' report.
  • New themes: dark-default-16.theme, dark-gray-blue-256.theme
  • Added certificate verification to GnuTLS versions < 2.9.10
  • Added certificate hostname verification
  • Removed debugging code.
  • Added details in debug mode, for unrecognized data
  • Removed unused 'patterns' configuration variable.
  • Regular expressions are now enabled by default.
  • New verbosity token 'filter' shows the complete filter used by the last command.
  • Display debug/release build type in the diagnostics command.
  • Removed obsolete task-faq.5 and task-tutorial.5 man pages.
  • French localization
  • Removed deprecated 'report.X.limit' feature.
  • Improved bash completion when TASKRC is exported.
  • Segfault when 'project:android' is split into 'and' and 'roid'
  • Fixed typo in 'newest' and 'oldest' report definitions
  • The 'diagnostics' command obeys color settings.
  • Support 'allow.empty.filter', defaulting to 'yes', but if 'no' disallows the combination of a write command and an empty filter. Ordinarily this is just a warning that requires confirmation
  • Esperanto localization
  • The 'total active time' information is removed from the 'info' report. This was being misinterpreted as support for time tracking.
  • Removed unused tips files
  • Removed shadow file feature, replacing it with an example hook scripts that performs the same function.
  • Added rc.hooks, a master control setting for hooks processing, which defaults to 'on'.
  • File format 3 (used in version 1.6.0 - 1.7.1) is no longer supported.

New in Taskwarrior 2.3.0 (Jan 16, 2014)

  • New Features:
  • New Taskserver sync capabilities.
  • New shell (tasksh) with Readline support replaces old 'task shell' command.
  • The 'dateformat' settings now default to the ISO-8601 standard of 'Y-M-D'.
  • Italian translation.
  • French translation has begun.
  • UDA fields now allow default values.
  • Now requires libuuid.
  • New virtual tags: WEEK, MONTH, YEAR, PARENT.
  • New 'remaining' format for date columns.
  • New '_get' DOM accessor helper command.
  • New task-sync(5) man page.
  • New commands:
  • New 'sync' command to synchronize data with a Taskserver.
  • New 'tasksh' command which replaces the old 'task shell' with an improved standalone shell, featuring Readline support.
  • New configuration options:
  • 'taskd.server' specifies host:port of the Taskserver.
  • 'taskd.credentials' specifies user credentials for the Taskserver.
  • 'taskd.certificate' specifies the Taskserver certificate for authentication.
  • 'taskd.key' specifies the Taskserver key for encryption.
  • 'taskd.ca' specifies the Taskserver CA.
  • 'taskd.trust' overrides certificate checking.
  • 'taskd.ciphers' overrides default cipher selection.
  • 'debug.tls' shows TLS log information, for debugging.
  • The configuration file supports JSON encoding of unicode characters \uNNNN.
  • Newly deprecated features:
  • File format 2 (used in version 0.9.3 - 1.5.0) is no longer supported.
  • The 'push', 'pull' and 'merge' commands will be removed in version 2.4.0 The new 'sync' command, in conjunction with the Taskserver is the new sync mechanism.
  • The 'diagnostics' command no longer generates 1000 UUIDs as a uniqueness test, because libuuid is now mandatory.
  • Features:
  • #328 Replaced the 'shell' command with a standalone 'tasksh' binary, which includes GNU readline support (thanks to Haitham Gad).
  • #934 support for 'reserved.lines' to accommodate multi-line shell prompts when used in conjunction with 'limit:page' (thanks to Robert Gill).
  • #1226 A new French translation has begun, and will continue to be a work in progress for a while (thanks to YBSA R).
  • #1227 A new 'verify_l10n' utility ensures the localizations are in sync (thanks to Wim Schuermann).
  • #1250 Support out-of-tree test runs (thanks to Jakub Wilk).
  • #1256 Supports default values for UDA fields (thanks to Thomas Sullivan).
  • #1297 The task₋sync(5) man pages is rewritten with examples.
  • #1339 The configuration file now supports JSON encoding of Unicode characters, by specifying \uNNNN.
  • #1385 Need a way to configure the trust of self-signed certificates.
  • #1423 sync vs. push, pull, merge collision avoidance.
  • #1473 Make TASK_RCDIR customizable (thanks to Jakub Wilk).
  • Stores un-synched transactions in /backlog.data.
  • Adds a new 'synchronize' command to sync data with a Taskserver.
  • Adds a new 'initialize' synchronize command argument that uploads all pending tasks for first-time initialization.
  • Adds a new 'sync' verbosity token, which will remind when a backlog builds up and needs a sync.
  • Supports IPv4 and IPv6 server addresses.
  • Began fr-FR localization.
  • Complete it-IT localization.
  • Merged three l10n utility scripts into one tools, scripts/utils/l10n, which will help the translation effort.
  • The 'due' urgency component now uses seconds, not days, in the calculation.
  • The 'debug.tls' configuration variable takes an integer which corresponds to the GnuTLS log level. For debugging.
  • File format 2 (used in version 0.9.3 - 1.5.0) is no longer supported.
  • Migrated column processing code into Task.cpp for future use within each individual column object. Legacy code left in Task.cpp for column objects that are not yet modified.
  • ColPriority.cpp - Migration of column modification code out of Task.cpp and into the individual column object.
  • Now requires libuuid (thanks to Martin Natano).
  • New '_get' is a DOM accessor helper command.
  • New virtual tags (WEEK, MONTH, YEAR, PARENT).
  • Added the 'remaining' format for all date columns.
  • Protects against interrupt during critical DB commit and sync operations.
  • The 'push', 'pull' and 'merge' commands now generate a 'deprecated' message.
  • Rewritten task-sync(5) man page, listing sync options and setup guidelines..
  • Now properly uses the libc version of uuid_create and uuid_to_string for FreeBSD (thanks to Pietro Cerutti).
  • Performance improvements:Optimizes indexing into pending.data for direct task access.Improved I/O performance with better defaults for buffer sizes.
  • Bugs:
  • #1195 Random seed not random enough - removed all random number code (thanks to Jakub Wilk).
  • #1196 Now builds on Hurd (thanks to Jakub Wilk).
  • #1197 Now 'tasksh' recognizes Ctrl-D to exit.
  • #1200 Directory d_type==DT_UNKNOWN is now handled correctly (thanks to Jakub Wilk).
  • #1211 The 'dateformat' settings now default to the ISO-8601 standard of 'Y-M-D' (thanks to Robin Björklin).
  • #1222 The 'summary' report now obeys the 'color.label' setting (thanks to Steve Rader).
  • #1235 The 'shell' command can now start in non-interactive mode without a .taskrc file (thanks to Haitham Gad).
  • #1247 Tests now create a local dir, rather than use the insecure /tmp dir (thanks to Jakub Wilk).
  • #1248 Merge tests no longer connect to takwarrior.org (thank to Jakub Wilk).
  • #1249 Build system now recognizes GNU/Hurd and GNU/kFreeBSD (thanks to Jakub Wilk).
  • #1263 The 'waiting' report properly lists only pending tasks with a wait date (thanks to Fidel Mato).
  • #1268 Edit doesn't accept changes, if task has completed dependency (thanks to Dmitriy Matrosov, Michele Santullo).
  • #1270 The 'undo' command is now properly removing backlog entries.
  • #1273 Query with negative relative date differs greatly from absolute date in past (thanks to John West).
  • #1279 Assorted corrections to the task-ref.pdf document (thanks to Benjamin Weber).
  • #1286 Cannot use "sow", "som", etc in "entry.after", "end.after" filters (thanks to Jake Bell).
  • #1300 Encode/decode pairing is now properly balanced.
  • #1305 Commit hash now available in tarball builds (thanks to Ben Boeckel).
  • #1352 Terminal crashes when using taskwarrior's zsh completion (thanks to Ivan Freitas, XTaran).
  • #1356 Command reference now mentions /from/to/g.
  • #1381 Invalid JSON exported by Task 2.3.0-beta1 (thanks to Kosta H).
  • #1387 ZSH Auto-Completion dates are not current (thanks to Benjamin Weber).
  • #1388 Updated task(1) man pages with import/export script examples (thanks to Benjamin Weber).
  • #1410 Incomplete Date Synonym List in man task (thanks to Benjamin Weber).
  • #1414 Client does not verify SSL certificates (thanks to Scott Kroll).
  • #1415 Client should not require a SSL certificate if the server has a trusted certificate (thanks to Scott Kroll).
  • #1476 Unicode indicators increase column width (thanks to Paul Kishimoto).
  • #1477 Pre-compiled static library (*.a) in source tarball (thanks to Jakub Wilk);
  • #1478 pri_sort.t failure (thanks to Jakub Wilk).
  • #1479 bug_annual.t failure (thanks to Jakub Wilk).
  • Fixed bug so that 'limit:page' now considers footnote messages.
  • Fixed bug where specifying an ID of 0 yielded all completed/deleted tasks (thanks to greenskeleton).
  • Fixed rc.nag documentation (thanks to Jeroen Budts).
  • Fixed bug where task edit incorrectly claimed duration UDA was modified.

New in Taskwarrior 2.1.2 (Sep 20, 2012)

  • Bugs:
  • Bug fix release regarding #1104, which causes duplicate UUIDs during the merge command.
  • Fixed bug where shadow files are not properly created when there is a missing .taskrc file

New in Taskwarrior 2.1.1 (Sep 3, 2012)

  • Fixed bug that caused miplaced commas in JSON export (thanks to greenskeleton).
  • Fixed bug #1036, which prevents 'until' attributes to be modified for
  • non-recurring tasks (thanks to Stéphane Pezennec).

New in Taskwarrior 2.0.0 (Mar 19, 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:
  • 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 Taskwarrior 1.9.4 (Mar 5, 2011)

  • New burndown charts, with completion prediction
  • New change journal on the 'info' command
  • New highlighting for the 'show' command, indicating variance from defaults
  • New gray 256-color theme
  • New 'count' command
  • New dates 'later' and 'someday'
  • New import from a URL
  • New '_query' command exports JSON, for add-ons
  • New add-ons (check taskwarrior.org for add-ons) with new export options
  • New 'cmake' build system (see INSTALL file)
  • New holiday files, all updated

New in Taskwarrior 1.9.3 (Nov 10, 2010)

  • New features:
  • 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 commands:
  • New 'task color legend' command will show samples of all the defined colors and color rules from your .taskrc and theme.
  • New 'task export.yaml' command will export YAML 1.1, which can then be imported via 'task import '.
  • New 'task merge ' command that can merge the local and an undo.data file from another taskwarrior user, to sync across machines, for example.
  • New 'task push ' command to distribute merged changes.
  • New 'task pull ' command to copy data files from a remote location.
  • New 'diagnostics' command to aid bug reporting.
  • New configuration options:
  • journal.time, journal.time.start.annotation, journal.time.stop.annotation ending Saturday/Sunday).
  • Color rule precedence can now be explicitly set with the configuration variable rule.precedence.color. Try "task show rule.pre" to show the default settings.
  • merge.autopush to control whether pushing after merging is automated.
  • merge.*.uri to configure source locations for the merge command (e.g. merge.default.uri).
  • push.*.uri to configure target locations for the push command.
  • pull.*.uri to configure source locations for the pull command.
  • dependency.confirm controls whether dependency chain repair needs to be confirmed.
  • dependency.reminder controls whether the user is nagged about dependency chain violations.
  • Newly deprecated features:
  • entry_time, start_time and end_time are now synonyms for the entry, start and end fields. Recent enhancements to date formatting render these fields obsolete. The 'task show' command warns of the use of these deprecated fields. The synonyms will be removed in a future version of taskwarrior.
  • ChangeLog:
  • Added feature #43, now task supports relative dates like '3wks', '1 month', '4d' for 'due', 'wait' and 'until' dates. Essentially durations are now allowed where dates are expected, and are treated as relative to the current date/time.
  • Added feature #189, that records the start and stop times as an annotation for a task.
  • Added features #244, #272, #273, #274, #275 and #279, which support import and export of YAML 1.1. YAML is now the default export format for task.
  • Added feature #391, now the 'task color legend' command will show samples of all the defined colors and color rules from your .taskrc and theme.
  • Added feature #410, and now task supports dependencies between tasks with the syntax 'task 1 depends:2' to add a dependency, or 'task 1 depends:-2' to remove a dependency.
  • Added feature #421, and now task can sync data files from two sources via the 'merge' command.
  • Added feature #423, now custom report filters allow rc overrides.
  • Added feature #428, preparing the new structure for the NEWS file.
  • Added feature #429, which improves the 'all' report to exclude deleted. tasks, provide a new sort order and include the 'end' column.
  • Added feature #431, which improves feedback after running the 'log' command.
  • Added feature #446, task supports now 'sow', 'som' and 'soy' as dates for 'due', 'wait' and 'until' (thanks to T. Charles Yun). Added as well synonyms soww/eoww plus new socw/eocw for calendar weeks.
  • Fixed bug #467, where recurring tasks were not honoring wait values.
  • Added feature #471, which makes greater use of projects by reporting changes to the completion percentage when it changes.
  • Added feature #478, which uses the colorization rules in the 'info' report.
  • Added feature #481, allowing for user control of the color rule order of precedence via the 'rule.precedence.color' configuration variable.
  • Fixed bug #493, which made waiting, recurring tasks invisible (thanks to Alexander Schremmer).
  • Added feature #499, giving an extra line in the message output when doing bulk done changes (thanks to T. Charles Yun).
  • New 'depends' column for custom reports.
  • New 'blocked' report for showing blocked tasks.
  • New 'unblocked' report for showing tasks that are not blocked.
  • Improved man pages (thanks to Andy Lester).
  • Default .taskrc files are now largely empty, and rely almost completed on default values.
  • Special tags 'nocal', 'nocolor' and 'nonag' are implemented.
  • The 'tags' command highlights special tags.
  • The 'stats' and 'info' reports not obey color.alternate.
  • New fish shell tab completion script (thanks to Mick Koch).
  • Color rules now obey the rc.search.case.sensitive configuration option.
  • The color.keyword.XXX color rule now applies to annotations too.
  • Importing the same YAML twice now generates an error.
  • Two new color themes (thanks to Kathryn Andersen).
  • More localized holiday files for US, CA, SE, DE, FR, UK, ES, NL and NO (thanks to T. Charles Yun, Jostein Berntsen).
  • Added new 'diagnostics' command to help with bug submission, testing.
  • Fixed bug #427, preventing the task edit command to parse annotation dates with spaces.
  • Fixed bug #433, making task command output more consistent.
  • Fixed bug #434, allowing users to complete tasks with status 'waiting'
  • Fixed bug #438, correcting the sorting of the entry_time, start_time and end_time columns (thanks to Michelle Crane).
  • Fixed bug #439, which ignored dateformat.annotation for sparse annotations.
  • Fixed bug #440, which prevented simultaneous append/prepend and substitution.
  • Fixed bug #441, which misparsed '/a/a:/' as an attribute, rather than a substitution (thanks to Michelle Crane).
  • Fixed bug #444, which made task shell unusable after canceling out of an undo command.
  • Fixed bug #445, which caused task to not notice that the command 'h' is ambiguous.
  • Fixed bug #449, so the wait: attribute can be applied to a task at any time, not just on add.
  • Fixed bug #452, which defines a higher resolution division between due and overdue.
  • Fixed bug #459, which showed a confusing message when 'limit:page' was used, with few tasks.
  • Fixed bug #461, in which the filter 'due:today' failed, but 'due.is:today' worked.
  • Fixed bug #466, which gave the wrong error message when a custom report was missing a direction indicator for the sort order.
  • Fixed bug #470, which caused task to not support the color 'none'.
  • Fixed bug #476, so that task now issues a warning when a wait date falls after a due date (thanks to T. Charles Yun).
  • Fixed bug #480, which didn't properly support @ characters in tags. This also now supports $ and #.
  • Fixed bug #489, which caused the filter 'tags.none:' to fail.
  • Fixed bug #494, causing imported text files to ultimately lack uuids (thanks to Elizabeth Maxson).
  • Fixed problem with command line configuration overrides that had no values.
  • Fixed problem with the 'undo' command not observing the rc.color or the rc._forcecolor settings.
  • Fixed problem with extra blank line in the ghistory reports.
  • Fixed a precision problem with average age on the summary report.
  • Clarified the documentation regarding the project name (taskwarrior) and the program name (task).

New in Taskwarrior 1.9.2 (Jul 17, 2010)

  • Added feature #320, so the command "task 123" is interpreted as an implicit "task info 123" command (thanks to John Florian).
  • Added feature #326, allowing tasks to be added in the completed state, by using the 'log' command in place of 'add' (thanks to Cory Donnelly).
  • Added features #36 and #37, providing annual versions of the 'history' and 'ghistory' command as 'history.annual' and 'ghistory.annual'.
  • Added feature #363 supporting iCalendar/vcalendar (RFC-2445, RFC-5545, RFC-5546) export via the 'export.ical' command.
  • Added feature #390, an extra dateformat for annotations (thanks to Cory Donnelly).
  • Added feature #407, a new 'task show' command to display the current configuration settings or just the ones matching a search string. 'task config' is now only used to set new configuration values.
  • Added feature #298, supporting a configurable number of future recurring tasks that are generated.
  • Added feature #412, which allows the 'projects' and 'tags' commands to be list all used projects/tags, not just the ones used in current pending tasks. Controlled by the 'list.all.projects' and 'list.all.tags' configuration variables (thanks to Dirk Deimeke).
  • Added feature #415, which supports displaying just a single page of tasks, by specifying either 'limit:page' to a command, or 'report.xxx.limit:page' in a report specification (thanks to T. Charles Yun).
  • Improvements to the man pages (thanks to T. Charles Yun).
  • Modified the 'next' report to only display one page, by default.
  • Added feature #408, making it possible to delete annotations with the new denotate command and the provided description (thanks to Dirk Deimeke).
  • Added support for more varied durations when specifying recurring tasks, such as '3 mths' or '24 hrs'.
  • The ghistory graph bars can now be colored with 'color.history.add', 'color.history.done' and 'color.history.delete' configuration variables.
  • Added feature #156, so that task supports both a 'side' and 'diff' style of undo.
  • Distribution now includes 7 theme files, for 16- and 256-color terminals.
  • Task now defaults to using the equivalent to the dark-16.theme.
  • Fixed bug #406 so that task now includes command aliases in the _commands helper command used by shell completion scripts.
  • Fixed bug #211 - it was unclear which commands modify a task description.
  • Fixed bug #411, clarifying that the 'projects' command only lists projects for which there are pending tasks (thanks to Dirk Deimeke).
  • Fixed bug #414, that caused filtering on the presence or absence of tags containing Unicode characters to fail (thanks to Michal Josífko).* Fixed bug #416, which caused sorting on a date to fail if the year was not included in the dateformat (thanks to Michelle Crane).
  • Fixed bug #417, which caused sorting on countdown and age fields to be wrong (thanks to Michell Crane).
  • Fixed bug #418, which caused the attribute modifier 'due.before' to fail if the year was not included in the dateformat (thanks to Michelle Crane).* Fixed bug #132, which failed to set a sort order so that active tasks sort higher than inactive tasks, all things being equal.
  • Fixed bug #405, which incorrectly compared dates on tasks created by versions earlier than 1.9.1 to those created by 1.9.1 or later (thanks to Ivo Jimenez).* Fixed bug #420, missing 'ID' from help text (thanks to Ed Neville).
  • Fixed bug that prevented 'task list priority.above:L' from working.
  • Fixed bug that miscalculated terminal width for the ghistory.annual report.
  • Fixed wording (support issue #383) when modifying a recurring task (thanks to T. Charles Yun).

New in Taskwarrior 1.9.1 (May 24, 2010)

  • Summary report bar colors can now be specified with color.summary.bar and color.summary.background configuration variables.
  • The 'edit' command now conveniently fills in the current date for new annotations.
  • Deleting a task no longer clobbers any recorded end date (thanks to Seneca Cunningham).
  • The following holidays are now computed automatically and can be used in the definitions for the calendar holidays: Good Friday (goodfriday), Easter (easter), Easter monday (eastermonday), Ascension (ascension), Pentecost (pentecost). The date is configured with the given keyword.
  • The configure script is more portable (thanks to Emil Sköldberg).
  • Updated task-faq.5 man page.
  • Fixed bug #382 in which the annotate command didn't return an error message when called without an ID.
  • Fixed bug #402 which failed compilation on Arch Linux (thanks to Johannes Schlatow).
  • Fixed bug #401 that ignored the search.case.sensitive configuration setting when filtering on project names (thanks to John Florian).
  • Fixed bug #395 that prevented the upgrade of a pending task to a recurring task (thanks to T. Charles Yun).

New in Taskwarrior 1.9.0 (Feb 23, 2010)

  • Added feature #283 that makes it possible to control the verbosity of the output of annotations.
  • Added feature #254 (#295) which gives task a second date format to be used in the reports with more conversion sequences like weekday name or weeknumber. The date format is set with variable "dateformat.report".
  • Added feature #292 that permits alternate line coloration in reports (thanks to Richard Querin).
  • Added feature #307 that provides vim with syntax highlighting for .taskrc.
  • Added feature #336 which gives task a 'prepend' command for symmetry with the 'append' command.
  • Added feature #341 that makes explicit references to the task and taskrc man pages, both in the auto-generated .taskrc file and the version command output (thanks to Cory Donnelly).
  • The 'delete' command is now aliased to 'rm' (thanks to Ivo Jimenez).
  • Added new attribute modifiers 'word' and 'noword' which find the existence of whole words, or prove the non-existence of whole words. If a task has the description "Pay the bill", then "description.word:the" will match, but "description.word:th" will not. For partial word matches, there is still "description.contains:th".
  • Added new 'config' command to display the configuration settings of task. As a consequence 'version' now only shows the version number and legal information.
  • The 'config' command now complains about use of deprecated color names in your .taskrc file.
  • Added feature #296, that allows the 'config' command to modify your .taskrc settings directly, with the command 'task config ', or 'task config ' to remove the setting.
  • Task now supports nested .taskrc files using the "include /path" directive.
  • The 'entry', 'start' and 'end' columns now have equivalents that include the time, and are called 'entry_time', 'start_time', and 'end_time', for use in custom reports.
  • 2 new columns have been added to the reports: countdown and countdown_compact. They show the days left until a task is due or how many days a task has been overdue.
  • The new 'priority_long' field can be shown in custom reports, and will display 'High' rather than the abbreviated 'H'.
  • Task now supports .taskrc command line overrides using rc.name:value and the new rc.name=value to accommodate a frequent mistake.
  • The color rules for projects (color.project.foo) now matches on partial project names, the same way as filters.
  • The color command now takes a color as an argument, and displays that color with sample text.
  • Added 2 new configuration variables to display the details of tasks with due dates when doing a 'task cal' for the corresponding months: 'calendar.details' and 'calendar.details.report'
  • Added 5 new color configuration variables to colorize today, days with due tasks, days with overdue tasks, weekend days and week numbers in the calendar: 'calendar.color.today', 'color.calendar.due', 'calendar.calendar.overdue', 'color.calendar.weekend'and 'color.calendar.weeknumber'.
  • Added support for holidays in the calendar by using calendar.holidays and the corresponding holiday.X.name and holiday.X.date variables. The default dateformat being YMD (20101224) set by dateformat.holiday.
  • The coloring of due tasks in reports can now be enabled for all tasks, and not only the imminent ones, by setting the configuration variable due=0.
  • Tasks due on the current day ("today") can now have their own color setting color.due.today and color.calendar.due.today.
  • Added a new 'task-faq' man page for common questions and answers.
  • Added a new 'task-color' man page detailing how to set up and use color in task.
  • Added feature #176, which allows for configurable case-sensitivity for keyword searches and substitutions (thanks to John Florian).
  • Task can now use an alternate tag indicator by setting the tag.indicator configuration variable to something other than the default of +.
  • Task can now use an alternate active indicator by setting the active.indicator configuration variable to something other than the default of *.
  • Task can now use an alternate recurrence indicator by setting the recurrence.indicator configuration variable to something other than the default of R.
  • Added a new file, README.build, which provides assistance troubleshooting build-related problems on different operating systems and environments.
  • Fixed bug #316 which caused the timesheet report to display an oddly sorted list.
  • Fixed bug #317 which colored tasks in the 'completed' report according to due dates, which are no longer relevant to a completed task (thanks to Cory Donnelly).
  • Fixed bug #347 which used only a lowercase "all" to confirm multiple changes instead of an uppercase "All" like the "Yes" answer.
  • Fixed bug that was causing the 'completed' report to sort incorrectly.
  • Fixed bug that showed a calendar for the year 2037 when 'task calendar due' was run, and there are no tasks with due dates.
  • Fixed bug #360 which prevented certain modifications to recurring tasks (thanks to John Florian).
  • Fixed bug #299 which prevented excluding multiple projects from a report, by using "task list project.isnt:foo project.isnt:bar" (thanks to John Florian).
  • Fixed bug #368 which caused recurring tasks 'until' dates to be rendered as epoch numbers instead of dates (thanks to Cory Donnelly).
  • Fixed bug #369 which prevented the config command from setting quoted or unquoted multi-word values (thanks to Richard Querin).
  • Fixed bug #370 which prevented the removal of a due date from a task, mis-identifying the task as recurring just because it had a due date (thanks to John Florian).
  • Fixed bug #371 which caused task to mis-apply certain color rules, like color.alternate, which was (a) not applied first, and (b) not blended with the other color rules (thanks to Richard Querin).
  • Fixed bug #372 which incorrectly mapped 16-color backgrounds into the 256-color space.

New in Taskwarrior 1.8.5 (Dec 10, 2009)

  • Added feature to allow the user to quit when asked to confirm multiple changes. Now task asks "Proceed with change? (Yes/no/all/quit)".
  • Added feature #341 that makes explicit references to the task and taskrc man pages, both in the auto-generated .taskrc file and the version command output (thanks to Cory Donnelly).
  • Added feature - #310 that simplified and make clearer an error message that complained about things that were beyond user control (thanks to John Florian).
  • Fixed bug that was causing the 'completed' report to sort incorrectly.
  • Fixed bug #321 where all shell input was converted to lower case (thanks to Juergen Daubert).
  • Fixed bug #327 that allowed the removal of a due date from a recurring task.
  • Fixed bug #317 which colored tasks in the 'completed' report according to due dates, which are no longer relevant to a completed task (thanks to Cory Donnelly).
  • Fixed bug that was causing the 'completed' report to sort incorrectly.
  • Fixed bug #322 which failed to propagate rc overrides to shell commands.
  • Fixed redundant messages when exiting shell mode.
  • Fixed bug #333 which failed to display the ID of a duplicated task (thanks to Cory Donnelly).
  • Fixed bug #332 where task complained that the 'recur_ind' custom report column was invalid. It was misnamed in the documentation, which should have read 'recurrence_indicator'. Also, the 'tag_indicator' column was not mentioned anywhere (thanks to T. Charles Yun).
  • Fixed bug #319 that caused task to not properly detect the removal of a tag when obtaining confirmation from the user fora bulk modification (thanks to Cory Donnelly).

New in Taskwarrior 1.8.4 (Nov 25, 2009)

  • Fixed bug that caused wait: dates to not be properly rendered in a readable and preferred format with the "edit" command.
  • Fixed bug that caused a hang on cygwin, when a task with multiple annotations was edited (thanks to Joe Pulliam).
  • Fixed Bug #312: Applying changes to one task affects another (thanks to Cory Donnelly).
  • Fixed Bug #313: Edit command fails when data.location includes directories containing spaces (thanks to Cory Donnelly)

New in Taskwarrior 1.8.3 (Oct 22, 2009)

  • Task has been ported to Haiku OS.

New in Taskwarrior 1.8.2 (Sep 8, 2009)

  • Fixed Bug #287: Shadow files contain control codes (thanks to Richard Querin).
  • Fixed Bug #288: rc.name:value not propagated for default.command (thanks to Zach Frazier).
  • Fixed Bug #289: Import from todo.sh (thanks to Ben Jackson).
  • Fixed Bug #291: task version generates false output (thanks to thomas@BIC).
  • Implemented Feature #282: Return useful values to the shell (thanks to Pietro Cerutti).