Unifying part of the work flow for engineering teams
We have gotten to the point now where Triage Ops is used by Network Team, Anti-Censorship Team, and Applications Team. The Sysadmins uses it too, but they have slightly different workflows I believe.
In this ticket I am trying to write down what would be needed to unify some of our workflows.
Assumptions
-
Each team consists of a number of members.
-
Each team have a team lead who can get slightly more of the annoying/boring tasks.
-
Each Gitlab project is usually maintained either by the team in whole (the Applications Team does this it seems) or by a subset of the team (the Network Team does this: we have C Tor and Arti maintainers as two different subsets with some overlap).
Issue Workflow
New Ticket
When a new ticket is opened, we do the following:
- If the issue gets marked "new contribution", we inform the submitter (with an @-highlight on Gitlab) about the workflow we are doing, a welcome to Tor, some info on our community, etc. (talk with the community team about this).
- The issue gets marked for "~Needs Triage" with a label.
- The issue gets put into the Backlog.
- The issue is assigned to the team lead of the team (or another owner of the specific project).
Merge Request workflow
New Merge Request
- If the MR gets marked "new contribution", we inform the submitter (with an @-highlight on Gitlab) about the workflow we are doing, a welcome to Tor, some info on our community, etc. (talk with the community team about this).
- If this MR is a draft, write a message on the MR that the current MR is marked as a draft and the submitter has to remove the draft status before it will get assigned a reviewer. Be careful here to track state.
- If the MR has the "Needs Review" label, etc. (see #2 for more info), don't auto-assign any reviewer.
- Assign the submitter as assignee of the MR.
- If it needs a reviewer, we will assign a reviewer to the MR.
Convenience Features
Random Assignee
It should be possible to mark a ticket with the label ~Random Assignee and have the bot remove the ~Random Assignee label and put an assignee in from the set of project maintainers there. This should make it easier for the team lead to bulk triage things where nobody is more qualified to solve things than others.