GitHub user vinothchandar created a discussion: Proposal for project management on Github
Today, we've moved JIRA to read-only mode. As we work on migrating relevant issues over from JIRA to GH, I want to start a discussion on how we organize dev tasks here.. Below is an outline consistent with [RFC-85](https://github.com/apache/hudi/blob/master/rfc/rfc-85/rfc-85.md), as well as common standard practices adopted by GH projects. ### Background Previously, the Hudi community organized work in JIRA using: - Epics → high-level initiatives - Stories → user-facing requirements - Subtasks → fine-grained technical tasks - Issue types → Bug, Blocker, Improvement, Feature etc.. - Versions → for release tracking Now that we have migrated to GitHub Issues, we need an equivalent process <img width="344" height="492" alt="image" src="https://github.com/user-attachments/assets/dc62dc26-ad58-43ee-b8f2-d1f24b5f9e48" /> ### Work Breakdown Structure Epics - Represented as GitHub Issues with `type:epic` - Use a task list (- [ ]) inside the issue body to track linked stories or tasks. - Epics can be grouped in GitHub Projects for visualization. Stories - Represented as GitHub Issues with `type:story` - Should be linked to an Epic (via “parent relationship”). Tasks - Represented as GitHub Issues with `type: task` - Fine-grained work items, often linked to a Story. - Can be directly referenced in PRs using “Closes #ID”. ⸻ ### Issue Types & Labels Additionally, we will rely on labels to replicate JIRA’s issue types: • type: bug → Defects and regressions • type: feature → New functionality • type: improvement → Enhancements to existing functionality • type: blocker → Critical issues that block releases Additional dimensions: • `area: <component>` (e.g., area: writer, area: compaction, area: metadata) • priority: high | medium | low • status: triaged | in-progress | blocked | done ⸻ ### Release Tracking • Use GitHub Milestones for release versions (e.g., 0.17.0, 0.18.0). • Issues are assigned to milestones to track inclusion in a release. • Each milestone will have: • A target release date • A changelog draft (via GitHub release notes generator) ⸻ ### Projects for Planning • Use GitHub Projects (v2) for community roadmaps and release tracking. • Columns: Backlog → In Progress → In Review → Done • Epics and Stories can be cards in Projects for visibility. ⸻ ### Contribution Workflow 1. Contributor opens an issue (bug, feature, improvement, task). 2. Triagers apply correct labels (type, area, priority, status). 3. Issue may be linked to an Epic/Story if relevant. 4. Issue assigned to a milestone if intended for a release. 5. Work progresses via PRs, linked back to the issue. 6. Upon merge, issue is automatically closed if PR references it. ### Issue and PR titles Instead of JIRA numbers, we can move towards denoting the nature of code change or issue easily in title. Core Types • (feat) → A new feature (e.g., (feat) Add support for async compaction) • (fix) → A bug fix (e.g., (fix) Resolve NPE in HoodieTimeline) • (docs) → Documentation changes only (e.g., (docs) Update quickstart for Spark 3.5) • (style) → Code style, formatting, or lint-only changes (no logic impact) • (refactor) → Code changes that neither fix a bug nor add a feature (e.g., cleanups, restructuring) • (perf) → Performance improvements (e.g., (perf) Optimize bloom filter lookup) • (test) → Adding or correcting tests • (chore) → Tooling, build system, CI/CD, or maintenance tasks • (improvement) → Enhancements to existing functionality (aligns with past JIRA usage) • (blocker) → Critical issues that block a release (rare, reserved use) • (security) → Security-related fixes or improvements • (breaking) → Use alongside others (e.g., (feat)! or (refactor)!) to indicate a breaking change ⸻ ### Next Steps We can use this discussion to update/improve the process and finalize. - Community review of this proposal. - Cleanup existing labels. - Changes to PR linting scripts. - Changes to Issue and GH templtes. - Seed initial epics and stories. - Update contributor guide with the new workflow. - Migration and reorganization from JIRA. GitHub link: https://github.com/apache/hudi/discussions/13877 ---- This is an automatically sent email for dev@hudi.apache.org. To unsubscribe, please send an email to: dev-unsubscr...@hudi.apache.org