Phlogiston/Configuring

Each separate Phlogiston report can be defined and configured in a number of ways, as dictated by the following three configuration files. See Phlogiston/Data Loading Model for an explanation of how these configuration files are used in context.

_scope.py: Report configuration
Each team should use a separate Phlogiston report. Each report must have a configuration file, in the main phlogiston directory, named using the pattern:. The  should be a short (2-3 characters, hard limit of 6) unique identifier for this project.

Required Variables
The configuration file must contain these variables:

This is the report title displayed on the report page and charts. It should reflect the scope of tasks in the report, which is usually the name of the team responsible for the tasks.

This is the starting date for Phlogiston to import data from Phabricator. All data (tasks, transactions, projects, etc) before this date will be ignored.

Optional Variables
Default_points are assigned to all unpointed stories. If not present, unpointed stories remain unpointed.

If True, then after all tasks are categorized, Phlogiston will rewrite the history of all tasks so that they appear to always have been in whatever category they are in on the most recent day. For example, if task 100 was categorized as Category A on March 10th, and changed to Category B on April 15th, and the report is run on May 1, task 100 will appear to always have been in Category B. Defaults to false.

If True, then Phlogiston will rewrite the history of all tasks so that they appear to always have had the point value that they have on the most recent day. Defaults to false.

If set, burnup charts will show resolved tasks at zero on this date. This is to show progress from a recent point, such as the beginning of the quarter. Otherwise, a team that already has 500 resolved tasks at the beginning of the quarter will see their progress during the quarter rising from 500 (instead of 0), making it difficult to see recent progress.

These two variables determine which charts should be displayed, charts based on task count, charts based on task points, or both. Both default to True, so the configuration file should have neither (to get both count and points), or one of them set to False (to hide that type of chart).

_recategorization.csv: Categories
The file  determines which tasks from Phabricator will be incorporated into the report and how they will be categorized. See col_recategorization.csv for an example.

Each row in the file is one category. The category rules are applied in order, so that each task is categorized in the first category that it matches. Phlogiston reports on how it has interpreted the file (example).

The same rule cannot be used twice; this can happen inadvertantly when a wildcard creates a rule and then another entry creates the same rule. In this case, the second generated rule will be ignored. For this purpose, rules are the same if they have the same CategoryRule, ProjectID, and MatchString after wildcards are resolved.

CategoryRule
This determines how the category row is interpreted and applied. Must be one of these keywords:
 * ProjectByID
 * Matches all tasks are members of the specified project, which is specified by ID.
 * ProjectByName
 * Matches all tasks that are members of the specified project, which is specified by the exact Phabricator name.
 * ProjectsByWildcard
 * Finds all Phabricator projects whose names match the Matchstring, which is treated like a substring. E.g., "iOS-foobar" will match "iOS-foobar", "iOS-foobar-baz", and "foo-iOS-foobar", but not "iOS-foo-foobar".
 * Each matching project is treated as if it were a separate "ProjectByName" category.
 * Titles are copied from project names in Phabricator, and any Title specified in the row is ignored.
 * Intersection
 * Matches all tasks that are members of all of the specified project IDs for this row.
 * ProjectColumn
 * Matches all tasks that are members of the specified project ID(s) and belong to a Phabricator column with the same name as the MatchString.
 * MatchString is treated as a substring for column name matching, so "TR-0" will match "TR-0 Interrupt".
 * ParentTask
 * Matches all tasks that are members of the specified project ID(s) and are descendents (children, grandchildren, etc) of a task which is in the "Category" Phabricator project and whose title matches the MatchString.
 * The tasks, all tasks in the family tree, and the category task must all be in the list of specified project IDs in this row.

ProjectID
For ProjectByID, ProjectColumn, or ParentTask, one valid Phabricator project IDs (not PHIDs). For Intersection, two Phabricator project IDs, separated by spaces. For ProjectByName or ProjectsByWildcard, leave blank.

MatchString
A character string to be used for matching as determined by the CategoryRule. Case-sensitive. For ProjectByID or Intersection, leave blank.

Title
The display title of the category, for use in charts and graphs. For ProjectsByWildcard, leave blank.

Display
Whether or not this category should be shown. If false, will be hidden from most reports.