gothenburgbitfactory / taskwarrior Goto Github PK
View Code? Open in Web Editor NEWTaskwarrior - Command line Task Management
Home Page: https://taskwarrior.org
License: MIT License
Taskwarrior - Command line Task Management
Home Page: https://taskwarrior.org
License: MIT License
David Patrick on 2011-01-04T15:34:26Z says:
Not to be confused with taskd, dtask (or devtask) would be an iteration of taskwarrior that worked in a very directory-specific way, starting with pwd and walking all the way down the directory branches, collecting pending.data files. Unless directed otherwise, newly created tasks would be created in a pending.data file in the pwd, newly created, if necessary.
The mode is very much a tip-of-the-hat towards devtodo (http://swapoff.org/DevTodo) yet another task manager, but more targetted towards sysadmins and software developers. The directory-centric behavior allows task to be directly connected, located amongst, the source-files and settings. If your work is around these things, it can help you focus on specific parts of it merely by cd ing to the directory in question before issuing the query.
I would suggest a new executable name (while invoking the same code) as the behaviors and work modes of task vs. dtask would be quite different.
(not my idea, or even new, just remembered hearing it in discussion)
NOTE: this function now available as an External Script at http://taskwarrior.org/projects/taskwarrior/wiki/ExternalScripts#local-tasksh and so status:closed
Benjamin Weber on 2012-12-19T15:07:21Z says:
Geo fencing uses the proximity to the location where you are to let you know which actions can only be done in this context.
It is in dev for the app Things (Mac).
According to GTD "four-criteria model for choosing actions in the moment" (cf. [1]) context is much more important than priority. Following this, why tw offers a property for prio with an extensive algorithm - which in fact makes only sense from the user's perspective if she knows how it works - and not a property of context.
Yes, the tagging would work for basic geo fencing. But real geofencing should deploy the device's locating capabilites (cf. [2]).
I am thinking of a command (at)here@ which tells me what to do in a range up to 3 km, ordered by proximity.
[1] http://pespmc1.vub.ac.be/Papers/GTD-cognition.pdf
[2] http://apple.stackexchange.com/questions/60152/is-there-a-way-to-access-a-macs-geolocation-from-terminal
David Patrick on 2011-05-04T14:06:01Z says:
A new mode for new taskwarrior users.
Just as vim has vimtutor, task should have a mode where new users can quickly learn the fundamentals, both of taskwarrior and of task-list management best-practices.
It should use a disposable sandbox rc and data set, and scripted action that walks the user through task usage step-by-step.
If arranged in sub-sections, users could go directly to that section in order to brush up on how it works. eg.
% tasktutor colors
David Patrick on 2009-07-07T01:22:15Z says:
with full set of contact related attributes, contact related interactive display, mixed task/ contact listings and a "contact" alias for the CLI.
see: [[contacts]]
David Patrick on 2012-09-01T00:57:57Z says:
This is an iteration of taskwarrior that interfaces with the cron sub-system of a *nix computer.
From Wikipedia (http://en.wikipedia.org/wiki/Cron) cron is the time-based job scheduler in Unix-like computer operating systems. cron enables users to schedule jobs (commands or shell scripts) to run periodically at certain times or dates.
there is actually surprising crossover between a task, and a cron event, although cron uses far fewer fields.
Interfacing with cron events, the crontab file, and understanding what's going to happen when, is an interesting exercise requiring precise syntax and this feature seeks to make managing cron events as easy as using taskwarrior.
twcron would use cron-related system files as data files, would present cron, anacron, at and batch jobs as tasks, with the ability to perform complex queries, create custom reports and make modifications to cron events, just like taskwarrior tasks, but with a limited set of parameters, and within the constraints of those events.
Having twcron interface the cron sub-system would make it easier to understand and control *nix system events, and it introduces the possibility of "regular" taskwarrior triggering or being triggered by system events.
A most interesting question would be: how might this interface with libtaskd ?
http://tasktools.org/projects/taskd.html
David Patrick on 2009-06-22T12:00:12Z says:
the journal is a cross between a personal diary and a human readable task history file that users can add to and modify. Unlike the other .data files, the journal should have a .txt suffix (to enable more universal edit access) but the header can contain the clues for vim syntax.
date separators should be generated, but only for time periods with activity (eg. only one day break per day, and only for days that have an entry, same applies to weeks or months) because of these breaks, automatically generated items will not need to contain this info.
Automatically generated entries (like tasks completed, deleted etc) should be grouped, compact and properly syntax-highlighted and also support syntax-based folding)
Each entry type should contain a searchable element, except for user generated free-form content.
Paul Beckingham on 2012-07-22T03:53:31Z says:
Now that UDAs are here, it is possible to define a new date, called 'review'. Then an external script could run through all the pending tasks, updating 'review' as it goes. Perhaps it would call (at)task < IDs > edit@.
This issue is a placeholder for a discussion about how this should be done.
In recent discussions.. mostly between me and me.. and Paul, the whole post-2.x landscape is coming into focus.
A lot of work went into taskwarrior to give it capabilities to do cool stuff,
now it's time to do cool stuff.
I'm going to use the "review process" to illustrate how a number of features-in-development might/can/will be used to review. In the process I hope to illustrate how a few of these future-features will work in concert. There are (positive) usage implications from all angles, good stuff coming down the pipe.
To start with, let's set aside the old term "review script" in favour of the term "review process", this because the action of this-thing-after-that-thing will be easily accomplished with (upcoming?) new internal functions and behaviours, specifically (# ) command separators "++". The "internal pipe" that will allow the construction of complex sequences, including random shell execution calls. The ability to "chain" arbitrary, complex task queries interspersed with arbitrary shell commands (mostly echo and cat) obviates the need for an external review "script" in python or perl or anything else. Layer-after-layer of abstraction, a "review", a complex report, and most other things boil down to a "simple" alias call, like review-week-by-project.
The heavy-lifting of the interactivity will be carried by a combination of task ask (#1079) %variables (#1073) and VIRTUALS, (http://taskwarrior.org/boards/6/topics/2414) which will jump onto centre stage as everybodys favourite way to do everything.
The following stack is worthy of a flow-chart, and I will make one when I can, but with it I will try to indicate the levels of abstraction and the degrees of subtlety available to us, in creating a review. Perhaps amusingly, this description will not include the full GTD-specific ramifications, that's a subsequent layer ;-)
so a typical task review process (and most other complex functions) might consist of
* full set of core attributes * unlimited User Defined Attributes * rich set of attribute modifiers (attmods) * full use of regex logic If AND OR GALORE (available at every (?) following step) wrapped in Complex strings of VIRTUALS; vfilters, vconfigs and vmods, condensing arbitrary-length conditional logic statements and complex modification-sets into a set of deceptively simple, modal terms like +DUE, +HOME and +READY. wrapped in arbitrary-length compound-command strings delimited by "++", allowing any number of task commands and/or shell-calls (echo and cat, etc) to be issued sequentially, accumulating the output into a final result. wrapped in command aliases that take the hairiest of that, and calls it by something logical and easy to remember, like *review-goals*
and you have a stack of layers of abstraction limited only by your imagination.
The stack above is by no means the only way these features could be combined, and in every-day use, different features will be combined at different layers, but this is sort of the conceptual stack I would suggest for us to design complex features around.
... in progress
Github shows this list which it builds from tags:
https://github.com/GothenburgBitFactory/taskwarrior/releases
With some effort, and unknown benefits, we could adorn this list with other content.
Example of what could be done:
https://github.com/docker/compose/releases
Decide if this is something we want.
Suggested by: jrabbit
David Patrick on 2009-07-14T00:05:40Z says:
if I type
task add
I get an error message "Cannot add a task that is blank, or contains or characters."
Considering the stealthy new shell mode, wouldn't it be swell if what actually happened was that task went into "shell add" mode.
task add>
so that I could just type
make pizza +na
mow lawn du:weekend
bay bills pri:h
get a haircut +grooming
until I tire of rapid-fire data entry, and type "quit"
the shell command could be extended to include other commands such as
task shell ls
task ls> - in this mode, just hit enter to see the output of "task ls"
and anything typed in is used as filter upon hitting , allowing a rapid series of filtered lists with almost no syntax construction. just
or, to restrict the focus to just one project, for example;
task shell long proj:foo
Enter filter string
Use "quit" or ctrl-c to leave shell mode
task long project:foo>
or if you have a lot of appending to do;
task append
(which could, depending on user preference, trigger auto-shell, due to absence of required attributes)
resulting in;
Enter ID and text to append
Use "quit" to leave shell mode
task append>
or when working up a longish list of closely related tasks, this is rapid-fire entry mode;
task shell add due:07/21/2010 wait:06/21/2010 proj:camping +gear pre:pack
Use "quit" to leave shell mode
task add project:camping +gear due:07/21/2010 wait:06/21.2010 pack>
so that you can just type
tent [enter] sleeping bags [enter] stove [enter] food [enter] bug stuff [enter] tools [enter] radio [enter]
and a
pack tent due:07/21/2010 wait:06/21.2010 project:camping +gear
will be created for each item
this will save more keystrokes than ANYTHING!
This behavior should be considered as (optional) default whenever a command that expects attributes, doesn't get them. It brings the CLI behavior closer to planned interactive usage, too.
David Patrick on 2012-02-08T00:51:21Z says:
This is an enhancement to your every-day *nix shell prompt, that should be called the you-can-run-but-you-can-not-hide add-on.
We all like to customise our shell prompts a bit, maybe editing .bashrc with the date and full directories and such, we'll I think it would be fun and effective to have taskwarrior integrated into my command prompt!
That's right, every time I start a new shell I think it would be good to add a line with
[tiny tw logo] (like task logo, but much smaller) and the SINGLE HIGHEST URGENCY TASK
djp(at)lemur ~ $
maybe full details, maybe just the description.
It would not only re-enforce the most urgent thing on my list, but will more frequently remind me to review my taskwarrior list.
So if you like playing with that sort of thing, please figure this out and tell us how :-)
I have task warrior client running on machines A, B and C, and one task server running on client B.
A is my personal laptop,
B is a raspberry pi running 24/7
C is my android phone with taskwarrior app (from google playstore).
When I first setup the clients A and B, I (mistakenly) ran command task sync init
on both client A and B (I should have run only on client A). I followed pbeckingham irc recommendations (2018/01/31 at 3:54PM):
- backup the data on all clients
- delete tx.data on the server
- from client A, run "task sync init"
- from client B, delete ~/.task/*.data - this is safe because you made a backup
- from client B run 'task sync'
- repeat steps 4 and 5 for client C
end
At this point I could run on client A task blocking
or task blocked
and see blocking and blocked tasks. But on client B the dependency is not reported correctly and no tasks were reported blocked or blocking.
On client C (android app) I did not use it that much to look at blocking/blocked tasks, I can see the various tasks
here are the outputs of task diag
on client A and B.
client A: task diag
task 2.5.0
Platform: Linux
Compiler
Version: 5.3.1 20160216
Caps: +stdc +stdc_hosted +LP64 +c8 +i32 +l64 +vp64 +time_t64
Compliance: C++11
Build Features
CMake: 3.2.2
libuuid: libuuid + uuid_unparse_lower
libgnutls: 3.4.9
Build type: None
Configuration
File: /home/nicolas/.taskrc (found), 1673 bytes, mode 100664
Data: /home/nicolas/.task (found), dir, mode 40775
Locking: Enabled
GC: Enabled
Server: 192.168.0.34:53589
CA: /home/nicolas/.task/ca.cert.pem, readable, 3557 bytes
Trust: ignore hostname
Certificate: /home/nicolas/.task/nicolas.cert.pem, readable, 3553 bytes
Key: /home/nicolas/.task/nicolas.key.pem, readable, 25303 bytes
Ciphers: NORMAL
Creds: juco/Nicolas VINCENT/************************************
Hooks
Scripts: Enabled
(-none-)
Tests
$TERM: xterm (275x73)
Dups: Scanned 16 tasks for duplicate UUIDs:
No duplicates found
client B: task diag
task 2.5.1
Platform: Linux
Compiler
Version: 6.3.0 20170205
Caps: +stdc +stdc_hosted +c8 +i32 +l32 +vp32 +time_t32
Compliance: C++11
Build Features
CMake: 3.7.2
libuuid: libuuid + uuid_unparse_lower
libgnutls: 3.5.8
Build type: None
Configuration
File: /home/pi/.taskrc (found), 1658 bytes, mode 100644
Data: /home/pi/.task (found), dir, mode 40755
Locking: Enabled
GC: Enabled
Server: 192.168.0.34:53589
CA: /home/pi/.task/ca.cert.pem, readable, 3557 bytes
Trust: ignore hostname
Certificate: /home/pi/.task/nicolas.cert.pem, readable, 3553 bytes
Key: /home/pi/.task/nicolas.key.pem, readable, 25303 bytes
Ciphers: NORMAL
Creds: juco/Nicolas VINCENT/************************************
Hooks
System: Enabled
Location: /home/pi/.task/hooks
(-none-)
Tests
$TERM: screen (322x76)
Dups: Scanned 10 tasks for duplicate UUIDs:
No duplicates found
Broken ref: Scanned 10 tasks for broken references:
Task 28b2162b-2bf7-479e-897d-6604189bcc7f depends on nonexistent task: ["44d2cb0c-e13f-45af-a36b-c755e7971f6c"]
Task d2a336c9-c552-46b4-86ee-f157fc7c1e1d depends on nonexistent task: ["0fd6d085-30d7-48cb-8f13-af49bde0c339"
Task d2a336c9-c552-46b4-86ee-f157fc7c1e1d depends on nonexistent task: "28b2162b-2bf7-479e-897d-6604189bcc7f"]
Task 7eb701c6-5f50-4ec5-bb99-ed46de5d946f depends on nonexistent task: ["1e7348f1-de46-4c04-9688-4fdd41b7ea3d"
Task 7eb701c6-5f50-4ec5-bb99-ed46de5d946f depends on nonexistent task: "ec578082-7d09-4e32-b179-0617c2fa3847"]
Task cb0f8c6a-4cc8-4b97-b262-e5821eb0fd08 depends on nonexistent task: ["88ee008a-1fd9-487c-a805-084ed0cf7de9"]
I looked at pending.data on client A and B, and on client B I have some weird escaping stuff:
...
[depends:"&open;\"44d2cb0c-e13f-45af-a36b-c755e7971f6c\"&close;" description:"migrate git repos from cubalibre to gitolite" entry:"1516804643" modified:"1516804643" project:"IT" status:"pending" uuid:"28b2162b-2bf7-479e-897d-6604189bcc7f"]
...
where on client A I don't have them:
...
[depends:"44d2cb0c-e13f-45af-a36b-c755e7971f6c" description:"migrate git repos from cubalibre to gitolite" entry:"1516804643" modified:"1516804643" project:"IT" status:"pending" uuid:"28b2162b-2bf7-479e-897d-6604189bcc7f"]
...
David Patrick on 2012-09-07T17:38:11Z says:
The _characters helper command follows the behaviour of the other helper-commands, and produces a very long output of every available character, including extended characters, as displayable by your current console font-set.
The long (grep-able) list is of
characterA = code = key-combination (if any)
characterB = code = key-combination (if any)
so that extended characters could be adopted for regular use.
This feature could be made even more useful if those characters that were of special meaning to your $DEFAULT-SHELL were highlighted, so that you could be confident that the characters you choose for your indicators, tags and shell-scripts, won't conflict with the shell on your system, whatever that is.
David Patrick on 2011-01-01T16:41:45Z says:
Is taskwarrior a GTD-centric app ? Can it be used with Steven Coveys "Seven Habits" ? or deBonos "lateral thinking" ?
Can taskwarrior be used in a strict Work Breakdown structure ? or as a full-on software development, bug-tracking environment ?
The answer should be "yes"
and with upcoming User-defined attributes, and scriptability galore, taskwarriors ability to take on a new mode of task management, should be made as easy as pie.
If the core of taskwarrior was method agnostic, catering to the simplest task-list-making users with no methodology other than keeping really good lists.
GTD ? that's a methodology add-on. a gtd.method.conf file that defines new attributes, reserves a set of special-tags, defines a new set of reports, extends the urgency algorithm, adds color-rules, Review scripts, has included chatty verbosity elements, if(condition)then(action) rules, all as normal .rc settings in an !included file. Then taskwarrior will be "GTD compliant", but there's nothing stopping you from also including the software_developer.method.conf file too. etc.
David Patrick on 2009-07-15T14:31:45Z says:
Straight-on task-doing, starting with the most important/urget things first, is what taskwarrior is about, along with the massive stress reduction that comes from knowing you're not forgetting anything, HOWEVER, if all of your focus is at the top of your lists, then it's still possible for some tasks (those with no date, or project, or tags etc.) to slip through the cracks.
The review script will take the user through a comprehensive set of house-cleaning actions, from looking for stragglers, to identifying problem tasks, to repair of broken tasks.
see: [[review]]
"Forums » development & feature ideas » GTD Review":http://taskwarrior.org/boards/6/topics/show/1085
"Forums » development & feature ideas » Implement task review":http://taskwarrior.org/boards/6/topics/2021
"task_review-1.0, First release of task-review script by Nikola Petrov":http://code.google.com/p/taskwarrior-utils/downloads/list (needs updating for 2.0 syntax)
Peter De Poorter on 2011-01-30T03:58:02Z says:
Definition: a task repository is a predefined task list. Goal: to be able to re-use task lists: * for repeating activities * from other users Allows very fast task building based on previous experiences Everyone can create a task repository Usage examples * a task repository for documenting all tasks that are required to install ubuntu. This can be used as base for every user that's installing a new ubuntu version * a task repository for documenting all tasks that are required to build a new house * an ICT company with different technology departments. Each department maintains his task repository. * a task repository for storing all the tasks required for releasing taskwarrior :-) A project is build by copying specific tasks from the different task repositories task create repos: task repos shows the available repositories task switch repos: switch to repos . x becomes the active task repository on which all the known task commands can be used task list repos: list all the tasks in the repository task copy repos: proj: copies the proj: tasks from repos: to the active repository task upload repos: uploads the repository to a place (on the internet) a central place on the internet could be used for the storage of all task repositories task download repos: task connect repos: task disconnect repos:
David Patrick on 2011-01-04T12:52:10Z says:
A suggested rc setting that allows included holidays to appear with the "general population" in any report.
options; full sparse or none
David Patrick on 2009-05-29T19:39:35Z says:
events and contacts
Paul Beckingham on 2009-05-25T21:35:41Z says:
Support random command to display a random task. Like pulling a task out of a hat.
David J. Patrick
I expected that the task would be marked as completed as well as that the new instances of recurring task are created.
The task's status changed to completed
and no new instances were created.
task diag
command.$ task diag
task 2.5.1
Platform: Linux
Compiler
Version: 7.1.1 20170718 (Red Hat 7.1.1-6)
Caps: +stdc +stdc_hosted +LP64 +c8 +i32 +l64 +vp64 +time_t64
Compliance: C++11
Build Features
Built: Aug 5 2017 00:01:30
CMake: 3.9.0
libuuid: libuuid + uuid_unparse_lower
libgnutls: 3.5.14
Build type:
Configuration
File: /home/gour/.taskrc (found), 2535 bytes, mode 100644
Data: /home/gour/task (found), dir, mode 40755
Locking: Enabled
GC: Enabled
rc.editor: /usr/bin/vim
Server: atmarama.dtdns.net:6544
CA: /home//gour/task/ca.cert.pem, readable, 3720 bytes
Trust: strict
Certificate: /home/gour/task/gour.cert.pem, readable, 3710 bytes
Key: /home/gour/task/gour.key.pem, readable, 24745 bytes
Ciphers: NORMAL
Creds: Atmarama/gour/************************************
Hooks
System: Enabled
Location: /home/gour/task/hooks
Active: on-add-pirate (executable)
on-modify-pirate (executable)
Inactive:
Tests
$TERM: xterm-256color (324x64)
Dups: Scanned 5388 tasks for duplicate UUIDs:
No duplicates found
Broken ref: Scanned 5388 tasks for broken references:
No broken references found
Here is the 'info' output in regard to the task involved:
tasksh> eb5dbdbd info
[task eb5dbdbd info]
Name Value
ID -
Description zalijevanje Arjune
Status Completed
Project home.duties
Recurrence 3days
Parent task 4d534d7e-bf0c-4dbc-94bc-89258ae8b157
Mask Index 18.000000
Entered 2018-01-29 10:54:09 (10d)
Due 2018-02-01 10:00:00
End 2018-01-31 19:42:45
Last modified 2018-01-31 19:42:46 (7d)
Virtual tags CHILD COMPLETED UNBLOCKED PROJECT
UUID eb5dbdbd-864d-475b-bf8e-193760a3c89d
Urgency 13.05
project 1 * 1 = 1
due 1 * 12 = 12
age 0.027 * 2 = 0.055
------
13.05
Date Modification
2018-01-31 19:42:46 End set to '2018-01-31 19:42:45'.
Status changed from 'pending' to 'completed'.
and here is the 'info' about the parent task (4d534d7e):
tasksh> 4d534d7e info
[task 4d534d7e info]
Name Value
ID 107
Description zalijevanje Arjune
Status Recurring
Project home.duties
Recurrence 3days
Mask +++++++++++++++++++++-
Entered 2017-12-09 08:52:58 (8w)
Due 2017-12-09 10:00:00
Last modified 2018-02-07 16:14:51 (21h)
Virtual tags PARENT UNBLOCKED PROJECT
UUID 4d534d7e-bf0c-4dbc-94bc-89258ae8b157
Urgency 13.33
project 1 * 1 = 1
due 1 * 12 = 12
age 0.167 * 2 = 0.334
------
13.33
Date Modification
2017-12-09 08:53:23 Project set to 'home.duties'.
Recur set to '3days'.
Status changed from 'pending' to 'recurring'.
2017-12-09 08:53:28 Mask set to '-'.
2017-12-09 10:52:20 Mask changed from '-' to '--'.
2017-12-09 15:37:45 Mask changed from '--' to '+-'.
2017-12-12 10:21:56 Mask changed from '+-' to '+--'.
2017-12-12 12:33:36 Mask changed from '+--' to '++-'.
2017-12-15 14:03:18 Mask changed from '++-' to '++--'.
2017-12-16 12:29:20 Mask changed from '++--' to '+++-'.
2017-12-18 10:08:37 Mask changed from '+++-' to '+++--'.
2017-12-18 13:31:13 Mask changed from '+++--' to '++++-'.
2017-12-21 10:01:09 Mask changed from '++++-' to '++++--'.
2017-12-21 11:34:49 Mask changed from '++++--' to '+++++-'.
2017-12-24 10:36:44 Mask changed from '+++++-' to '++++++'.
2017-12-24 10:36:46 Mask changed from '++++++' to '++++++-'.
2017-12-27 10:37:37 Mask changed from '++++++-' to '++++++--'.
2017-12-28 21:07:50 Mask changed from '++++++--' to '+++++++-'.
2017-12-30 09:10:15 Mask changed from '+++++++-' to '++++++++'.
2017-12-30 10:44:21 Mask changed from '++++++++' to '++++++++-'.
2018-01-02 10:05:24 Mask changed from '++++++++-' to '++++++++--'.
2018-01-02 12:41:32 Mask changed from '++++++++--' to '+++++++++-'.
2018-01-05 10:07:28 Mask changed from '+++++++++-' to '+++++++++--'.
2018-01-06 16:19:11 Mask changed from '+++++++++--' to '++++++++++-'.
2018-01-08 10:16:13 Mask changed from '++++++++++-' to '++++++++++--'.
2018-01-08 10:40:36 Mask changed from '++++++++++--' to '+++++++++++-'.
2018-01-11 10:15:02 Mask changed from '+++++++++++-' to '+++++++++++--'.
2018-01-12 22:24:51 Mask changed from '+++++++++++--' to '++++++++++++-'.
2018-01-14 10:30:10 Mask changed from '++++++++++++-' to '++++++++++++--'.
2018-01-14 20:19:12 Mask changed from '++++++++++++--' to '+++++++++++++-'.
2018-01-17 10:44:44 Mask changed from '+++++++++++++-' to '+++++++++++++--'.
2018-01-17 13:46:20 Mask changed from '+++++++++++++--' to '++++++++++++++-'.
2018-01-20 15:57:02 Mask changed from '++++++++++++++-' to '++++++++++++++--'.
2018-01-20 21:16:27 Mask changed from '++++++++++++++--' to '+++++++++++++++-'.
2018-01-23 10:10:28 Mask changed from '+++++++++++++++-' to '+++++++++++++++--'.
2018-01-23 10:13:56 Mask changed from '+++++++++++++++--' to '++++++++++++++++-'.
2018-01-26 10:09:18 Mask changed from '++++++++++++++++-' to '++++++++++++++++--'.
2018-01-26 10:11:15 Mask changed from '++++++++++++++++--' to '+++++++++++++++++-'.
2018-01-29 10:54:10 Mask changed from '+++++++++++++++++-' to '+++++++++++++++++--'.
2018-01-29 12:01:57 Mask changed from '+++++++++++++++++--' to '++++++++++++++++++-'.
2018-01-31 19:42:46 Mask changed from '++++++++++++++++++-' to '+++++++++++++++++++'.
2018-02-01 10:43:00 Mask changed from '+++++++++++++++++++' to '+++++++++++++++++++-'.
2018-02-04 10:28:54 Mask changed from '+++++++++++++++++++-' to '+++++++++++++++++++--'.
2018-02-04 10:39:04 Mask changed from '+++++++++++++++++++--' to '++++++++++++++++++++-'.
2018-02-07 10:24:55 Mask changed from '++++++++++++++++++++-' to '++++++++++++++++++++--'.
2018-02-07 16:14:51 Mask changed from '++++++++++++++++++++--' to '+++++++++++++++++++++-'.
so I wonder if you can detect something suspicious?
Benjamin Weber on 2014-05-27T16:52:58Z says:
22:45 < mono_1> Hi, I improved a script that graphically maps out task dependencies using graphviz, it maps dependencies left to right, uses color codes for blocked, done, waiting, etc, http://pastebin.com/9EyvEL0M , the original script is somewhere online but didn't really work so well for me, this is python and needs graphviz
22:52 < mono_1> example output (from a complicated set of dependencies) here http://imgur.com/zipAg
23:47 < pbeckingham> mono_1: That's great!
23:59 < mono_1> glad you noticed it, if I ever get time, I will do a point&click interface for drag&drop dependencies be cause in text mode it can get pretty intensive if you modify them a lot
00:41 < mono_1> the script I posted on pastebin, you can do whatever you want with it, it's an improvement on this one (that doesn't really work, prints out uuids) https://gist.github.com/2769821
David Patrick on 2009-07-07T14:31:28Z says:
another version control system
David Patrick on 2009-07-15T13:20:16Z says:
We all know how important it is to set goals for yourself, but for many people it's the hardest thing.
Happily, methods have been established to make this easier, without re-inventing the process, and this action script will ask all the right questions, and put all the answers in all the right places.
John Brickley on 2013-04-17T21:29:47Z says:
I found mono_1's graphdeps.py script very helpful, but was bothered by a few things about it, so forked it and put up a repository at http://github.com/shushcat/taskgv
Changes which others may find useful include display of visually distinct tag and project nodes along with corrected arrow directions to better indicate dependency direction and inclusion.
If anyone would like to contribute, I'd be happy to work with you on making this tool more widely useful.
Michele Santullo on 2013-08-29T09:25:41Z says:
It would be nice to have a "failed" feature, as well as "canceled" possibly, to better log if and why a task was completed. "done" means it was completed, and as discussed on IRC annotations could do the job, but consider the following example:
I have to take a train to the beach tomorrow at 10:00 (task 1), then I have to go sunbathing at 16:00 (task 2) and call my friend there at 18:00 to agree on a bar we should meet at (task 3). Tasks 2 and 3 depend on 1. Sadly, I miss the train, so I'm unable to complete task 2 and it should be automatically marked as "canceled due to failed blocking task". However, task 3 should still be unblocked, as I still have to call my friend to tell him we can't meet anymore. I suggest something like this:
add take the train due:20130829-1000
add go sunbathing due:20130839-1600 depends:1s
add call my friend and agree on a bar to meet at depends:1 due:20130829-1800
The "s" in "depends:1s" stands for "strong", so taskwarrior would know that task 2 can't be done unless task 1 is completed successfully. Then as I miss the train I do:
1 failed
and I expect task 2 to be canceled with a reason "can't be done due to blocking task failure", and task 3 to be unblocked as usual. When I look for the completed tasks, it would be useful to clearly see at a glance that task 1 failed, task 2 was canceled and task 3 was done. Also, if possible I wouldn't abuse the annotations as they can become quite much in number, so while an annotation "failed" could do the trick somehow (or a tag even), it could still happen that you add annotations after a task was completed and the "failed" part would get lost in the lot.
Adding a reason to "done" could do the trick. One could mark a task as failed through "1 done failed", done with "1 done" and canceled with "1 done canceled", and even add a custom reason with "1 done reason my co-worker did it for me". I'm not sure custom reasons should be allowed, but it could be considered.
Paul Beckingham on 2012-02-03T20:52:10Z says:
David Patrick on 2009-07-15T13:12:09Z says:
to facilitate the creation of index-card-sized organizer
Paul Beckingham on 2009-05-25T21:40:41Z says:
David J. Patrick
David Patrick on 2010-09-27T22:05:06Z says:
One of taskwarriors strengths is that one can keep separate .data files, and switch between them with
% task rc:< path-to-alternate-file >
but if one wants to move some tasks from one file to another, that's a different story.
Although .data files are just text files, and some adept editing could do the job,
wouldn't it be swell to have a command to do just that ?
like
% task move proj:feng-shui ~/.task/personal-enlightenment.pending.data
huh? wouldn't it ?
David Patrick on 2012-07-24T21:54:54Z says:
Taskwarrior has an ever expanding set of add-ons and external script goodness, it's almost hard to keep track. Some are more mature than others, and a few could be considered "must-haves", for some users.
We're maintaining a dedicated page to list them (see the External Scripts tab above ?) but many taskwarrior users are not going to even try them, as each one has to be researched and installed and used in a different way.
So here's an idea; for those scripts we know and like and trust, maybe we maintain a debian repo and piggyback some dpkg wizardry (we're all using debian variants, right?) or even just proper use of makefiles, to make discovering, installing and removing some of these extras, easier.
the first thing would be local and repository list management, without re-inventing it. then,
% tw extras
would list the associated extensions that were installed, with descriptions.
% tw extras update
would query the repo and download version info updates to a local list.
% tw extras list
would display a list of all available extensions, with installed extras and version gaps highlighted.
% tw extras install < extension >
would do just that, and
% tw extras uninstall < extension >
would do the opposite,
% tw extras search < term >
like apt-cache search, searches full index of titles, descriptions and notes, and lists matching extensions.
% tw extras show < extension >
like apt-cache show, displays version, description and notes for < extension >
% tw extras upgrade [extension]
upgrades the extension to the current version,
or if run without [extension], upgrades all installed extensions, and tw itself, to the current version.
Benjamin Weber on 2014-03-03T20:00:14Z says:
What [1] is for JIRA, Taskwarrior could orchestrate with Taskserver for OTRS [2]: a CLI for an existing web service. The user can adopt UDAs [3] and urgency coefficients [4].
A command line interface for a non-command line enterprise system.
Confer attached illustration.
[1] http://qissuescli.com
[2] http://www.otrs.com/solutions/integrate-otrs/
[3] http://taskwarrior.org/docs/udas.html
[4] http://taskwarrior.org/docs/best-practices.html#how
David Patrick on 2012-09-02T16:25:35Z says:
NOTE: this is probably one of the most far-fetched, long-term loopy/ evil ideas I've posted yet. For your amusement :)
The name "gtd" in this case is a recursive acronym that stands for GetThingsDone TM Daemon, and it's ultimate goal is to have an always-on process that manages taskd and cron and notifications and monitors system processes and resources.
As though you were combining David Allen(tm?)s brain with Steven Coveys, and that of a ZenHabits monk, it taking over your computer and driving you inexorably towards the very next most important step.
Like a super-daemon, driven by a productivity algorithm (coined) that could compare a personal task-load (coined) with a computers resources, and when neither the user nor the CPU are "cranking widgets", then gtd (the GetThingsDone TM Daemon) will grab the system notification and tell you what you're doing next.. clock ticking.. let's GO!.
To be expounded upon:
David Patrick on 2011-09-11T16:41:19Z says:
"Back up your files before playing with alphas" says Frederico, and he's right!
so alls we have to do is to make a copy of pending.data and completed.data .. and the .taskrc of course.
and we want to keep our installed plugins.. and included themes.. and holiday files maybe.. and .. ?
This proposed new command would do all of that in one fell swoop.
Without options supplied, the command would create a tar archive called task.backup..tar,
and with options might be named task.backup...tar.gz
this is obviously targeted at the lazy, error-prone linux users amongst us
David Patrick on 2013-09-11T06:32:46Z says:
Some tags are more special than others, see man taskrc for more details on +nocolor, +nonag, +nocal and +next.
This feature is a way for user to define special-tag-groups in .taskrc, and then to access that list with an associated helper-command.
that way, with this
udst.context.type=string udst.context.values=car,truck,store,home,work,bus,garage,phone,printer,laptop and maybe color.udst.context=on green urgency.udst.context.coefficient=8
a special-tag is born!
how do we know?
run the task tags command and see if they're highlighted, or run the automatically-created helper-command;
task _context
will produce a terse list of existing tags that match at least one of the set,
and that's all that context-aware scripts need to tell which tags belong to the context-special-tag-group.
The best part about this arrangement, is that it imposes no changes in tag-handling behavior before or after spacial-tags are defined,
adding and removing context-tags is exactly like regular tags; easy!
One (of many) difference between a UDA and a UDST is that the udst.context.values= part does not constrain any values, just defines the group, and auto-creates the helper-command. Defining a special-tag does not create a new attribute like udas, but groups existing tags.
Interestingly, there's no reason sets of special-tags couldn't overlap, with some tags in more than one group.
Benjamin Weber on 2012-12-19T14:48:55Z says:
This option forces you to decide what goes for your 20% and more importantly what not.
David Patrick on 2009-07-15T14:49:29Z says:
Somewhere between log-file and personal diary, the journal will become an essential tool.
From the command line, you will be able to jump right into editing the journal with your fave text editor, just by entering "task -j" (same as "task journal" same as "vi ~/.task/files/journal.task) and at any time you will be able to append text with "task journal mytext".
see: [[journal]]
David Patrick on 2012-09-07T17:50:54Z says:
Yes, there are brilliant reports to be had under task colors, and before you ready ANY further, run the following in a terminal..
$ task color $ task color legend $ task color red on white
no.. seriously, if you haven't seen the output of these commands, run them now.. I'll wait..
As you can see, a lot or work has already been been done in the color department, and this feature request seeks to extend that fine work with a couple of tools that will make a complex color themes easier to make and understand.
The special helper command should be dead-simple, similar to task color legend but displaying the available colors (all 256 or 16) monochromatic bands (no this-on-that), with columns for names and numeric values, in the style of other _helper commands, but way more colorful and a bit wider. This is a clear candidate for some external perl script, or something (see the attached file) but looking more like "color legend".
[ colorA ] = rgb### = color### = name (if any)
[ colorB ] = rgb### = color### = name (if any)
this handy color reference chart could be used to "hold up next to" other things on your screen, and with a quick grepping for a certain name or number would display just a band of just that color, and all of it's names.
% tw _colors |grep color123
The attached perl-script, colortest, is sort of the idea (the -r option is no longer working for me) but the sort of thing, available colors in order, not taskwarrior-specific, but showing all of the color-names/codes that taskwarrior can use.
David Patrick on 2009-07-07T00:58:43Z says:
Tight integration will ledger (http://wiki.github.com/jwiegley/ledger) exposing all features to the interactive shell and allowing cross referencing ledger entries with tasks and contacts. While this is deep integration, we should do it without forking ledger, and while leaving ledger CLI usage unchanged.
David Patrick on 2013-10-22T07:53:32Z says:
The more I learn about vim, the more I learn that anything is possible. This feature request (requiring some real "vimspertise") is to create a tw-theme.vim syntax file that will be used to theme taskwarrior.
The idea is simple enough (to describe) when editing both .taskrc and /usr/local/share/doc/rc/dark-burgundy-256.theme files, if any color directives {^color.*) terminate in a valid 256 color descriptor, they are then displayed in that color (combination)
With this syntax enhancements, just looking at a theme file, in full color, will be all you need to develop that theme.
David Patrick on 2013-01-09T03:32:18Z says:
This is an idea for a specialized use of taskwarrior, in the scheduling of movie production, scene-by-scene, tracking locations, characters, props, etc, which is really just a gigantic task-list.
The traditional tool, used since the days of Cecil B. DeMille, was and is a "stripboard".
see: http://en.wikipedia.org/wiki/Production_strip
or http://www.homefilmschool.com/2008/10/shooting-schedule.html
in-depth: http://www.solutioneers.net/cinema/preproduction.htm
With a great-big set of UDAs, using established color-rules, a set of custom reports, taskwarrior would make an excellent production-scheduling tool, fast and flexible. Task management, movie-style.
It would be an excellent example of the versatility of UDAs, plug-in.method architecture, virtual-tags, and task syncing capabilities.
any programmer/ filmmakers out there? I think so too.
Paul Beckingham on 2009-05-25T21:31:53Z says:
New 'tip' command that randomly pulls tip strings from a file.
Needs a large file of tips.
Should use the 'fortune' file format.
David Patrick on 2009-05-30T16:34:39Z says:
This plug-in constrains freemind to mappable attributes. The mindmap hierchy is tranlated to a hiercy of dependent tasks.
I can neither spell nor properly pronounce hi er ar key,
but I've made some doozies.
Andra� Levstik on 2010-11-16T04:49:34Z says:
hmm would it be possible to add an archive command and archived list...
something like: task archive YYYY-MM-DD would archive all tasks up to that date
task archive YYYY-MM-DD YYYY2-MM2-DD2 would archive all tasks between those two
maybe even allow to archive only some project
i.e. I have all work related things start with work.something
reason is I need to input all those tasks into a time reporting tool at the end of the week/month/whenever... and task completed lists them so I can put them in but once they are in I don't need or want to see them in completed
Benjamin Weber on 2013-11-20T18:58:06Z says:
WHAT does the new feature mean or enable?
It enables visitors of a website to enter a task description into a web form. On execution of Taskwarrior it checks for new tasks in pipeline from the web form, asking the user either to accept or to reject the task.
WHICH new reports are required needed?
None.
WHO benefits from this feature?
The Taskwarrior user does not require to enter the task from an external source. Instead, the user is required to reject or accept the task (or modify it as per his wish). Optional: The creator of the task can subscribe to the task status: He may be notified of acceptance, rejection, change, start, stop, done status via RSS feed or email.
HOW does the feature interact with existing features?
A config file setting enables Taskwarrior to parse a given URL which contains the backlog of external task wishes on execution. The user is required to accept or reject each task listed in this file. Thus, it is a distinct feature which may call the mod command. It may increase the code rucksack significantly and should therefore be considered as a plugin.
HOW does the feature retain the simplicity and efficiency of the core features?
It's a plugin.
HOW can I make others realize they cannot live without it?
Code it, test it, experience it.
Is my feature any more than just a built-in UDA?
Yes: It connects a web form to taskwarrior with feedback cycle on the specific task status.
Arkady Grudzinsky on 2012-05-08T00:27:13Z says:
I discussed this 6 months ago here
http://taskwarrior.org/boards/6/topics/1910#message-1918
Seemed to get some positive feedback. Has this suggestion materialized?
To remind, the suggestion was to create a "chain" command to create dependency chains of existing tasks:
$ task 100,101,102,103,104 chain
would be an equivalent of issuing 4 commands:
$ task 101 dep:100 $ task 102 dep:101 $ task 103 dep:102 $ task 104 dep:104
David Patrick on 2012-08-21T00:09:48Z says:
task ask is a command designed to trigger prompts for values of specified variables (usually attribute values).
This feature presumes a number of things, including a fully functional twshell.
It uses a file variables.conf as a source for related prompt text and twshell action.
When used in place of task add, "ask" will behave like "add", but will also force prompts for specified values.
It's also desirable to use ask with a behaviour like mod, so that it could define and ask for values accordingly.
I'm using task ask mod for following examples as though it would parse :-) .
Prompts will also be generated without the use of "ask" when any write command catches a record in the that has an attribute:?.
That way unanswered questions will be asked at every opportunity, as a regular part of most write commands. This will help ensure that missing information will get filled in ASAP.
This is also an opportunity to assign a sort of "non-value" for attributes during regular handling.
attribute:? = attribute:"needs an answer, but I don't have a good one yet, please ask me later".
When invoking task ask, whether or not a specific field(s) is indicated, makes a difference.
If you do indicate a field(s) to ask about (pri:?) then the ask command will assume those are the only fields to ask about.
If ask is used but no :? fields are specified in the command, then task ask will assume that you want to be prompted for every attribute not provided in-line.
values provided on the same command line won't be asked for, and get ready for a set of prompts, where you can put in a value or just to leave it blank or leave the default value in place. You can also enter a "?" to be asked later.
(this is an ugly example)
% tw ask proj:fishing +travel +rent book hovercraft due:\? sched:\? wait:\? until:\? When does this have to be done by? due: When can you actually start doing it? sched: When would you like to start being reminded about this task ? wait: If not completed, when can this task be deleted? until: What priority? (if any) L, M or H? pri: etc.
even if you wind up hitting and end up with just the values you first entered, for those who want most of the blanks filled in, and those who forget what blanks there are to fill in, task ask might be an answer.
Victor Roetman on 2012-04-19T07:45:30Z says:
I don't like having to worry about escaping things like parenthesis and quotes when typing in tasks, but line editing is not working in task shell.
Would it be possible to add functionality so that when I type
task add
it will ask for the rest of the description with something like getline? Maybe like this:
$task add Description:
and it will wait for my input.
Then the full session could look something like:
$task add Description: I didn't have to escape any of this (I just typed it in) +useful Created task 45. $
David Patrick on 2010-12-14T14:52:14Z says:
Taskwarrior users can already assign default values for newly created tasks.
Default project, priority or tag (I think) are assigned with a simple line in .taskrc
default.project=foo
But in day-to-day use I would almost never use these settings, I just don't have many values that are universally true for all new tasks.
What I would use would be defaults for new tasks that were based on a simple boolean logic test.
default.if.tag.has=home.then.pri=M
default.if.tag.has=TV.then.pri=L
default.if.desc.startswith=call.then.+(at)phone,pri=H
The psudo-syntax used for this example is hideous, but I hope that it is enough to convey this simple but powerful new feature idea. If flexibly implemented, this could streamline personal taskwarrior use, cutting major keystrokes and filling in a lot of the tedious but useful blanks along the way.
see also: http://taskwarrior.org/boards/6/topics/show/977#message-979
David Patrick on 2009-07-08T20:49:17Z says:
Pcal and lcal are calendar-generation programs which produce nice-looking PostScript output
http://pcal.sourceforge.net/
David Patrick on 2009-12-04T07:52:13Z says:
Task will already nag; "Is that all ya got ?" (or whatever you chooses to prod yourself with) but in the same spirit, task could be taught to let you give yourself rewards for certain arbitrary levels of productivity.
Let's say you decide that you want to complete at least ten tasks a day, and that at least four of those have to be High priority.
If you could define your goals in the .taskrc, something like
.### daily productivity rewards
reward.day.4=pri:h
reward.day.6=pri.any:
reward.day.message=Congratulations! You've reached todays productivity targets! Play 1/2 hour of video games guilt-free!
reward.week.12=pri:h
reward.week.20=pri.any:
reward.week.6=proj:baz
reward.week.message=You are a mighty Taskwarrior! Make reservations for 2 at Chez Louis!
you could goad yourself to greatness.
The diag command tries to determine execute permission on a broken symlink and this crashes. This may require a libshared/src/FS.cpp change, or at a minimum just the diag command.
Reproduce with:
$ cd ~/.task/hooks/
$ ln -s /missing on-add.missing
$ task diag
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.