Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Jclouds Wiki" for 
change notification.

The "How to contribute" page has been changed by mattstep:
https://wiki.apache.org/jclouds/How%20to%20contribute?action=diff&rev1=3&rev2=4

  
  All contributions and patches attached to a 
[[https://issues.apache.org/jira/browse/JCLOUDS|JIRA]] issue are assumed to be 
under the [[http://www.apache.org/licenses/#clas|Apache ICLA]], so make sure 
you read and understand it before making your contributions.
  
- == The Git repositories ==
- 
- The jclouds Git repositories are hosted in the ASF infrastructure, but there 
are also have mirros in Github. This is the current repository layout:
- 
- || Apache || https://git-wip-us.apache.org/repos/asf?s=incubator-jclouds || 
The main and official repositories ||
- || Github || https://github.com/jclouds/jclouds || Mirrors from the ASF 
repositories, used to accept contributions and do code reviews ||
- || Github || https://github.com/jclouds/legacy-jclouds || The legacy 
repositories, as they were before the migration to the ASF, used to keep old 
code ||
- 
  == How to contribute ==
  
+ We use [[https://github.com/jclouds|GitHub] and 
[[https://issues.apache.org/jira/browse/JCLOUDS|JIRA]] on the jclouds project.
-  1. Create a [[https://issues.apache.org/jira/browse/JCLOUDS|JIRA]] issue for 
your feature request/bugfix.
-  2. Fork the mirrored repository from Github, clone your form and add the 
upstream repository:
-   {{{
-   git clone [email protected]:YOUR_GITHUB_USER/jclouds.git
-   cd jclouds
-   git remote add upstream git://github.com/jclouds/jclouds.git
-   }}}
  
+ Your first step is to create or find an issue in 
[[https://issues.apache.org/jira/browse/JCLOUDS|JIRA]] for your feature request 
or fix.  If it's a simple cleanup, this isn't necessary, but it's good to see 
if you're change fixes an existing issue anyway.  If it's a formatting issue 
alone, consider creating an issue for us to fix our checkstyle configuration to 
catch it in the future.
-  3. Make sure you are up to date with the last version of the master branch:
-   {{{
-   git fetch upstream
-   git rebase upstream/master
-   }}}
  
+ Next, you'll want to create a pull request in GitHub for the change you're 
interested in making.  Some good references for working with Github are below.  
We ask that you keep your change rebased to master as much as possible, and we 
will ask you to rebase again if master has moved before accepting your patch.
+ * [[https://help.github.com/articles/set-up-git|Setting Up Git with GitHub]]
+ * [[https://help.github.com/articles/fork-a-repo|Forking a Repository and 
Submitting Pull Requests with GitHub]]]
-  4. Create a topic branch for your changes:
-   {{{
-   git checkout -b my_feature
-   }}}
  
-  5. Add and commit all changes, and push the topic branch to your fork 
([[http://stackoverflow.com/questions/5968964/avoid-unwanted-merge-commits-and-other-commits-when-doing-pull-request-in-github|why
 rebase?]]):
-   {{{
-   git add .
-   git commit -m "JCLOUDS-XX: My changes" # Add the JIRA ID in the commit 
message
-   git fetch upstream                     # Verify that your branch still is 
up to date
-   git rebase upstream/master
-   git push origin my_feature
-   }}}
- 
-  6. Once your changes are pushed to your fork, 
[[https://help.github.com/articles/using-pull-requests|send us a pull request]].
-  7. Add a comment in the JIRA issue with a link to the pull request so we 
know the code is ready to be reviewed.
+ Finally, add a comment in the JIRA issue with a link to the pull request so 
we know the code is ready to be reviewed.
  
  == The review process ==
  
- Someone will review your pull request before it is merged. This process can 
take a while, but if you feel no one is taking care of it, join the #jclouds 
IRC channel in Freenode and ask for a review. You can also drop a message to 
the development mailing list.
+ Someone will review your pull request before it is merged. This process can 
take a while.
  
- During the review process you may be asked to do some changes. When applying, 
just add the new commits to the pull request without squashing the commits 
(unless you are asked to do it). This way reviewers can focus only in the 
changed stuff instead of going over the entire changes again.
+ If we are slow to respond, feel free to join us in irc on 
[[http://webchat.freenode.net/?channels=#jclouds|irc.freenode.net #jclouds]] 
and ask for help.  Feel free to also email our dev mailing list : 
[[mailto:[email protected]|[email protected]]].
+ 
+ During the review process you may be asked to do some changes. While working 
through feedback, it can be beneficial to create new commits so the incremental 
change is obvious.  This can also lead to a complex set of commits, and having 
an atomic change per commit is preferred in the end.  Use your best judgement 
and work with your reviewer as to when you should revise a commit or create a 
new one.
  
  A pull request is considered ready to be merged once it gets at lease one +1 
from a reviewer. Once all the changes are done and the pull request is 
accepted, it '''__must be rebased to the latest upstream version__'''. It is 
also a good idea to squash all the commits into a single one, since this will 
allow us to generate a clean patch and merge it properly.
  
- == Commiting the changes to the ASF repo ==
- 
- If you are not a commiter, you just have to wait. The reviewer will take care 
of commiting the changes.
- 
- If you are a commiter, you can follow these steps:
- 
-  1. Save the patch from the Github patch link (just appehd '.patch' to the 
pull request link to get it). This patch will keep the authorship of the 
commit, so we should use it instead of the diff.
-  2. If the commit message needs to be edited, edit it in the patch file.
-  3. Pull the changes in the ASF repository to make sure you have the latest 
version of the master branch.
-   {{{
-   git remote add asf 
https://git-wip-us.apache.org/repos/asf/incubator-jclouds.git
-   git fetch asf
-   git checkout master
-   git rebase asf/master
-   }}}
-  4. Apply the patch preserving the original author:
-   {{{
-   git am JCLOUDS-XX.patch
-   }}}
-  5. Run a build to make sure everything works as expected after applying the 
patch and push the changes once the build succeeds.
-   {{{
-   mvn clean install
-   git push asf master
-   }}}
-  6. If there are no issues with the applied patch, attach the patch file to 
the JIRA issue, and mark it as Resolved.
-  7. Close the pull request and leave a comment saying it has been merged.
- 

Reply via email to