Docs: Updated dev docs

This commit is contained in:
Paul Beckingham 2016-12-18 13:06:16 -05:00
parent 5ec4b5ebc9
commit 77b3ee0561
2 changed files with 26 additions and 22 deletions

View file

@ -125,9 +125,9 @@ Unit Tests Needed
For example, dependencies.t runs through a long list of commands that test
dependencies, but do so by using 'add', 'modify', 'done' and 'delete'.
2. Regression tests that ensure certain bugs are fixed and stay fixed. These
tests are named bug.NNN.t where NNN refers to the bug number. While it is
not worth creating tests for small fixes like typos, it is for changes to
the logic.
tests are named tw-NNNN.t where NNNN refers to the bug number. While it is
not worth creating tests for small fixes like typos, it is for logic
changes.
3. Small feature tests. When small features are added, we would like small,
low-level feature tests named feature.t, with a descriptive name and
focused tests.
@ -143,20 +143,9 @@ Unit Tests Needed
- Take a look at the bug database (https://bug.tasktools.org) and notice that
many issues, open and closed, have the "needsTest" label. These are things
that we would like to see in the test suite, as regression tests.
- Test regex support.
- Need unit tests for each bug in the issue list that is marked with the
'needsTest' label.
Note that all new unit tests should follow the test/template.t standard.
Work in Progress
Things that are currently in flux, which is another way of saying leave it
alone while it is being worked on.
- All columns/Col*::validate methods.
- New columns/Col*::modify methods.
Current Codebase Condition
'master' branch:
@ -167,4 +156,4 @@ Current Codebase Condition
---
2016-02-24 Updated for 2.6.0
2016-12-18 Updated for 2.6.0

View file

@ -28,6 +28,21 @@ Command Line Parsing
calls builds and annotates a parse tree. To help with this, the Lexer is
used to break up strings into tokens.
The object of the command line parsing is to expand all syntactic sugar to
use the low-level syntax, and expand the boolean logic in filters and create
a well-formed algebraic expression. For example, this command line:
task 1-10 +foo lis
is expanded internally to something like this:
task ( ( id >= 1 and id <= 10 ) and tags._hastag_ foo ) list
Note that there are concerns with id ranges, operator precedence, tag
checking, and the expansion of the command name. The arguments are then
tagged to indicate what part of the command line іt represents, such as a
filter, operator, or command.
Dispatch
Dispatch is simple: once the command line is parsed, the command is used to
@ -129,8 +144,8 @@ Sorting
Render
There are two rendering objects, ViewTask and ViewText. These both have the
same tabular grid rendering capabilities. ViewText maintains a 2D vector of
There are two rendering objects, ViewTask and Table. These both have the
same tabular grid rendering capabilities. Table maintains a 2D vector of
strings to contain the data to be rendered, so it is used for things like the
help command output. ViewTask does not copy data, but assumes all data is
stored externally in a vector of Tasks, which minimizes data copying.
@ -149,9 +164,9 @@ Render
Test Suite
A strong and diverse test suite is critical to the successful release of any
software. With the complex command set and its myriad permutations, a test
suite is the only way to ensure quality levels, and guarantee that big changes
are robust.
software. With the complex command set and its many permutations, a test suite
is the only way to ensure quality levels, and guarantee that big changes are
robust.
It is intended that the test suite continues growing, mostly feature tests.
The test are mostly written in Python. Some tests are written in C++ and all
@ -196,7 +211,7 @@ Patches
- Precisely addresses one issue only.
- Doesn't break unit tests.
- Doesn't introduce dependencies.
- Is accompanied by unit tests, where appropriate, written in Python.
- Is accompanied by unit tests, where appropriate.
- Is accompanied by documentation changes, where appropriate.
- Conforms to the prevailing coding standards - in other words, it should
fit right in with the existing code.