yanghua commented on a change in pull request #1141: [MINOR] Improve 
documentation around existing contribution guidelines
URL: https://github.com/apache/incubator-hudi/pull/1141#discussion_r361590198
 
 

 ##########
 File path: docs/contributing.md
 ##########
 @@ -85,12 +46,103 @@ Here's a typical lifecycle of events to contribute to 
Hudi.
  - [Voting on a release](https://www.apache.org/foundation/voting.html): 
Everyone can vote.
    Only Hudi PMC members should mark their votes as binding.
 
+## Life of a Contributor
+
+This document details processes and procedures we follow to make contributions 
to the project and take it forward. 
+If you are looking to ramp up into the project as a contributor, we highly 
encourage you to read this guide in full, familiarize yourself with the 
workflow 
+and more importantly also try to improve the process along the way as well. 
+
+### Filing JIRAs
+
+ - Hudi uses JIRA to manage issues. First familiarize yourself with the 
various [components](https://issues.apache.org/jira/projects/HUDI/components) 
against which issues are filed in Hudi.
+ - Make an attempt to find an existing JIRA, that may solve the same issue you 
are reporting. When in doubt, you can always email the mailing list so that 
community can provide early feedback, 
+   point out any similar JIRAs or RFCs. 
+ - Try to gauge whether this JIRA needs an 
[RFC](https://cwiki.apache.org/confluence/display/HUDI/RFC+Process). As always, 
email the mailing list if unsure. If you need a RFC since the change is
+   large in scope, then please follow the wiki instructions to get the process 
rolling along.
+ - While raising a new JIRA or updating an existing one, please make sure to 
do the following
+      - The issue `type` and `components` (when resolving the ticket) are set 
correctly
+      - If you intend to target the JIRA for a specific release, please fill 
in the `fix version(s)` field, with the [release 
number](https://issues.apache.org/jira/projects/HUDI/releases).
+      - Summary should be descriptive enough to catch the essence of the 
problem/ feature
+      - Where necessary, capture the version of Hudi/Spark/Hive/Hadoop/Cloud 
environments in the ticket
+      - Whenever possible, provide steps to reproduce via sample code or on 
the [docker setup](https://hudi.apache.org/docker_demo.html)
+ - All newly filed JIRAs are placed in the `NEW` state. If you sure about this 
JIRA representing valid, scoped piece of work, please click `Accept Issue` to 
move it `OPEN` state
+ - If you are not sure, please wait for a PMC/Committer to confirm/triage the 
issue and accept it. This process avoids contributors spending time on JIRAs 
with unclear scope.
+ - Whenever possible, break down large JIRAs (e.g JIRAs resulting from a 
[RFC](https://cwiki.apache.org/confluence/display/HUDI/RFC+Process)) into `sub 
tasks` by clicking `More > create sub-task` from the parent JIRA , 
+   so that the community can contribute at large and help implement it much 
quickly. We recommend prefixing such JIRA titles with `[UMBRELLA]`
+
+### Claiming JIRAs
+
+ - Finding a JIRA to work on 
+      - If you are new to the project, you can ramp up by picking up any 
issues tagged with the 
[newbie](https://issues.apache.org/jira/issues/?jql=project+%3D+HUDI+AND+component+%3D+newbie)
 component.
+      - If you want to work on some higher priority issue, then scout for Open 
issues against the next release on the JIRA, engage on unassigned/inactive 
JIRAs and offer help.
+      - Issues tagged with `Usability` , `Code Cleanup`, `Testing` components 
often present excellent opportunities to make a great impact.
+ - If you don't have perms to self-assign JIRAs, please email the dev mailing 
list with your JIRA id and a small intro for yourself. We'd be happy to add you 
as a contributor.
+ - As courtesy, if you are unable to continue working on a JIRA, please move 
it back to "OPEN" state and un-assign yourself.
+      - If a JIRA or its corresponding pull request has been inactive for a 
week, awaiting feedback from you, PMC/Committers could choose to re-assign them 
to another contributor.
+      - Such re-assignment process would be communicated over JIRA/GitHub 
comments, checking with the original contributor on his/her intent to continue 
working on the issue.
+      - You can also contribute by helping others contribute. So, if you don't 
have cycles to work on a JIRA and another contributor offers help, take it!
+
+### Contributing Code
+
+ - Once you finalize on a project/task, please open a new JIRA or assign an 
existing one to yourself. 
+      - Almost all PRs should be linked to a JIRA. It's always good to have a 
JIRA upfront to avoid duplicating efforts.
+      - If they changes are minor, then `[MINOR]` prefix can be added to Pull 
Request title without a JIRA. 
+      - But, you may be asked to file a JIRA, if reviewer deems it necessary
+ - Before you begin work,
+      - Claim the JIRA using the process above and assign the JIRA to yourself.
+      - click "Start Progress" on the JIRA, which tells everyone that you are 
working on the issue actively.
+ - [Optional] Familiarize yourself with internals of Hudi using content on 
this page, as well as [wiki](https://cwiki.apache.org/confluence/display/HUDI)
+ - Make your code change
+   - Every source file needs to include the Apache license header. Every new 
dependency needs to have an 
+     open source license 
[compatible](https://www.apache.org/legal/resolved.html#criteria) with Apache.
+   - If you are re-using code from another apache/open-source project, 
licensing needs to be compatible and attribution added to `LICENSE` file
+   - Please DO NOT copy paste any code from stackoverflow or other online 
sources, since their license attribution would be unclear. Author them yourself!
+   - Get existing tests to pass using `mvn clean install -DskipITs`
+   - Add adequate tests for your new functionality
+   - For involved changes, its best to also run the entire integration test 
suite using `mvn clean install`
+   - For website changes, please build the site locally & test navigation, 
formatting & links thoroughly
+   - If your code change changes some aspect of documentation (e.g new config, 
default value change), 
+     please ensure there is a another PR to [update the 
docs](https://github.com/apache/incubator-hudi/blob/asf-site/docs/README.md) as 
well.
+ - Sending a Pull Request
+   - Format commit and the pull request title like `[HUDI-XXX] Fixes bug in 
Spark Datasource`, 
+     where you replace `HUDI-XXX` with the appropriate JIRA issue. 
+   - Please ensure your commit message body is descriptive of the change. 
Bulleted summary would be appreciated.
 
 Review comment:
   Bulleted -> A bulleted

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to