Skip to content

Ticket Workflow

Brian Sipos edited this page Oct 17, 2023 · 4 revisions

This page defines how the Github ticket labels work together and fit into an overall workflow.

Source Labeling

When creating a new ticket, one of the following labels should be applied to distinguish the source and purpose of the ticket:

bug

Used to indicate that the ticket represents a misbehavior of the ANMS or the inability to achieve a specific goal that is a system requirement. Any behavior that results in loss of user-input data, including lack of user acknowledgement, can be considered a bug. A behavior which is unexpected but correct is considered an enhancement.

enhancement

Used to indicate that the ticket represents a desired improvement of the ANMS, or a behavior which violates the Principle of least surprise and is confusing.

sustainment

Used to indicate that the ticket represents a sustainment activity, such as updating external library versions or operating system base images. These are different than enhancement tickets because they are typically related to infrastructure and not user-visible changes.

documentation

Used to indicate that the ticket represents a deviation of actual behavior from internally-documented behavior. This applies to software source comments only, issues in the ANMS Product Guide or User Guide are managed in a separate repository anms-docs.

Triage Labeling

Once a ticket has been added, it must be examined and have triage labels applied to it to enable later filtering. Different labels are used for different triage and filtering aspects, as described below.

Severity Labels

The severity labels are taken from the NASA MGSS Implementation and Maintenance Task Requirements (MIMTaR) document with names and detailed definitions as follows:

CRIT-1 Critical

Defect makes the software unusable for mission operations.

CRIT-2 Major

Defect has significant impact on usability of delivered software for mission operations. User experience is difficult and/or cumbersome. Workaround available is arduous.

CRIT-3 Moderate

Defect has moderate to mild impact on usability of delivered software for mission operations. User experience is degraded but workable.

CRIT-4 Minor

Defect means software does not work as originally intended, but the defect has little impact on the usability of the delivered software.

Feedback Labels

For tickets which are not assigned to a release milestone, or when tickets need additional reporter feedback, the following labels can be applied:

question

Used to indicate that the reporter needs to answer a question in the ticket comment before more work can be done on the issue.

help wanted

Used to indicate that the developer attention is needed to analyze some detail in the ticket before more work can be done on the issue.

Closure Disposition Labels

One of the following labels are applied when the ticket is closed:

duplicate

This means the ticket is reporting an identical behavior or misbehavior to another ticket. Higher-numbered tickets are always the duplicate of the lower-numbered original ticket. The original ticket is linked-to for reference in a comment on the duplicate.

invalid

This means that the reported misbehavior was not due to a software problem, but possibly an environmental or configuration issue.

wontfix

This means that the reported misbehavior is a valid bug, but that a decision has been made to not address the issue. The ticket may be reopened at a later time or left closed.

Release Markings

The following other fields of a ticket indicate how it is progressing through the workflow.

Milestone

Separate from labels on a ticket, there is a single milestone field which can be used to assign a ticket to a specific planned release milestone. When a ticket is assigned to a milestone, that means that work is expected to be done for that issue to be resolved for that release. Snapshots of milestone assignments are made in release plans at the start of each development cycle and used as a baseline for what changes will be in that release. Each release plan is documented as a separate wiki paged named similar to "ANMSv1.1 Release Plan".

Assignees

Once a ticket has been accepted into a milestone, a developer is assigned to the ticket to make changes. Any ticket assigned to a milestone but without an assignee is in the backlog for that milestone. After adding assignees and work begins, the project status will change to "In Progress" and the assignee is the person currently working the ticket.

Project Status

All of the tickets in the ANMS are marked for the ANMS Project to allow status views on the work. When tickets are first added to a milestone, their status begins as "Todo". Once work begins on the ticket its status changes to "In Progress". Finally, when work is completed (but not necessarily verified) its status changes to "Done".

Testing activities at the tail end of a release cycle can be used to add comments about the verification of a ticket and may move the status back to "Todo" if more work is needed.