Return-Path: X-Original-To: apmail-gearpump-dev-archive@minotaur.apache.org Delivered-To: apmail-gearpump-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 6ED13195BF for ; Thu, 21 Apr 2016 06:05:20 +0000 (UTC) Received: (qmail 89173 invoked by uid 500); 21 Apr 2016 06:05:20 -0000 Delivered-To: apmail-gearpump-dev-archive@gearpump.apache.org Received: (qmail 89138 invoked by uid 500); 21 Apr 2016 06:05:20 -0000 Mailing-List: contact dev-help@gearpump.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@gearpump.incubator.apache.org Delivered-To: mailing list dev@gearpump.incubator.apache.org Delivered-To: moderator for dev@gearpump.incubator.apache.org Received: (qmail 73370 invoked by uid 99); 21 Apr 2016 05:56:35 -0000 X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -4.021 X-Spam-Level: X-Spam-Status: No, score=-4.021 tagged_above=-999 required=6.31 tests=[KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001] autolearn=disabled From: manuzhang To: dev@gearpump.incubator.apache.org Reply-To: dev@gearpump.incubator.apache.org References: In-Reply-To: Subject: [GitHub] incubator-gearpump pull request: gearpump-34 update developer docu... Content-Type: text/plain Message-Id: <20160421055631.53598DFB7A@git1-us-west.apache.org> Date: Thu, 21 Apr 2016 05:56:31 +0000 (UTC) Github user manuzhang commented on a diff in the pull request: https://github.com/apache/incubator-gearpump/pull/1#discussion_r60529454 --- Diff: CONTRIBUTING.md --- @@ -1,92 +1,378 @@ -This documents are for committers which have direct write permission to intel-hadoop/gearpump +# Developer documentation -Commit Guideline -======================== -1. For all commit(except doc), must create an issue id. -2. For all commit log message, must contain the issue id, Like this: fix #issueId, comments. -3. For all PR, the title must contains issue Id. -4. We use rebase and squash instead of merge to ensure the log message is clean. Check section "Pull Request merge process for Gearpump" -5. Every commit (except doc) must have 1 guy to review before commit. +This document summarizes the information relevant to Gearpump committers and contributors. It includes information about +the development processes and policies as well as the tools we use to facilitate those. -Pull Request merge process for Gearpump -======================== -1. Fork in github to create a /gearpump repo. After fork, you will have a new repo at http://github.com//gearpump. -2. Add gearpump/gearpump as an external repo 'upstream' by following the [guide](https://help.github.com/articles/configuring-a-remote-for-a-fork/). +--- - ```bash - git remote add upstream https://github.com/gearpump/gearpump.git - ``` +Table of Contents +* Welcome! +* Contribution workflow + * Report a bug + * Request a new feature + * Contribute code/document by creating a Pull Request + * Code Review +* Build the code and run the tests + * Make a local copy of Gearpump + * How to build + * How to test + * How to build document + * IDE setup + * Code style + * How to write unit test + * How to write integration test + * How to write document +* Committer section + * Approve a pull request + * Merge a pull request or patch + * How to make a release -3. In local master branch, periodically sync the forked master with the main master with - - ``` - git pull --rebase upstream master - git push origin master - ``` -No work should ever be done in the forked master. Another way to do this is to +--- - ``` - git checkout master - git fetch upstream - git rebase upstream/master - ``` + + +# Welcome! + +If you are reading this document then you are interested in contributing to the Gearpump project -- many thanks for that! +All contributions are welcome: ideas, documentation, code, patches, bug reports, feature requests, etc. + + + +# Contribution workflow + +This section explains how to make a contribution. + + + + +## Report a bug + +To report a bug you should [open an issue](https://issues.apache.org/jira/browse/GEARPUMP) in our issue tracker that +summarizes the bug. Set the form field "Issue type" to "Bug". If you have not used the issue tracker before you will +need to register an account (free), log in, and then click on the red "Create Issue" button in the top navigation bar. + +In order to help us understand and fix the bug it would be great if you could provide us with: + +1. The steps to reproduce the bug. This includes information about e.g. the Gearpump version you were using, the deployment model, etc. +2. The expected behavior. +3. The actual, incorrect behavior. + +Feel free to search the issue tracker for existing issues (aka tickets) that already describe the problem; if there is +such a ticket please add your information as a comment. + +**If you want to provide a patch along with your bug report:** +That is great! In this case please send us a pull request as described in section [Create a pull request](#create-pr) below. +You can also opt to attach a patch file to the issue ticket, but we prefer pull requests because they are easier to work +with. + + + + +## Request a new feature + +To request a new feature you should [open an issue](https://issues.apache.org/jira/browse/GEARPUMP) in our issue tracker +and summarize the desired functionality. Set the form field "Issue type" to "New feature". If you have not used the +issue tracker before you will need to register an account (free), log in, and then click on the blue "Create Issue" +button in the top navigation bar. -4. Create a working branch + + + +## Contribute code/document by creating Pull Request +Before you set out to contribute code we recommend that you familiarize yourself with the Gearpump codebase and corresponding development document at Gearpump website. + +_If you are interested in contributing code to Gearpump but do not know where to begin:_ +In this case you should +[browse our issue tracker for open issues and tasks](https://issues.apache.org/jira/browse/GEARPUMP/?selectedTab=com.atlassian.jira.jira-projects-plugin:issues-panel). + +Contributions to the Gearpump codebase should be sent as GitHub pull requests. See section [Create a pull request](#create-pr) below +for details. If there is any problem with the pull request we can iterate on it using the commenting features of +GitHub. + +* For _small patches_, feel free to submit pull requests directly for those patches. +* For _larger code contributions_, please use the following process. The idea behind this process is to prevent any + wasted work and catch design issues early on. + + 1. [Open an issue](https://issues.apache.org/jira/browse/GEARPUMP) on our issue tracker if a similar issue does not + exist already. If a similar issue does exist, then you may consider participating in the work on the existing + issue. + 2. Comment on the issue with your plan for implementing the issue. Explain what pieces of the codebase you are + going to touch and how everything is going to fit together. + 3. Gearpump committers will iterate with you on the design to make sure you are on the right track. + 4. Implement your issue, create a pull request (see below), and iterate from there. + + +### Contribution Guideline +1. For all commits, must create an issue id. +2. For all commit log messages, must contain the issue id, Like this: fix #issueId, comments. +3. For all PRs (pull request), the title must contains issue Id. +4. We use rebase and squash instead of merge to ensure the log message is clean. Check section "Pull Request merge process for Gearpump" +5. Every commit (except doc) must have 1 committer to review before commit. + + +### Create a Pull Request +Before working on code contribution, you need to prepare your [development environment](#build-and-test). + +To work on a code contribution, following process is suggested: + +1. You need to create a working branch (before that, please make sure your local master is synced with **upstream** master.) ``` git branch branch_issueId - git checkout branch_issusId + git checkout branch_issueId ``` - Work on the branch, make changes, then push to your forked gearpump repo http://github.com//gearpump + Work on the branch, make changes, then push to your forked Gearpump repo http://github.com//incubator-gearpump. ``` git push origin branch_issueId ``` -5. When there is changes in upstream/master, rebase your work on upstream/master. with +2. When there are changes in upstream/master, rebase your work on upstream/master. ```bash git checkout branch_issueId git rebase -i upstream/master ``` You can also use this when you want to squash(merge) multiple commits into one. - ```git rebase -i``` will popup a window, which allow you to squash(merge) multiple commits into one commit. - For example I might have 12 commits in my branch. "rebase -i upstream/master" opens a nice editor where you can mark some commits to be squashed(merged) into prior commits, and make 1 big commit (or several) out of it. In this way, I can tidy up what will be committed to the project master's history since otherwise my commit messages are like "not working" or "got it working" or "more fix" or "merged /gearpump to master". + ```git rebase -i``` will pop up a window, which allow you to squash(merge) multiple commits into one commit. --- End diff -- allow => allows --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastructure@apache.org or file a JIRA ticket with INFRA. ---