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

Reply via email to