Zeppelin is Apache2 License Software. Contributing to Zeppelin (Source code, Documents, Image, Website) means you agree to the Apache2 License.
Before you start, please read the Code of Conduct carefully, familiarize yourself with it and refer to it whenever you need it.
For those of you who are not familiar with Apache project, understanding How it works would be quite helpful.
In order to make the review process easier, please follow this template when making a Pull Request:
### What is this PR for? A few sentences describing the overall goals of the pull request's commits. First time? Check out the contributing guide - https://github.com/apache/zeppelin/blob/master/CONTRIBUTING.md ### What type of PR is it? [Bug Fix | Improvement | Feature | Documentation | Hot Fix | Refactoring] ### Todos * [ ] - Task ### What is the Jira issue? * Open an issue on Jira https://issues.apache.org/jira/browse/ZEPPELIN/ * Put link here, and add [ZEPPELIN-*Jira number*] in PR title, eg. [ZEPPELIN-533] ### How should this be tested? Outline the steps to test the PR here. ### Screenshots (if appropriate) ### Questions: * Does the licenses files need update? * Is there breaking changes for older versions? * Does this needs documentation?
You can also test and review a particular Pull Request. Here are two useful ways.
Using a utility provided from Zeppelin.
dev/test_zeppelin_pr.py [# of PR]
For example, if you want to test #513
, then the command will be:
dev/test_zeppelin_pr.py 513
Another way is using github/hub.
hub checkout https://github.com/apache/zeppelin/pull/[# of PR]
The above two methods will help you test and review Pull Requests.
Zeppelin follows [Fork & Pull] (https://github.com/sevntu-checkstyle/sevntu.checkstyle/wiki/Development-workflow-with-Git:-Fork,-Branching,-Commits,-and-Pull-Request) model.
When a Pull Request is submitted, it is being merged or rejected by following review process.
The PPMC adds new committers from the active contributors, based on their contribution to Zeppelin. The qualifications for new committers include:
Here are some things you will need to build and test Zeppelin.
Zeppelin uses Git for its SCM system. http://git.apache.org/zeppelin.git
you'll need git client installed in your development machine. For write access, https://git-wip-us.apache.org/repos/asf/zeppelin.git
You are free to use whatever IDE you prefer, or your favorite command line editor.
Zeppelin project is based on Maven. Maven works by convention & defines [directory structure] (https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html) for a project. The top-level pom.xml describes the basic project structure. Currently Zeppelin has the following modules.
<module>zeppelin-interpreter</module> <module>zeppelin-zengine</module> <module>spark</module> <module>markdown</module> <module>angular</module> <module>shell</module> <module>flink</module> <module>ignite</module> <module>lens</module> <module>cassandra</module> <module>zeppelin-web</module> <module>zeppelin-server</module> <module>zeppelin-distribution</module>
If you plan on making a contribution to Zeppelin's WebApplication, please check its own contribution guidelines
We are following Google Code style:
Check style report location are in ${submodule}/target/site/checkstyle.html
Test coverage report location are in ${submodule}/target/site/cobertura/index.html
To build the code, install
First of all, you need the Zeppelin source code. The official location for Zeppelin is http://git.apache.org/zeppelin.git.
Get the source code on your development machine using git.
git clone git://git.apache.org/zeppelin.git zeppelin
You may also want to develop against a specific branch. For example, for branch-0.5.6
git clone -b branch-0.5.6 git://git.apache.org/zeppelin.git zeppelin
or with write access
git clone https://git-wip-us.apache.org/repos/asf/zeppelin.git
If you want not only build Zeppelin but also make change, then you need fork Zeppelin github mirror repository (https://github.com/apache/zeppelin) and make pull request.
mvn install
To skip test
mvn install -DskipTests
To build with specific spark / hadoop version
mvn install -Phadoop-2.2 -Dhadoop.version=2.2.0 -Pspark-1.3 -Dspark.version=1.3.0
Each new File should have its own accompanying unit tests. Each new interpreter should have come with its tests.
Zeppelin has 3 types of tests:
Currently the GUI integration tests are not run in the Maven and are only run in the CI environment when the pull request is submitted to github. Make sure to watch the [CI results] (https://travis-ci.org/apache/zeppelin/pull_requests) for your pull request.
Zeppelin uses Travis for CI. In the project root there is .travis.yml that configures CI and [publishes CI results] (https://travis-ci.org/apache/zeppelin/builds)
cd zeppelin-server HADOOP_HOME=YOUR_HADOOP_HOME JAVA_HOME=YOUR_JAVA_HOME mvn exec:java -Dexec.mainClass="org.apache.zeppelin.server.ZeppelinServer" -Dexec.args=""
or use daemon script
bin/zeppelin-daemon start
Server will be run on http://localhost:8080
Zeppelin manages it's issues in Jira. https://issues.apache.org/jira/browse/ZEPPELIN
You can find issues for beginner
Everyone is welcome to join our mailing list: