I’m not aware of such documentation, but the highlights are (not covering project-specific ones):
- Use
confirmedfor issues withbugzillalabel if they are still relevant today (e.g. still reproduces). - When you close an issue, pay attention to closing as completed (i.e. done, resolved, fixed) and closing as not planned (i.e. not a bug, won’t fix, works for me, duplicate, stale)
- When closing an issue as not planned, be sure to add the most appropriate label with reason. Options are:
worksforme,wontfix,invalid,duplicate,incomplete - We have labels for outcomes:
crash-on-valid,crash-on-invalid,hang,miscompilation,accepts-invalid,rejects-valid. (There is alsocrashlabel, but its target audience are people doing triage for project they are not experienced with. Experts are encouraged to make a judgement betweencrash-on-validandcrash-on-invalid.) - I believe
good first issueshould come with some analysis and points of entry into codebase. new issueshould be removed when other labels are added.waiting-for-authoris useful to track which issues can be closed (often as incomplete), because author hasn’t got back to us in a while.documentationis a single label for documentation issues. Meant to be used together with a project-specific label.metabugfor (usually) long-lived issues that are used to collect references to a group of similar or related issues.enhancementfor issues that are not really issues, but e.g. feature requests. Recently we tried to improve description of this one:Improving things as opposed to bug fixing, e.g. new or missing feature.questionis obviously for questions.buglabel exists, and widely used if you look at numbers, but I consider it redundant, because we are in bug tracker context, after all.extension:*labels were recently invented for Clang, but this group might become useful for other subprojects as well. Currently it consists ofextension:gnu,extension:microsoft,extension:clang, andextension:borland.- Other useful labels:
regression,quality-of-implementation.
We strive to avoid proliferation of labels, e.g. clang should never go together with more specific clang:frontend label. My personal soft limit is 5 labels. After that point I think twice before adding another label.
Be sure to check labels specific to your project here: Labels · llvm/llvm-project · GitHub !
I believe PRs and issues should be treated the same way when it comes to labels (if possible, of course).
I’ll give it a try, but it’s not a step-by-step instruction with particular order. When I look at issue, I try to do the following:
- Find or create Compiler Explorer link.
- Ask for more context if CE link is possible, but no enough info provided
- Add
waiting-for-author
- Add
- Mark as regression
- Mark as confirmed
- Ask for more context if CE link is possible, but no enough info provided
- Add subproject/infrastructure/cmake label
- Add crash/hang/miscompilation label
- Add appropriate backend label
- Mark as question or enhancement
- I often leave
enhancementto people with more experience in respective subproject
- I often leave
If I end up doing anything (leaving a comment or labeling), I remove new issue. To be honest, I feel embarrassed each time I look at 273 Open 50 Closed “new” issues, which date back months and years. So recently I’ve been draining this queue.