docs/process/issue-triage.md
Triage (/ˈtriːɑːʒ/ or /triːˈɑːʒ/) is the process of determining the priority of patients' treatments based on the severity of their condition. This rations patient treatment efficiently when resources are insufficient for all to be treated immediately.
From Wikipedia
The above describes medical triage but it is clear that it also applies to our situation. Triage is a process of sifting through all the things that we could work on to select the few things that we will work on. In order to maximize the impact we have for the people that use GitHub Desktop, things that will get top priority are items that are well-described, clearly presented and have obvious benefit.
Additionally, we want to encourage helpful feedback and meaningful participation. In order to do this, we will have to be clear about what we need from people so that we can deliver what they need. This also means that we will have to be very clear and decisive when we are not getting the information or cooperation we need so that we can move on. Just like in an emergency room, if it is a choice between spending several hours to have a 10% chance of saving one person or spending several hours definitely saving multiple people, the choice is clear.
triaged or closedThe GitHub Desktop issues list is what the maintainers team uses to guide our work. In order for our work to be focused and efficient, our issues list must be clean and well-organized. Accepting input from the community is a significant benefit when it does not distract us from making things better.
In order to be considered triaged an issue must contain or be edited to contain in the body of the issue:
You'll notice above that the body of the issue gets special mention. The body of the issue is the description of the task to be done. A maintainer should only have to read the body of the issue to understand what needs to happen. They should not have to read the pages of comments to understand what they need to do in order to address the issue at hand.
Keep in mind that this is not the 100% complete maintainer's guide to issues. This is only a triage process. Once everything has been checked, the issue reproduced and appropriate labels have been applied, the triage process is done with the issue. There may be additional maintenance that needs to be done on issues from time to time that isn't and won't be covered here.
bug if the issue is a regression or behaviour that
needs to be fixed.support if the issue is specific to one person's
configuration and isn't more broadly relevant to other users.more-information-needed.needs-reproduction and
ask the author of the issue for clarification on the repro steps.enhancement if the issue mentions new behaviour
or functionality that the app should have.If a reviewer cannot understand or reproduce the issue with the information provided, they should add a comment indicating what is not clear and add the label more-information-needed.
Although we use a bot, the first responder should also do a manual sweep of issues that are open and labeled more-information-needed at least once a week.
more-information-needed issue is stale for more than 14 days after the last comment by a reviewer, the issue will be automatically closed by the no-response bot.I'm closing the issue due to inactivity but I'm happy to re-open if you can provide more details.If an issue reported feels specific to one user's setup and a solution will likely not be relevant to other users of Desktop, the reviewer should add the label support
and @-mention @desktop/support so they're able to work with the user to figure out what's causing the problem.
If a problem is consistently not reproducible, we need more information
from the person reporting the problem. If it isn't a simple misunderstanding
about the steps to reproduce the problem, then we should label it
more-information-needed as well and follow that process.
These are problems with the current app that are identified by users. These should be reviewed to ensure they:
We will use the more-information-needed and reproduction-required labels to
indicate when issues are incomplete.
Once enough detail has been captured about the issue, and it can be reproduced by one of the maintainers, these should be prioritized by the team. Severe bugs or bugs affecting many users would be prioritized above minor or low impact bugs.
Changes or improvements to existing features of the application are generally fine, but should have some review process before they are implemented. Contributors are encouraged to open issues to discuss enhancements so that other contributors can see and participate in the discussion, and the core team can remain transparent about the interactions.
To ensure the quality of the application remains high over time, the core team may need to work with the user proposing the change to clarify details before work should proceed:
e.g. GitHub Desktop should support worktrees as a first class feature.
We anticipate ideas or suggestions that don't align with how we see the application evolving, so we may close issues with an explanation of why.
e.g. GitHub Desktop should support working with Mercurial repositories.