GitHub Projects and Issue Triage Guide
This guide provides a structured overview of how we use GitHub Projects to plan, prioritize, and track work in the pyicub
project. It also outlines how to triage issues using standard labels, views, and processes.
1. Introduction to GitHub Projects
GitHub Projects is a planning and tracking system built directly into GitHub. It allows teams to manage tasks using issues, pull requests, labels, priorities, and milestones, all organized through interactive views.
GitHub Projects enables:
- Visual task tracking through boards and timelines.
- Issue categorization and prioritization.
- Assignment of tasks and ownership.
- Structured planning using milestones and fields.
2. Project Structure
Each project consists of:
- Items: Issues or pull requests that represent work.
- Views: Ways to visualize items (Boards, Tables, Roadmaps).
- Fields: Metadata like Status, Priority, Milestone, Assignee.
- Automation: Optional rules that move or modify items automatically.
3. Core Views and Their Purpose
View Name | Purpose |
---|---|
Status Board | Kanban-style flow for daily tracking of tasks. |
Roadmap | Calendar-based timeline for long-term planning. |
Prioritized Backlog | Sorted list of tasks by priority level. |
Bugs | Shows only bug -labeled issues for QA and release prep. |
My Items | Tasks assigned to the logged-in user. |
In Review | Lists items currently under code review. |
4. Field Definitions
Field | Purpose |
---|---|
Status | Tracks task progression (Backlog, Ready, In Progress, etc.). |
Priority | Denotes urgency (P0 , P1 , P2 ). |
Assignee | Who is responsible for completing the item. |
Milestone | Targeted sprint, release, or date. |
Estimate | Optional time or effort estimate. |
5. Label Definitions
Label | Description |
---|---|
bug | A confirmed malfunction or incorrect behavior. |
documentation | Missing, unclear, or incorrect documentation. |
duplicate | Already tracked by another issue or PR. |
enhancement | A feature request or usability improvement. |
good first issue | Entry-level task suitable for new contributors. |
help wanted | Maintainers welcome external contributions. |
invalid | Not valid; caused by incorrect usage. |
question | User or contributor request for clarification. |
wontfix | Acknowledged but not planned for resolution. |
6. Triage Process
Triage ensures that issues are categorized, prioritized, and actionable. This is typically done by maintainers on a weekly basis.
Step-by-step Workflow:
-
Confirm It’s an Issue
- If it’s a question, label as
question
. - If it lacks enough context, label as
invalid
or request clarification.
- If it’s a question, label as
-
Check for Duplicates
- Search the Issues tab.
- Close duplicates and link the existing issue.
-
Label and Categorize
- Apply one or more labels (bug, enhancement, etc.).
-
Assign Priority
- P0 = urgent/blocker
- P1 = high-priority, next sprint
- P2 = low-priority, backlog
-
Assign and Schedule
- Assign a team member.
- Associate the issue with a milestone.
-
Move in Status Board
Backlog
: untriaged or new issues.Ready
: approved for development.In Progress
: active work.In Review
: under pull request.Done
: resolved/merged.
7. When to Close Issues
An issue can be closed if:
- The pull request linked to it is merged.
- It is determined to be invalid or a duplicate.
- It is accepted as
wontfix
.
8. Milestones and Roadmap Planning
Milestones group related issues and features under a release goal or sprint cycle. These are reflected visually in the Roadmap view. Each accepted issue should be attached to a milestone.
9. Best Practices
- Perform triage weekly.
- Ensure each task has a defined scope, priority, and assignee.
- Align Roadmap view with actual sprint or delivery timelines.
- Review and update issue status regularly.
- Ensure all code changes are linked to issues.