Skip to content

Releases: jonathanabennett/projectwarrior

0.3.2 Supporting Documents

06 Apr 02:35
Compare
Choose a tag to compare

Version 0.3.2 Focuses mostly on adding support for two new commands

project new: This command allows you to create tasks in taskwarrior that use the data from the selected project. Imagine a project called "Make sales plan" which had the slug "sales-plan", an ID# of 3, and the inherited tags "@work", "planning" and "@BOSS". Running the command project id:3 new Make slide deck for pitch meeting due:friday would run the following command in taskwarrior: task add project:sales-plan +@work +planning +@boss Make slide deck for pitch meeting due:friday

project open: A new slot has been added to projects called filepath. Filepath is location of a file where you are storing your reference material for this project. Personally, I use emacs and org-roam for all my notes, so in my case this points to a file in my org-roam folder (~/nextcloud/org/roam/project-document.org). When you run project <filter> open, it will check whether or not a file has been saved for this project or not. If one has, it will run the command $EDITOR filepath where $EDITOR is the environmental variable on your command line and filepath is what is stored in that project's filepath slot.

The filepath can be set by file:path/to/file in the project new or project mod commands.

Additionally, this release sees the birth of the project's wiki on GitHub. Stubs have been created for most pages and they will be expanded and added to over the next few weeks, including GIFs of commands being run.

v0.3.1 Extended Options

24 Mar 10:17
Compare
Choose a tag to compare

This release adds the ability to configure projectwarrior using the file projectrc.lisp. This file can be located in your home directory or inside ~/.config/projects. The first time you run projectwarrior, it will create a config file for you at ~/.projectrc.lisp.

This is a proper Lisp file and can run arbitrary Lisp commands. The file contains a brief explanation of the Lisp needed for most basic configurations. The most likely change that a user will need to make is to delete the nil on line 37 and replace it with t to enable taskwarrior support.

The report views used to list projects are also created and defined in the configuration file. Two reports are provided, one which lists out the project's details and one which lists the projects with a count of how many tasks are associated with each project in taskwarrior. With large numbers of projects, this can take a few seconds to run (as it is effectively running taskwarrior once for every project). A better version of this may be provided in the future if I can figure one out.

0.3.2 will add the ability to create files associated with projects for tracking reference material related to the project. It will also allow user-customizable reviews. If anyone is using this, please submit any issues or pull requests to help improve it!

Projectwarrior

22 Feb 13:48
Compare
Choose a tag to compare

This is a rewrite of how this program thinks about projects. See the README for detailed information, but in short projectwarrior now stores projects in the same manner that taskwarrior stores tasks: as json objects which map to a slots in a Project class.

This allows you to treat your projects the same way that taskwarrior allows you to treat your tasks.

Projects have the following metadata associated with them (in addition to the Description).

  1. Slug: A string suitable for use as a project in taskwarrior.
  2. Area: A string with no whitespace which describes the Area of Focus for a project.
  3. Tags: A series of tags describing a project
  4. Inherited Tags: A series of tags which every project that projectwarrior creates for you "under" this project should have within taskwarrior.
  5. ID and UUID: Used to identify projects for commands.

v0.3.0-alpha

08 Feb 06:50
Compare
Choose a tag to compare
v0.3.0-alpha Pre-release
Pre-release

Initial release adding full project management and converting to the new name projectwarrior.

ALPHA DISCLAIMER: This version is an alpha release. Several key features are still under revision and it may break. Because of the name change, you can safely compile this version and use it along side the older version safely if you want.

Major New Feature: Projects

The biggest addition this time around is the project class. Project objects allow you to capture metadata about projects beyond the simple string captured by taskwarrior. Projects are stored as json objects in files named active.json, completed.json, and deleted.json. Additional fields will be added later, but for now the project class has the following slots:

  • Description: This is exactly the same as the description field in Taskwarrior. A string which contains description of the project. Spaces and punctuation are allowed, unlike the project field in taskwarrior. This field is meant to describe the project to you clearly and succinctly.
  • Slug: This is a string with no whitespace which goes into the project field in taskwarrior. It follows the same rules for taskwarrior. Any slug strings which are incompatible with taskwarrior represent bugs.
  • Area of Focus: This is a string with no whitespace, similar to a project in taskwarrior, but represents the over-arching category to which this project belongs. For example, the project "Lose 20 pounds by summer break" would likely belong to the health AOF while the project "Prepare documents for annual performance review" likely belongs to work. For a deeper treatment of Areas of Focus, review David Allen's GTD.
  • Tags: Tags are a list of strings with no whitespace which are used to provide additional, contextual information about projects. This could include contexts in which the project need to be done, priority levels, or any other information the user may wish to attach to a project which doesn't fit into the Description, the Slug, or the Area of Focus.
  • Inherited Tags: These are tags which are automatically applied to any tasks created by projectwarrior. For example, almost every task under a project like "Clean up garage" should have the tag @home because you probably cannot clean up your garage from your desk at the office. Inherited tags can be removed when creating a specific task by simply typing -<tag>, which tells projectwarrior to remove it from this task (In the garage example, if the task is "Buy new shelf at Lowes").

