http://git-wip-us.apache.org/repos/asf/incubator-predictionio-site/blob/c2c7b62a/community/contribute-code/index.html
----------------------------------------------------------------------
diff --git a/community/contribute-code/index.html 
b/community/contribute-code/index.html
index 9464f16..c038df2 100644
--- a/community/contribute-code/index.html
+++ b/community/contribute-code/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html><head><title>Contribute Code</title><meta 
charset="utf-8"/><meta content="IE=edge,chrome=1" 
http-equiv="X-UA-Compatible"/><meta name="viewport" 
content="width=device-width, initial-scale=1.0"/><meta class="swiftype" 
name="title" data-type="string" content="Contribute Code"/><link 
rel="canonical" 
href="https://docs.prediction.io/community/contribute-code/"/><link 
href="/images/favicon/normal-b330020a.png" rel="shortcut icon"/><link 
href="/images/favicon/apple-c0febcf2.png" rel="apple-touch-icon"/><link 
href="//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800"
 rel="stylesheet"/><link 
href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" 
rel="stylesheet"/><link href="/stylesheets/application-a2a2f408.css" 
rel="stylesheet" type="text/css"/><script 
src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js"></script><script
 src="//cdn.mathjax.org/mathjax/latest/MathJax.j
 s?config=TeX-AMS-MML_HTMLorMML"></script><script 
src="//use.typekit.net/pqo0itb.js"></script><script>try{Typekit.load({ async: 
true });}catch(e){}</script></head><body><div id="global"><header><div 
class="container" id="header-wrapper"><div class="row"><div 
class="col-sm-12"><div id="logo-wrapper"><span id="drawer-toggle"></span><a 
href="#"></a><a href="http://predictionio.incubator.apache.org/";><img 
alt="PredictionIO" id="logo" 
src="/images/logos/logo-ee2b9bb3.png"/></a></div><div id="menu-wrapper"><div 
id="pill-wrapper"><a class="pill left" 
href="//templates.prediction.io/">TEMPLATES</a> <a class="pill right" 
href="//github.com/apache/incubator-predictionio/">OPEN 
SOURCE</a></div></div><img class="mobile-search-bar-toggler hidden-md 
hidden-lg" 
src="/images/icons/search-glass-704bd4ff.png"/></div></div></div></header><div 
id="search-bar-row-wrapper"><div class="container-fluid" 
id="search-bar-row"><div class="row"><div class="col-md-9 col-sm-11 
col-xs-11"><div class="hidden-md hidd
 en-lg" id="mobile-page-heading-wrapper"><p>PredictionIO Docs</p><h4>Contribute 
Code</h4></div><h4 class="hidden-sm hidden-xs">PredictionIO Docs</h4></div><div 
class="col-md-3 col-sm-1 col-xs-1 hidden-md hidden-lg"><img 
id="left-menu-indicator" 
src="/images/icons/down-arrow-dfe9f7fe.png"/></div><div class="col-md-3 
col-sm-12 col-xs-12 swiftype-wrapper"><div class="swiftype"><form 
class="search-form"><img class="search-box-toggler hidden-xs hidden-sm" 
src="/images/icons/search-glass-704bd4ff.png"/><div class="search-box"><img 
src="/images/icons/search-glass-704bd4ff.png"/><input type="text" 
id="st-search-input" class="st-search-input" placeholder="Search 
Doc..."/></div><img class="swiftype-row-hider hidden-md hidden-lg" 
src="/images/icons/drawer-toggle-active-fcbef12a.png"/></form></div></div><div 
class="mobile-left-menu-toggler hidden-md 
hidden-lg"></div></div></div></div><div id="page" class="container-fluid"><div 
class="row"><div id="left-menu-wrapper" class="col-md-3"><nav id="nav
 -main"><ul><li class="level-1"><a class="expandible" href="/"><span>Apache 
PredictionIO (incubating) Documentation</span></a><ul><li class="level-2"><a 
class="final" href="/"><span>Welcome to Apache PredictionIO 
(incubating)</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Getting Started</span></a><ul><li class="level-2"><a 
class="final" href="/start/"><span>A Quick Intro</span></a></li><li 
class="level-2"><a class="final" href="/install/"><span>Installing Apache 
PredictionIO (incubating)</span></a></li><li class="level-2"><a class="final" 
href="/start/download/"><span>Downloading an Engine Template</span></a></li><li 
class="level-2"><a class="final" href="/start/deploy/"><span>Deploying Your 
First Engine</span></a></li><li class="level-2"><a class="final" 
href="/start/customize/"><span>Customizing the 
Engine</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Integrating with Your App</span></a><ul><li class="level-2">
 <a class="final" href="/appintegration/"><span>App Integration 
Overview</span></a></li><li class="level-2"><a class="expandible" 
href="/sdk/"><span>List of SDKs</span></a><ul><li class="level-3"><a 
class="final" href="/sdk/java/"><span>Java & Android SDK</span></a></li><li 
class="level-3"><a class="final" href="/sdk/php/"><span>PHP 
SDK</span></a></li><li class="level-3"><a class="final" 
href="/sdk/python/"><span>Python SDK</span></a></li><li class="level-3"><a 
class="final" href="/sdk/ruby/"><span>Ruby SDK</span></a></li><li 
class="level-3"><a class="final" href="/sdk/community/"><span>Community Powered 
SDKs</span></a></li></ul></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Deploying an Engine</span></a><ul><li 
class="level-2"><a class="final" href="/deploy/"><span>Deploying as a Web 
Service</span></a></li><li class="level-2"><a class="final" 
href="/cli/#engine-commands"><span>Engine Command-line 
Interface</span></a></li><li class="level-2"><a class="final" 
 href="/deploy/monitoring/"><span>Monitoring Engine</span></a></li><li 
class="level-2"><a class="final" href="/deploy/engineparams/"><span>Setting 
Engine Parameters</span></a></li><li class="level-2"><a class="final" 
href="/deploy/enginevariants/"><span>Deploying Multiple Engine 
Variants</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Customizing an Engine</span></a><ul><li class="level-2"><a 
class="final" href="/customize/"><span>Learning DASE</span></a></li><li 
class="level-2"><a class="final" href="/customize/dase/"><span>Implement 
DASE</span></a></li><li class="level-2"><a class="final" 
href="/customize/troubleshooting/"><span>Troubleshooting Engine 
Development</span></a></li><li class="level-2"><a class="final" 
href="/api/current/#package"><span>Engine Scala 
APIs</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Collecting and Analyzing Data</span></a><ul><li 
class="level-2"><a class="final" href="/datacollection/
 "><span>Event Server Overview</span></a></li><li class="level-2"><a 
class="final" href="/cli/#event-server-commands"><span>Event Server 
Command-line Interface</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/eventapi/"><span>Collecting Data with 
REST/SDKs</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/eventmodel/"><span>Events Modeling</span></a></li><li 
class="level-2"><a class="final" 
href="/datacollection/webhooks/"><span>Unifying Multichannel Data with 
Webhooks</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/channel/"><span>Channel</span></a></li><li 
class="level-2"><a class="final" 
href="/datacollection/batchimport/"><span>Importing Data in 
Batch</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/analytics/"><span>Using Analytics 
Tools</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Choosing an Algorithm(s)</span></a><ul><li class="level-2"><a c
 lass="final" href="/algorithm/"><span>Built-in Algorithm 
Libraries</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/switch/"><span>Switching to Another 
Algorithm</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/multiple/"><span>Combining Multiple 
Algorithms</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/custom/"><span>Adding Your Own 
Algorithms</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>ML Tuning and Evaluation</span></a><ul><li class="level-2"><a 
class="final" href="/evaluation/"><span>Overview</span></a></li><li 
class="level-2"><a class="final" 
href="/evaluation/paramtuning/"><span>Hyperparameter Tuning</span></a></li><li 
class="level-2"><a class="final" 
href="/evaluation/evaluationdashboard/"><span>Evaluation 
Dashboard</span></a></li><li class="level-2"><a class="final" 
href="/evaluation/metricchoose/"><span>Choosing Evaluation 
Metrics</span></a></li><li class="level-2"><a class="
 final" href="/evaluation/metricbuild/"><span>Building Evaluation 
Metrics</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>System Architecture</span></a><ul><li class="level-2"><a 
class="final" href="/system/"><span>Architecture Overview</span></a></li><li 
class="level-2"><a class="final" href="/system/anotherdatastore/"><span>Using 
Another Data Store</span></a></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Engine Template Gallery</span></a><ul><li 
class="level-2"><a class="final" 
href="/gallery/template-gallery/"><span>Browse</span></a></li><li 
class="level-2"><a class="final" 
href="/community/submit-template/"><span>Submit your Engine as a 
Template</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Demo Tutorials</span></a><ul><li class="level-2"><a 
class="final" href="/demo/tapster/"><span>Comics Recommendation 
Demo</span></a></li><li class="level-2"><a class="final" 
href="/demo/community/"><s
 pan>Community Contributed Demo</span></a></li><li class="level-2"><a 
class="final" href="/demo/textclassification/"><span>Text Classification Engine 
Tutorial</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="/community/"><span>Getting Involved</span></a><ul><li class="level-2"><a 
class="final active" href="/community/contribute-code/"><span>Contribute 
Code</span></a></li><li class="level-2"><a class="final" 
href="/community/contribute-documentation/"><span>Contribute 
Documentation</span></a></li><li class="level-2"><a class="final" 
href="/community/contribute-sdk/"><span>Contribute a SDK</span></a></li><li 
class="level-2"><a class="final" 
href="/community/contribute-webhook/"><span>Contribute a 
Webhook</span></a></li><li class="level-2"><a class="final" 
href="/community/projects/"><span>Community 
Projects</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Getting Help</span></a><ul><li class="level-2"><a class="final" 
href="/reso
 urces/faq/"><span>FAQs</span></a></li><li class="level-2"><a class="final" 
href="/support/"><span>Support</span></a></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Resources</span></a><ul><li 
class="level-2"><a class="final" href="/resources/intellij/"><span>Developing 
Engines with IntelliJ IDEA</span></a></li><li class="level-2"><a class="final" 
href="/resources/upgrade/"><span>Upgrade Instructions</span></a></li><li 
class="level-2"><a class="final" 
href="/resources/glossary/"><span>Glossary</span></a></li></ul></li></ul></nav></div><div
 class="col-md-9 col-sm-12"><div class="content-header hidden-md 
hidden-lg"><div id="breadcrumbs" class="hidden-sm hidden xs"><ul><li><a 
href="/community/">Getting Involved</a><span 
class="spacer">&gt;</span></li><li><span class="last">Contribute 
Code</span></li></ul></div><div id="page-title"><h1>Contribute 
Code</h1></div></div><div id="table-of-content-wrapper"><h5>On this 
page</h5><aside id="table-of-contents"><ul> <li> <a
  href="#areas-in-need-of-help">Areas in Need of Help</a> </li> <li> <a 
href="#how-to-report-an-issue">How to Report an Issue</a> </li> <li> <a 
href="#how-to-help-resolve-existing-issues">How to Help Resolve Existing 
Issues</a> </li> <li> <a href="#how-to-add-propose-a-new-feature">How to Add / 
Propose a New Feature</a> </li> <li> <a href="#how-to-issue-a-pull-request">How 
to Issue a Pull Request</a> </li> <li> <a href="#getting-started">Getting 
Started</a> </li> <li> <a 
href="#anatomy-of-apache-predictionio-incubating-code-tree">Anatomy of Apache 
PredictionIO (incubating) Code Tree</a> </li> </ul> </aside><hr/><a 
id="edit-page-link" 
href="https://github.com/apache/incubator-predictionio/tree/livedoc/docs/manual/source/community/contribute-code.html.md";><img
 src="/images/icons/edit-pencil-d6c1bb3d.png"/>Edit this page</a></div><div 
class="content-header hidden-sm hidden-xs"><div id="breadcrumbs" 
class="hidden-sm hidden xs"><ul><li><a href="/community/">Getting 
Involved</a><span class
 ="spacer">&gt;</span></li><li><span class="last">Contribute 
Code</span></li></ul></div><div id="page-title"><h1>Contribute 
Code</h1></div></div><div class="content"><p>Thank you for your interest in 
contributing to Apache PredictionIO (incubating). Our mission is to enable 
developers to build scalable machine learning applications easily. Here is how 
you can help with the project development. If you have any question regarding 
development at anytime, please free to <a 
href="mailto:[email protected]";>subscribe</a> and 
post to the <a 
href="mailto:[email protected]";>Development 
Mailing List</a>.</p><h2 id='areas-in-need-of-help' 
class='header-anchors'>Areas in Need of Help</h2><p>We accept contributions of 
all kinds at any time. We are compiling this list to show features that are 
highly sought after by the community.</p> <ul> <li>Tests and CI</li> <li>Engine 
template, tutorials, and samples</li> <li>Client SDKs</li> <li>Build
 ing engines in Java (updating the Java controller API)</li> <li>Code clean up 
and refactoring</li> <li>Code and data pipeline optimization</li> <li>Developer 
experience (UX) improvement</li> </ul> <h2 id='how-to-report-an-issue' 
class='header-anchors'>How to Report an Issue</h2><p>If you wish to report an 
issue you found, you can do so on <a 
href="https://issues.apache.org/jira/browse/PIO";>Apache PredictionIO 
(incubating) JIRA</a>.</p><h2 id='how-to-help-resolve-existing-issues' 
class='header-anchors'>How to Help Resolve Existing Issues</h2><p>In general, 
bug fixes should be done the same way as new features, but critical bug fixes 
will follow a different path.</p><h2 id='how-to-add-/-propose-a-new-feature' 
class='header-anchors'>How to Add / Propose a New Feature</h2> <ol> <li>To 
propose a new feature, simply <a 
href="mailto:[email protected]";>subscribe</a> and 
post your proposal to <a 
href="mailto:[email protected]";>Apache Predicti
 onIO (incubating) Development Mailing List</a>.</li> <li>Discuss with the 
community and the core development team on what needs to be done, and lay down 
concrete plans on deliverables.</li> <li>Once solid plans are made, start 
creating tickets in the <a 
href="https://issues.apache.org/jira/browse/PIO";>issue tracker</a>.</li> 
<li>Work side by side with other developers using Apache PredictionIO 
(incubating) Development Mailing List as primary mode of communication. You 
never know if someone else has a better idea. ;)</li> </ol> <h2 
id='how-to-issue-a-pull-request' class='header-anchors'>How to Issue a Pull 
Request</h2><p>When you have finished your code, you can <a 
href="https://help.github.com/articles/creating-a-pull-request/";>create a pull 
request</a> against the <strong>develop</strong> branch.</p> <ul> <li>The title 
must contain a tag associating with an existing JIRA ticket. You must create a 
ticket so that the infrastructure can correctly track issues across Apache JIRA 
and Gi
 tHub. If your ticket is <code>PIO-789</code>, your title must look something 
like <code>[PIO-789] Some short description</code>.</li> <li>Please also, in 
your commit message summary, include the JIRA ticket number similar to 
above.</li> <li>Make sure the title and description are clear and concise. For 
more details on writing a good commit message, check out <a 
href="http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html";>this
 guide</a>.</li> <li>If the change is visual, make sure to include a screenshot 
or GIF.</li> <li>Make sure it is being opened into the right branch.</li> 
<li>Make sure it has been rebased on top of that branch.</li> </ul> <div 
class="alert-message note"><p>When it is close to a release, and if there are 
major development ongoing, a release branch will be forked from the develop 
branch to stabilize the code for binary release. Please refer to the <em>git 
flow</em> methodology page for more information.</p></div><h2 
id='getting-started' class='heade
 r-anchors'>Getting Started</h2><p>Apache PredictionIO (incubating) relies 
heavily on the <a 
href="http://nvie.com/posts/a-successful-git-branching-model/";>git flow 
methodology</a>. Please make sure you read and understand it before you start 
your development. By default, cloning Apache PredictionIO (incubating) will put 
you in the <em>develop</em> branch, which in most cases is where all the latest 
development go to.</p><div class="alert-message note"><p>For core development, 
please follow the <a href="http://docs.scala-lang.org/style/";>Scala Style 
Guide</a>.</p></div><h3 
id='create-a-fork-of-the-apache-predictionio-(incubating)-repository' 
class='header-anchors'>Create a Fork of the Apache PredictionIO (incubating) 
Repository</h3> <ol> <li>Start by creating a GitHub account if you do not 
already have one.</li> <li>Go to <a 
href="https://github.com/PredictionIO/PredictionIO";>Apache PredictionIO 
(incubating)’s GitHub mirror</a> and fork it to your own account.</li> 
<li>Clone your f
 ork to your local machine.</li> </ol> <p>If you need additional help, please 
refer to <a 
href="https://help.github.com/articles/fork-a-repo/";>https://help.github.com/articles/fork-a-repo/</a>.</p><h3
 id='building-apache-predictionio-(incubating)-from-source' 
class='header-anchors'>Building Apache PredictionIO (incubating) from 
Source</h3><p>After the previous section, you should have a copy of Apache 
PredictionIO (incubating) in your local machine ready to be built.</p> <ol> 
<li>Make sure you are on the <em>develop</em> branch. You can double check by 
<code>git status</code> or simply <code>git checkout develop</code>.</li> 
<li>At the root of the repository, do <code>./make-distribution.sh</code> to 
build PredictionIO.</li> </ol> <h3 id='setting-up-the-environment' 
class='header-anchors'>Setting Up the Environment</h3><p>Apache PredictionIO 
(incubating) relies on 3rd party software to perform its tasks. To set them up, 
simply follow this <a href="http://docs.prediction.io/install/in
 stall-sourcecode/#installing-dependencies">documentation</a>.</p><h3 
id='start-hacking' class='header-anchors'>Start Hacking</h3><p>You should have 
a Apache PredictionIO (incubating) development environment by now. Happy 
hacking!</p><h2 id='anatomy-of-apache-predictionio-(incubating)-code-tree' 
class='header-anchors'>Anatomy of Apache PredictionIO (incubating) Code 
Tree</h2><p>The following describes each directory’s purpose.</p><h3 id='bin' 
class='header-anchors'>bin</h3><p>Shell scripts and any relevant components to 
go into the binary distribution. Utility shell scripts can also be included 
here.</p><h3 id='conf' class='header-anchors'>conf</h3><p>Configuration files 
that are used by both a source tree and binary distribution.</p><h3 id='core' 
class='header-anchors'>core</h3><p>Core Apache PredictionIO (incubating) code 
that provides the DASE controller API, core data structures, and workflow 
creation and management code.</p><h3 id='data' 
class='header-anchors'>data</h3><p>Apac
 he PredictionIO (incubating) Event Server, and backend-agnostic storage layer 
for event store and metadata store.</p><h3 id='docs' 
class='header-anchors'>docs</h3><p>Source code for <a 
href="http://predictionio.incubator.apache.org";>http://predictionio.incubator.apache.org</a>
 site, and any other documentation support files.</p><h3 id='engines' 
class='header-anchors'>engines</h3><p>Obsolete built-in engines. To be 
removed.</p><h3 id='examples' class='header-anchors'>examples</h3><p>Complete 
code examples showing Apache PredictionIO (incubating)&#39;s 
application.</p><h3 id='sbt' class='header-anchors'>sbt</h3><p>Embedded SBT 
(Simple Build Tool) launcher.</p><h3 id='templates' 
class='header-anchors'>templates</h3><p>Starting point of building your custom 
engine.</p><h3 id='tools' class='header-anchors'>tools</h3><p>Tools for running 
Apache PredictionIO (incubating). Contains primarily the CLI (command-line 
interface) and its supporting code, and the experimental evaluation dashboard.
 </p></div></div></div></div><footer><div class="container"><div 
class="seperator"></div><div class="row"><div class="col-md-6 col-xs-6 
footer-link-column"><div 
class="footer-link-column-row"><h4>Community</h4><ul><li><a 
href="//docs.prediction.io/install/" target="blank">Download</a></li><li><a 
href="//docs.prediction.io/" target="blank">Docs</a></li><li><a 
href="//github.com/apache/incubator-predictionio" 
target="blank">GitHub</a></li><li><a 
href="mailto:[email protected]"; 
target="blank">Subscribe to User Mailing List</a></li><li><a 
href="//stackoverflow.com/questions/tagged/predictionio" 
target="blank">Stackoverflow</a></li></ul></div></div><div class="col-md-6 
col-xs-6 footer-link-column"><div 
class="footer-link-column-row"><h4>Contribute</h4><ul><li><a 
href="//predictionio.incubator.apache.org/community/contribute-code/" 
target="blank">Contribute</a></li><li><a 
href="//github.com/apache/incubator-predictionio" target="blank">Source 
Code</a></li><li
 ><a href="//issues.apache.org/jira/browse/PIO" target="blank">Bug 
 >Tracker</a></li><li><a 
 >href="mailto:[email protected]"; 
 >target="blank">Subscribe to Development Mailing 
 >List</a></li></ul></div></div></div></div><div id="footer-bottom"><div 
 >class="container"><div class="row"><div class="col-md-12"><div 
 >id="footer-logo-wrapper"><img alt="PredictionIO" 
 >src="/images/logos/logo-white-d1e9c6e6.png"/></div><div 
 >id="social-icons-wrapper"><a class="github-button" 
 >href="https://github.com/apache/incubator-predictionio"; data-style="mega" 
 >data-count-href="/apache/incubator-predictionio/stargazers" 
 >data-count-api="/repos/apache/incubator-predictionio#stargazers_count" 
 >data-count-aria-label="# stargazers on GitHub" aria-label="Star 
 >apache/incubator-predictionio on GitHub">Star</a> <a class="github-button" 
 >href="https://github.com/apache/incubator-predictionio/fork"; 
 >data-icon="octicon-git-branch" data-style="mega" 
 >data-count-href="/apache/incubator-predictionio/networ
 k" data-count-api="/repos/apache/incubator-predictionio#forks_count" 
data-count-aria-label="# forks on GitHub" aria-label="Fork 
apache/incubator-predictionio on GitHub">Fork</a> <script id="github-bjs" 
async="" defer="" src="https://buttons.github.io/buttons.js";></script><a 
href="//www.facebook.com/predictionio" target="blank"><img alt="PredictionIO on 
Twitter" src="/images/icons/twitter-ea9dc152.png"/></a> <a 
href="//twitter.com/predictionio" target="blank"><img alt="PredictionIO on 
Facebook" src="/images/icons/facebook-5c57939c.png"/></a> 
</div></div></div></div></div></footer></div><script>(function(w,d,t,u,n,s,e){w['SwiftypeObject']=n;w[n]=w[n]||function(){
+<!DOCTYPE html><html><head><title>Contribute Code</title><meta 
charset="utf-8"/><meta content="IE=edge,chrome=1" 
http-equiv="X-UA-Compatible"/><meta name="viewport" 
content="width=device-width, initial-scale=1.0"/><meta class="swiftype" 
name="title" data-type="string" content="Contribute Code"/><link 
rel="canonical" 
href="https://docs.prediction.io/community/contribute-code/"/><link 
href="/images/favicon/normal-b330020a.png" rel="shortcut icon"/><link 
href="/images/favicon/apple-c0febcf2.png" rel="apple-touch-icon"/><link 
href="//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800"
 rel="stylesheet"/><link 
href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" 
rel="stylesheet"/><link href="/stylesheets/application-a2a2f408.css" 
rel="stylesheet" type="text/css"/><script 
src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js"></script><script
 src="//cdn.mathjax.org/mathjax/latest/MathJax.j
 s?config=TeX-AMS-MML_HTMLorMML"></script><script 
src="//use.typekit.net/pqo0itb.js"></script><script>try{Typekit.load({ async: 
true });}catch(e){}</script></head><body><div id="global"><header><div 
class="container" id="header-wrapper"><div class="row"><div 
class="col-sm-12"><div id="logo-wrapper"><span id="drawer-toggle"></span><a 
href="#"></a><a href="http://predictionio.incubator.apache.org/";><img 
alt="PredictionIO" id="logo" 
src="/images/logos/logo-ee2b9bb3.png"/></a></div><div id="menu-wrapper"><div 
id="pill-wrapper"><a class="pill left" 
href="/gallery/template-gallery">TEMPLATES</a> <a class="pill right" 
href="//github.com/apache/incubator-predictionio/">OPEN 
SOURCE</a></div></div><img class="mobile-search-bar-toggler hidden-md 
hidden-lg" 
src="/images/icons/search-glass-704bd4ff.png"/></div></div></div></header><div 
id="search-bar-row-wrapper"><div class="container-fluid" 
id="search-bar-row"><div class="row"><div class="col-md-9 col-sm-11 
col-xs-11"><div class="hidden-md hidde
 n-lg" id="mobile-page-heading-wrapper"><p>PredictionIO Docs</p><h4>Contribute 
Code</h4></div><h4 class="hidden-sm hidden-xs">PredictionIO Docs</h4></div><div 
class="col-md-3 col-sm-1 col-xs-1 hidden-md hidden-lg"><img 
id="left-menu-indicator" 
src="/images/icons/down-arrow-dfe9f7fe.png"/></div><div class="col-md-3 
col-sm-12 col-xs-12 swiftype-wrapper"><div class="swiftype"><form 
class="search-form"><img class="search-box-toggler hidden-xs hidden-sm" 
src="/images/icons/search-glass-704bd4ff.png"/><div class="search-box"><img 
src="/images/icons/search-glass-704bd4ff.png"/><input type="text" 
id="st-search-input" class="st-search-input" placeholder="Search 
Doc..."/></div><img class="swiftype-row-hider hidden-md hidden-lg" 
src="/images/icons/drawer-toggle-active-fcbef12a.png"/></form></div></div><div 
class="mobile-left-menu-toggler hidden-md 
hidden-lg"></div></div></div></div><div id="page" class="container-fluid"><div 
class="row"><div id="left-menu-wrapper" class="col-md-3"><nav id="nav-
 main"><ul><li class="level-1"><a class="expandible" href="/"><span>Apache 
PredictionIO (incubating) Documentation</span></a><ul><li class="level-2"><a 
class="final" href="/"><span>Welcome to Apache PredictionIO 
(incubating)</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Getting Started</span></a><ul><li class="level-2"><a 
class="final" href="/start/"><span>A Quick Intro</span></a></li><li 
class="level-2"><a class="final" href="/install/"><span>Installing Apache 
PredictionIO (incubating)</span></a></li><li class="level-2"><a class="final" 
href="/start/download/"><span>Downloading an Engine Template</span></a></li><li 
class="level-2"><a class="final" href="/start/deploy/"><span>Deploying Your 
First Engine</span></a></li><li class="level-2"><a class="final" 
href="/start/customize/"><span>Customizing the 
Engine</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Integrating with Your App</span></a><ul><li class="level-2"><
 a class="final" href="/appintegration/"><span>App Integration 
Overview</span></a></li><li class="level-2"><a class="expandible" 
href="/sdk/"><span>List of SDKs</span></a><ul><li class="level-3"><a 
class="final" href="/sdk/java/"><span>Java & Android SDK</span></a></li><li 
class="level-3"><a class="final" href="/sdk/php/"><span>PHP 
SDK</span></a></li><li class="level-3"><a class="final" 
href="/sdk/python/"><span>Python SDK</span></a></li><li class="level-3"><a 
class="final" href="/sdk/ruby/"><span>Ruby SDK</span></a></li><li 
class="level-3"><a class="final" href="/sdk/community/"><span>Community Powered 
SDKs</span></a></li></ul></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Deploying an Engine</span></a><ul><li 
class="level-2"><a class="final" href="/deploy/"><span>Deploying as a Web 
Service</span></a></li><li class="level-2"><a class="final" 
href="/cli/#engine-commands"><span>Engine Command-line 
Interface</span></a></li><li class="level-2"><a class="final" h
 ref="/deploy/monitoring/"><span>Monitoring Engine</span></a></li><li 
class="level-2"><a class="final" href="/deploy/engineparams/"><span>Setting 
Engine Parameters</span></a></li><li class="level-2"><a class="final" 
href="/deploy/enginevariants/"><span>Deploying Multiple Engine 
Variants</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Customizing an Engine</span></a><ul><li class="level-2"><a 
class="final" href="/customize/"><span>Learning DASE</span></a></li><li 
class="level-2"><a class="final" href="/customize/dase/"><span>Implement 
DASE</span></a></li><li class="level-2"><a class="final" 
href="/customize/troubleshooting/"><span>Troubleshooting Engine 
Development</span></a></li><li class="level-2"><a class="final" 
href="/api/current/#package"><span>Engine Scala 
APIs</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Collecting and Analyzing Data</span></a><ul><li 
class="level-2"><a class="final" href="/datacollection/"
 ><span>Event Server Overview</span></a></li><li class="level-2"><a 
 >class="final" href="/cli/#event-server-commands"><span>Event Server 
 >Command-line Interface</span></a></li><li class="level-2"><a class="final" 
 >href="/datacollection/eventapi/"><span>Collecting Data with 
 >REST/SDKs</span></a></li><li class="level-2"><a class="final" 
 >href="/datacollection/eventmodel/"><span>Events Modeling</span></a></li><li 
 >class="level-2"><a class="final" 
 >href="/datacollection/webhooks/"><span>Unifying Multichannel Data with 
 >Webhooks</span></a></li><li class="level-2"><a class="final" 
 >href="/datacollection/channel/"><span>Channel</span></a></li><li 
 >class="level-2"><a class="final" 
 >href="/datacollection/batchimport/"><span>Importing Data in 
 >Batch</span></a></li><li class="level-2"><a class="final" 
 >href="/datacollection/analytics/"><span>Using Analytics 
 >Tools</span></a></li></ul></li><li class="level-1"><a class="expandible" 
 >href="#"><span>Choosing an Algorithm(s)</span></a><ul><li class="level-2"><a 
 >cl
 ass="final" href="/algorithm/"><span>Built-in Algorithm 
Libraries</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/switch/"><span>Switching to Another 
Algorithm</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/multiple/"><span>Combining Multiple 
Algorithms</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/custom/"><span>Adding Your Own 
Algorithms</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>ML Tuning and Evaluation</span></a><ul><li class="level-2"><a 
class="final" href="/evaluation/"><span>Overview</span></a></li><li 
class="level-2"><a class="final" 
href="/evaluation/paramtuning/"><span>Hyperparameter Tuning</span></a></li><li 
class="level-2"><a class="final" 
href="/evaluation/evaluationdashboard/"><span>Evaluation 
Dashboard</span></a></li><li class="level-2"><a class="final" 
href="/evaluation/metricchoose/"><span>Choosing Evaluation 
Metrics</span></a></li><li class="level-2"><a class="f
 inal" href="/evaluation/metricbuild/"><span>Building Evaluation 
Metrics</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>System Architecture</span></a><ul><li class="level-2"><a 
class="final" href="/system/"><span>Architecture Overview</span></a></li><li 
class="level-2"><a class="final" href="/system/anotherdatastore/"><span>Using 
Another Data Store</span></a></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Engine Template Gallery</span></a><ul><li 
class="level-2"><a class="final" 
href="/gallery/template-gallery/"><span>Browse</span></a></li><li 
class="level-2"><a class="final" 
href="/community/submit-template/"><span>Submit your Engine as a 
Template</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Demo Tutorials</span></a><ul><li class="level-2"><a 
class="final" href="/demo/tapster/"><span>Comics Recommendation 
Demo</span></a></li><li class="level-2"><a class="final" 
href="/demo/community/"><sp
 an>Community Contributed Demo</span></a></li><li class="level-2"><a 
class="final" href="/demo/textclassification/"><span>Text Classification Engine 
Tutorial</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="/community/"><span>Getting Involved</span></a><ul><li class="level-2"><a 
class="final active" href="/community/contribute-code/"><span>Contribute 
Code</span></a></li><li class="level-2"><a class="final" 
href="/community/contribute-documentation/"><span>Contribute 
Documentation</span></a></li><li class="level-2"><a class="final" 
href="/community/contribute-sdk/"><span>Contribute a SDK</span></a></li><li 
class="level-2"><a class="final" 
href="/community/contribute-webhook/"><span>Contribute a 
Webhook</span></a></li><li class="level-2"><a class="final" 
href="/community/projects/"><span>Community 
Projects</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Getting Help</span></a><ul><li class="level-2"><a class="final" 
href="/resou
 rces/faq/"><span>FAQs</span></a></li><li class="level-2"><a class="final" 
href="/support/"><span>Support</span></a></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Resources</span></a><ul><li 
class="level-2"><a class="final" href="/resources/intellij/"><span>Developing 
Engines with IntelliJ IDEA</span></a></li><li class="level-2"><a class="final" 
href="/resources/upgrade/"><span>Upgrade Instructions</span></a></li><li 
class="level-2"><a class="final" 
href="/resources/glossary/"><span>Glossary</span></a></li></ul></li></ul></nav></div><div
 class="col-md-9 col-sm-12"><div class="content-header hidden-md 
hidden-lg"><div id="breadcrumbs" class="hidden-sm hidden xs"><ul><li><a 
href="/community/">Getting Involved</a><span 
class="spacer">&gt;</span></li><li><span class="last">Contribute 
Code</span></li></ul></div><div id="page-title"><h1>Contribute 
Code</h1></div></div><div id="table-of-content-wrapper"><h5>On this 
page</h5><aside id="table-of-contents"><ul> <li> <a 
 href="#areas-in-need-of-help">Areas in Need of Help</a> </li> <li> <a 
href="#how-to-report-an-issue">How to Report an Issue</a> </li> <li> <a 
href="#how-to-help-resolve-existing-issues">How to Help Resolve Existing 
Issues</a> </li> <li> <a href="#how-to-add-propose-a-new-feature">How to Add / 
Propose a New Feature</a> </li> <li> <a href="#how-to-issue-a-pull-request">How 
to Issue a Pull Request</a> </li> <li> <a href="#getting-started">Getting 
Started</a> </li> <li> <a 
href="#anatomy-of-apache-predictionio-incubating-code-tree">Anatomy of Apache 
PredictionIO (incubating) Code Tree</a> </li> </ul> </aside><hr/><a 
id="edit-page-link" 
href="https://github.com/apache/incubator-predictionio/tree/livedoc/docs/manual/source/community/contribute-code.html.md";><img
 src="/images/icons/edit-pencil-d6c1bb3d.png"/>Edit this page</a></div><div 
class="content-header hidden-sm hidden-xs"><div id="breadcrumbs" 
class="hidden-sm hidden xs"><ul><li><a href="/community/">Getting 
Involved</a><span class=
 "spacer">&gt;</span></li><li><span class="last">Contribute 
Code</span></li></ul></div><div id="page-title"><h1>Contribute 
Code</h1></div></div><div class="content"><p>Thank you for your interest in 
contributing to Apache PredictionIO (incubating). Our mission is to enable 
developers to build scalable machine learning applications easily. Here is how 
you can help with the project development. If you have any question regarding 
development at anytime, please free to <a 
href="mailto:[email protected]";>subscribe</a> and 
post to the <a 
href="mailto:[email protected]";>Development 
Mailing List</a>.</p><h2 id='areas-in-need-of-help' 
class='header-anchors'>Areas in Need of Help</h2><p>We accept contributions of 
all kinds at any time. We are compiling this list to show features that are 
highly sought after by the community.</p> <ul> <li>Tests and CI</li> <li>Engine 
template, tutorials, and samples</li> <li>Client SDKs</li> <li>Buildi
 ng engines in Java (updating the Java controller API)</li> <li>Code clean up 
and refactoring</li> <li>Code and data pipeline optimization</li> <li>Developer 
experience (UX) improvement</li> </ul> <h2 id='how-to-report-an-issue' 
class='header-anchors'>How to Report an Issue</h2><p>If you wish to report an 
issue you found, you can do so on <a 
href="https://issues.apache.org/jira/browse/PIO";>Apache PredictionIO 
(incubating) JIRA</a>.</p><h2 id='how-to-help-resolve-existing-issues' 
class='header-anchors'>How to Help Resolve Existing Issues</h2><p>In general, 
bug fixes should be done the same way as new features, but critical bug fixes 
will follow a different path.</p><h2 id='how-to-add-/-propose-a-new-feature' 
class='header-anchors'>How to Add / Propose a New Feature</h2> <ol> <li>To 
propose a new feature, simply <a 
href="mailto:[email protected]";>subscribe</a> and 
post your proposal to <a 
href="mailto:[email protected]";>Apache Predictio
 nIO (incubating) Development Mailing List</a>.</li> <li>Discuss with the 
community and the core development team on what needs to be done, and lay down 
concrete plans on deliverables.</li> <li>Once solid plans are made, start 
creating tickets in the <a 
href="https://issues.apache.org/jira/browse/PIO";>issue tracker</a>.</li> 
<li>Work side by side with other developers using Apache PredictionIO 
(incubating) Development Mailing List as primary mode of communication. You 
never know if someone else has a better idea. ;)</li> </ol> <h2 
id='how-to-issue-a-pull-request' class='header-anchors'>How to Issue a Pull 
Request</h2><p>When you have finished your code, you can <a 
href="https://help.github.com/articles/creating-a-pull-request/";>create a pull 
request</a> against the <strong>develop</strong> branch.</p> <ul> <li>The title 
must contain a tag associating with an existing JIRA ticket. You must create a 
ticket so that the infrastructure can correctly track issues across Apache JIRA 
and Git
 Hub. If your ticket is <code>PIO-789</code>, your title must look something 
like <code>[PIO-789] Some short description</code>.</li> <li>Please also, in 
your commit message summary, include the JIRA ticket number similar to 
above.</li> <li>Make sure the title and description are clear and concise. For 
more details on writing a good commit message, check out <a 
href="http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html";>this
 guide</a>.</li> <li>If the change is visual, make sure to include a screenshot 
or GIF.</li> <li>Make sure it is being opened into the right branch.</li> 
<li>Make sure it has been rebased on top of that branch.</li> </ul> <div 
class="alert-message note"><p>When it is close to a release, and if there are 
major development ongoing, a release branch will be forked from the develop 
branch to stabilize the code for binary release. Please refer to the <em>git 
flow</em> methodology page for more information.</p></div><h2 
id='getting-started' class='header
 -anchors'>Getting Started</h2><p>Apache PredictionIO (incubating) relies 
heavily on the <a 
href="http://nvie.com/posts/a-successful-git-branching-model/";>git flow 
methodology</a>. Please make sure you read and understand it before you start 
your development. By default, cloning Apache PredictionIO (incubating) will put 
you in the <em>develop</em> branch, which in most cases is where all the latest 
development go to.</p><div class="alert-message note"><p>For core development, 
please follow the <a href="http://docs.scala-lang.org/style/";>Scala Style 
Guide</a>.</p></div><h3 
id='create-a-fork-of-the-apache-predictionio-(incubating)-repository' 
class='header-anchors'>Create a Fork of the Apache PredictionIO (incubating) 
Repository</h3> <ol> <li>Start by creating a GitHub account if you do not 
already have one.</li> <li>Go to <a 
href="https://github.com/PredictionIO/PredictionIO";>Apache PredictionIO 
(incubating)’s GitHub mirror</a> and fork it to your own account.</li> 
<li>Clone your fo
 rk to your local machine.</li> </ol> <p>If you need additional help, please 
refer to <a 
href="https://help.github.com/articles/fork-a-repo/";>https://help.github.com/articles/fork-a-repo/</a>.</p><h3
 id='building-apache-predictionio-(incubating)-from-source' 
class='header-anchors'>Building Apache PredictionIO (incubating) from 
Source</h3><p>After the previous section, you should have a copy of Apache 
PredictionIO (incubating) in your local machine ready to be built.</p> <ol> 
<li>Make sure you are on the <em>develop</em> branch. You can double check by 
<code>git status</code> or simply <code>git checkout develop</code>.</li> 
<li>At the root of the repository, do <code>./make-distribution.sh</code> to 
build PredictionIO.</li> </ol> <h3 id='setting-up-the-environment' 
class='header-anchors'>Setting Up the Environment</h3><p>Apache PredictionIO 
(incubating) relies on 3rd party software to perform its tasks. To set them up, 
simply follow this <a href="http://docs.prediction.io/install/ins
 tall-sourcecode/#installing-dependencies">documentation</a>.</p><h3 
id='start-hacking' class='header-anchors'>Start Hacking</h3><p>You should have 
a Apache PredictionIO (incubating) development environment by now. Happy 
hacking!</p><h2 id='anatomy-of-apache-predictionio-(incubating)-code-tree' 
class='header-anchors'>Anatomy of Apache PredictionIO (incubating) Code 
Tree</h2><p>The following describes each directory’s purpose.</p><h3 id='bin' 
class='header-anchors'>bin</h3><p>Shell scripts and any relevant components to 
go into the binary distribution. Utility shell scripts can also be included 
here.</p><h3 id='conf' class='header-anchors'>conf</h3><p>Configuration files 
that are used by both a source tree and binary distribution.</p><h3 id='core' 
class='header-anchors'>core</h3><p>Core Apache PredictionIO (incubating) code 
that provides the DASE controller API, core data structures, and workflow 
creation and management code.</p><h3 id='data' 
class='header-anchors'>data</h3><p>Apach
 e PredictionIO (incubating) Event Server, and backend-agnostic storage layer 
for event store and metadata store.</p><h3 id='docs' 
class='header-anchors'>docs</h3><p>Source code for <a 
href="http://predictionio.incubator.apache.org";>http://predictionio.incubator.apache.org</a>
 site, and any other documentation support files.</p><h3 id='engines' 
class='header-anchors'>engines</h3><p>Obsolete built-in engines. To be 
removed.</p><h3 id='examples' class='header-anchors'>examples</h3><p>Complete 
code examples showing Apache PredictionIO (incubating)&#39;s 
application.</p><h3 id='sbt' class='header-anchors'>sbt</h3><p>Embedded SBT 
(Simple Build Tool) launcher.</p><h3 id='templates' 
class='header-anchors'>templates</h3><p>Starting point of building your custom 
engine.</p><h3 id='tools' class='header-anchors'>tools</h3><p>Tools for running 
Apache PredictionIO (incubating). Contains primarily the CLI (command-line 
interface) and its supporting code, and the experimental evaluation dashboard.<
 /p></div></div></div></div><footer><div class="container"><div 
class="seperator"></div><div class="row"><div class="col-md-6 col-xs-6 
footer-link-column"><div 
class="footer-link-column-row"><h4>Community</h4><ul><li><a 
href="//docs.prediction.io/install/" target="blank">Download</a></li><li><a 
href="//docs.prediction.io/" target="blank">Docs</a></li><li><a 
href="//github.com/apache/incubator-predictionio" 
target="blank">GitHub</a></li><li><a 
href="mailto:[email protected]"; 
target="blank">Subscribe to User Mailing List</a></li><li><a 
href="//stackoverflow.com/questions/tagged/predictionio" 
target="blank">Stackoverflow</a></li></ul></div></div><div class="col-md-6 
col-xs-6 footer-link-column"><div 
class="footer-link-column-row"><h4>Contribute</h4><ul><li><a 
href="//predictionio.incubator.apache.org/community/contribute-code/" 
target="blank">Contribute</a></li><li><a 
href="//github.com/apache/incubator-predictionio" target="blank">Source 
Code</a></li><li>
 <a href="//issues.apache.org/jira/browse/PIO" target="blank">Bug 
Tracker</a></li><li><a 
href="mailto:[email protected]"; 
target="blank">Subscribe to Development Mailing 
List</a></li></ul></div></div></div></div><div id="footer-bottom"><div 
class="container"><div class="row"><div class="col-md-12"><div 
id="footer-logo-wrapper"><img alt="PredictionIO" 
src="/images/logos/logo-white-d1e9c6e6.png"/></div><div 
id="social-icons-wrapper"><a class="github-button" 
href="https://github.com/apache/incubator-predictionio"; data-style="mega" 
data-count-href="/apache/incubator-predictionio/stargazers" 
data-count-api="/repos/apache/incubator-predictionio#stargazers_count" 
data-count-aria-label="# stargazers on GitHub" aria-label="Star 
apache/incubator-predictionio on GitHub">Star</a> <a class="github-button" 
href="https://github.com/apache/incubator-predictionio/fork"; 
data-icon="octicon-git-branch" data-style="mega" 
data-count-href="/apache/incubator-predictionio/network
 " data-count-api="/repos/apache/incubator-predictionio#forks_count" 
data-count-aria-label="# forks on GitHub" aria-label="Fork 
apache/incubator-predictionio on GitHub">Fork</a> <script id="github-bjs" 
async="" defer="" src="https://buttons.github.io/buttons.js";></script><a 
href="//www.facebook.com/predictionio" target="blank"><img alt="PredictionIO on 
Twitter" src="/images/icons/twitter-ea9dc152.png"/></a> <a 
href="//twitter.com/predictionio" target="blank"><img alt="PredictionIO on 
Facebook" src="/images/icons/facebook-5c57939c.png"/></a> 
</div></div></div></div></div></footer></div><script>(function(w,d,t,u,n,s,e){w['SwiftypeObject']=n;w[n]=w[n]||function(){
 (w[n].q=w[n].q||[]).push(arguments);};s=d.createElement(t);
 
e=d.getElementsByTagName(t)[0];s.async=1;s.src=u;e.parentNode.insertBefore(s,e);
 })(window,document,'script','//s.swiftypecdn.com/install/v1/st.js','_st');

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-site/blob/c2c7b62a/community/contribute-code/index.html.gz
----------------------------------------------------------------------
diff --git a/community/contribute-code/index.html.gz 
b/community/contribute-code/index.html.gz
index 4ff298b..aa727aa 100644
Binary files a/community/contribute-code/index.html.gz and 
b/community/contribute-code/index.html.gz differ

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-site/blob/c2c7b62a/community/contribute-documentation/index.html
----------------------------------------------------------------------
diff --git a/community/contribute-documentation/index.html 
b/community/contribute-documentation/index.html
index 278638f..b6b377d 100644
--- a/community/contribute-documentation/index.html
+++ b/community/contribute-documentation/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html><head><title>Contribute Documentation</title><meta 
charset="utf-8"/><meta content="IE=edge,chrome=1" 
http-equiv="X-UA-Compatible"/><meta name="viewport" 
content="width=device-width, initial-scale=1.0"/><meta class="swiftype" 
name="title" data-type="string" content="Contribute Documentation"/><link 
rel="canonical" 
href="https://docs.prediction.io/community/contribute-documentation/"/><link 
href="/images/favicon/normal-b330020a.png" rel="shortcut icon"/><link 
href="/images/favicon/apple-c0febcf2.png" rel="apple-touch-icon"/><link 
href="//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800"
 rel="stylesheet"/><link 
href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" 
rel="stylesheet"/><link href="/stylesheets/application-a2a2f408.css" 
rel="stylesheet" type="text/css"/><script 
src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js"></script><script
 src="//cdn.mathjax.o
 rg/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script><script 
src="//use.typekit.net/pqo0itb.js"></script><script>try{Typekit.load({ async: 
true });}catch(e){}</script></head><body><div id="global"><header><div 
class="container" id="header-wrapper"><div class="row"><div 
class="col-sm-12"><div id="logo-wrapper"><span id="drawer-toggle"></span><a 
href="#"></a><a href="http://predictionio.incubator.apache.org/";><img 
alt="PredictionIO" id="logo" 
src="/images/logos/logo-ee2b9bb3.png"/></a></div><div id="menu-wrapper"><div 
id="pill-wrapper"><a class="pill left" 
href="//templates.prediction.io/">TEMPLATES</a> <a class="pill right" 
href="//github.com/apache/incubator-predictionio/">OPEN 
SOURCE</a></div></div><img class="mobile-search-bar-toggler hidden-md 
hidden-lg" 
src="/images/icons/search-glass-704bd4ff.png"/></div></div></div></header><div 
id="search-bar-row-wrapper"><div class="container-fluid" 
id="search-bar-row"><div class="row"><div class="col-md-9 col-sm-11 col-xs-11"
 ><div class="hidden-md hidden-lg" 
 >id="mobile-page-heading-wrapper"><p>PredictionIO Docs</p><h4>Contribute 
 >Documentation</h4></div><h4 class="hidden-sm hidden-xs">PredictionIO 
 >Docs</h4></div><div class="col-md-3 col-sm-1 col-xs-1 hidden-md 
 >hidden-lg"><img id="left-menu-indicator" 
 >src="/images/icons/down-arrow-dfe9f7fe.png"/></div><div class="col-md-3 
 >col-sm-12 col-xs-12 swiftype-wrapper"><div class="swiftype"><form 
 >class="search-form"><img class="search-box-toggler hidden-xs hidden-sm" 
 >src="/images/icons/search-glass-704bd4ff.png"/><div class="search-box"><img 
 >src="/images/icons/search-glass-704bd4ff.png"/><input type="text" 
 >id="st-search-input" class="st-search-input" placeholder="Search 
 >Doc..."/></div><img class="swiftype-row-hider hidden-md hidden-lg" 
 >src="/images/icons/drawer-toggle-active-fcbef12a.png"/></form></div></div><div
 > class="mobile-left-menu-toggler hidden-md 
 >hidden-lg"></div></div></div></div><div id="page" 
 >class="container-fluid"><div class="row"><div id="left-menu-wr
 apper" class="col-md-3"><nav id="nav-main"><ul><li class="level-1"><a 
class="expandible" href="/"><span>Apache PredictionIO (incubating) 
Documentation</span></a><ul><li class="level-2"><a class="final" 
href="/"><span>Welcome to Apache PredictionIO 
(incubating)</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Getting Started</span></a><ul><li class="level-2"><a 
class="final" href="/start/"><span>A Quick Intro</span></a></li><li 
class="level-2"><a class="final" href="/install/"><span>Installing Apache 
PredictionIO (incubating)</span></a></li><li class="level-2"><a class="final" 
href="/start/download/"><span>Downloading an Engine Template</span></a></li><li 
class="level-2"><a class="final" href="/start/deploy/"><span>Deploying Your 
First Engine</span></a></li><li class="level-2"><a class="final" 
href="/start/customize/"><span>Customizing the 
Engine</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Integrating with Your Ap
 p</span></a><ul><li class="level-2"><a class="final" 
href="/appintegration/"><span>App Integration Overview</span></a></li><li 
class="level-2"><a class="expandible" href="/sdk/"><span>List of 
SDKs</span></a><ul><li class="level-3"><a class="final" 
href="/sdk/java/"><span>Java & Android SDK</span></a></li><li 
class="level-3"><a class="final" href="/sdk/php/"><span>PHP 
SDK</span></a></li><li class="level-3"><a class="final" 
href="/sdk/python/"><span>Python SDK</span></a></li><li class="level-3"><a 
class="final" href="/sdk/ruby/"><span>Ruby SDK</span></a></li><li 
class="level-3"><a class="final" href="/sdk/community/"><span>Community Powered 
SDKs</span></a></li></ul></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Deploying an Engine</span></a><ul><li 
class="level-2"><a class="final" href="/deploy/"><span>Deploying as a Web 
Service</span></a></li><li class="level-2"><a class="final" 
href="/cli/#engine-commands"><span>Engine Command-line 
Interface</span></a></li><
 li class="level-2"><a class="final" 
href="/deploy/monitoring/"><span>Monitoring Engine</span></a></li><li 
class="level-2"><a class="final" href="/deploy/engineparams/"><span>Setting 
Engine Parameters</span></a></li><li class="level-2"><a class="final" 
href="/deploy/enginevariants/"><span>Deploying Multiple Engine 
Variants</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Customizing an Engine</span></a><ul><li class="level-2"><a 
class="final" href="/customize/"><span>Learning DASE</span></a></li><li 
class="level-2"><a class="final" href="/customize/dase/"><span>Implement 
DASE</span></a></li><li class="level-2"><a class="final" 
href="/customize/troubleshooting/"><span>Troubleshooting Engine 
Development</span></a></li><li class="level-2"><a class="final" 
href="/api/current/#package"><span>Engine Scala 
APIs</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Collecting and Analyzing Data</span></a><ul><li 
class="level-2"><a 
 class="final" href="/datacollection/"><span>Event Server 
Overview</span></a></li><li class="level-2"><a class="final" 
href="/cli/#event-server-commands"><span>Event Server Command-line 
Interface</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/eventapi/"><span>Collecting Data with 
REST/SDKs</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/eventmodel/"><span>Events Modeling</span></a></li><li 
class="level-2"><a class="final" 
href="/datacollection/webhooks/"><span>Unifying Multichannel Data with 
Webhooks</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/channel/"><span>Channel</span></a></li><li 
class="level-2"><a class="final" 
href="/datacollection/batchimport/"><span>Importing Data in 
Batch</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/analytics/"><span>Using Analytics 
Tools</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Choosing an Algorithm(s)</s
 pan></a><ul><li class="level-2"><a class="final" 
href="/algorithm/"><span>Built-in Algorithm Libraries</span></a></li><li 
class="level-2"><a class="final" href="/algorithm/switch/"><span>Switching to 
Another Algorithm</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/multiple/"><span>Combining Multiple 
Algorithms</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/custom/"><span>Adding Your Own 
Algorithms</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>ML Tuning and Evaluation</span></a><ul><li class="level-2"><a 
class="final" href="/evaluation/"><span>Overview</span></a></li><li 
class="level-2"><a class="final" 
href="/evaluation/paramtuning/"><span>Hyperparameter Tuning</span></a></li><li 
class="level-2"><a class="final" 
href="/evaluation/evaluationdashboard/"><span>Evaluation 
Dashboard</span></a></li><li class="level-2"><a class="final" 
href="/evaluation/metricchoose/"><span>Choosing Evaluation Metrics</span></a
 ></li><li class="level-2"><a class="final" 
 >href="/evaluation/metricbuild/"><span>Building Evaluation 
 >Metrics</span></a></li></ul></li><li class="level-1"><a class="expandible" 
 >href="#"><span>System Architecture</span></a><ul><li class="level-2"><a 
 >class="final" href="/system/"><span>Architecture Overview</span></a></li><li 
 >class="level-2"><a class="final" href="/system/anotherdatastore/"><span>Using 
 >Another Data Store</span></a></li></ul></li><li class="level-1"><a 
 >class="expandible" href="#"><span>Engine Template Gallery</span></a><ul><li 
 >class="level-2"><a class="final" 
 >href="/gallery/template-gallery/"><span>Browse</span></a></li><li 
 >class="level-2"><a class="final" 
 >href="/community/submit-template/"><span>Submit your Engine as a 
 >Template</span></a></li></ul></li><li class="level-1"><a class="expandible" 
 >href="#"><span>Demo Tutorials</span></a><ul><li class="level-2"><a 
 >class="final" href="/demo/tapster/"><span>Comics Recommendation 
 >Demo</span></a></li><li class="level-2"><a clas
 s="final" href="/demo/community/"><span>Community Contributed 
Demo</span></a></li><li class="level-2"><a class="final" 
href="/demo/textclassification/"><span>Text Classification Engine 
Tutorial</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="/community/"><span>Getting Involved</span></a><ul><li class="level-2"><a 
class="final" href="/community/contribute-code/"><span>Contribute 
Code</span></a></li><li class="level-2"><a class="final active" 
href="/community/contribute-documentation/"><span>Contribute 
Documentation</span></a></li><li class="level-2"><a class="final" 
href="/community/contribute-sdk/"><span>Contribute a SDK</span></a></li><li 
class="level-2"><a class="final" 
href="/community/contribute-webhook/"><span>Contribute a 
Webhook</span></a></li><li class="level-2"><a class="final" 
href="/community/projects/"><span>Community 
Projects</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Getting Help</span></a><ul><li class="l
 evel-2"><a class="final" href="/resources/faq/"><span>FAQs</span></a></li><li 
class="level-2"><a class="final" 
href="/support/"><span>Support</span></a></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Resources</span></a><ul><li 
class="level-2"><a class="final" href="/resources/intellij/"><span>Developing 
Engines with IntelliJ IDEA</span></a></li><li class="level-2"><a class="final" 
href="/resources/upgrade/"><span>Upgrade Instructions</span></a></li><li 
class="level-2"><a class="final" 
href="/resources/glossary/"><span>Glossary</span></a></li></ul></li></ul></nav></div><div
 class="col-md-9 col-sm-12"><div class="content-header hidden-md 
hidden-lg"><div id="breadcrumbs" class="hidden-sm hidden xs"><ul><li><a 
href="/community/">Getting Involved</a><span 
class="spacer">&gt;</span></li><li><span class="last">Contribute 
Documentation</span></li></ul></div><div id="page-title"><h1>Contribute 
Documentation</h1></div></div><div id="table-of-content-wrapper"><h5>On th
 is page</h5><aside id="table-of-contents"><ul> <li> <a 
href="#how-to-write-documentation">How to Write Documentation</a> </li> <li> <a 
href="#branching">Branching</a> </li> <li> <a 
href="#installing-locally">Installing Locally</a> </li> <li> <a 
href="#starting-the-server">Starting the Server</a> </li> <li> <a 
href="#building-the-site">Building the Site</a> </li> <li> <a 
href="#styleguide">Styleguide</a> </li> <li> <a 
href="#important-files">Important Files</a> </li> <li> <a 
href="#going-live">Going Live</a> </li> <li> <a 
href="#checking-the-site">Checking the Site</a> </li> <li> <a 
href="#license">License</a> </li> </ul> </aside><hr/><a id="edit-page-link" 
href="https://github.com/apache/incubator-predictionio/tree/livedoc/docs/manual/source/community/contribute-documentation.html.md";><img
 src="/images/icons/edit-pencil-d6c1bb3d.png"/>Edit this page</a></div><div 
class="content-header hidden-sm hidden-xs"><div id="breadcrumbs" 
class="hidden-sm hidden xs"><ul><li><a href="/community/
 ">Getting Involved</a><span class="spacer">&gt;</span></li><li><span 
class="last">Contribute Documentation</span></li></ul></div><div 
id="page-title"><h1>Contribute Documentation</h1></div></div><div 
class="content"><h2 id='how-to-write-documentation' class='header-anchors'>How 
to Write Documentation</h2><p>You can help improve the Apache PredictionIO 
(incubating) documentation by submitting tutorials, writing how-tos, fixing 
errors, and adding missing information. You can edit any page live on <a 
href="https://github.com/apache/incubator-predictionio";>GitHub</a> by clicking 
the pencil icon on any page or open a <a 
href="https://help.github.com/articles/creating-a-pull-request/";>Pull 
Request</a>.</p><h2 id='branching' class='header-anchors'>Branching</h2><p>Use 
the <code>livedoc</code> branch if you want to update the current 
documentation.</p><p>Use the <code>develop</code> branch if you want to write 
documentation for the next release.</p><h2 id='installing-locally' 
class='header-
 anchors'>Installing Locally</h2><p>Apache PredictionIO (incubating) 
documentation uses <a href="http://middlemanapp.com/";>Middleman</a> and is 
hosted on Apache.</p><p><a href="http://rubygems.org/";>Gems</a> are managed 
with <a href="http://bundler.io/";>Bundler</a>. Front end code with <a 
href="http://bower.io/";>Bower</a>.</p><p>Requires <a 
href="https://www.ruby-lang.org/en/";>Ruby</a> 2.1 or greater. We recommend <a 
href="http://rvm.io/";>RVM</a> or <a 
href="https://github.com/sstephenson/rbenv";>rbenv</a>.</p><div 
class="alert-message warning"><p><strong>OS X</strong> users you will need to 
install <a href="https://developer.apple.com/xcode/downloads/";>Xcode Command 
Line Tools</a> with: <code>$ xcode-select --install</code> 
first.</p></div><p>You can install everything with the following 
commands:</p><div class="highlight shell"><table style="border-spacing: 
0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre 
class="lineno">1
+<!DOCTYPE html><html><head><title>Contribute Documentation</title><meta 
charset="utf-8"/><meta content="IE=edge,chrome=1" 
http-equiv="X-UA-Compatible"/><meta name="viewport" 
content="width=device-width, initial-scale=1.0"/><meta class="swiftype" 
name="title" data-type="string" content="Contribute Documentation"/><link 
rel="canonical" 
href="https://docs.prediction.io/community/contribute-documentation/"/><link 
href="/images/favicon/normal-b330020a.png" rel="shortcut icon"/><link 
href="/images/favicon/apple-c0febcf2.png" rel="apple-touch-icon"/><link 
href="//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800"
 rel="stylesheet"/><link 
href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" 
rel="stylesheet"/><link href="/stylesheets/application-a2a2f408.css" 
rel="stylesheet" type="text/css"/><script 
src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js"></script><script
 src="//cdn.mathjax.o
 rg/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script><script 
src="//use.typekit.net/pqo0itb.js"></script><script>try{Typekit.load({ async: 
true });}catch(e){}</script></head><body><div id="global"><header><div 
class="container" id="header-wrapper"><div class="row"><div 
class="col-sm-12"><div id="logo-wrapper"><span id="drawer-toggle"></span><a 
href="#"></a><a href="http://predictionio.incubator.apache.org/";><img 
alt="PredictionIO" id="logo" 
src="/images/logos/logo-ee2b9bb3.png"/></a></div><div id="menu-wrapper"><div 
id="pill-wrapper"><a class="pill left" 
href="/gallery/template-gallery">TEMPLATES</a> <a class="pill right" 
href="//github.com/apache/incubator-predictionio/">OPEN 
SOURCE</a></div></div><img class="mobile-search-bar-toggler hidden-md 
hidden-lg" 
src="/images/icons/search-glass-704bd4ff.png"/></div></div></div></header><div 
id="search-bar-row-wrapper"><div class="container-fluid" 
id="search-bar-row"><div class="row"><div class="col-md-9 col-sm-11 col-xs-11">
 <div class="hidden-md hidden-lg" 
id="mobile-page-heading-wrapper"><p>PredictionIO Docs</p><h4>Contribute 
Documentation</h4></div><h4 class="hidden-sm hidden-xs">PredictionIO 
Docs</h4></div><div class="col-md-3 col-sm-1 col-xs-1 hidden-md hidden-lg"><img 
id="left-menu-indicator" 
src="/images/icons/down-arrow-dfe9f7fe.png"/></div><div class="col-md-3 
col-sm-12 col-xs-12 swiftype-wrapper"><div class="swiftype"><form 
class="search-form"><img class="search-box-toggler hidden-xs hidden-sm" 
src="/images/icons/search-glass-704bd4ff.png"/><div class="search-box"><img 
src="/images/icons/search-glass-704bd4ff.png"/><input type="text" 
id="st-search-input" class="st-search-input" placeholder="Search 
Doc..."/></div><img class="swiftype-row-hider hidden-md hidden-lg" 
src="/images/icons/drawer-toggle-active-fcbef12a.png"/></form></div></div><div 
class="mobile-left-menu-toggler hidden-md 
hidden-lg"></div></div></div></div><div id="page" class="container-fluid"><div 
class="row"><div id="left-menu-wra
 pper" class="col-md-3"><nav id="nav-main"><ul><li class="level-1"><a 
class="expandible" href="/"><span>Apache PredictionIO (incubating) 
Documentation</span></a><ul><li class="level-2"><a class="final" 
href="/"><span>Welcome to Apache PredictionIO 
(incubating)</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Getting Started</span></a><ul><li class="level-2"><a 
class="final" href="/start/"><span>A Quick Intro</span></a></li><li 
class="level-2"><a class="final" href="/install/"><span>Installing Apache 
PredictionIO (incubating)</span></a></li><li class="level-2"><a class="final" 
href="/start/download/"><span>Downloading an Engine Template</span></a></li><li 
class="level-2"><a class="final" href="/start/deploy/"><span>Deploying Your 
First Engine</span></a></li><li class="level-2"><a class="final" 
href="/start/customize/"><span>Customizing the 
Engine</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Integrating with Your App
 </span></a><ul><li class="level-2"><a class="final" 
href="/appintegration/"><span>App Integration Overview</span></a></li><li 
class="level-2"><a class="expandible" href="/sdk/"><span>List of 
SDKs</span></a><ul><li class="level-3"><a class="final" 
href="/sdk/java/"><span>Java & Android SDK</span></a></li><li 
class="level-3"><a class="final" href="/sdk/php/"><span>PHP 
SDK</span></a></li><li class="level-3"><a class="final" 
href="/sdk/python/"><span>Python SDK</span></a></li><li class="level-3"><a 
class="final" href="/sdk/ruby/"><span>Ruby SDK</span></a></li><li 
class="level-3"><a class="final" href="/sdk/community/"><span>Community Powered 
SDKs</span></a></li></ul></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Deploying an Engine</span></a><ul><li 
class="level-2"><a class="final" href="/deploy/"><span>Deploying as a Web 
Service</span></a></li><li class="level-2"><a class="final" 
href="/cli/#engine-commands"><span>Engine Command-line 
Interface</span></a></li><l
 i class="level-2"><a class="final" href="/deploy/monitoring/"><span>Monitoring 
Engine</span></a></li><li class="level-2"><a class="final" 
href="/deploy/engineparams/"><span>Setting Engine Parameters</span></a></li><li 
class="level-2"><a class="final" href="/deploy/enginevariants/"><span>Deploying 
Multiple Engine Variants</span></a></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Customizing an Engine</span></a><ul><li 
class="level-2"><a class="final" href="/customize/"><span>Learning 
DASE</span></a></li><li class="level-2"><a class="final" 
href="/customize/dase/"><span>Implement DASE</span></a></li><li 
class="level-2"><a class="final" 
href="/customize/troubleshooting/"><span>Troubleshooting Engine 
Development</span></a></li><li class="level-2"><a class="final" 
href="/api/current/#package"><span>Engine Scala 
APIs</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Collecting and Analyzing Data</span></a><ul><li 
class="level-2"><a c
 lass="final" href="/datacollection/"><span>Event Server 
Overview</span></a></li><li class="level-2"><a class="final" 
href="/cli/#event-server-commands"><span>Event Server Command-line 
Interface</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/eventapi/"><span>Collecting Data with 
REST/SDKs</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/eventmodel/"><span>Events Modeling</span></a></li><li 
class="level-2"><a class="final" 
href="/datacollection/webhooks/"><span>Unifying Multichannel Data with 
Webhooks</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/channel/"><span>Channel</span></a></li><li 
class="level-2"><a class="final" 
href="/datacollection/batchimport/"><span>Importing Data in 
Batch</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/analytics/"><span>Using Analytics 
Tools</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Choosing an Algorithm(s)</sp
 an></a><ul><li class="level-2"><a class="final" 
href="/algorithm/"><span>Built-in Algorithm Libraries</span></a></li><li 
class="level-2"><a class="final" href="/algorithm/switch/"><span>Switching to 
Another Algorithm</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/multiple/"><span>Combining Multiple 
Algorithms</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/custom/"><span>Adding Your Own 
Algorithms</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>ML Tuning and Evaluation</span></a><ul><li class="level-2"><a 
class="final" href="/evaluation/"><span>Overview</span></a></li><li 
class="level-2"><a class="final" 
href="/evaluation/paramtuning/"><span>Hyperparameter Tuning</span></a></li><li 
class="level-2"><a class="final" 
href="/evaluation/evaluationdashboard/"><span>Evaluation 
Dashboard</span></a></li><li class="level-2"><a class="final" 
href="/evaluation/metricchoose/"><span>Choosing Evaluation Metrics</span></a>
 </li><li class="level-2"><a class="final" 
href="/evaluation/metricbuild/"><span>Building Evaluation 
Metrics</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>System Architecture</span></a><ul><li class="level-2"><a 
class="final" href="/system/"><span>Architecture Overview</span></a></li><li 
class="level-2"><a class="final" href="/system/anotherdatastore/"><span>Using 
Another Data Store</span></a></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Engine Template Gallery</span></a><ul><li 
class="level-2"><a class="final" 
href="/gallery/template-gallery/"><span>Browse</span></a></li><li 
class="level-2"><a class="final" 
href="/community/submit-template/"><span>Submit your Engine as a 
Template</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Demo Tutorials</span></a><ul><li class="level-2"><a 
class="final" href="/demo/tapster/"><span>Comics Recommendation 
Demo</span></a></li><li class="level-2"><a class
 ="final" href="/demo/community/"><span>Community Contributed 
Demo</span></a></li><li class="level-2"><a class="final" 
href="/demo/textclassification/"><span>Text Classification Engine 
Tutorial</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="/community/"><span>Getting Involved</span></a><ul><li class="level-2"><a 
class="final" href="/community/contribute-code/"><span>Contribute 
Code</span></a></li><li class="level-2"><a class="final active" 
href="/community/contribute-documentation/"><span>Contribute 
Documentation</span></a></li><li class="level-2"><a class="final" 
href="/community/contribute-sdk/"><span>Contribute a SDK</span></a></li><li 
class="level-2"><a class="final" 
href="/community/contribute-webhook/"><span>Contribute a 
Webhook</span></a></li><li class="level-2"><a class="final" 
href="/community/projects/"><span>Community 
Projects</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Getting Help</span></a><ul><li class="le
 vel-2"><a class="final" href="/resources/faq/"><span>FAQs</span></a></li><li 
class="level-2"><a class="final" 
href="/support/"><span>Support</span></a></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Resources</span></a><ul><li 
class="level-2"><a class="final" href="/resources/intellij/"><span>Developing 
Engines with IntelliJ IDEA</span></a></li><li class="level-2"><a class="final" 
href="/resources/upgrade/"><span>Upgrade Instructions</span></a></li><li 
class="level-2"><a class="final" 
href="/resources/glossary/"><span>Glossary</span></a></li></ul></li></ul></nav></div><div
 class="col-md-9 col-sm-12"><div class="content-header hidden-md 
hidden-lg"><div id="breadcrumbs" class="hidden-sm hidden xs"><ul><li><a 
href="/community/">Getting Involved</a><span 
class="spacer">&gt;</span></li><li><span class="last">Contribute 
Documentation</span></li></ul></div><div id="page-title"><h1>Contribute 
Documentation</h1></div></div><div id="table-of-content-wrapper"><h5>On thi
 s page</h5><aside id="table-of-contents"><ul> <li> <a 
href="#how-to-write-documentation">How to Write Documentation</a> </li> <li> <a 
href="#branching">Branching</a> </li> <li> <a 
href="#installing-locally">Installing Locally</a> </li> <li> <a 
href="#starting-the-server">Starting the Server</a> </li> <li> <a 
href="#building-the-site">Building the Site</a> </li> <li> <a 
href="#styleguide">Styleguide</a> </li> <li> <a 
href="#important-files">Important Files</a> </li> <li> <a 
href="#going-live">Going Live</a> </li> <li> <a 
href="#checking-the-site">Checking the Site</a> </li> <li> <a 
href="#license">License</a> </li> </ul> </aside><hr/><a id="edit-page-link" 
href="https://github.com/apache/incubator-predictionio/tree/livedoc/docs/manual/source/community/contribute-documentation.html.md";><img
 src="/images/icons/edit-pencil-d6c1bb3d.png"/>Edit this page</a></div><div 
class="content-header hidden-sm hidden-xs"><div id="breadcrumbs" 
class="hidden-sm hidden xs"><ul><li><a href="/community/"
 >Getting Involved</a><span class="spacer">&gt;</span></li><li><span 
 >class="last">Contribute Documentation</span></li></ul></div><div 
 >id="page-title"><h1>Contribute Documentation</h1></div></div><div 
 >class="content"><h2 id='how-to-write-documentation' 
 >class='header-anchors'>How to Write Documentation</h2><p>You can help improve 
 >the Apache PredictionIO (incubating) documentation by submitting tutorials, 
 >writing how-tos, fixing errors, and adding missing information. You can edit 
 >any page live on <a 
 >href="https://github.com/apache/incubator-predictionio";>GitHub</a> by 
 >clicking the pencil icon on any page or open a <a 
 >href="https://help.github.com/articles/creating-a-pull-request/";>Pull 
 >Request</a>.</p><h2 id='branching' 
 >class='header-anchors'>Branching</h2><p>Use the <code>livedoc</code> branch 
 >if you want to update the current documentation.</p><p>Use the 
 ><code>develop</code> branch if you want to write documentation for the next 
 >release.</p><h2 id='installing-locally' class='header-a
 nchors'>Installing Locally</h2><p>Apache PredictionIO (incubating) 
documentation uses <a href="http://middlemanapp.com/";>Middleman</a> and is 
hosted on Apache.</p><p><a href="http://rubygems.org/";>Gems</a> are managed 
with <a href="http://bundler.io/";>Bundler</a>. Front end code with <a 
href="http://bower.io/";>Bower</a>.</p><p>Requires <a 
href="https://www.ruby-lang.org/en/";>Ruby</a> 2.1 or greater. We recommend <a 
href="http://rvm.io/";>RVM</a> or <a 
href="https://github.com/sstephenson/rbenv";>rbenv</a>.</p><div 
class="alert-message warning"><p><strong>OS X</strong> users you will need to 
install <a href="https://developer.apple.com/xcode/downloads/";>Xcode Command 
Line Tools</a> with: <code>$ xcode-select --install</code> 
first.</p></div><p>You can install everything with the following 
commands:</p><div class="highlight shell"><table style="border-spacing: 
0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre 
class="lineno">1
 2
 3</pre></td><td class="code"><pre><span class="gp">$ </span><span 
class="nb">cd </span>docs/manual
 <span class="gp">$ </span>gem install bundler

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-site/blob/c2c7b62a/community/contribute-documentation/index.html.gz
----------------------------------------------------------------------
diff --git a/community/contribute-documentation/index.html.gz 
b/community/contribute-documentation/index.html.gz
index 9686983..cd92fe2 100644
Binary files a/community/contribute-documentation/index.html.gz and 
b/community/contribute-documentation/index.html.gz differ

Reply via email to