2025-01-17 - version 8.1.0
[+] Added new special dates: month names. It is possible to use short (3
letter names and full month names when setting due and other dates. Also
these special dates can be used in expression, e.g 'due:apr+7d'.
Setting a date to a month name effectively sets the date to the first day
of that month. The date is always in the future. So, if you set 'apr' on
the first of April, the date will be first of April in the next year.
2024-11-17 - version 8.0.0
[*] Breaking changes:
- deprecated function `done` (since 7.2.0) is removed. The new function
`done_with_config` is renamed as `done`
- Conf struct reorganization:
* previously separated fields `<name>` and `<name>_action` are grouped
into sub-structs in a form `<name>: { <action>, <value> }`
+ added field `soon_days` for calculating dates like `soon+1d`
+ all date fields (`due` and `threshold`) got extra feature: you can
define a new value not only by setting an exact date, but by setting
an expression that is calculated for each task. It makes easier to,
e.g, push all due dates by a week by passing expression `due+1w`
[+] Added a lot of functions to deal with human-readable date expressions like
`due+1w` or `today+1m`
2024-08-24 - version 7.2.2
[*] Update dependencies. Switch to 'thiserror' v2 from v1. Clippy fixes.
2024-08-24 - version 7.2.1
[*] Remove certain tags from a new task that is cloned from a completed
recurrent one. At this moment, the list of removed tags is short:
"tmr:" and "spent:".
2024-07-16 - version 7.2.0
[*] Add new API to complete tasks. The new API allows setting completion date
regardless of creation date presence. The new is `done_with_config`. The
old API `done` is still available but marked deprecated.
2024-02-14 - version 7.1.0
[*] Introduce new recurrency range: business days. Use 'b' to define the
number of days in the 'rec' tag. Example: 'rec:7b'.
At this moment, it skips only Saturdays and Sundays when calculating
the next day.
2023-08-31 - version 7.0.1
[*] It was not possible to use custom CompletionMode when call `done` and
`undone` in todo.rs
2023-08-30 - version 7.0.0
[!] Improve compatibility with todotxt rules:
Now task `complete` and `uncomplete` require an extra argument `CompletionMode`.
todo_lib::Conf got new field for the completion mode: `completion_mode`.
Details: https://github.com/todotxt/todo.txt#complete-tasks-2-format-rules
2023-08-21 - version 6.1.3
[*] Fix filtering any date field by a range when one end of the range is
'none'. The bug resulted in that, e.g., '--due none' and
'--due today..none' displayed the same output which included only tasks
that do not have due date set
2023-05-07 - version 6.1.2
[+] Remove a few debug println calls
2023-01-31 - version 6.1.1
[+] Fix building using 32-bit compilers
2023-01-29 - version 6.1.0
[+] Empty todos are skipped by default. To show them, use `--all` flag
2022-12-21 - version 6.0.0
[+] Add API to edit any tag in the subject. Standard tags are ignored
by the new API, use the existing specific functions to change due
date, threshold, and recurrence
[+] Add API for hashtags: add, remove, edit, filter
2022-08-30 - version 5.1.1
[*] Set creation date to today for new todo created for a recurrent task if
the original todo has creation date
[*] TodoStatus::All did not show todos with threshold later than today's date
2022-07-24 - version 5.1.0
[*] Fix updating recurrence for a normal todo item
2022-06-12 - version 5.0.0
[*] Replace 'failure' crate with 'thiserror' one
[*] Clippy fixes
2021-10-17 - version 4.0.0
[+] Threshold date also move forward like due dates when a todo is done
[*] Instead of modifying an existing todo with recurrence, "done" marks the
current todo completed and creates a new unfinished one with changed
due and threshold dates.
If a todo contains only recurrence but no due and threshold dates, the
todo is marked comleted and no new todo is created.
2021-10-14 - version 3.0.2
[*] When passing list of task IDs, the first task was always ignored
2021-10-13 - version 3.0.1
[*] Fix regression: filter "due=none..4d" did not show tasks with empty due
dates
2021-09-30 - version 3.0.0
[+] Implement exclude filter for projects, contexts, and tags
Breaking change: filter struct changed
2021-09-25 - version 2.1.1
[*] Ranges with "none" are inclusive now - as it was stated in docs.
2021-09-25 - version 2.1.0
[+] Threshold in filter is range [..today] by default. It makes all tasks with
threshold after today hidden.
2021-02-02 - version 2.0.0
[!] The todotxt low-level library is replaced with a new one
[*] Names of projects and contexts are case-sensitive now
[+] Tag order in todo's subject is preserved
[*] Completing todos with recurrence and threshold date does not change
threshold date
[+] Todo completion now follows strict flag of todo's recurrence. Depending on
the flag, the next due date is either calculated from previous due date or
from the current date
[*] Every tag must have a non-empty value. Changing tag's value to an empty
string removes the tag.
[*] if a todo is incomplete and has two dates in the beginning, only the first
date is parsed as a creation date. The second date becomes part of a subject
2020-12-27 - version 1.0.0
[+] New option to filter by 'tag'
2020-12-25 - version 0.5.2
[*] Make filter rules for threshold the same as for other date fields
2020-08-08 - version 0.5.1
[+] Support for 'none' in ranges: if one end of a range is 'none', the range
becomes an open range that combines two lists: todo with empty data and
todos that are in the open range.
Example: `--due=none..tomorrow` shows all todos that are overdue, due
today and tomorrow, and that does not have due date.
2020-07-25 - version 0.5.0
Breaking changes:
[+] Struct `tfilter::Due` is renamed to `tfilter::DateRange` as now todo_lib
supports filtering not only by due date, but by creation and finish dates
[*] Filter for due date did not support `Greater` condition
[+] Todos can be filtered by their creation and finish dates
2020-07-23 - version 0.4.0
[*] When a recurrent todo is done, its new due date is always set in the
future. If the todo has a treshold, it is corrected accordingly
2019-01-19 - version 0.3.2
[*] Allow to use '=' when setting sort order: '-s=pri' works the same as
'-s pri' and '--sort=pri'
2019-01-19 - version 0.3.0
[+] Timer support: start, stop timer for a todo, and related functions
[*] Marking a todo completed stops todo's timer if it is active
2019-01-04 - version 0.2.3
[+] New range for ID selection: List = list of IDs
2019-01-04 - version 0.2.2
[+] New option in config: `creation_date_auto` - automatically adds creation
date to a new todo if it does not have it in its subject
[+] New command line argument `--done` to load archived todos
2018-12-29 - version 0.2.0
[!] First release