LocalTasks

(Difference between revisions)
m (Editing Tasks and Adding Dependencies)
m (Editing Tasks and Adding Dependencies)
Line 24: Line 24:
Joseph Geek, our workaholic developer just finished his Friday work and because he's not yet ready to go home to bath his two babies and read them fairy-tales he instead stays at work and starts working on his project. He opens the task from the dashboard and reviews its current progress he tracks in the ''Private Notes'' field.<br/>
Joseph Geek, our workaholic developer just finished his Friday work and because he's not yet ready to go home to bath his two babies and read them fairy-tales he instead stays at work and starts working on his project. He opens the task from the dashboard and reviews its current progress he tracks in the ''Private Notes'' field.<br/>
He realizes that the last note was about creating the UI specification so he creates a new local task called ''UI spec for Awesome feature'' and this time enters the id of the first task into the new task's ''Parent task'' field. Thus he creates a relation between those tasks so he does not forget about the UI spec task. He saves the new task and switches back to its parent.<br/>
He realizes that the last note was about creating the UI specification so he creates a new local task called ''UI spec for Awesome feature'' and this time enters the id of the first task into the new task's ''Parent task'' field. Thus he creates a relation between those tasks so he does not forget about the UI spec task. He saves the new task and switches back to its parent.<br/>
-
He makes some notes about his current feelings into the private notes area and saves the changes via Ctrl+S.
+
He makes some notes about his current feelings into the private notes area and saves the changes.
After some time of working on the new feature Joseph Geek suddenly realizes he cannot continue because he's blocked by missing features in another area of the IDE. However he's aware that his college the debugger guy Martin is currently working on the missing feature and there's already a RFE in the team bugzilla for the feature. So he opens his local task in editor and clicks on the ''Add subtask'' button. A dialog is opened where Joseph Geek selects the public team bugzilla repository and the RFE Martin is working on. By clicking on the OK button, the RFE task is added as a subtask of the local task and another relation between tasks - this time between local task and a task from another repository - is added. Joseph Geek saves his changes and closes the edited task.
After some time of working on the new feature Joseph Geek suddenly realizes he cannot continue because he's blocked by missing features in another area of the IDE. However he's aware that his college the debugger guy Martin is currently working on the missing feature and there's already a RFE in the team bugzilla for the feature. So he opens his local task in editor and clicks on the ''Add subtask'' button. A dialog is opened where Joseph Geek selects the public team bugzilla repository and the RFE Martin is working on. By clicking on the OK button, the RFE task is added as a subtask of the local task and another relation between tasks - this time between local task and a task from another repository - is added. Joseph Geek saves his changes and closes the edited task.

Revision as of 10:51, 6 April 2012

Contents

Local Tasks in NetBeans IDE

This document describes the use cases, requirements and UI of a special task repository in the IDE - Local Tasks. The document is not final and will most probably change in the future as the discussion about local tasks evolves.

Introduction

NetBeans IDE is slowly turning into a task-driven IDE where users work on their tasks, the IDE behaves differently depending on the active task. The task can come from various different bug trackers but what we're missing at the moment is the ability to create a local task, invisible to others but the one person who created it, add private comments to the task, schedule it for some time in future or add dependencies in other tasks (even from other bug trackers).

Use Cases

Create Task

Joseph Geek would like to implement a new awesome feature for his favorite IDE but his manager did not allow him to do that at work because he did not care about the feature at all and considered it useless. Instead of creating 100 user accounts voting for the issue in Bugzilla Joseph Geek decided to implement the feature in his free time as a Friday afternoon project. He's developing the feature locally on his machine and would like to track progress of the development but because he's unsure how far he's gonna get, he does not want to expose the progress to public (by using a bugtracker) but instead would like to make his notes have them stored locally.

So he goes to the new Task Dashboard, selects the always available Local Tasks repository and from its menu invokes Create New Task. A form for new local task opens in the editor area, Joe enters its summary New awesome feature.
Then he fills the description of the task into the Private Notes text area. He's planning to track the progress of the development and fill all his private thoughts into the field later so when he activates the task next Friday he would know where to continue. For the meantime he enters Prepare UI specification for the feature into the field.
Because he would like to finish his work until the feature-freeze for the next release he also fills the Due date field and enters the date of the freeze.
After that he saves the task (either by clicking on the Save button in the toolbar or by hitting the keyboard shortcut he associated with the global Save action) and the task is immediately added into the Task Dashboard under the Local Tasks repository node.

