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 |
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 ( |
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 |
|---|---|
|
A confirmed malfunction or incorrect behavior. |
|
Missing, unclear, or incorrect documentation. |
|
Already tracked by another issue or PR. |
|
A feature request or usability improvement. |
|
Entry-level task suitable for new contributors. |
|
Maintainers welcome external contributions. |
|
Not valid; caused by incorrect usage. |
|
User or contributor request for clarification. |
|
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
invalidor request clarification.
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.