I recently realized I could track my reading in Taskwarrior, since I use it to track so many other things.
I use taskwarrior-priorities to show what I’m reading right now. The highest priority goes to the book which I intend to finish next.
Forge Your Future with OpenSource is my current main read. The book guides you through making your first open source community contributions. It includes exercises to help you make your best contribution.
I want to complete these exercises, but I know I won’t unless I create some kind of reminder.
I’ll add tasks for the exercises described so far.
There will certainly be more exercises. I will create tasks for them as they come up.
Assigning a shared project makes their connection clearer.
All right but how do I show the dependencies? Let’s describe them first.
I must collect candidate projects before I can select a FOSS project.
I must set my FOSS project requirements before I can collect candidate projects.
I must define my personal FOSS contribution goals before I can set my project requirements.
I must complete all the tasks before I can mark the book as complete
Each item depends on another being completed before I can work on it. It is blocked, and the task it depends on is blocking it.
Use the depends attribute to show when one task blockeds another.
What does that look like now?
The report shows a new Deps column, indicating dependencies. The Urg column shows that “Select FOSS project” gets a lower priority — it’s blocked by “Collect FOSS candidate projects”, which now has a higher priority because it blocks a task.
The report visually highlights the blocking task while downplaying the blocked task. This is easier to show with a screenshot.
Let’s assign the rest of the dependencies.
Wait a minute.
How do I describe the book’s dependencies? I want to say it depends on all of these tasks, but that’s not possible in Taskwarrior — unless there’s an extension, but I’m not ready for those yet.
There’s a missing task, isn’t there? Completing all the exercises in the book is its own task. That is what finishing the book depends on.
Today it depends on selecting a FOSS project. That will change as the book presents new exercises. This is a small inconvenience that makes the tasks’ overall relationships clearer to me. I am the important audience for my personal task list.
Now I can correctly describe what I must do to complete the book.
What does this project look like now?
Right but what does it look like?
The report deemphasizes everything but the task that blocks everything else. You can see some urgency math going on in that last column where tasks are both blocking and blocked.
New virtual tags!
Dependencies give us new virtual tags to filter reports based on task dependencies.
+BLOCKED
The +BLOCKED virtual tag filter includes only those tasks which depend on another task.
+BLOCKING
The +BLOCKING virtual tag filter includes only those tasks which I assigned as dependencies for another task.
What now?
By looking at what is blocking and is not blocked, you can focus on the tasks that block everything else.
I should start working on those goals so I can finish that book.