Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The

...

Apache

...

Spark

...

team

...

welcomes

...

all

...

types

...

of

...

contributions,

...

whether

...

they

...

be

...

bug

...

reports,

...

documentation,

...

or

...

new

...

patches.

...

Reporting

...

Issues

...

If

...

you'd

...

like

...

to

...

report

...

a

...

bug

...

in

...

Spark

...

or

...

ask

...

for

...

a

...

new

...

feature,

...

open

...

an

...

issue

...

on

...

the

...

Apache

...

Spark

...

JIRA

...

.

...

For

...

general

...

usage

...

help,

...

you

...

should

...

email

...

the

...

user

...

mailing

...

list

...

.

Contributing Code

We prefer to receive contributions in the form of GitHub pull requests. Please send pull requests against the github.com/apache/incubator-spark

...

repository.

...

If

...

you've

...

previously

...

forked

...

Spark

...

from

...

its

...

old

...

location,

...

you

...

will

...

need

...

to

...

fork

...

incubator-spark

...

instead.

...

Here

...

are

...

a

...

few

...

tips

...

to

...

get

...

your

...

contribution

...

in:

...

  1. Break

...

  1. your

...

  1. work

...

  1. into

...

  1. small,

...

  1. single-purpose

...

  1. patches

...

  1. if

...

  1. possible.

...

  1. It’s

...

  1. much

...

  1. harder

...

  1. to

...

  1. merge

...

  1. in

...

  1. a

...

  1. large

...

  1. change

...

  1. with

...

  1. a

...

  1. lot

...

  1. of

...

  1. disjoint

...

  1. features.

...

  1. Submit

...

  1. the

...

  1. patch

...

  1. as

...

  1. a

...

  1. GitHub

...

  1. pull

...

  1. request.

...

  1. For

...

  1. a

...

  1. tutorial,

...

  1. see

...

  1. the

...

  1. GitHub

...

  1. guides

...

  1. on

...

  1. forking

...

  1. a

...

  1. repo

...

  1. and

...

  1. sending

...

  1. a

...

  1. pull

...

  1. request.
  2. Follow the Spark code style guide.
  3. Make sure that your code passes the unit tests. You can run the tests with sbt/sbt assembly and then sbt/sbt test in the root directory of Spark. It's important to run assembly first as some of the tests depend on compiled JARs.
  4. Add new unit tests for your code. We use ScalaTest for testing. Just add a new Suite in core/src/test, or methods to an existing Suite.
  5. Update the documentation (in the docs folder) if you add a new feature or configuration parameter.

If you’d like to report a bug but don’t have time to fix it, you can still post it to our issue tracker, or email the mailing list.

Documentation

If you'd like to contribute documentation, there are two ways:

  • To have us add a link to an external tutorial you wrote, simply email the developer mailing list
  • To modify the built-in documentation, edit the MarkDown source files in Spark's docs directory, and send a patch against the incubator-spark GitHub repository. The README file in docs says how to build the documentation locally to test your changes.

Development Discussions

To keep up to date with the latest discussions, join the developer mailing list.

IDE Setup

While many of the Spark developers use SBT or Maven on the command line, the most common IDE we use is IntelliJ IDEA. You can get the community edition for free and install the JetBrains Scala plugin from Preferences > Plugins. To generate an IDEA workspace for Spark, run

Code Block
|https://help.github.com/articles/using-pull-requests].
# Follow the [Spark code style guide].
# Make sure that your code passes the unit tests. You can run the tests with {{sbt/sbt assembly}} and then {{sbt/sbt test}} in the root directory of Spark. It's important to run {{assembly}} first as some of the tests depend on compiled JARs.
# Add new unit tests for your code. We use [ScalaTest|http://www.scalatest.org] for testing. Just add a new Suite in {{core/src/test}}, or methods to an existing Suite.
# Update the documentation (in the {{docs}} folder) if you add a new feature or configuration parameter.

If you’d like to report a bug but don’t have time to fix it, you can still post it to our issue tracker, or email the mailing list.

h3. Documentation

If you'd like to contribute documentation, there are two ways:
* To have us add a link to an external tutorial you wrote, simply email the [developer mailing list|http://spark.incubator.apache.org/mailing-lists.html]. 
* To modify the [built-in documentation|http://spark.incubator.apache.org/docs/latest], edit the MarkDown source files in Spark's {{docs}} directory, and send a patch against the [incubator-spark|https://github.com/apache/incubator-spark] GitHub repository. The README file in {{docs}} says how to build the documentation locally to test your changes.

h3. Development Discussions

To keep up to date with the latest discussions, join the [developer mailing list|http://spark.incubator.apache.org/mailing-lists.html].

h3. IDE Setup

While many of the Spark developers use SBT or Maven on the command line, the most common IDE we use is IntelliJ IDEA. You can get the [community edition|http://www.jetbrains.com/idea/free_java_ide.html] for free and install the [JetBrains Scala plugin|http://plugins.jetbrains.com/plugin/?id=1347] from Preferences > Plugins. To generate an IDEA workspace for Spark, run

{code}
sbt/sbt update gen-idea
{/code}

Then import the folder into IDEA. When you build the project, you might get a warning about "test and compile output paths" being the same for the 

Then import the folder into IDEA. When you build the project, you might get a warning about "test and compile output paths" being the same for the "root-build"

...

project.

...

You

...

can

...

fix

...

it

...

by

...

opening

...

File

...

->

...

Project

...

Structure

...

and

...

changing

...

the

...

output

...

path

...

of

...

the

...

root-build

...

module

...

to

...

be

...

<spark-home>/project/target/idea-test-classes

...

instead

...

of

...

idea-classes

...

.

...

If

...

you

...

use

...

Eclipse

...

to

...

develop

...

Spark,

...

feel

...

free

...

to

...

add

...

a

...

short

...

guide

...

on

...

setting

...

it

...

up

...

to

...

this

...

wiki

...

page.