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 `` and `_action` are grouped into sub-structs in a form `: { , }` + 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