Github user manuzhang commented on a diff in the pull request:
https://github.com/apache/incubator-gearpump/pull/1#discussion_r59964439
--- Diff: CONTRIBUTING.md ---
@@ -53,40 +137,242 @@ No work should ever be done in the forked master.
Another way to do this is to
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 <git-user-id>/gearpump to master".
+ For example I might have 12 commits in my branch. ```git 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 <git-user-id>/gearpump to master".
-6. If there is conflict, resolve the conflict, and then
+3. If there is conflict, resolve the conflict, and then
```bash
git rebase --continue
```
After the code is successfully rebased, a window will pop up to edit the
commit log, edit it then save and exit.
-7. After rebase, now you have a clean log history. push to your remote
working branch
+4. After rebase, now you have a clean log history. push to your remote
working branch
```
git push origin branch_issueId
```
- If commits have already been pushed to <git-user-id>/gearpump fork on
github, you will have to "git push --force" to overwrite them with squashed
commits.
+ If commits have already been pushed to your
<git-user-id>/incubator-gearpump fork on github, you will have to "git push
--force" to overwrite them with squashed commits.
```
git push origin -f branch_issueId
```
-8. Ensure all the unit tests are passed by running command "sbt test".
-6. Open a PR, which is a one-click thing in github.com; it knows you
likely are opening a PR against upstream master.
[Guide](https://help.github.com/articles/creating-a-pull-request) is here.
-7. [Merge PR](https://help.github.com/articles/merging-a-pull-request),
[delete branch](https://help.github.com/articles/deleting-unused-branches).
+5. Ensure all the unit tests and integration tests are passed, check
[Test](#test) for details.
+6. Open a Pull Request, which is a one-click thing in github.com; it knows
you likely are opening a PR against upstream master.
[Guide](https://help.github.com/articles/creating-a-pull-request) is here.
+
+<a name="code-review"></a>
+# Code Review
+Committer will review your code periodically. When there is any
comment/feedback from committer(s), it's contributor's duty to update the pull
request correspondingly.
+
+When the merge was done by committer, you can optionally [delete your PR
branch](https://help.github.com/articles/deleting-unused-branches).
+
+
+<a name="build-and-test"></a>
+
+# Build and test
+Though without a development environment setup, you can still contribute
to Gearpump by reporting ideas, documentations, bug reports and feature
requests.
+It is highly recommended to set up a development emnvironment to make any
code contribution.
+
+<a name="local-copy"></a>
+## Clone Gearpump repository and make a local copy
+If you just want to study Gearpump source code, it is optional to perform
following steps.
+But, if you plans to contribute to Gearpump's code base, it is necessary
to perform following steps:
+
+1. [Fork](https://help.github.com/articles/fork-a-repo) in github from
https://github.com/apache/incubator-gearpump to create a /incubator-gearpump
repo.
+After fork, you will have a new repo at
https://github.com/<git-user_id>/incubator-gearpump.
+
+2. Clone the forked repo at your computer.
+
+ ```bash
+ git clone https://github.com/<git-user_id>/incubator-gearpump
+ cd incubator-gearpump
+ ```
+
+3. Add apache/incubator-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/apache/incubator-gearpump.git
+ ```
+
+4. In local master branch, periodically sync the forked master with the
main master with
--- End diff --
upstream master instead of main master is less confusing
---
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 [email protected] or file a JIRA ticket
with INFRA.
---