The core loop of using projectwarrior is adding, viewing, and completing or deleting these projects. The interface will mirror that of taskwarrior as much as is sensible.

  • project will print a list of your active projects
  • project add <project information> will add a new active project.
  • project complete x will complete project number x.
  • project mod x <project information> will modify project x to reflect the new information.
  • project delete x will delete project x.
  • project review will review all of your projects to see if they are still active or not and to see if any new tasks need to be added under that project.
  • project weekly will guide you through a GTD-style weekly review using an adapted checklist.

New Name

When I first named this gtd-review, it was centered more on guiding you through a weekly review. That's why I chose that name. But now, it has evolved to have a greater focus on managing your projects (as opposed to managing your tasks). Therefore I have given it a new name, projectwarrior, in line with names like bugwarrior and timewarrior.

Guided Weekly Review

04 Jul 14:45
24e13d1
Compare
Choose a tag to compare

This release is the feature that inspired me to create this program in the first place. It is a guided weekly review.

The principle is very simple, it presents a series of prompts to the user one by one that are intended to trigger tasks which need to be captured. It follows the flow seen [https://gettingthingsdone.com/wp-content/uploads/2014/10/Weekly_Review_Checklist.pdf](on the GTD website) with specific prompts adapted from a version of [https://gettingthingsdone.com/wp-content/uploads/2014/10/Mind_Sweep_Trigger_List.pdf](this trigger list) that I can sadly no longer locate.

It allows you to enter tasks from the weekly review exactly as if you were entering them in taskwarrior. Just enter the task and its data. So to add "Buy milk +@errands priority:H" during the review, just entered that string, which will be passed as is directly to the task add command.

If you installed this following the previous instructions, I recommend you delete the previous binary manually. The new make build followed by make install will put the file in the .bin folder on your home directory, but if you have installed it elsewhere, it could lead to confusing behavior.

BUGFIX for projects not syncing

25 Jun 07:28
da3bb7c
Compare
Choose a tag to compare
Merge pull request #7 from jonathanabennett/development

0.1.0 Release

v0.1.0 Command Line Interface

24 Jun 09:45
da3bb7c
Compare
Choose a tag to compare

This release adds the following:

  1. make build replaces make install because it is more semantically correct.
  2. Presentation of projects and their associated tasks cleaned up by separating them out and by using exact matching in the taskwarrior query.
  3. CLI added which allows the user to add projects to the projects.txt file from the command line. This does not add anything to taskwarrior, but said project will come up during the next project review.
  4. Updated build instructions in README to make them more clear.

GTD-Review Tool

21 Jun 11:09
0f033f6
Compare
Choose a tag to compare

This release adds a gtd-review tool (compiled using make install). Running this program will read your projects.txt list and present each project to you one a time for you to review. You can also make hook which will make and install the hook in your ~/.task/hooks directory.

Taskwarrior Hook

18 Jun 05:38
Compare
Choose a tag to compare

This is part one of the GTD tool I am trying to build. It is an on-exit hook that maintains a list of projects in ~/.cl-gtd/projects.txt. This list of projects adds projects from tasks in taskwarrior but does not delete them. The purpose of this is maintaining a list of projects which you're currently working on to use in your Weekly Review.

When conducting your weekly review, check that each project in the list is still an active project. If it is, ensure there is a next action for it in taskwarrior. If it isn't, delete that line from the projects.txt file. The next release will automate some of that process.

Installation

Clone this release into your local-projects directory.
Open Steel Bank Common Lisp sbcl (Not tested with any other Lisps, but it should work as long as you have Quicklisp installed).
Run (asdf:make "gtd-review")
Move the on-exit-projects-list executable into your ~/.tasks/hooks folder.
Execute mkdir ~/.cl-gtd and touch ~/.cl-gtd/projects.txt.

WARNING: This is still very early software and therefore is not to be considered bug-free. As written, it performs no write operations with taskwarrior and so therefore should be safe but use at your own risk!