You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by dl...@apache.org on 2014/05/28 00:03:57 UTC

svn commit: r1597887 - /mahout/site/mahout_cms/trunk/content/developers/github.mdtext

Author: dlyubimov
Date: Tue May 27 22:03:57 2014
New Revision: 1597887

URL: http://svn.apache.org/r1597887
Log:
CMS commit to mahout by dlyubimov

Added:
    mahout/site/mahout_cms/trunk/content/developers/github.mdtext   (with props)

Added: mahout/site/mahout_cms/trunk/content/developers/github.mdtext
URL: http://svn.apache.org/viewvc/mahout/site/mahout_cms/trunk/content/developers/github.mdtext?rev=1597887&view=auto
==============================================================================
--- mahout/site/mahout_cms/trunk/content/developers/github.mdtext (added)
+++ mahout/site/mahout_cms/trunk/content/developers/github.mdtext Tue May 27 22:03:57 2014
@@ -0,0 +1,92 @@
+Title:
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+# Handling Github PRs #
+
+----------
+
+
+## how to create a PR (for contributers)
+
+Read [[1]]. 
+
+Pull requests are made to apache/mahout repository on Github. 
+
+## merging a PR and closing it (for committers). 
+
+Remember that pull requests are equivalent to a remote branch with potentially a multitude of commits. 
+In this case it is recommended to squash remote commit history to have one commit per issue, rather 
+than merging in a multitude of contributer's commits. In order to do that, as well as close the PR at the 
+same time, it is recommended to use **squash commits**.
+
+Read [[2]] (merging locally). Merging pull requests are equivalent to merging contributor's branch:
+
+    git checkout master      # switch to local master branch
+    git pull apache master   # fast-forward to current remote HEAD
+    git pull --squash https://github.com/cuser/mahout cbranch  # merge to master 
+
+
+In this example we assume that contributor Github handle is "cuser" and the PR branch name is "cbranch" there. We also 
+assume that *apache* remote is configured as 
+
+    apache  https://git-wip-us.apache.org/repos/asf/mahout.git (fetch)
+    apache  https://git-wip-us.apache.org/repos/asf/mahout.git (push)
+
+
+Squash pull ensures all PR history is squashed into single commit. Also, it is not yet committed, even if 
+fast forward is possible, so you get chance to change things before committing.
+
+At this point resolve conflicts, if any, or ask contributor to rebase on top of master, if PR went out of sync.
+
+Also run regular patch checks and change CHANGELOG.
+
+Suppose everything is fine, you now can commit the squashed request 
+
+    git commit -a
+
+edit message to contain "MAHOUT-YYYY description **closes #ZZ**", where ZZ is the pull request number. 
+Including "closes #ZZ" will close PR automatically. More information [[3]].
+
+   push apache master
+
+(this will require credentials).
+
+Note on squashing: Since squash discards remote branch history, repeated PRs from the same remote branch are 
+difficult for merging. The workflow implies that every new PR starts with a new rebased branch. This is more 
+important for contributors to know, rather than for committers, because if new PR is not mergeable, github
+would warn to begin with. Anyway, watch for dupe PRs (based on same source branches). This is a bad practice.
+     
+## Closing a PR without committing 
+
+When we want to reject a PR (close without committing), just do the following commit on master's HEAD 
+*without merging the PR*: 
+
+    git commit --allow-empty -m "closes #ZZ *Won't fix*"
+    git push apache master
+
+that should close PR without merging and any code modifications in the master repository.
+
+## Apache/github integration features 
+
+Read [[4]]. Issue handles mentioned in comments and PR name should post to mailing lists and Jira.
+
+
+[1]: https://help.github.com/articles/creating-a-pull-request
+[2]: https://help.github.com/articles/merging-a-pull-request#merging-locally
+[3]: https://help.github.com/articles/closing-issues-via-commit-messages
+[4]: https://blogs.apache.org/infra/entry/improved_integration_between_apache_and

Propchange: mahout/site/mahout_cms/trunk/content/developers/github.mdtext
------------------------------------------------------------------------------
    svn:eol-style = native