CAIMAN User Guide
Calibration Implementation Manager (CAIMAN) is used to maintain and generate CLAS12 Calibration Dashboards. The dashboards' website is read-only; this user guide will show you how to edit the dashboards.
Getting Started
On ifarm, run:
A usage guide will print out, showing the various command line options; use --help if you want to see even more.
Troubleshooting: Access Denied
If you get an error saying your access is denied, you are not allowed to use this "official" installation of caiman; instead,
see the setup guide for how to install and run it locally.
Troubleshooting ERROR: Unable to locate a modulefile for 'caiman'
Your module environment path does not include CLAS12 modules; run the following then try again:
When you run caiman, you'll need to give it a database name, for example, rgl (Run Group L):
rgl database. Once you exit VIT by pressing q then y to confirm,
the dashboard website will be regenerated and deployed.
Warning
Please avoid leaving VIT open for long periods of time: open it, make your changes, then quit.
- Only one user at a time can run
caiman, to prevent two users from making conflicting changes at the same time. - Use the dashboard website if you want to be able to see tasks for longer periods of time.
Terminology
Here are some terms used throughout; see design notes for software details.
| Term | Description | Relevant Links |
|---|---|---|
| Task | A unit of work with a name, state, additional attributes, and possible dependence on other such units | |
| Predecessor | A task that must be completed before a given task | |
| Successor | A task that may be started only after completing a given task | |
| Report | A table with rows of tasks and columns of their attributes; the tasks are sorted and may be filtered | |
| Dashboard | Read only front-end web view of the tasks and their progress | Dashboard Home |
| TaskWarrior | Command-line task manager, the back-end; tasks for a dashboard are stored in a SQLite database, managed by TaskWarrior | Home Page & Documentation |
| VIT | Interactive terminal interface editor for TaskWarrior, a read/write front end that runs when you run caiman |
Home Page & Documentation |
caiman |
Runs VIT then deploys the dashboard; also the name of this repository | Home Page & Documentation |
VIT Usage
The rest of this guide will focus on using VIT, which allows you to view and edit tasks.
When you first open VIT (by running caiman), all of the tasks are shown in a table called a 'report';
see below for how to change how/which they are displayed (i.e., change reports).
Each row of a report is a single task; press the <up> and <down> arrow keys to move up and down.
Its columns are:
| Column | Description |
|---|---|
| Project | Called 'Category' on the dashboard; a task can have only one project |
| Description | Task title |
| Tags | Called 'Subsystem(s)' on the dashboard; a task can have zero or multiple tags |
| Start | If the task has been started, the start date |
| End | If the task is done, the end date |
| ID | Integer ID number; it's just a short number and will change as tasks are started and completed (cf. UUID) |
| Predecessors | List of task IDs which must be completed before this task can be started |
| Urgency | TaskWarrior's way of calculating how 'urgent' a task is; see below |
Viewing a Task
Press <enter> to view a task's attributes; press <enter> again to return to the report view.
Each row is an attribute for this task, which has a 'Name' and a 'Value'; for example, the attribute named 'Contact Person' should have a value that is the person to contact for this task.
Some attributes are specific to TaskWarrior, such as 'ID' and 'Description', while others we have added specifically for CLAS12 Calibration usage, such as 'Contact Person'.
Note
If a certain attribute's value is empty, it will not appear in this detailed view at all.
TaskWarrior-specific attributes:
| Name | Description |
|---|---|
| ID | Integer ID number; it's just a short number and will change as tasks are started and completed (cf. UUID) |
| Description | Task title, along with any annotations (timestamped comments) |
| Status | 'Completed' if done, otherwise 'Pending' |
| Project | Called 'Category' on the dashboard; a task can have only one project |
| This task is blocked by | Predecessor tasks IDs that are not yet done |
| This task is blocking | Successor task IDs |
| Entered | When the task was created |
| Start | If the task has been started, the start date |
| End | If the task is done, the end date |
| Last modified | When the task was last modified |
| Tags | Called 'Subsystem(s)' on the dashboard; a task can have zero or multiple tags |
| Virtual tags | Ignore this |
| UUID | Universally Unique Identifier: an immutable ID number unique to this task (cf. ID) |
| Urgency | TaskWarrior's way of calculating how 'urgent' a task is; see below |
CLAS12 Calibration-specific attributes:
| Name | Description |
|---|---|
| Contact Person | The contact person for this task |
| Input Data | The data needed to perform this task |
| Outcomes | The resulting output of this task |
| Validation | How to validate or what to check |
| Documentation Source | Relevant documentation for this task |
| Details | Any additional details |
Urgency
The 'urgency' calculation is shown at the bottom of a task's details. Urgency is a number based on various task properties, such as number of successor tasks, where a higher number means "more urgent". We use this urgency to sort tasks, since task ID is mutable, and sorting by UUID makes no sense.
There is no way to "force" a certain ordering of tasks, we can only sort them based on some parameter, and urgency is supposed to order tasks roughly in the order we should do them for optimal efficiency.
See TaskWarrior's Urgency Documentation, if you're curious.
Task Actions
Now let's cover how to mark a task as begun, done, and more. Many of these actions require you to
press <up> and <down> to select a certain task, then press a key or two.
Task Begin
Marking a task as started means that it is currently in progress. If a task is not started yet, it is either considered 'ready' (i.e., it can be started any time), or 'blocked' by some unfinished predecessor task.
Warning
Do not start a task without completing all of its predecessor tasks.
- Press
bto mark a task as 'begun' (a.k.a., 'started')- A prompt will appear at the bottom of your screen; press
yto confirm ornto cancel - The start date will appear in the 'Start' column, and will be the current date (and time)
- A prompt will appear at the bottom of your screen; press
- You may press
bagain to 'stop' a task; the start date will be removed, i.e., as if the task were never started - If you want to edit the start date, see the expert guide
Task Annotate
At any time you may add a comment to a task, e.g.,
X is done, but Y is delayed because of Z
Such comments are called 'annotations' in TaskWarrior; they are timestamped and will appear on the dashboard.
- Press
Ato add an annotation to a task- Do not confuse this with
a(lowercase), which will instead add a new task (press<esc>to exit the prompt at the bottom) - You will be prompted to enter the annotation at the bottom of the screen; press
<enter>when done (or<esc>to abort)
- Do not confuse this with
- To remove an annotation, press
Ethen follow the directions - You may do this for any task, regardless of its status
Task Done
- Press
dto mark a task as 'done' when the task is completed- A prompt will appear at the bottom of your screen; press
yto confirm ornto cancel - The end date will appear in the 'End' column, and will be the current date (and time)
- Press
<ctrl+l>to refresh the screen, so the 'Predecessors' column view gets updated correctly (don't fret if you forget, the dependencies are updated in the database, but the view in VIT does not update until you refresh the screen)
- A prompt will appear at the bottom of your screen; press
- Successors of this task will have this task removed as a predecessor in the 'Predecessors' column
- This is just how VIT displays information
- The dependencies are still known in the database
- If you need to mark a done task as 'not done':
- Press
mto enter 'modify' mode; a prompt will appear at the bottom of your screen - Type
status:pending, then press<enter> - Press
<ctrl+l>to refresh the screen
- Press
- If you want to edit the end date, see the expert guide
Warning
An exception will be thrown if you attempt to mark a task as done if it has incomplete predecessor tasks.
How to Change Reports
You can change the 'report', which controls which tasks are shown and how much detail is included:
- Press the colon key (
:) to start a command-line entry at the bottom of your window - Type one of the following report names below
- Press
<enter>
| Report Name | Description |
|---|---|
all |
show all the tasks, sorted by 'Project', and by 'Urgency' for each 'Project'; this is the default |
urgent |
same as all, but sort by 'Urgency' overall |
ready |
show only tasks that are ready (i.e., not started) |
active |
show only tasks that are actively in progress (i.e., started, but not completed) |
completed |
show only tasks which have been completed |
Note
The top-left corner of your window indicates which report is currently being shown.