milleruntime commented on a change in pull request #37: Accumulo 4714 Create 
landing page for new developers
URL: https://github.com/apache/accumulo-website/pull/37#discussion_r150628204
 
 

 ##########
 File path: pages/how-to-contribute.md
 ##########
 @@ -0,0 +1,149 @@
+---
+title: How To Contribute
+permalink: /how-to-contribute/
+redirect_from: /contributor/
+---
+
+Contributions are welcome to all Apache Accumulo repositories. While most 
contributions are code,
+there are other ways to contribute to Accumulo:
+
+* answer questions on mailing lists
+* review pull requests
+* verify and test new releases
+* update the Accumulo website and documentation
+
+Contributions are reviewed (via GitHub pull requests) by
+the community before being merged by a committer.
+
+This document provides basic instructions for contributing to Accumulo.  If 
you are looking for more information, check out the more comprehensive 
[contributor guide](/contributors-guide/).
+
+## Issues
+
+Any contribution should have a corresponding issue. Accumulo uses [JIRA] for 
issue tracking. Before creating an issue,
+you will need to create an [Apache JIRA account][jira-signup]. If you need 
help finding an issue to work on, check out
+the [open issues labeled for newbies][newbie-issues] or [contact us][contact].
+
+## Repositories
+
+Contributions can be made to the following repositories. While the general 
contribution workflow is
+described below, repositories have special instructions in their 
`CONTRIBUTING.md` file which can be
+viewed by clicking on the `C` in the Links column below.
+
+| Repository                      | Links    | Description
+| ------------------------------- | -------- | -----------
+| [Accumulo][a]                   | [C][ac]  | Core Project
+| [Accumulo Website][w]           | [C][wc]  | Source for this website
+| [Accumulo Examples][e]          | [C][ec]  | Accumulo example code
+| [Accumulo Testing][t]           | [C][tc]  | Accumulo test suites such as 
continuous ingest and random walk
+| [Accumulo Docker][d]            | [C][dc]  | Source for Accumulo Docker image
+| [Accumulo Wikisearch][s]        | [C][sc]  | Accumulo example application 
that indexes and queries Wikipedia data
+
+## Contribution workflow
+
+1. Create an [Apache JIRA account][jira-signup] (for issue tracking) and 
[GitHub account][github-join] (for pull requests).
+1. Find an [issue][newbie-issues] to work on or create one that describes the 
work that you want to do.
+1. [Fork] and [clone] the GitHub repository that you want to contribute to.
+1. Create a branch in the local clone of your fork.
+```    
+    git checkout -b accumulo-4321
+```    
+1. Do work and commit to your branch. You can reference [this link][messages] 
for a guide on 
+to write good commit log messages in git.
+1. Ensure you works satisfies the guidelines laid out in the `CONTRIBUTING.md` 
file.
+1. If needed, squash to the minimum number of commits. For help on squashing 
commits, see this tutorial or StackOverflow answer.
+1. [Push] your branch to your fork.
+```
+    git push origin accumulo-4321
+```
+1. Create a [Pull Request] on GitHub to the appropriate repository. If the 
work is not complete and the Pull Request is for feedback, please put `[WIP]` 
in the subject.
+1. At least one committer (and others in the community) will review your pull 
request and add any comments to your code.
+1. Push any changes from the review to the branch as new commits so the 
reviewer only needs to review new changes. Please avoid squashing commits after 
the review starts. Squashing makes it hard for the reviewer to follow the 
changes.
+1. Repeat this process until a reviewer approves the pull request.
+1. When the review process is finished, all commits on the pull request may be 
squashed by a committer. Please avoid squashing as it makes it difficult for 
the committer to know if they are merging what was reviewed.
+
+## Coding Guidelines
+
+* If a change needs to go into multiple branches of Accumulo, it should be 
merged into earlier branches then later branches. 
+* Accumulo follows [semver] for its public API. Accumulo lists which packages 
are public API in its [README.md][accumulo-readme]. 
+* Every file requires the ASF license header as described in [ASF Source 
Header][srcheaders].
+* Remove all trailing whitespaces. Eclipse users can use Source→Cleanup 
option to accomplish this.
+* Use 2 space indents and never use tabs!
+* Use 160-column line width for Java code and Javadoc.
+* Use a new line with single statement if/else blocks.
+* Do not use Author Tags. The code is developed and owned by the community.
+
+## Code Editors
+
+Feel free to use any editor when contributing Accumulo. If you are looking for 
a recommendation, many Accumulo
+developers use [IntelliJ][intellij] or [Eclipse][eclipse]. Below are some 
basic instructions to help you get started.
+
+### IntelliJ
+
+1. Download and install [IntelliJ][intellij]
+1. Clone the Accumulo repository that you want to work on.
+   ```shell
+   git clone https://github.com/apache/accumulo.git
+   ```
+1. [Import][intellij-import] the repository as a Maven project into IntelliJ
+1. (Optional) Download and import `Eclipse-Accumulo-Codestyle.xml` from 
Accumulo's [contrib][accumulo-contrib] directory
+  * Import via `File` > `Settings` > `Code Style` and clicking on cog wheel
+
+### Eclipse
+
+1. Download and install [Eclipse][eclipse].
+1. Clone the Accumulo repository that you want to work on.
+   ```shell
+   git clone https://github.com/apache/accumulo.git
+   ```
+1. [Import][eclipse-import] the repository as a Maven project into Eclipse
+1. (Optional) Download and import Eclipse formatting and style guides from 
Accumulo's [contrib][accumulo-contrib] directory
+  * Import Formatter: `Preferences` > `Java` > `Code Style` > `Formatter` and 
import the `Eclipse-Accumulo-Codestyle.xml` downloaded in the previous step. 
+  * Import Template: `Preferences` > `Java` > `Code Style` > `Code Templates` 
and import the `Eclipse-Accumulo-Template.xml`. Make sure to check the 
"Automatically add comments" box. This template adds the ASF header and so on 
for new code.
+
 
 Review comment:
   +1 for tips with setting up IDEs

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to