How to Contribute To Hama
Getting the source code
First of all, you need the Hama source code. The official location for Hama is the Apache SVN repository; Git is also supported, and useful if you want to make lots of local changes -and keep those changes under some form or private or public revision control.
SVN access
Get the source code on your local drive using SVN. Most development is done on the TRUNKDownload the latest stable Hama source release from http://www.apache.org/dyn/closer.cgi/hama and extract the files. You can get the latest source code using:
No Format |
---|
svngit checkoutclone https://svngit-wip-us.apache.org/repos/asf/hama/trunk hama-trunk |
Git access
...
. |
...
git
|
Eclipse Project File Generation
...
- All public classes and methods should have informative Javadoc comments.
- Code should be formatted according to hama-code-formatter hama-code-formatter fallbacklink
- Contributions should pass existing unit tests.
- New unit tests should be provided to demonstrate bugs and fixes.
- Please resolve all warnings according to "Eclipse Warning Levels" below
...
Creating a patch
Please make sure that all unit tests succeed before constructing your patch and that no new javac compiler warnings are introduced by your patch.Check to see what files you have modified with:
No Format |
---|
> cd hama-trunk > mvn install or > mvn --projects core,examples install # build website > mvn site |
After a while, if you see
No Format |
---|
BUILD SUCCESSFUL
|
all is OK.
Creating a patch
Check to see what files you have modified with:
No Format |
---|
svn stat
|
Add any new files with:
No Format |
---|
svn add src/.../MyNewClass.java
|
In order to create a patch, type (from the root directory of hama):
No Format |
---|
svn diff > HAMA-321.patch
|
...
% git status
|
Add any new files with:
No Format |
---|
% git add any_files_you_created_modified_or_deleted
|
In order to create a patch, type
No Format |
---|
% git diff --cached > /tmp/HAMA-131.patch
|
Submitting a pull request to GitHub
The Hama apache repository is cloned at the GitHub https://github.com/apache/hama, which is connected to the JIRA issue manager. First, you need to create a GitHub account. Then, you need to fork the Hama master by pushing the fork button on the Hama master. Let say that your GitHub username is xxxxx. You should always bring your local fork up-to-date using the following git commands:
No Format |
---|
# clone your local fork (NOT the Hama master)
git clone https://github.com/xxxxx/hama.git current
cd current
# pull all recent changes from the Hama master
git pull https://github.com/apache/hama.git master
# bring the local fork up-to-date
git push origin master
|
Wiki Markup |
---|
Lets say that you want to create a pull request for the HAMA issue \[HAMA-1234\] ...issue-title.... You need to create a new branch of your local fork, say named HAMA-1234 |
No Format |
---|
# create a new branch inside your directory 'current'
git checkout -b HAMA-1234
# ... do some changes to the files ...
# store changes in the branch
git push origin HAMA-1234
# commit changes to the branch
git commit -a -m '[HAMA-1234] ...issue-title...'
Then go to your GitHub HAMA page and do a Pull Request. Use the same title [HAMA-1234] ...issue-title....
|
Stay involved
Contributors should join the Hama mailing lists. In particular, the commit list (to see changes as they are made), the dev list (to join discussions of changes) and the user list (to help others).
...