|
| 1 | +# Issue Management Guide |
| 2 | + |
| 3 | +Effective issue management is key to keeping your project organized and your community engaged. This guide covers best practices for using GitHub Issues, labels, and templates to triage bug reports and feature requests. |
| 4 | + |
| 5 | +## 1. Use Issue Templates |
| 6 | + |
| 7 | +The first step to effective issue management is to get clear, structured information from contributors. GitHub's issue templates are perfect for this. |
| 8 | + |
| 9 | +- **What they are:** Pre-populated templates for bug reports and feature requests that prompt the user for specific information. |
| 10 | +- **Why they're useful:** They ensure you get the information you need to act on an issue, such as steps to reproduce a bug or the use case for a new feature. |
| 11 | +- **How to use them:** This repository includes templates in the [`.github/ISSUE_TEMPLATE`](./.github/ISSUE_TEMPLATE) directory. You can customize them to fit your project's needs. |
| 12 | + |
| 13 | +## 2. Leverage Labels |
| 14 | + |
| 15 | +Labels are a powerful tool for categorizing and prioritizing issues. A good set of labels makes it easy to see the state of your project at a glance. |
| 16 | + |
| 17 | +### Recommended Label Categories |
| 18 | + |
| 19 | +- **Issue Type:** |
| 20 | + - `bug`: A problem with the existing code. |
| 21 | + - `feature-request`: A proposal for new functionality. |
| 22 | + - `documentation`: An issue related to the docs. |
| 23 | + - `maintenance`: Chores like refactoring or updating dependencies. |
| 24 | + |
| 25 | +- **Status:** |
| 26 | + - `needs-triage`: A new issue that hasn't been reviewed yet. |
| 27 | + - `confirmed`: A bug report that has been reproduced. |
| 28 | + - `in-progress`: An issue that is actively being worked on. |
| 29 | + - `blocked`: An issue that cannot be worked on due to external factors. |
| 30 | + |
| 31 | +- **Priority:** |
| 32 | + - `critical`: Must be addressed immediately (e.g., a security vulnerability). |
| 33 | + - `high`: Important and should be prioritized. |
| 34 | + - `medium`: A standard issue. |
| 35 | + - `low`: A non-urgent issue or nice-to-have feature. |
| 36 | + |
| 37 | +- **Contribution Welcome:** |
| 38 | + - `good-first-issue`: A relatively simple issue that's a great entry point for new contributors. |
| 39 | + - `help-wanted`: An issue that you'd like the community to help with. |
| 40 | + |
| 41 | +## 3. The Triage Workflow |
| 42 | + |
| 43 | +Triage is the process of reviewing new issues and preparing them for work. A typical workflow looks like this: |
| 44 | + |
| 45 | +1. **Review New Issues:** Regularly check for issues that don't have any labels or assignees. |
| 46 | + |
| 47 | +2. **Ensure Clarity:** If an issue is unclear, ask the author for more information. If they don't respond after a reasonable amount of time, it's okay to close the issue. |
| 48 | + |
| 49 | +3. **Reproduce Bugs:** For bug reports, try to reproduce the issue based on the information provided. If you can reproduce it, add a `confirmed` label. If not, ask for more details. |
| 50 | + |
| 51 | +4. **Apply Labels:** Add the appropriate `type`, `status`, and `priority` labels to the issue. |
| 52 | + |
| 53 | +5. **Engage with the Community:** |
| 54 | + - For valid feature requests, discuss the proposal with the community to gauge interest and gather ideas. |
| 55 | + - For issues you won't address, explain why and close the issue respectfully. |
| 56 | + - For issues that are good for new contributors, add a `good-first-issue` label and perhaps a comment with pointers on how to get started. |
| 57 | + |
| 58 | +## 4. Use Milestones and Projects |
| 59 | + |
| 60 | +- **Milestones:** Group issues together for a specific release (e.g., `v1.1.0`). This helps you track progress towards your next version. |
| 61 | +- **GitHub Projects:** For more complex work, use a project board to visualize and manage the workflow of issues and pull requests, similar to a Kanban board. |
| 62 | + |
| 63 | +By implementing these practices, you can create a clear, organized, and efficient issue management process that will benefit both you and your contributors. |
0 commit comments