[
https://issues.apache.org/jira/browse/SAMOA-13?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14350475#comment-14350475
]
ASF GitHub Bot commented on SAMOA-13:
-------------------------------------
Github user gdfm commented on a diff in the pull request:
https://github.com/apache/incubator-samoa/pull/6#discussion_r25952157
--- Diff: CONTRIBUTING.md ---
@@ -1,18 +1,74 @@
How to contribute?
=================
-User contribution is essential to keep moving the project forward.
+The best way to submit a contribution to Apache SAMOA is through a GitHub
pull request.
-# Getting Started
+Here is a guide to contribute to Apache SAMOA.
-1. [Fork the repository](https://help.github.com/articles/fork-a-repo) on
GitHub
+## Where is the source code?
-2. Sign the [Contributor License Agreement]
(http://www.clahub.com/agreements/gdfm/samoa)
+SAMOA source code is maintained through **git**. The Apache SAMOA [git
repository](git://git.apache.org/incubator-samoa.git) is the source of truth.
Only SAMOA committers can push updates to this repo.
-3. Create a feature branch ```git checkout -b branch_name```
+The Apache git repo is [mirrored to
github](https://github.com/apache/incubator-samoa) for convenience. This mirror
is read-only.
-4. Make your changes (please make commits that are logical units)
+For writing contributions we suggest you start by
[forking](https://help.github.com/articles/fork-a-repo) the [GitHub Apache
SAMOA](https://github.com/apache/incubator-samoa) repository.
-5. Build and run tests
+## How do I build the software?
-6. Submit a [pull
request](https://help.github.com/articles/using-pull-requests)
+We use [**maven**](http://maven.apache.org/): `mvn clean install`
+
+Note that this only builds the core artifacts of SAMOA (instances, API,
local engine and test framework).
+
+To build everything, including the integrations with various stream
processing platforms use the "all" profile: `mvn clean install -Pall`
+
+You may also specify platform profiles individually: `-Pstorm`, `-Ps4`,
`-Psamza`, `-Pthreads`.
+
+
+
+## What rules should I follow in a code contribution?
+
+
+### Coding convention
+
+* All public classes and methods should have informative Javadoc comments.
+* Do not use @author tags.
+* Code should be formatted according to [Sun's
conventions](http://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html),
with the following exceptions:
+ * **Use spaces for indentation, not tabs**
+ * **Indent two (2) spaces per level, not four (4).**
+ * **Line length limit is 120 chars, instead of 80 chars.**
+* SAMOA includes an eclipse-format.xml formatting template that eclipse or
intellij idea users might find convenient.
+* Prefer qualified imports to wildcard imports
+
+### Tests
+
+* Contributions should pass existing unit tests (`mvn test`).
+* New unit tests should be provided to demonstrate bugs and fixes. JUnit
4.1 is our test framework
+
+### Organization of the code changes
+
+Most natural way is to :
+
+1. create a new feature branch in your local git repo, e.g. using a JIRA
ticket ID as the branch name
+2. make code changes and separate the commits into logical units
+3. submit a pull request from that feature branch
+
+
+## How do I submit a contribution?
+
+Once you have a contribution that follows the coding convention, passes
the tests, and is organized into logical commits, you may submit a pull request.
+
+The recommended way is to submit a pull request **through GitHub.**
+
+1. Get a JIRA reference:
+ 1. if your contribution has no JIRA ticket, create a new JIRA ticket,
describing the issue (see [^1] for how to do this).
+ 2. otherwise note the existing JIRA ticket ID ( e.g. `SAMOA-XX` )
+1. create a pull request from your contribution, and submit it through the
github interface to the github SAMOA mirror repo. Make sure to **include the
JIRA ticket ID in the description of the pull request**, so that the JIRA
ticket is automatically updated. e.g.: `SAMOA-XX : Fixes XYZ`
+
+The patch will be reviewed and voted upon, according to the project's
bylaws ([currently being
defined](https://issues.apache.org/jira/browse/SAMOA-5))
--- End diff --
Now we have bylaws, can link to them directly.
> Create "how to contribute" guide
> --------------------------------
>
> Key: SAMOA-13
> URL: https://issues.apache.org/jira/browse/SAMOA-13
> Project: SAMOA
> Issue Type: Task
> Reporter: Matthieu Morel
> Assignee: Matthieu Morel
>
> Given that we'd prefer contributions through github, we should update the
> CONTRIBUTING.md file at the root of the project.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)