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. .. raw:: html
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. .. raw:: html
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. .. raw:: html
3. Core Views and Their Purpose ------------------------------- .. list-table:: :widths: 25 75 :header-rows: 1 * - 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. .. raw:: html
4. Field Definitions -------------------- .. list-table:: :widths: 20 80 :header-rows: 1 * - 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. .. raw:: html
5. Label Definitions -------------------- .. list-table:: :widths: 20 80 :header-rows: 1 * - 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. .. raw:: html
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: ~~~~~~~~~~~~~~~~~~~~~~ 1. **Confirm It’s an Issue** * If it’s a question, label as ``question``. * If it lacks enough context, label as ``invalid`` or request clarification. 2. **Check for Duplicates** * Search the Issues tab. * Close duplicates and link the existing issue. 3. **Label and Categorize** * Apply one or more labels (bug, enhancement, etc.). 4. **Assign Priority** * P0 = urgent/blocker * P1 = high-priority, next sprint * P2 = low-priority, backlog 5. **Assign and Schedule** * Assign a team member. * Associate the issue with a milestone. 6. **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. .. raw:: html
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``. .. raw:: html
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. .. raw:: html
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. .. raw:: html