New Features in Taskwarrior 2.6.0

  - The logic behind new-uuid verbosity option changed. New-uuid now overrides
    new-id if set and will cause Taskwarrior to display UUIDs instead of IDs
    for new tasks (machine friendly).
  - If ~/.taskrc is not found, Taskwarrior will look for its configuration in
    $XDG_CONFIG_HOME/task/taskrc (defaulting to ~/.config/task/taskrc). This
    allows users to setup their Taskwarrior to follow XDG standard without
    using config overrides.
  - Newer Unicode characters, such as emojis are correctly handled and displayed.
    Taskwarrior now supports all Unicode characters up to Unicode 12.
  - Datetime values until year 9999 are now supported.
    Duration values of up to 1 000 000 years are now supported.
  - 64-bit numeric values (up to 9,223,372,036,854,775,807) are now supported.
  - Later/someday named datetime values now resolve to 9999-12-30 (instead of
    2038-01-18).
  - Calendar now supports displaying due dates until year 9999.
  - Calendar now displays waiting tasks with due dates on the calendar.
  - Calendar supports highlighting days with scheduled tasks.
  - Multi-day holidays are now supported.
  - Holiday data files for fr-CA, hu-HU, pt-BR, sk-SK and sv-FI locales are now
    generated and shipped with Taskwarrior.
  - The task edit command can now handle multi-line annotations and UDAs in a
    user friendly way, withouth having to handle with JSON escaping of special
    chars.
  - A large portion of currently known parser-related issues was fixed.
  - The taskrc file now supports relative paths, which are evaluated with
    respect to (a) current directory, (b) taskrc directory and (c) now also the
    installation directory of configuration files.
  - The currently selected context is now applied for "task add" and "task log"
    commands. Section on contexts in the manpage was updated to describe this
    functionality.
  - Users can specify per-context specific overrides of configuration variables.
  - The `task import` command can now accept annotations with missing entry
    values. Current time will be assumed.
  - The new 'by' filter attribute modifier compares using '<=' rather than '<'
    as 'before' uses.  This allows the last second of the day to match with
    'due.by:eod', which it would not otherwise.  It also works with
    whole units like days, e.g. 'add test due:2021-07-17' would not match
    'due.before:tomorrow' (on the 16th), but would match 'due.by:tomorrow'.
  - Waiting is now an entirely "virtual" concept, based on a task's
    'wait' property and the current time. Task is considered "waiting" if its
    wait attribute is in the future. TaskWarrior no longer explicitly
    "unwaits" a task (the wait attribute is not removed once its value is in
    the past), so the "unwait' verbosity token is no longer available.
    This allows for filtering for tasks that were waiting in the past
    intervals, but are not waiting anymore.
  - The configuration file now supports environment variables.
  - Taskwarrior can now handle displaying tasks in windows with limited width,
    even if columns contain long strings (like URLs).
  - The nag message is emitted at most once per task command, even with bulk
    operations. Additionally, the urgency of the task considered is taken
    before the completion, not after.
  - The export command now takes an optional argument that references an
    existing report. As such, "task export <report>" command will export
    the same tasks that "task <report>" prints, and in the same order.
  - The burndown command now supports non-cumulative display, where tasks only
    get plotted within the interval segment when they got completed.


New Commands in Taskwarrior 2.6.0

  - The 'news' command will guide the user through important release notes
    anytime a new version of Taskwarrior is installed. It provides personalized
    feedback, deprecation warnings and usage advice, where applicable.

New Configuration Options in Taskwarrior 2.6.0

  - The context definitions for reporting commmands are now stored in
    "context.<name>.read". Context definitions for write commands are now
    supported using "context.<name>.write" configuration variable.
  - The context-specific configuration overrides are now supported. Use
    context.<name>.rc.<key>=<value> to override, such as
    context.work.rc.urgency.blocking=5.0 to override the value of urgency.blocking
    when the 'work' context is active.
  - Each report (and the timesheet command) can explicitly opt-out from the
    currently active context by setting the report.<name>.context variable to 0
    (defaults to 1). Useful for defining universal reports that ignore
    currently set context, such as 'inbox' report for GTD methodology.
  - Multi-day holidays are now supported. Use holiday.<name>.start=<date> and
    holiday.<name>.end=<date> to specify a range-based holiday, such as a
    vacation.
  - Verbosity token 'default' was introduced in order to display information
    about default actions.
  - The new burndown.cumulative option can be used to toggle between
    non-cumulative and cumulative version of the burndown command.
  - The new color.calendar.scheduled setting can be used to control the
    highlighting color of days in the calendar that have scheduled tasks.


Newly Deprecated Features in Taskwarrior 2.6.0

  - The 'PARENT' and 'CHILD' virtual tags are replaced by 'TEMPLATE' and 'INSTANCE'.
  - The 'waiting' status is now deprecated. We recommend using +WAITING virtual tag
    or wait-attribute based filters, such as 'wait.before:eow' instead.
  - The configuration variable 'monthsperline' is deprecated. Please use
    'calendar.monthsperline' instead.

Fixed regressions in 2.6.0

  - The "end of <date>" named dates ('eod', 'eow', ...) were pointing to the
    first second of the next day, instead of last second of the referenced
    interval. This was a regression introduced in 2.5.2.
  - The "eow" and "eonw" were using a different weekday as a reference. This
    was a regeression introduced in 2.5.2.
  - The rc.verbose=<value> configuration override was applied only if it were
    the first configuration override. In #2247, this manifested itself as
    inability to supress footnotes about the overrides, and in #1953 as failure
    to force task to display UUIDs of on task add. This was a regression
    introduced in 2.5.2.
  - The attribute values of the form "<attribute name>-<arbitrary string>", for
    example "due-nextweek" or "scheduled-work" would fail to parse (see
    #1913). This was a regression introduced in 2.5.1.
  - The capitalized versions of named dates (such as Monday, February or
    Tomorrow) are again supported. This was a regression introduced in 2.5.2.
  - The duration periods are converted to datetime values using the
    current time as the anchor, as opposed to the beginning of unix time.
    This was a regression in 2.5.2.
  - Filtering for attribute values containing dashes and numbers (such as
    'vs.2021-01', see #2392) or spaces (such as "Home renovation", see #2388)
    is again supported. This was a regression introduced in 2.4.0.

Removed Features in 2.6.0

  -

Other notable changes in 2.6.0

  - C++17 compatible compiler is now required (GCC 7.1 or older / clang 5.0 or older).

Known Issues

  - https://github.com/GothenburgBitFactory/taskwarrior

Taskwarrior 2.6.0 has been built and tested on the following configurations:

  * Archlinux
  * OpenSUSE
  * macOS 10.15
  * Fedora (31, 32, 33, 34)
  * Ubuntu (18.04, 20.04, 21.04)
  * Debian (Stable, Testing)
  * CentOS (7, 8)

However, we expect Taskwarrior to work on other platforms as well.

---

While Taskwarrior has undergone testing, bugs are sure to remain.  If you
encounter a bug, please enter a new issue at:

  https://github.com/GothenburgBitFactory/taskwarrior
