- added a calendar offset that effectively changes the first
month to be displayed in the calendar report (thanks to
Michelle Crane)
- calendar.offset turns the featue off or on
- calendar.offset.value controls the number of month to be
applied for the offset
- Added ability to temporarily suspend GC (rc.gc:0) for a given command, which
helps scriptwriters implement shadow files externally (thanks to Sander
Marechal).
- Fixed bug #542, which sorted the countdown columns incorrectly (thanks to
Michelle Crane).
- Duration could not parse all varieties of it's own output, which is why the
sorting was broken, in particular negative durations and real numbers in
durations (such as (1.2y').
- Sorting in Table::sort_compare for Table::periodAscending and
Table::periodDescending was broken.
- Missing unit tests for countdown_compact.
- Imported Nibbler::getNumber from the Attitash project.
- Additional Duration unit tests.
- Additional Nibbler unit tests.
- Additional countdown.t unit tests.
- Added feature #546, which is a 'count' command that counts tasks, and is
intended to help scripts that manipulate task output.
- Added unit tests.
- Added man page description.
- Completed chart rendering for all three variations.
- Updated assorted documentation.
- Removed most of the obsolete code.
- Not completed:
- find rate calculation/algorithm
- fix rate calculation/algorithm
- completion date algorithm
- Implemented burndown.daily, which is functional, but has outstanding
problems that need to be addressed:
- Slow
- Does not optimize output (i.e. contains /\S\s+$/)
- Needs generalized helper functions to reduce the size of the handler
- Fixed#555 that caused a segfault when 'log' was used with a project,
because the onProjectChange code assumes the files are still open, and
they were not. Checked all other commands for similar problem.
- Added Itay Perl to the AUTHORS file.
- Added unit test.
- Fixed bug #467, where recurring tasks were not honoring wait values.
- Fixed bug #493, which made waiting, recurring tasks invisible (thanks to
Alexander Schremmer).
- Added new 'diagnostics' command to assist with bug reporting,
testing. It answers questions such as "did you compile it yourself?",
and more.
- Specifically, it runs a UUID generation test to prove that the UUIDs
are really unique.
- Imported text was not assigned a uuid.
- Although bug #494 was fixed a month ago, it was never acknowledged in
the issue list. This commit corrects that, and thanks Elizabeth for
reporting this serious issue (thanks to Elizabeth Maxson).
- Completed support for 'task 1 depends:2,-3' to manipulate the
dependencies.
- Now supports rc.dependency.reminder to indicate when to nag about
dependency chain violations, defaulting to on.
- Now supports rc.dependency.confirm to require confirmation before
fixing dependency chains, defaulting to on.
- New source file dependency.cpp which implements a low-level API for
determining dependency status, and assorted handlers for task state
changes.
- Adds blocking tasks to the 'next' report.
- Added more dependency unit tests, changed the wording in a couple of
them and numbered them for easy reference.
- Context::autoFilter was suppressing 'tags' filter terms due to the
+tag/-tag syntax, which we now know only augments attribute modifiers,
and doesn't replace them.
- Fixed bug #461, in which the filter 'due:today' failed, but 'due.is:today'
worked. This is because while iterating over tasks, not every task has a
due date, in which case Date::Date ("") was called, which fails.
- Moved 'wait' up to second position in the Att::type method, for efficiency.
- Added feature #481, allowing for user control of the color rule order
of precedence via the 'rule.precedence.color' configuration variable.
- Color rules now obey the rc.search.case.sensitive configuration option.
- The color.keyword.XXX color rule now applies to annotations too.
- Fixed a precision problem with average age on the summary report.
The problem was that average age is calculated as the sum of all
ages, divided by the count. The sum was already being stored as
a double, to allow for very high values, but was being truncated
to an int before being divided by the count. Classic precision
mishandling.
- Fixed bug #480, which didn't properly support @ characters in tags.
The problem was that the ctype.h ispunct() function considers @,
# and $ to be punctuation, which I don't. An override now allows
these characters in tags, and specificallt '+@context' style tags.
- Added unit tests.