This draft document is a work-in-progress.
The Einstein Toolkit uses the TRAC issue tracker to keep track of current problems and new features. This page describes how this system is used.
When tickets are created, they are automatically placed into a "NEW" state. Such tickets should be triaged by a maintainer. Once triaged, their state will be changed to "triaged" or "lookedat". Maybe we want a better name for this. eschnett suggests "accepted". knarf thinks that "accepted" gives the wrong impression that this means "accepted" by that maintainer (in the sense that she/he will be working on it. This is one of the default states trac has, and accepting a ticket means exactly that: to be the new "owner" of the ticket. The process of triage includes:
- checking that the title and description make sense;
- setting the priority and other metadata (see below);
- possibly assigning the ticket to a person (see below).
How do we avoid multiple maintainers triaging tickets at the same time? Each maintainer theoretically has an area of expertise (https://docs.einsteintoolkit.org/et-docs/Organization_and_Responsibilities), but these are not uniquely assigned.eschnett does not think this will be a problem.
When a patch or branch is available for review, the ticket state should be set to "review", and assigned to a reviewer (the reviewer can unaccept the assignment, or reassign it). If the review is passed, the state should be set to "reviewed_ok". This indicates that it is ready to commit or merge. Once this has happened, the ticket can be closed as "fixed".
The following sections describe how the TRAC ticket metadata is used in the Einstein Toolkit.
|Defect||Something does not do what it is supposed to do|
|Enhancement||A new feature proposal|
|Task||Something that needs to be done that does not make any change to the code|
|New||The ticket has been newly-created, and not yet triaged by a maintainer|
|Accepted/Assigned||The user will oversee the ticket, usually doing the work themselves.|
|Reopened||The ticket was closed before, but the problem came back, or was not fully fixed|
|Closed||(fixed, invalid, duplicate, wontfix, worksforme) - self-explanatory|
|Review||A patch has been created which is ready to apply, and approval and/or comments are needed|
|reviewed_ok||The patch has been approved and can be committed|
|Blocker||The ET does not build, or another problem which means development cannot continue. This requires immediate attention. Must the build failure affect all machines, or just a subset? Is it a blocker if just one of the supported machine cannot be used?|
|Critical||At least one important thorn cannot be used, or something else is severely broken. If this is not addressed quickly, the respective change should be reverted.|
|Major||Needs to be fixed before release, or documented as broken in release notes|
|Minor||Not important enough to necessarily look at before a release|
|Optional||Very low priority|
This is the TRAC user who is expected to perform the next work on the ticket, and who will do so soon (on a timescale of a week). Feel free to assign ownership to other people. This should be interpreted as a polite request to do something if possible. If you are assigned a ticket, feel free to reject the assignment if you don't have time or inclination to work on it. Ticket can be "Reassigned to" an empty field, which removes ownership. If a ticket sees no progress after about a week or so, consider removing the ownership, unless the owner plans to work on it soon.
Tickets can be assigned a release milestone. This means that we want to have these tickets looked at for the upcoming release. It is normal that not all of these will be addressed in time. Note that it doesn't make sense to add a milestone to a ticket unless someone is likely to work on it, and ideally that should be the person who assigned the milestone. We should make a clear distinction between tickets which are "major", i.e. important enough to be considered for the release, and those which have the milestone. What is the difference? Essentially, "priority=major" indicates that the ticket is important enough to be considered for the release, whereas unimportant tickets may also be tracked in relation to a release, if someone has an intention to work on them. Is this right/useful? eschnett thinks this may not be useful</span.>
Which area of the code (or infrastructure) is affected. This is useful for people who are experts in a particular area to see all the problems in that component.
We have a set of keywords and meanings which allow certain things to be searched for easily. You can enter multiple keywords separated by spaces. The following are currently defined
|regression||The code or feature was previously working, and now is not. We should not release with regressions.|
|backport||The fix needs to be applied to the latest release, as well as the current trunk|
|(thorn name)||Since we don't have components for every thorn, it can be useful to put the thorn name as a keyword, so it becomes possible to search for tickets affecting specific thorns|
The version of the code that the problem is reported against. This will either be the development version or a particular release.