Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Warning
titleWarning: stale info!

This comparison was done in 2016. The plugin landscape has evolved since then, and I have not had time to update this comparison.


Excerpt
hiddentrue
 A comparative review of various todo list / checklist
plugins
add-ons available for JIRA.
Image Modified


Sometimes in JIRA you want a checklist, or todo list for your issue, just like Confluence's Task List. What are your options?

  1. You could model your todo items as sub-tasks. Advantages: todo items can have assignees, due dates, and a fancy workflow. Disadvantage: visual clutter, difficult to use, and you don't need the full power for JIRA for something this simple.
  2. You might try to use JIRA's built-in 'Checkboxes' field type for a 'Todo' field. This does not work. With JIRA checkboxes, only checked items show. Unchecked items are considered to be "irrelevant to this issue", and so don't display except when editing. A todo list with no completed items wouldn't show up at all. In a todo list, unchecked means "task is not yet completed", which makes it just as (or more) important than checked items.
  3. Consider the various JIRA checklist / todo list plugins.


Here we review a handful of checklist / todo list plugins available (in February 2016), seeing how they stack up to each other and the built-in Checkboxes field.

 

 




Built-in JIRA CheckboxesMy Todo (previously ToDo list custom field)

Kanoah Checklist

Checklist for JIRA
Kanoah Checklist
Issue Actions TodoSimple Tasklists
Price (Oct '20)n/a10 / 85 / 150 / 310 / 650 / 900 / 2200 / 2700 /  350010 / 25 / 50 / 100 / 200 / 250 / 275 / 325 / 32510 / 90 / 175 / 330 / 675 / 990 / 1350 / 2300 / 275010 / 55 / 100 / 185 / 565 / 850 / 1060 / 1350 / 155010 / 50 / 100 / 180 / 300 / 400 / 700 / 1000 / 1000
Price (Feb '16)n/a$010 / 25 / 50 / 100 / 200 / 250 / 275 / 325 / 325

10 / 35 /

75

75  / 150 / 325 / 480 / 650 / 875 / 950

10 / 50 /
25
90 /
50
160 /
100
480 /
250
700 /
275
900 /
325
1000 /
325
120010 / 20 / 40 / 80 / 125 / 200 / 200 / 400 / 400
Support
n/aVia answers.atlassian.com

Via answers.atlassian.com

Via JIRA on https://kanoah.atlassian.netVia answers.atlassian.com
Issue View

JIRA only displays the values of checkboxes that have been ticked.

Image Modified

 Image Removed



Image Added
 
Image Added

By default only the first two checkboxes are shown

– even if other hidden ones are checked:

, which is bad since it hides even ticked items.

Image Modified

Fortunately this behaviour can be turned off, showing all checkboxes:

Image Modified

Strikethrough can also be turned off.

 

 Image RemovedUnlike others,

Stars indicate 'required' fields. One can also set a 'Status' for an item ("Not Applicable", "In Progress", "Blocked"):

Image Added


Not a custom field, but rather a tab:

Image Added

Simple Tasklists is not a custom field, but rather some specially formatted text (macro) in the issue description:

Image Modified

 


All Checkboxes Ticked
Image Modified
Image Modified
Image Added
Image Modified
Image Removed
Image Added
Image Modified
Edit View
Image Modified
Image Modified

Image Removed

Note the stars, indicating 'required' fields.

Image Modified

Note the ability to edit/delete items on the fly


In edit mode one can tick boxes, set statuses and add/edit new items,

Image Added

An issue's tasks can be completed by ticking the checkbox, and can be edited by clicking the pencil icon, yielding the same Edit screen used for template editing:

Image Added

 

Here are the {task}'s in the description, plus the rendered view on the right.

There is also a {tasklist} macro, but this auto-expands to a set of {task}s.

Image Added

One can also have 'templates', centrally predefined sets of tasks:

Image Added

Then by typing '{tasklist}Milestones{tasklist}' in an issue description or comment, the description expands to template's set of tasks (see previous screenshot).

Image Removed

Search Results / List View

Image Modified

Image Modified
Image Removed

Image Added

Image Removed

Due to what may be a bug, checkboxes aren't appearing as ticked when they should See https://answers.atlassian.com/questions/37042292/search-results-not-showing-ticks-in-checked-items

Image Removed

 

 

Structure ViewImage RemovedImage Removed

Image Removed

Image RemovedImage RemovedSearchability

Image Removed

 

Image Removed

Image Removed

Image Removed

Image Removed

 

 

Image Removed

 

Search does not appear to be possible

Image Added

(Linux users may experience wonky formatting)

Issue actions cannot appear in search results (no field 'list view').


The only way to view an issue's tasks in search results is by adding the macro to the issue Description, and then adding the 'Description' field to the search columns:

Image Added

The checkboxes work even within search results (as of v1.0.8, see correspondence), which allows one to update tasks rapidly across multiple issues.

Structure View

(Note: they're all terrible; see Groovy Script - simplified views of fields)

Image Added
Image Added
Image Added

Image Added

Issue actions cannot appear in search results (no field 'list view').

The Structure view renders the first few lines of Description in its 'Summary column'. When those are {task} macros, they do render, but the results are not particularly useful:

Image Added


Searchability

Image Added


Image Added

Image Added

Not searchable (confirmed with vendor), as of v1.3.1 / March 2016.

Image Added


Image Added

Image Added


Not searchable.Search is not possible, but reportedly on the roadmap. See https://answers.atlassian.com/questions/37042662/ability-to-search-for-an-issue-by-tasklist-item-status
Configuration

Options are defined centrally:

Image Modified





Options are

not managed centrally, but rather

defined per-issue. New issues acquire the Default Value.

Image Added

Due to what seems like a bug, the Default Value doesn't display

:

Image Removed

until one clicks

. One has to click 'Edit Default Value' to see them:

Image Modified

\Image Removed

Options are

not managed centrally, but rather per-

defined per issue. New issues acquire the Default Value:

Image Modified

Template sets of tasks called 'tasklists' can be defined:

Image Removed

Options are defined centrally, but per-issue options may be added by end users, without breaking the link to those centrally defined options.

Image Added

Todo items are defined per issue. New sets of Todos may be created based on global or project-wide templates.

A global template:

Image Added

Options/Tasks are defined per issue. New issues may acquire a set of options from a referenced Template.

Image Added

Tasklists are just templates, not centrally managed sets of tasks. Each issue's set of tasks derived from the tasklist may vary individually.

Customizability

n/a

n/an/a
  • Strike through is optionalImage Added
  • Items can be made 'mandatory', towards a 'Completed' field status.
  • Addition of new items can be restricted by role

Image Removed


Image Modified
n/a

A few tweaks are available:

Image Removed

Image Added

Internal Database Representation

customfieldvalue.stringvalue stores ID references to predefined options:

11202
11201
11200

customfield.textvalue stores one JSON field per issue, with direct option values:

[{"id":"Overview Doc Written","type":"done"},{"id":"High Level User Stories Written","type":"done"},{"id":"UX Design Developed","type":"done"},{"id":"Eng Tech Spec Written","type":"todo"},{"id":"Eng t-shirt Size & Quarter Commit","type":"todo"},{"id":"All Sprints Scheduled","type":"todo"}]

customfieldvalue.textvalue stores one JSON field per issue, with direct option values:

[{"description":"Overview Doc Written","checked":true},{"description":"High Level User Stories Written","checked":true},{"description":"UX Design Developed","checked":true},{"description":"Eng Tech Spec Written","checked":false},{"description":"Eng t-shirt Size & Quarter Commit","checked":false},{"description":"All Sprints Scheduled","checked":false},{"description":"All Code Checked In & Tested","checked":false}]

customfieldvalue.textvalue stores JSON records (one per checkbox), referring to a predefined option.

{"checked":false,"name":"","mandatory":true,"rank":5,"optionId":11215,"version":"3.0","id":11215,"statusId":"none"}{"checked":false,"name":"","mandatory":true,"rank":4,"optionId":11214,"version":"3.0","id":11214,"statusId":"none"}{"checked":false,"name":"","mandatory":true,"rank":3,"optionId":11213,"version":"3.0","id":11213,"statusId":"none"}{"checked":true,"name":"","mandatory":true,"rank":2,"optionId":11212,"version":"3.0","id":11212,"statusId":"none"}{"checked":true,"name":"","mandatory":true,"rank":1,"optionId":11211,"version":"3.0","id":11211,"statusId":"none"}{"checked":true,"name":"","mandatory":false,"rank":0,"optionId":11210,"version":"3.0","id":11210,"statusId":"none"}

customfieldvalue.textvalue stores one JSON field per issue, with direct option values:

[{"description":"Overview Doc Written","checked":true},{"description":"High Level User Stories Written","checked":true},{"description":"UX Design Developed","checked":true},{"description":"Eng Tech Spec Written","checked":false},{"description":"Eng t-shirt Size & Quarter Commit","checked":false},{"description":"All Sprints Scheduled","checked":false},{"description":"All Code Checked In & Tested","checked":false}]

For per-issue checkboxes, "name" has a value and "optionId" is 0.

A custom table, "AO_9701C1_ISSUE_ACTION, stores todo items for issues and templates:

Image Added

A group of todos is defined in the AO_9701C1_ISSUE_ACTION_GROUP table. Image Added

A custom table, AO_5345B8_TASK, is used to store tasks, which the {task} macros simply reference:

Image Modified

Likewise for tasklists:

Image Modified

    Once an issue is created, its options vary completely independently of any other. You can create new checkboxes on the fly within the issue. You cannot bulk-change the wording of a checkbox across issues.      Simple Tasklists is the most interesting and promising of the bunch, because it implements its own back-end, rather than being limited by the custom field API, and exposes this back-end via macros in the description and comments. Tasks

Thoughts
  • Free, with all the implications for support that entails
  • Compares favorably with Kanoah.
  • No search.
  • The search/list view displays a progress bar rather than attempting to list the checkboxes, which might work well in some scenarios and not in others.
  • Support is via a custom JIRA Service Desk instance. While possibly good for privacy-conscious users, it means there is no answers.atlassian.com "knowledge base" to tap into.
  • The only viable choice if you need centrally managed task definitions, while still retaining the flexibility of per-issue tasks.
  • Has per-item statuses and special formatting of @user mentions and dates.
  • Has relevant workflow post-functions and validators.
  • Creating a task list is rather an involved process: click on the Todo tab, pick a template and give the new Todo list a name; then Edit the new Todo list and assign a user; at which point you finally get checkboxes.
  • Multiple distinct sets of todos per issue.
    • Notifications to watchers, permissions and other fancy features (see docs).
  • Support via custom website; no answers.atlassian.com "knowledge base".

Simple Tasklists is interesting, because tasks can be interspersed within a free-form issue description, or added via comments, and are all nicely aggregated by the Task panel. Like in Confluence, tasks can be assigned via @mention reference, and will appear in a user's task tray.

There is also the possibility (hampered by bugs at present) of ticking off tasks via the search results or gadgets view.

The plugin has some limitations and missed opportunities at present:

  • There appears to be no search-for-issues-by-task facility (link)
  • Syncing changes from issue to search results pages is buggy (link)
    • Like all alternatives except Checklists for JIRA, issues do not share task list definitions
    . Each task list
    • (in practice, this means a {tasklist} expands immediately to a series of {task}s). Each issue's set of tasks varies individually, and changing the templates will only affect new issues.
    • There appears to be no search-for-issues-by-task facility (link).
    • As there is no specific field to appear in search results. The Description field can do the job, but only if it contains all {task}s, and none were defined in comments.
    • The database refers to issue keys (e.g. PRJ-9), which probably will break if projects are renamed.

     

    Conclusion

     


    Conclusion

    I would recommend Checklist for JIRA, being the only plugin allowing centrally managed Task list definitions (i.e. where you can edit a Task definition once, and see the change across all issues), while still allowing per-issue tasks. Checklist for JIRA also comes with a nice set of JQL filters, and the ability to mark tasks 'Mandatory' and other features. Finally, the fact that it uses the standard custom field API is preferable to plugins that become unique snowflakes by implementing their own database tables.

    If you don't mind task lists differing per issue, the free ToDo list custom field plugin does a great job.

    The Simple Tasklists and Issue Actions Todo plugins implement their own database back-ends, rather than using the custom field API. As a result, neither allows for searching of issues by todo status, or displaying todo status in gadgets. Neither takes the opportunity to make task definitions reusable. Simple Tasklists is interesting, in that it uses the flexibility of a custom back-end to allow for wiki-like interspersing of tasks with description text and comments.

    I shall endeavour to keep this page updated – please drop me a line if anything is incorrect or outdated.