### What is this PR for? Improving documentation page. Please check *TODO* and *Screenshots* sections for detail. The motivation is described in [the JIRA ticket](https://issues.apache.org/jira/browse/ZEPPELIN-2583) and discussion is ongoing on the mailing list. ### What type of PR is it? [Improvement | Documentation] ### Todos * [x] - improved the navbar style * [x] - improved the main page * [x] - re-organized content structure * [x] - added tutorial pages: `spark_with_zeppelin.md`, `python_with_zeppelin.md`, `sql_with_zeppelin.md` for overview * [x] - added `multi_user_support.md` page to provide overview * [x] - added the empty `interpreter_binding_mode` page. This will be handed in the different issue: [ZEPPELIN-2582](https://issues.apache.org/jira/browse/ZEPPELIN-2582) * [x] - added the empty `trouble_shooting` page. This can be filled in the following PRs. * [x] - added the empty `useful_developer_tools` page. This can be filled in the following PRs. ### What is the Jira issue? [ZEPPELIN-2596](https://issues.apache.org/jira/browse/ZEPPELIN-2596) ### How should this be tested? 1. checkout 2. `cd docs` 3. `bundle install` (make sure that you have ruby 2.1.0+ and bundle) 4. `bundle exec jekyll serve --watch` 5. open `localhost:4000` ### Screenshots (if appropriate) #### better navbar: before  #### better navbar: after  #### improved main page: before  #### improved main page: after  #### organized content structure: before  #### organized content structure: after  ### Questions: * Does the licenses files need update? - NO * Is there breaking changes for older versions? - NO * Does this needs documentation? - related with docs Author: 1ambda <1amb4a@gmail.com> Closes #2371 from 1ambda/updating-version-doc and squashes the following commits:eb02fa967[1ambda] fix: navbar focus color applies after folding026379ed6[1ambda] fix: Remove docs/.listen_testa7dd4737b[1ambda] fix: sora's comment 1.218c5058f7[1ambda] fix: resolve description in python_with_zeppelin.mdd3ad67c73[1ambda] fix: sora's comment 4d133dbbcc[1ambda] fix: resolve sora's comment 3513c6ff2c[1ambda] fix: resolve sora's comment 1.14c2946928[1ambda] fix: resovle sora's comment 21c3946ac6[1ambda] fix: sora's comment 14d6e4267f[1ambda] fix: Resolve sola's comment 3d0524cafe[1ambda] fix: Set less shadow for nav5f1f998ba[1ambda] docs: Add useful_develop_tools.md9dfd62c74[1ambda] fix: Typo in installation.md30f7d7e06[1ambda] fix: Typo in helium ctrld6877e792[1ambda] docs: Add python_with_zeppelin.md7027e96c0[1ambda] docs: Improve python conda, docker doc stylee55b50a9d[1ambda] fix: Invalid URLs75ddeeaff[1ambda] docs: replace URIs in interpreter5b43993a4[1ambda] docs: Add sql_with_zeppelin053794e84[1ambda] docs: Add spark_with_zeppelin.mdd4d88b9c7[1ambda] docs: Improve proxy docb46cdd126[1ambda] docs: Add empty interpreter_binding_mode.md06fcb239e[1ambda] docs: Add empty personalized_mode.md4991cf0a7[1ambda] docs: Update upgrading.md53142b7a0[1ambda] fix: Simplify install.md8a5c1e721[1ambda] docs: Add multi_user_support.md34095775e[1ambda] fix: Increase font size to 15pxa03b04b33[1ambda] fix: Remove sample text from trouble_shooting.md199842590[1ambda] fix: Remove docker doc link66a2a7d26[1ambda] docs: Improve impersonation page0a6e3fc1d[1ambda] docs: Improve install docccd999ed5[1ambda] docs: Improve helium docf8d742d08[1ambda] fix: an invalid link in navbarb7aa5f884[1ambda] fix: URLs in development61a175d94[1ambda] docs: Update install.md4c56de5c4[1ambda] fix: URLs in setup0b1d63513[1ambda] fix: URLs in quickstart28970a4fe[1ambda] feat: Add docs/usage735946bca[1ambda] feat: rename /quickstartb351cf237[1ambda] fix: Add missing linksb70770b4f[1ambda] feat: Change URLs in nav, index94e80aef6[1ambda] fix: doens't display navbar version in small6e0cab110[1ambda] feat: Update doc section namesb9ce256ff[1ambda] feat: Hide version in navbar when mdf8bab52be[1ambda] fix: Better image display in index.mdeeb37d5b5[1ambda] fix: Add RL padding for mobile browserceb60b5ee[1ambda] feat: Style collapsed nav for mobile browser4ebafb4b6[1ambda] commit
5.6 KiB
| layout | title | description | group |
|---|---|---|---|
| page | Contributing to Apache Zeppelin (Code) | How can you contribute to Apache Zeppelin project? This document covers from setting up your develop environment to making a pull request on Github. | development/contribution |
{% include JB/setup %}
Contributing to Apache Zeppelin ( Code )
NOTE : Apache Zeppelin is an Apache2 License Software. Any contributions to Zeppelin (Source code, Documents, Image, Website) means you agree with license all your contributions as Apache2 License.
Setting up
Here are some tools you will need to build and test Zeppelin.
Software Configuration Management ( SCM )
Since Zeppelin uses Git for it's SCM system, you need git client installed in your development machine.
Integrated Development Environment ( IDE )
You are free to use whatever IDE you prefer, or your favorite command line editor.
Build Tools
To build the code, install
- Oracle Java 7
- Apache Maven
Getting the source code
First of all, you need Zeppelin source code. The official location of Zeppelin is http://git.apache.org/zeppelin.git.
git access
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
Apache Zeppelin follows Fork & Pull as a source control workflow. If you want to not only build Zeppelin but also make any changes, then you need to fork Zeppelin github mirror repository and make a pull request.
Before making a pull request, please take a look Contribution Guidelines.
Build
mvn install
To skip test
mvn install -DskipTests
To build with specific spark / hadoop version
mvn install -Dspark.version=x.x.x -Dhadoop.version=x.x.x
For the further
Run Zeppelin server in development mode
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=""
Note: Make sure you first run
mvn clean install -DskipTestson your zeppelin root directory, otherwise your server build will fail to find the required dependencies in the local repro.
or use daemon script
bin/zeppelin-daemon start
Server will be run on http://localhost:8080.
Generating Thrift Code
Some portions of the Zeppelin code are generated by Thrift. For most Zeppelin changes, you don't need to worry about this. But if you modify any of the Thrift IDL files (e.g. zeppelin-interpreter/src/main/thrift/*.thrift), then you also need to regenerate these files and submit their updated version as part of your patch.
To regenerate the code, install thrift-0.9.2 and then run the following command to generate thrift code.
cd <zeppelin_home>/zeppelin-interpreter/src/main/thrift
./genthrift.sh
Run Selenium test
Zeppelin has set of integration tests using Selenium. To run these test, first build and run Zeppelin and make sure Zeppelin is running on port 8080. Then you can run test using following command
TEST_SELENIUM=true mvn test -Dtest=[TEST_NAME] -DfailIfNoTests=false -pl 'zeppelin-interpreter,zeppelin-zengine,zeppelin-server'
For example, to run ParagraphActionIT,
TEST_SELENIUM=true mvn test -Dtest=ParagraphActionsIT -DfailIfNoTests=false -pl 'zeppelin-interpreter,zeppelin-zengine,zeppelin-server'
You'll need Firefox web browser installed in your development environment. While CI server uses Firefox 31.0 to run selenium test, it is good idea to install the same version (disable auto update to keep the version).
Where to Start
You can find issues for beginner & newbie
Stay involved
Contributors should join the Zeppelin mailing lists.
- dev@zeppelin.apache.org is for people who want to contribute code to Zeppelin. [subscribe](mailto:dev-subscribe@zeppelin.apache.org?subject=send this email to subscribe), [unsubscribe](mailto:dev-unsubscribe@zeppelin.apache.org?subject=send this email to unsubscribe), archives
If you have any issues, create a ticket in JIRA.