Reviewing Opened Tasks

Joseph decides he would like to review and check what tasks await him in the upcoming future so he opens the Task Dashboard, expands the Local Tasks repository node and quickly reviews id and summary of all his opened local tasks that display directly under the repository node.

Notes

  • We decided not to implement the heavy-weight query table (as Bugzilla or Jira have in the IDE) but to display the tasks only in the Dashboard. We do not see any reason to have the tasks also in the editor area especially when a local task usually contains only id and summary values displayable in a table and there will always be just the single query.

Editing Tasks and Adding Dependencies

Joseph Geek, our workaholic developer just finished his Friday work and because he's not yet ready to go home to bath his two babies and read them fairy-tales he instead stays at work and starts working on his project. He opens the task from the dashboard and reviews its current progress he tracks in the Private Notes field.
He realizes that the last note was about creating the UI specification so he creates a new local task called UI spec for Awesome feature and this time enters the id of the first task into the new task's Parent task field. Thus he creates a relation between those tasks so he does not forget about the UI spec task. He saves the new task and switches back to its parent.
He makes some notes about his current feelings into the private notes area and saves the changes.

After some time of working on the new feature Joseph Geek suddenly realizes he cannot continue because he's blocked by missing features in another area of the IDE. However he's aware that his college the debugger guy Martin is currently working on the missing feature and there's already a RFE in the team bugzilla for the feature. So he opens his local task in editor and clicks on the Add subtask button. A dialog is opened where Joseph Geek selects the public team bugzilla repository and the RFE Martin is working on. By clicking on the OK button, the RFE task is added as a subtask of the local task and another relation between tasks - this time between local task and a task from another repository - is added. Joseph Geek saves his changes and closes the edited task.

Notes

  • The subtask would be removed by simply clicking on a remove icon in the editor. Will be specified in the UI spec.

Closing Task

Next Friday our developer finishes work on the UI specification for his awesome feature. He opens the subtask from the dashboard, selects Completed from the Status field and saves his changes. Immediately the subtask disappears from the Dashboard (because it is no longer opened) and is marked as completed in the parent task.

Notes

  • Inverse action (reopening) would work the same way. One selects Open status and saves the task

Deleting Task

After many many Fridays spent at work Joseph Geek's wife gives him an ultimatum and tells him that he really needs to work less and care about his family more. So Joe sadly decides to abandon his work on his project and because he does not want to be reminded about his unfinished work he deletes the task from his local repository. He selects Delete Task from the contextual menu on the task in the Dashboard and after confirming his determination the task is permanently removed from the local repository.

Other Use Cases

Local Repository is planned to be a special case of a task/issue tracking repository but all task-related use cases will apply to them as well. So scheduling, activating/deactivating and switching, categorizing in the dashboard, working with context and others described in Use Cases are also valid.

Repository Specific Limitations and Requirements

Although a kind of task/issue repository (as bugzilla or jira repository) the Local Task repository is unique and in some ways specific. Follows the list of specific requirements on the bugtracking SPI and the repository's behavior.

Repository

  • it is the only instance of local tracker
    It makes sense to have only one single instance of the repository that all local tasks belong to.
  • it is available by default
    It is available out-of-the-box, no setup is needed, automatically displayed under the Repositories node in the Task Dashboard. It can be hidden/closed however in the dashboard the same way as other repositories.
  • it does not display in the Services tab
    or maybe can but should not be allowed to be edited.
  • it does not show in the Connector list in the Create New Tracker dialog
    Because it is a singleton, it is not allowed to add a new instance
  • it cannot be edited
    either in the services tab or in the dashboard
  • it cannot be removed
    either in the services tab or in the dashboard
  • Search should be disabled
    In the Dashboard there is a Search action available in the repository's popup. Should be disabled if the only place to display query results was in the Dashboard (i.e. there was no query table)
  • similarly the repository should not be displayed in the Find Issues query.

Query

  • there is only one predefined always available query All Tasks
  • it is not editable
  • its results are displayed only in the Dashboard
    this is a question
  • cannot be removed
  • it is not allowed to add/create another query
Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo