http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/community.html
----------------------------------------------------------------------
diff --git a/content/community.html b/content/community.html
new file mode 100644
index 0000000..d25ed1b
--- /dev/null
+++ b/content/community.html
@@ -0,0 +1,743 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <!-- The above 3 meta tags *must* come first in the head; any other head 
content must come *after* these tags -->
+    <title>Apache Flink: Community & Project Info</title>
+    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
+    <link rel="icon" href="/favicon.ico" type="image/x-icon">
+
+    <!-- Bootstrap -->
+    <link rel="stylesheet" 
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css";>
+    <link rel="stylesheet" href="/css/flink.css">
+    <link rel="stylesheet" href="/css/syntax.css">
+
+    <!-- Blog RSS feed -->
+    <link href="/blog/feed.xml" rel="alternate" type="application/rss+xml" 
title="Apache Flink Blog: RSS feed" />
+
+    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
+    <!-- We need to load Jquery in the header for custom google analytics 
event tracking-->
+    <script 
src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js";></script>
+
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
+    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
+    <!--[if lt IE 9]>
+      <script 
src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js";></script>
+      <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
+    <![endif]-->
+  </head>
+  <body>  
+    
+
+    <!-- Main content. -->
+    <div class="container">
+    <div class="row">
+
+      
+     <div id="sidebar" class="col-sm-3">
+          <!-- Top navbar. -->
+    <nav class="navbar navbar-default">
+        <!-- The logo. -->
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle collapsed" 
data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <div class="navbar-logo">
+            <a href="/">
+              <img alt="Apache Flink" src="/img/navbar-brand-logo.png" 
width="147px" height="73px">
+            </a>
+          </div>
+        </div><!-- /.navbar-header -->
+
+        <!-- The navigation links. -->
+        <div class="collapse navbar-collapse" 
id="bs-example-navbar-collapse-1">
+          <ul class="nav navbar-nav navbar-main">
+
+            <!-- Downloads -->
+            <li class=""><a class="btn btn-info" 
href="/downloads.html">Download Flink</a></li>
+
+            <!-- Overview -->
+            <li><a href="/index.html">Home</a></li>
+
+            <!-- Intro -->
+            <li><a href="/introduction.html">Introduction to Flink</a></li>
+
+            <!-- Use cases -->
+            <li><a href="/usecases.html">Flink Use Cases</a></li>
+
+            <!-- Powered by -->
+            <li><a href="/poweredby.html">Powered by Flink</a></li>
+
+            <!-- Ecosystem -->
+            <li><a href="/ecosystem.html">Ecosystem</a></li>
+
+            <!-- Community -->
+            <li class="active"><a href="/community.html">Community &amp; 
Project Info</a></li>
+
+            <!-- Contribute -->
+            <li><a href="/how-to-contribute.html">How to Contribute</a></li>
+
+            <!-- Blog -->
+            <li class=" hidden-md hidden-sm"><a href="/blog/"><b>Flink 
Blog</b></a></li>
+
+            <hr />
+
+
+
+            <!-- Documentation -->
+            <!-- <li>
+              <a 
href="http://ci.apache.org/projects/flink/flink-docs-release-1.1"; 
target="_blank">Documentation <small><span class="glyphicon 
glyphicon-new-window"></span></small></a>
+            </li> -->
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" 
href="#">Documentation
+                <span class="caret"></span></a>
+                <ul class="dropdown-menu">
+                  <li><a 
href="http://ci.apache.org/projects/flink/flink-docs-release-1.1"; 
target="_blank">1.1 (Latest stable release) <small><span class="glyphicon 
glyphicon-new-window"></span></small></a></li>
+                  <li><a 
href="http://ci.apache.org/projects/flink/flink-docs-release-1.2"; 
target="_blank">1.2 (Snapshot) <small><span class="glyphicon 
glyphicon-new-window"></span></small></a></li>
+                </ul>
+              </li>
+
+            <!-- Quickstart -->
+            <li>
+              <a 
href="http://ci.apache.org/projects/flink/flink-docs-release-1.1/quickstart/setup_quickstart.html";
 target="_blank">Quickstart <small><span class="glyphicon 
glyphicon-new-window"></span></small></a>
+            </li>
+
+            <!-- GitHub -->
+            <li>
+              <a href="https://github.com/apache/flink"; target="_blank">Flink 
on GitHub <small><span class="glyphicon 
glyphicon-new-window"></span></small></a>
+            </li>
+
+
+
+
+
+
+          </ul>
+
+
+
+          <ul class="nav navbar-nav navbar-bottom">
+          <hr />
+
+            <!-- FAQ -->
+            <li ><a href="/faq.html">Project FAQ</a></li>
+
+            <!-- Twitter -->
+            <li><a href="https://twitter.com/apacheflink"; 
target="_blank">@ApacheFlink <small><span class="glyphicon 
glyphicon-new-window"></span></small></a></li>
+
+            <!-- Visualizer -->
+            <li class=" hidden-md hidden-sm"><a href="/visualizer/" 
target="_blank">Plan Visualizer <small><span class="glyphicon 
glyphicon-new-window"></span></small></a></li>
+
+          </ul>
+        </div><!-- /.navbar-collapse -->
+    </nav>
+
+      </div>
+      <div class="col-sm-9">
+      <div class="row-fluid">
+  <div class="col-sm-12">
+    <h1>Community & Project Info</h1>
+
+       <div class="page-toc">
+<ul id="markdown-toc">
+  <li><a href="#mailing-lists" id="markdown-toc-mailing-lists">Mailing 
Lists</a></li>
+  <li><a href="#irc" id="markdown-toc-irc">IRC</a></li>
+  <li><a href="#stack-overflow" id="markdown-toc-stack-overflow">Stack 
Overflow</a></li>
+  <li><a href="#issue-tracker" id="markdown-toc-issue-tracker">Issue 
Tracker</a></li>
+  <li><a href="#source-code" id="markdown-toc-source-code">Source Code</a>    
<ul>
+      <li><a href="#main-source-repositories" 
id="markdown-toc-main-source-repositories">Main source repositories</a></li>
+      <li><a href="#website-repositories" 
id="markdown-toc-website-repositories">Website repositories</a></li>
+    </ul>
+  </li>
+  <li><a href="#training" id="markdown-toc-training">Training</a></li>
+  <li><a href="#project-wiki" id="markdown-toc-project-wiki">Project 
Wiki</a></li>
+  <li><a href="#flink-forward" id="markdown-toc-flink-forward">Flink 
Forward</a></li>
+  <li><a href="#people" id="markdown-toc-people">People</a>    <ul>
+      <li><a href="#former-mentors" id="markdown-toc-former-mentors">Former 
mentors</a></li>
+    </ul>
+  </li>
+  <li><a href="#slides" id="markdown-toc-slides">Slides</a>    <ul>
+      <li><a href="#section" id="markdown-toc-section">2016</a></li>
+      <li><a href="#section-1" id="markdown-toc-section-1">2015</a></li>
+      <li><a href="#section-2" id="markdown-toc-section-2">2014</a></li>
+    </ul>
+  </li>
+  <li><a href="#materials" id="markdown-toc-materials">Materials</a>    <ul>
+      <li><a href="#apache-flink-logos" 
id="markdown-toc-apache-flink-logos">Apache Flink Logos</a>        <ul>
+          <li><a href="#portable-network-graphics-png" 
id="markdown-toc-portable-network-graphics-png">Portable Network Graphics 
(PNG)</a></li>
+          <li><a href="#scalable-vector-graphics-svg" 
id="markdown-toc-scalable-vector-graphics-svg">Scalable Vector Graphics 
(SVG)</a></li>
+          <li><a href="#photoshop-psd" 
id="markdown-toc-photoshop-psd">Photoshop (PSD)</a></li>
+        </ul>
+      </li>
+      <li><a href="#color-scheme" id="markdown-toc-color-scheme">Color 
Scheme</a></li>
+    </ul>
+  </li>
+</ul>
+
+</div>
+
+<p>There are many ways to get help from the Apache Flink community. The <a 
href="#mailing-lists">mailing lists</a> are the primary place where all Flink 
committers are present. If you want to talk with the Flink committers and users 
in a chat, there is a <a href="#irc">IRC channel</a>. Some committers are also 
monitoring <a href="http://stackoverflow.com/questions/tagged/flink";>Stack 
Overflow</a>. Please remember to tag your questions with the <em><a 
href="http://stackoverflow.com/questions/tagged/flink";>flink</a></em> tag. Bugs 
and feature requests can either be discussed on <em>dev mailing list</em> or on 
<a href="https://issues.apache.org/jira/browse/FLINK";>JIRA</a>. Those 
interested in contributing to Flink should check out the <a 
href="how-to-contribute.html">contribution guide</a>.</p>
+
+<h2 id="mailing-lists">Mailing Lists</h2>
+
+<table class="table table-striped">
+  <thead>
+    <th class="text-center">Name</th>
+    <th class="text-center">Subscribe</th>
+    <th class="text-center">Digest</th>
+    <th class="text-center">Unsubscribe</th>
+    <th class="text-center">Post</th>
+    <th class="text-center">Archive</th>
+  </thead>
+  <tr>
+    <td>
+      <strong>news</strong>@flink.apache.org<br />
+      <small>News and announcements from the Flink community.</small>
+    </td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <a 
href="mailto:news-subscr...@flink.apache.org";>Subscribe</a></td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <a 
href="mailto:news-digest-subscr...@flink.apache.org";>Subscribe</a></td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <a 
href="mailto:news-unsubscr...@flink.apache.org";>Unsubscribe</a></td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <i>Read only 
list</i></td>
+    <td class="text-center">
+      <a 
href="http://mail-archives.apache.org/mod_mbox/flink-news/";>Archives</a> <br />
+    </td>
+  </tr>
+  <tr>
+    <td>
+      <strong>community</strong>@flink.apache.org<br />
+      <small>Broader community discussions related to meetups, conferences, 
blog posts and job offers.</small>
+    </td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <a 
href="mailto:community-subscr...@flink.apache.org";>Subscribe</a></td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <a 
href="mailto:community-digest-subscr...@flink.apache.org";>Subscribe</a></td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <a 
href="mailto:community-unsubscr...@flink.apache.org";>Unsubscribe</a></td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <a 
href="mailto:commun...@flink.apache.org";>Post</a></td>
+    <td class="text-center">
+      <a 
href="http://mail-archives.apache.org/mod_mbox/flink-community/";>Archives</a> 
<br />
+    </td>
+  </tr>
+  <tr>
+    <td>
+      <strong>user</strong>@flink.apache.org<br />
+      <small>User support and questions mailing list</small>
+    </td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <a 
href="mailto:user-subscr...@flink.apache.org";>Subscribe</a></td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <a 
href="mailto:user-digest-subscr...@flink.apache.org";>Subscribe</a></td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <a 
href="mailto:user-unsubscr...@flink.apache.org";>Unsubscribe</a></td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <a 
href="mailto:u...@flink.apache.org";>Post</a></td>
+    <td class="text-center">
+      <a 
href="http://mail-archives.apache.org/mod_mbox/flink-user/";>Archives</a> <br />
+      <a 
href="http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/";>Nabble
 Archive</a>
+    </td>
+  </tr>
+  <tr>
+    <td>
+      <strong>dev</strong>@flink.apache.org<br />
+      <small>Development related discussions</small>
+    </td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <a 
href="mailto:dev-subscr...@flink.apache.org";>Subscribe</a></td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <a 
href="mailto:dev-digest-subscr...@flink.apache.org";>Subscribe</a></td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <a 
href="mailto:dev-unsubscr...@flink.apache.org";>Unsubscribe</a></td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <a 
href="mailto:d...@flink.apache.org";>Post</a></td>
+    <td class="text-center">
+      <a 
href="http://mail-archives.apache.org/mod_mbox/flink-dev/";>Archives</a> <br />
+      <a 
href="http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/";>Nabble 
Archive</a>
+    </td>
+  </tr>
+  <tr>
+    <td>
+      <strong>issues</strong>@flink.apache.org
+      <br />
+      <small>Mirror of all JIRA activity</small>
+    </td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <a 
href="mailto:issues-subscr...@flink.apache.org";>Subscribe</a></td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <a 
href="mailto:issues-digest-subscr...@flink.apache.org";>Subscribe</a></td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <a 
href="mailto:issues-unsubscr...@flink.apache.org";>Unsubscribe</a></td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i><i>Read only 
list</i></td>
+    <td class="text-center"><a 
href="http://mail-archives.apache.org/mod_mbox/flink-issues/";>Archives</a></td>
+  </tr>
+  <tr>
+    <td>
+      <strong>commits</strong>@flink.apache.org
+      <br />
+      <small>All commits to our repositories</small>
+    </td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <a 
href="mailto:commits-subscr...@flink.apache.org";>Subscribe</a></td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <a 
href="mailto:commits-digest-subscr...@flink.apache.org";>Subscribe</a></td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <a 
href="mailto:commits-unsubscr...@flink.apache.org";>Unsubscribe</a></td>
+    <td class="text-center"><i class="fa fa-pencil-square-o"></i> <i>Read only 
list</i></td>
+    <td class="text-center"><a 
href="http://mail-archives.apache.org/mod_mbox/flink-commits/";>Archives</a></td>
+  </tr>
+</table>
+
+<h2 id="irc">IRC</h2>
+
+<p>There is an IRC channel called #flink dedicated to Apache Flink at 
irc.freenode.org. There is also a <a 
href="http://webchat.freenode.net/?channels=flink";>web-based IRC client</a> 
available.</p>
+
+<p>The IRC channel can be used for online discussions about Apache Flink as 
community, but developers should be careful to move or duplicate all the 
official or useful discussions to the issue tracking system or dev mailing 
list.</p>
+
+<h2 id="stack-overflow">Stack Overflow</h2>
+
+<p>Committers are watching <a 
href="http://stackoverflow.com/questions/tagged/flink";>Stack Overflow</a> for 
the <a href="http://stackoverflow.com/questions/tagged/flink";>flink</a> tag.</p>
+
+<p>Make sure to tag your questions there accordingly to get answers from the 
Flink community.</p>
+
+<h2 id="issue-tracker">Issue Tracker</h2>
+
+<p>We use JIRA to track all code related issues: <a 
href="https://issues.apache.org/jira/browse/FLINK";>https://issues.apache.org/jira/browse/FLINK</a>.</p>
+
+<p>All issue activity is also mirrored to the issues mailing list.</p>
+
+<h2 id="source-code">Source Code</h2>
+
+<h3 id="main-source-repositories">Main source repositories</h3>
+
+<ul>
+  <li><strong>ASF writable</strong>: <a 
href="https://git-wip-us.apache.org/repos/asf/flink.git";>https://git-wip-us.apache.org/repos/asf/flink.git</a></li>
+  <li><strong>ASF read-only</strong>: git://git.apache.org/flink.git</li>
+  <li><strong>GitHub mirror</strong>: <a 
href="https://github.com/apache/flink.git";>https://github.com/apache/flink.git</a></li>
+</ul>
+
+<p>Note: Flink does not build with Oracle JDK 6. It runs with Oracle JDK 6.</p>
+
+<h3 id="website-repositories">Website repositories</h3>
+
+<ul>
+  <li><strong>ASF writable</strong>: <a 
href="https://git-wip-us.apache.org/repos/asf/flink-web.git";>https://git-wip-us.apache.org/repos/asf/flink-web.git</a></li>
+  <li><strong>ASF read-only</strong>: git://git.apache.org/flink-web.git</li>
+  <li><strong>GitHub mirror</strong>:  <a 
href="https://github.com/apache/flink-web.git";>https://github.com/apache/flink-web.git</a></li>
+</ul>
+
+<h2 id="training">Training</h2>
+
+<p><a href="http://data-artisans.com";>dataArtisans</a> currently maintains 
free Apache Flink training. Their <a 
href="http://dataartisans.github.io/flink-training";>training website</a> has 
slides and exercises with solutions. The slides are also available on <a 
href="http://www.slideshare.net/dataArtisans/presentations";>SlideShare</a>.</p>
+
+<h2 id="project-wiki">Project Wiki</h2>
+
+<p>The Apache Flink <a 
href="https://cwiki.apache.org/confluence/display/FLINK/Apache+Flink+Home"; 
target="_blank">project wiki</a> contains a range of relevant resources for 
Flink users. However, some content on the wiki might be out-of-date. When in 
doubt, please refer to the <a 
href="http://ci.apache.org/projects/flink/flink-docs-release-1.1"; 
target="_blank">Flink documentation</a>.</p>
+
+<h2 id="flink-forward">Flink Forward</h2>
+
+<p>Flink Forward 2015 (October 12-13, 2015) was the first conference to bring 
together the Apache Flink developer and user community. You can find <a 
href="http://2015.flink-forward.org/?post_type=session";>slides and videos</a> 
of all talks on the Flink Forward 2015 page.</p>
+
+<p>The second edition of Flink Forward took place on September 12-14, 2016. 
All <a href="http://flink-forward.org/program/sessions/";>slides and videos</a> 
are available on the Flink Forward 2016 page.</p>
+
+<h1 id="people">People</h1>
+
+<table class="table table-striped">
+  <thead>
+    <th class="text-center"></th>
+    <th class="text-center">Name</th>
+    <th class="text-center">Role</th>
+    <th class="text-center">Apache ID</th>
+  </thead>
+  <tr>
+    <td class="text-center"><img 
src="https://avatars2.githubusercontent.com/u/5990983?s=50"; /></td>
+    <td class="text-center">Márton Balassi</td>
+    <td class="text-center">PMC, Committer</td>
+    <td class="text-center">mbalassi</td>
+  </tr>
+    <tr>
+        <td class="text-center"><img 
src="https://avatars2.githubusercontent.com/u/858078?v=3&amp;s=50"; /></td>
+        <td class="text-center">Paris Carbone</td>
+        <td class="text-center">Committer</td>
+        <td class="text-center">senorcarbone</td>
+    </tr>
+  <tr>
+    <td class="text-center" width="10%"><img 
src="https://avatars3.githubusercontent.com/u/1756620?s=50"; /></td>
+    <td class="text-center">Ufuk Celebi</td>
+    <td class="text-center">PMC, Committer</td>
+    <td class="text-center">uce</td>
+  </tr>
+  <tr>
+    <td class="text-center"><img 
src="https://avatars2.githubusercontent.com/u/1727146?s=50"; /></td>
+    <td class="text-center">Stephan Ewen</td>
+    <td class="text-center">PMC, Committer, VP</td>
+    <td class="text-center">sewen</td>
+  </tr>
+  <tr>
+    <td class="text-center"><img 
src="https://avatars1.githubusercontent.com/u/5880972?s=50"; /></td>
+    <td class="text-center">Gyula Fóra</td>
+    <td class="text-center">PMC, Committer</td>
+    <td class="text-center">gyfora</td>
+  </tr>
+  <tr>
+    <td class="text-center"></td>
+    <td class="text-center">Alan Gates</td>
+    <td class="text-center">PMC, Committer</td>
+    <td class="text-center">gates</td>
+  </tr>
+  <tr>
+    <td class="text-center"><img 
src="https://avatars0.githubusercontent.com/u/2388347?s=50"; /></td>
+    <td class="text-center">Fabian Hueske</td>
+    <td class="text-center">PMC, Committer</td>
+    <td class="text-center">fhueske</td>
+  </tr>
+    <tr>
+    <td class="text-center"><img 
src="https://avatars3.githubusercontent.com/u/498957?v=3&amp;s=50"; /></td>
+    <td class="text-center">Vasia Kalavri</td>
+    <td class="text-center">PMC, Committer</td>
+    <td class="text-center">vasia</td>
+  </tr>
+  
+    <tr>
+    <td class="text-center"><img 
src="https://avatars0.githubusercontent.com/u/68551?s=50"; /></td>
+    <td class="text-center">Aljoscha Krettek</td>
+    <td class="text-center">PMC, Committer</td>
+    <td class="text-center">aljoscha</td>
+  </tr>
+  <tr>
+    <td class="text-center"><img 
src="https://avatars2.githubusercontent.com/u/2550549?s=50"; /></td>
+    <td class="text-center">Andra Lungu</td>
+    <td class="text-center">Committer</td>
+    <td class="text-center">andra</td>
+  </tr>
+  <tr>
+    <td class="text-center"><img 
src="https://avatars0.githubusercontent.com/u/89049?s=50"; /></td>
+    <td class="text-center">Robert Metzger</td>
+    <td class="text-center">PMC, Committer</td>
+    <td class="text-center">rmetzger</td>
+  </tr>
+  <tr>
+    <td class="text-center"><img 
src="https://avatars2.githubusercontent.com/u/837221?s=50"; /></td>
+    <td class="text-center">Maximilian Michels</td>
+    <td class="text-center">PMC, Committer</td>
+    <td class="text-center">mxm</td>
+  </tr>
+  <tr>
+    <td class="text-center"><img 
src="https://avatars2.githubusercontent.com/u/1941681?s=50"; /></td>
+    <td class="text-center">Chiwan Park</td>
+    <td class="text-center">Committer</td>
+    <td class="text-center">chiwanpark</td>
+  </tr>
+  <tr>
+    <td class="text-center"><img 
src="https://avatars1.githubusercontent.com/u/5756858?s=50"; /></td>
+    <td class="text-center">Till Rohrmann</td>
+    <td class="text-center">PMC, Committer</td>
+    <td class="text-center">trohrmann</td>
+  </tr>
+  <tr>
+    <td class="text-center"><img 
src="https://avatars0.githubusercontent.com/u/105434?s=50"; /></td>
+    <td class="text-center">Henry Saputra</td>
+    <td class="text-center">PMC, Committer</td>
+    <td class="text-center">hsaputra</td>
+  </tr>
+  <tr>
+    <td class="text-center"><img 
src="https://avatars0.githubusercontent.com/u/8959638?s=50"; /></td>
+    <td class="text-center">Matthias J. Sax</td>
+    <td class="text-center">Committer</td>
+    <td class="text-center">mjsax</td>
+  </tr>
+  <tr>
+    <td class="text-center"><img 
src="https://avatars1.githubusercontent.com/u/409707?s=50"; /></td>
+    <td class="text-center">Sebastian Schelter</td>
+    <td class="text-center">PMC, Committer</td>
+    <td class="text-center">ssc</td>
+  </tr>
+  <tr>
+    <td class="text-center"><img 
src="https://avatars2.githubusercontent.com/u/1925554?s=50"; /></td>
+    <td class="text-center">Kostas Tzoumas</td>
+    <td class="text-center">PMC, Committer</td>
+    <td class="text-center">ktzoumas</td>
+  </tr>
+  <tr>
+    <td class="text-center"></td>
+    <td class="text-center">Timo Walther</td>
+    <td class="text-center">PMC, Committer</td>
+    <td class="text-center">twalthr</td>
+  </tr>
+  <tr>
+    <td class="text-center"><img 
src="https://avatars1.githubusercontent.com/u/1826769?s=50"; /></td>
+    <td class="text-center">Daniel Warneke</td>
+    <td class="text-center">PMC, Committer</td>
+    <td class="text-center">warneke</td>
+  </tr>
+  <tr>
+    <td class="text-center"><img 
src="https://avatars1.githubusercontent.com/u/4425616?s=50"; /></td>
+    <td class="text-center">ChengXiang Li</td>
+    <td class="text-center">Committer</td>
+    <td class="text-center">chengxiang</td>
+  </tr>
+  <tr>
+    <td class="text-center"><img 
src="https://avatars1.githubusercontent.com/u/569655?s=50"; /></td>
+    <td class="text-center">Greg Hogan</td>
+    <td class="text-center">Committer</td>
+    <td class="text-center">greg</td>
+  </tr>
+  <tr>
+    <td class="text-center"><img 
src="https://avatars1.githubusercontent.com/u/5284370?s=50"; /></td>
+    <td class="text-center">Tzu-Li (Gordon) Tai</td>
+    <td class="text-center">Committer</td>
+    <td class="text-center">tzulitai</td>
+  </tr>
+</table>
+
+<p>You can reach committers directly at 
<code>&lt;apache-id&gt;@apache.org</code>. A list of all contributors can be 
found <a 
href="https://cwiki.apache.org/confluence/display/FLINK/List+of+contributors";>here</a>.</p>
+
+<h2 id="former-mentors">Former mentors</h2>
+
+<p>The following people were very kind to mentor the project while in 
incubation.</p>
+
+<table class="table table-striped">
+  <thead>
+    <th class="text-center"></th>
+    <th class="text-center">Name</th>
+    <th class="text-center">Role</th>
+    <th class="text-center">Apache ID</th>
+  </thead>
+  <tr>
+    <td class="text-center"></td>
+    <td class="text-center">Ashutosh Chauhan</td>
+    <td class="text-center">Former PPMC, Mentor</td>
+    <td class="text-center">hashutosh</td>
+  </tr>
+  <tr>
+    <td class="text-center"></td>
+    <td class="text-center">Ted Dunning</td>
+    <td class="text-center">Former PPMC, Mentor</td>
+    <td class="text-center">tdunning</td>
+  </tr>
+  <tr>
+    <td class="text-center"></td>
+    <td class="text-center">Alan Gates</td>
+    <td class="text-center">Former PPMC, Mentor</td>
+    <td class="text-center">gates</td>
+  </tr>
+  
+    <tr>
+    <td class="text-center"></td>
+    <td class="text-center">Owen O'Malley</td>
+    <td class="text-center">Former PPMC, Mentor</td>
+    <td class="text-center">omalley</td>
+  </tr>
+  <tr>
+    <td class="text-center"></td>
+    <td class="text-center">Sean Owen</td>
+    <td class="text-center">Former PPMC, Mentor</td>
+    <td class="text-center">srowen</td>
+  </tr>
+  <tr>
+    <td class="text-center"></td>
+    <td class="text-center">Henry Saputra</td>
+    <td class="text-center">Former PPMC, Mentor</td>
+    <td class="text-center">hsaputra</td>
+  </tr>
+</table>
+
+<h1 id="slides">Slides</h1>
+
+<p><strong>Note</strong>: Keep in mind that code examples on slides have a 
chance of being incomplete or outdated. Always refer to the <a 
href="http://ci.apache.org/projects/flink/flink-docs-release-1.2";>latest 
documentation</a> for an up to date reference.</p>
+
+<h3 id="section">2016</h3>
+
+<ul>
+  <li>Stefan Richter: <strong>A look at Apache Flink 1.2 and beyond</strong> 
<em>Apache Flink Meetup Berlin, November 2016</em>: <a 
href="http://www.slideshare.net/StefanRichter10/a-look-at-flink-12";>SlideShare</a></li>
+  <li>Robert Metzger: <strong>Apache Flink Community Updates November 
2016</strong> <em>Apache Flink Meetup Berlin, November 2016</em>: <a 
href="http://www.slideshare.net/robertmetzger1/apache-flink-community-updates-november-2016-berlin-meetup";>SlideShare</a></li>
+  <li>Aljoscha Krettek: <strong>Apache Flink for IoT: How Event-Time 
Processing Enables Easy and Accurate Analytics</strong> <em>Big Data Spain, 
Madrid November 2016</em>: <a 
href="http://www.slideshare.net/dataArtisans/aljoscha-krettek-apache-flink-for-iot-how-eventtime-processing-enables-easy-and-accurate-analytics";>SlideShare</a></li>
+  <li>Stephan Ewen: <strong>Keynote -The maturing data streaming ecosystem and 
Apache Flink’s accelerated growth</strong> <em>Apache Big Data Europe 2016, 
Seville November 2016</em>: <a 
href="http://www.slideshare.net/dataArtisans/keynote-stephan-ewen-stream-processing-as-a-foundational-paradigm-and-apache-flinks-approach-to-it";>SlideShare</a></li>
+  <li>Kostas Tzoumas: <strong>Stream Processing with Apache Flink®</strong> 
<em>Apache Flink London Meetup, November 2016</em>: <a 
href="http://www.slideshare.net/dataArtisans/kostas-tzoumas-stream-processing-with-apache-flink";>SlideShare</a></li>
+  <li>Kostas Tzoumas: <strong>Apache Flink®: State of the Union and What’s 
Next</strong> <em>Strata + Hadoop World New York, September 2016</em>: <a 
href="http://www.slideshare.net/dataArtisans/kostas-tzoumas-apache-flink-state-of-the-union-and-whats-next";>SlideShare</a></li>
+  <li>Kostas Tzoumas &amp; Stephan Ewen: <strong>Keynote -The maturing data 
streaming ecosystem and Apache Flink’s accelerated growth</strong> <em>Flink 
Forward, Berlin September 2016</em>: <a 
href="http://www.slideshare.net/FlinkForward/kostas-tzoumasstpehan-ewen-keynote-the-maturing-data-streaming-ecosystem-and-apache-flinks-accelerated-growth";>SlideShare</a></li>
+  <li>Robert Metzger: <strong>Connecting Apache Flink to the World - Reviewing 
the streaming connectors</strong> <em>Flink Forward, Berlin September 
2016</em>: <a 
href="http://www.slideshare.net/FlinkForward/robert-metzger-connecting-apache-flink-to-the-world-reviewing-the-streaming-connectors";>SlideShare</a></li>
+  <li>Till Rohrmann &amp; Fabian Hueske: <strong>Declarative stream processing 
with StreamSQL and CEP</strong> <em>Flink Forward, Berlin September 2016</em>: 
<a 
href="http://www.slideshare.net/FlinkForward/fabian-huesketill-rohrmann-declarative-stream-processing-with-streamsql-and-cep";>SlideShare</a></li>
+  <li>Jamie Grier: <strong>Robust Stream Processing with Apache Flink</strong> 
<em>Flink Forward, Berlin September 2016</em>: <a 
href="http://www.slideshare.net/FlinkForward/jamie-grier-robust-stream-processing-with-apache-flink";>SlideShare</a></li>
+  <li>Jamie Grier: <strong>The Stream Processor as a Database- Building Online 
Applications directly on Streams</strong> <em>Flink Forward, Berlin September 
2016</em>: <a 
href="http://www.slideshare.net/FlinkForward/jamie-grier-the-stream-processor-as-a-database-building-online-applications-directly-on-streams";>SlideShare</a></li>
+  <li>Till Rohramnn: <strong>Dynamic Scaling - How Apache Flink adapts to 
changing workloads</strong> <em>Flink Forward, Berlin September 2016</em>: <a 
href="http://www.slideshare.net/FlinkForward/till-rohrmann-dynamic-scaling-how-apache-flink-adapts-to-changing-workloads";>SlideShare</a></li>
+  <li>Stephan Ewen: <strong>Running Flink Everywhere</strong> <em>Flink 
Forward, Berlin September 2016</em>: <a 
href="http://www.slideshare.net/FlinkForward/stephan-ewen-running-flink-everywhere";>SlideShare</a></li>
+  <li>Stephan Ewen: <strong>Scaling Apache Flink to very large State</strong> 
<em>Flink Forward, Berlin September 2016</em>: <a 
href="http://www.slideshare.net/FlinkForward/stephan-ewen-scaling-to-large-state";>SlideShare</a></li>
+  <li>Aljoscha Krettek: <strong>The Future of Apache Flink</strong> <em>Flink 
Forward, Berlin September 2016</em>: <a 
href="http://www.slideshare.net/FlinkForward/aljoscha-krettek-the-future-of-apache-flink";>SlideShare</a></li>
+  <li>Fabian Hueske: <strong>Taking a look under the hood of Apache Flink’s 
relational APIs</strong> <em>Flink Forward, Berlin September 2016</em>: <a 
href="http://www.slideshare.net/fhueske/taking-a-look-under-hood-of-apache-flinks-relational-apis";>SlideShare</a></li>
+  <li>Kostas Tzoumas: <strong>Streaming in the Wild with Apache Flink</strong> 
<em>Hadoop Summit San Jose, June 2016</em>: <a 
href="http://www.slideshare.net/KostasTzoumas/streaming-in-the-wild-with-apache-flink-63790942";>SlideShare</a></li>
+  <li>Stephan Ewen: <strong>The Stream Processor as the Database - Apache 
Flink</strong> <em>Berlin Buzzwords, June 2016</em>: <a 
href="http://www.slideshare.net/stephanewen1/the-stream-processor-as-the-database-apache-flink-berlin-buzzwords";>SlideShare</a></li>
+  <li>Till Rohrmann &amp; Fabian Hueske: <strong>Streaming Analytics &amp; CEP 
- Two sides of the same coin?</strong> <em>Berlin Buzzwords, June 2016</em>: <a 
href="http://www.slideshare.net/tillrohrmann/streaming-analytics-cep-two-sides-of-the-same-coin";>SlideShare</a></li>
+  <li>Robert Metzger: <strong>A Data Streaming Architecture with Apache 
Flink</strong> <em>Berlin Buzzwords, June 2016</em>: <a 
href="http://www.slideshare.net/robertmetzger1/a-data-streaming-architecture-with-apache-flink-berlin-buzzwords-2016";>SlideShare</a></li>
+  <li>Stephan Ewen: <strong>Continuous Processing with Apache Flink</strong> 
<em>Strata + Hadoop World London, May 2016</em>: <a 
href="http://www.slideshare.net/stephanewen1/continuous-processing-with-apache-flink-strata-london-2016";>SlideShare</a></li>
+  <li>Stephan Ewen: <strong>Streaming Analytics with Apache Flink 1.0</strong> 
<em>Flink NYC Flink, May 2016</em>: <a 
href="http://www.slideshare.net/stephanewen1/apache-flink-myc-flink-meetup";>SlideShare</a></li>
+  <li>Ufuk Celebi: <strong>Unified Stream &amp; Batch Processing with Apache 
Flink</strong>. <em>Hadoop Summit Dublin, April 2016</em>: <a 
href="http://www.slideshare.net/HadoopSummit/unified-stream-and-batch-processing-with-apache-flink";>SlideShare</a></li>
+  <li>Kostas Tzoumas: <strong>Counting Elements in Streams</strong>. 
<em>Strata San Jose, March 2016</em>: <a 
href="http://www.slideshare.net/KostasTzoumas/apache-flink-at-strata-san-jose-2016";>SlideShare</a></li>
+  <li>Jamie Grier: <strong>Extending the Yahoo! Streaming Benchmark</strong>. 
<em>Flink Washington DC Meetup, March 2016</em>: <a 
href="http://www.slideshare.net/JamieGrier/extending-the-yahoo-streaming-benchmark";>SlideShare</a></li>
+  <li>Jamie Grier: <strong>Stateful Stream Processing at In-Memory 
Speed</strong>. <em>Flink NYC Meetup, March 2016</em>: <a 
href="http://www.slideshare.net/JamieGrier/stateful-stream-processing-at-inmemory-speed";>SlideShare</a></li>
+  <li>Robert Metzger: <strong>Stream Processing with Apache Flink</strong>. 
<em>QCon London, March 2016</em>: <a 
href="http://www.slideshare.net/robertmetzger1/qcon-london-stream-processing-with-apache-flink";>SlideShare</a></li>
+  <li>Vasia Kalavri: <strong>Batch and Stream Graph Processing with Apache 
Flink</strong>. <em>Flink and Neo4j Meetup Berlin, March 2016</em>: <a 
href="http://www.slideshare.net/vkalavri/batch-and-stream-graph-processing-with-apache-flink";>SlideShare</a></li>
+  <li>Maximilian Michels: <strong>Stream Processing with Apache 
Flink</strong>. <em>Big Data Technology Summit, February 2016</em>:
+<a 
href="http://de.slideshare.net/MaximilianMichels/big-datawarsaw-animated";>SlideShare</a></li>
+  <li>Vasia Kalavri: <strong>Single-Pass Graph Streaming Analytics with Apache 
Flink</strong>. <em>FOSDEM, January 2016</em>: <a 
href="http://www.slideshare.net/vkalavri/gellystream-singlepass-graph-streaming-analytics-with-apache-flink";>SlideShare</a></li>
+  <li>Till Rohrmann: <strong>Streaming Done Right</strong>. <em>FOSDEM, 
January 2016</em>: <a 
href="http://www.slideshare.net/tillrohrmann/apache-flink-streaming-done-right-fosdem-2016";>SlideShare</a></li>
+</ul>
+
+<h3 id="section-1">2015</h3>
+
+<ul>
+  <li>Till Rohrmann: <strong>Streaming Data Flow with Apache Flink</strong> 
<em>(October 29th, 2015)</em>: <a 
href="http://www.slideshare.net/tillrohrmann/streaming-data-flow-with-apache-flink-paris-flink-meetup-2015-54572718";>SlideShare</a></li>
+  <li>Stephan Ewen: <strong>Flink-0.10</strong> <em>(October 28th, 2015)</em>: 
<a 
href="http://www.slideshare.net/stephanewen1/flink-010-bay-area-meetup-october-2015";>SlideShare</a></li>
+  <li>Robert Metzger: <strong>Architecture of Flink’s Streaming 
Runtime</strong> <em>(ApacheCon, September 29th, 2015)</em>: <a 
href="http://www.slideshare.net/robertmetzger1/architecture-of-flinks-streaming-runtime-apachecon-eu-2015";>SlideShare</a></li>
+  <li>Robert Metzger: <strong>Click-Through Example for Flink’s 
KafkaConsumer Checkpointing</strong> <em>(September, 2015)</em>: <a 
href="http://www.slideshare.net/robertmetzger1/clickthrough-example-for-flinks-kafkaconsumer-checkpointing";>SlideShare</a></li>
+  <li>Paris Carbone: <strong>Apache Flink Streaming. Resiliency and 
Consistency</strong> (Google Tech Talk, August 2015: <a 
href="http://www.slideshare.net/ParisCarbone/tech-talk-google-on-flink-fault-tolerance-and-ha";>SlideShare</a></li>
+  <li>Andra Lungu: <strong>Graph Processing with Apache Flink</strong> 
<em>(August 26th, 2015)</em>: <a 
href="http://www.slideshare.net/AndraLungu/flink-gelly-karlsruhe-june-2015";>SlideShare</a></li>
+  <li>Till Rohrmann: <strong>Interactive data analytisis with Apache 
Flink</strong> <em>(June 23rd, 2015)</em>: <a 
href="http://www.slideshare.net/tillrohrmann/data-analysis-49806564";>SlideShare</a></li>
+  <li>Gyula Fóra: <strong>Real-time data processing with Apache 
Flink</strong> <em>(Budapest Data Forum, June 4th, 2015)</em>: <a 
href="http://www.slideshare.net/GyulaFra/flink-streaming-budapestdata";>SlideShare</a></li>
+  <li>Till Rohrmann: <strong>Machine Learning with Apache Flink</strong> 
<em>(March 23th, 2015)</em>: <a 
href="http://www.slideshare.net/tillrohrmann/machine-learning-with-apache-flink";>SlideShare</a></li>
+  <li>Marton Balassi: <strong>Flink Streaming</strong> <em>(February 26th, 
2015)</em>: <a 
href="http://www.slideshare.net/MrtonBalassi/flink-streaming-berlin-meetup";>SlideShare</a></li>
+  <li>Vasia Kalavri: <strong>Large-Scale Graph Processing with Apache 
Flink</strong> <em>(FOSDEM, 31st January, 2015)</em>: <a 
href="http://www.slideshare.net/vkalavri/largescale-graph-processing-with-apache-flink-graphdevroom-fosdem15";>SlideShare</a></li>
+  <li>Fabian Hueske: <strong>Hadoop Compatibility</strong> <em>(January 28th, 
2015)</em>: <a 
href="http://www.slideshare.net/fhueske/flink-hadoopcompat20150128";>SlideShare</a></li>
+  <li>Kostas Tzoumas: <strong>Apache Flink Overview</strong> <em>(January 
14th, 2015)</em>: <a 
href="http://www.slideshare.net/KostasTzoumas/apache-flink-api-runtime-and-project-roadmap";>SlideShare</a></li>
+</ul>
+
+<h3 id="section-2">2014</h3>
+
+<ul>
+  <li>Kostas Tzoumas: <strong>Flink Internals</strong> <em>(November 18th, 
2014)</em>: <a 
href="http://www.slideshare.net/KostasTzoumas/flink-internals";>SlideShare</a></li>
+  <li>Marton Balassi &amp; Gyula Fóra: <strong>The Flink Big Data Analytics 
Platform</strong> <em>(ApachecCon, November 11th, 2014)</em>: <a 
href="http://www.slideshare.net/GyulaFra/flink-apachecon";>SlideShare</a></li>
+  <li>Till Rohrmann: <strong>Introduction to Apache Flink</strong> 
<em>(October 15th, 2014)</em>: <a 
href="http://www.slideshare.net/tillrohrmann/introduction-to-apache-flink";>SlideShare</a></li>
+</ul>
+
+<h1 id="materials">Materials</h1>
+
+<h2 id="apache-flink-logos">Apache Flink Logos</h2>
+
+<p>We provide the Apache Flink logo in different sizes and formats. You can <a 
href="/img/logo.zip">download all variants</a> (7.7 MB) or just pick the one 
you need from this page.</p>
+
+<h3 id="portable-network-graphics-png">Portable Network Graphics (PNG)</h3>
+
+<div class="row text-center">
+  <div class="col-sm-4">
+    <h4>Colored logo</h4>
+
+    <p><img src="/img/logo/png/200/flink_squirrel_200_color.png" alt="Apache 
Flink Logo" title="Apache Flink Logo" width="200px" /></p>
+
+    <p><strong>Sizes (px)</strong>:
+      <a href="/img/logo/png/50/color_50.png">50x50</a>,
+      <a href="/img/logo/png/100/flink_squirrel_100_color.png">100x100</a>,
+      <a href="/img/logo/png/200/flink_squirrel_200_color.png">200x200</a>,
+      <a href="/img/logo/png/500/flink_squirrel_500.png">500x500</a>,
+      <a href="/img/logo/png/1000/flink_squirrel_1000.png">1000x1000</a></p>
+  </div>
+
+  <div class="col-sm-4">
+    <h4>White filled logo</h4>
+
+    <p><img src="/img/logo/png/200/flink_squirrel_200_white.png" alt="Apache 
Flink Logo" title="Apache Flink Logo" width="200px" style="background:black;" 
/></p>
+
+    <p><strong>Sizes (px)</strong>:
+      <a href="/img/logo/png/50/white_50.png">50x50</a>,
+      <a href="/img/logo/png/100/flink_squirrel_100_white.png">100x100</a>,
+      <a href="/img/logo/png/200/flink_squirrel_200_white.png">200x200</a>,
+      <a href="/img/logo/png/500/flink_squirrel_500_white.png">500x500</a>,
+      <a 
href="/img/logo/png/1000/flink_squirrel_white_1000.png">1000x1000</a></p>
+  </div>
+
+  <div class="col-sm-4">
+    <h4>Black outline logo</h4>
+
+    <p><img src="/img/logo/png/200/flink_squirrel_200_black.png" alt="Apache 
Flink Logo" title="Apache Flink Logo" width="200px" /></p>
+
+    <p><strong>Sizes (px)</strong>:
+      <a href="/img/logo/png/50/black_50.png">50x50</a>,
+      <a href="/img/logo/png/100/flink_squirrel_100_black.png">100x100</a>,
+      <a href="/img/logo/png/200/flink_squirrel_200_black.png">200x200</a>,
+      <a href="/img/logo/png/500/flink_squirrel_500_black.png">500x500</a>,
+      <a 
href="/img/logo/png/1000/flink_squirrel_black_1000.png">1000x1000</a></p>
+  </div>
+</div>
+
+<div class="panel panel-default">
+  <div class="panel-body">
+    You can find more variants of the logo <a href="/img/logo/png">in this 
directory</a> or <a href="/img/logo.zip">download all variants</a> (7.7 MB).
+  </div>
+</div>
+
+<h3 id="scalable-vector-graphics-svg">Scalable Vector Graphics (SVG)</h3>
+
+<div class="row text-center img100">
+  <div class="col-sm-4 text-center">
+    <h4>Colored logo</h4>
+
+    <p><img src="/img/logo/svg/color_black.svg" alt="Apache Flink Logo" 
title="Apache Flink Logo" /></p>
+
+    <p>Colored logo with black text (<a 
href="/img/logo/svg/color_black.svg">color_black.svg</a>)</p>
+  </div>
+  <div class="col-sm-4">
+    <h4>White filled logo</h4>
+
+    <p><img src="/img/logo/svg/white_filled.svg" alt="Apache Flink Logo" 
title="Apache Flink Logo" style="background:black;" /></p>
+
+    <p>White filled logo (<a 
href="/img/logo/svg/white_filled.svg">white_filled.svg</a>)</p>
+  </div>
+  <div class="col-sm-4">
+    <h4>Black outline logo</h4>
+
+    <p><img src="/img/logo/svg/black_outline.svg" alt="Apache Flink Logo" 
title="Apache Flink Logo" /></p>
+
+    <p>Black outline logo (<a 
href="/img/logo/svg/black_outline.svg">black_outline.svg</a>)</p>
+  </div>
+</div>
+
+<div class="panel panel-default">
+  <div class="panel-body">
+    You can find more variants of the logo <a href="/img/logo/svg">in this 
directory</a> or <a href="/img/logo.zip">download all variants</a> (7.7 MB).
+  </div>
+</div>
+
+<h3 id="photoshop-psd">Photoshop (PSD)</h3>
+
+<div class="panel panel-default">
+  <div class="panel-body">
+    <p>You can download the logo in PSD format as well:</p>
+
+    <ul>
+      <li><strong>Colored logo</strong>: <a 
href="/img/logo/psd/flink_squirrel_1000.psd">1000x1000</a>.</li>
+      <li><strong>Black outline logo with text</strong>: <a 
href="/img/logo/psd/flink_1000.psd">1000x1000</a>, <a 
href="/img/logo/psd/flink_5000.psd">5000x5000</a>.</li>
+    </ul>
+
+    <p>You can find more variants of the logo <a href="/img/logo/psd">in this 
directory</a> or <a href="/img/logo.zip">download all variants</a> (7.7 MB).</p>
+  </div>
+</div>
+
+<h2 id="color-scheme">Color Scheme</h2>
+
+<p>You can use the provided color scheme which incorporates some colors of the 
Flink logo:</p>
+
+<ul>
+  <li><a href="/img/logo/colors/flink_colors.pdf">PDF color scheme</a></li>
+  <li><a href="/img/logo/colors/flink_colors.pptx">Powerpoint color 
scheme</a></li>
+</ul>
+
+
+  </div>
+</div>
+
+      </div>
+    </div>
+
+    <hr />
+
+    <div class="row">
+      <div class="footer text-center col-sm-12">
+        <p>Copyright © 2014-2016 <a href="http://apache.org";>The Apache 
Software Foundation</a>. All Rights Reserved.</p>
+        <p>Apache Flink, Apache, and the Apache feather logo are either 
registered trademarks or trademarks of The Apache Software Foundation.</p>
+        <p><a href="/privacy-policy.html">Privacy Policy</a> &middot; <a 
href="/blog/feed.xml">RSS feed</a></p>
+      </div>
+    </div>
+    </div><!-- /.container -->
+
+    <!-- Include all compiled plugins (below), or include individual files as 
needed -->
+    <script 
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js";></script>
+    <script src="/js/codetabs.js"></script>
+    <script src="/js/stickysidebar.js"></script>
+
+
+    <!-- Google Analytics -->
+    <script>
+      
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new 
Date();a=s.createElement(o),
+      
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+      
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+      ga('create', 'UA-52545728-1', 'auto');
+      ga('send', 'pageview');
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/contribute-code.html
----------------------------------------------------------------------
diff --git a/content/contribute-code.html b/content/contribute-code.html
new file mode 100644
index 0000000..4cfd367
--- /dev/null
+++ b/content/contribute-code.html
@@ -0,0 +1,519 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <!-- The above 3 meta tags *must* come first in the head; any other head 
content must come *after* these tags -->
+    <title>Apache Flink: Contributing Code</title>
+    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
+    <link rel="icon" href="/favicon.ico" type="image/x-icon">
+
+    <!-- Bootstrap -->
+    <link rel="stylesheet" 
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css";>
+    <link rel="stylesheet" href="/css/flink.css">
+    <link rel="stylesheet" href="/css/syntax.css">
+
+    <!-- Blog RSS feed -->
+    <link href="/blog/feed.xml" rel="alternate" type="application/rss+xml" 
title="Apache Flink Blog: RSS feed" />
+
+    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
+    <!-- We need to load Jquery in the header for custom google analytics 
event tracking-->
+    <script 
src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js";></script>
+
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
+    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
+    <!--[if lt IE 9]>
+      <script 
src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js";></script>
+      <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
+    <![endif]-->
+  </head>
+  <body>  
+    
+
+    <!-- Main content. -->
+    <div class="container">
+    <div class="row">
+
+      
+     <div id="sidebar" class="col-sm-3">
+          <!-- Top navbar. -->
+    <nav class="navbar navbar-default">
+        <!-- The logo. -->
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle collapsed" 
data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <div class="navbar-logo">
+            <a href="/">
+              <img alt="Apache Flink" src="/img/navbar-brand-logo.png" 
width="147px" height="73px">
+            </a>
+          </div>
+        </div><!-- /.navbar-header -->
+
+        <!-- The navigation links. -->
+        <div class="collapse navbar-collapse" 
id="bs-example-navbar-collapse-1">
+          <ul class="nav navbar-nav navbar-main">
+
+            <!-- Downloads -->
+            <li class=""><a class="btn btn-info" 
href="/downloads.html">Download Flink</a></li>
+
+            <!-- Overview -->
+            <li><a href="/index.html">Home</a></li>
+
+            <!-- Intro -->
+            <li><a href="/introduction.html">Introduction to Flink</a></li>
+
+            <!-- Use cases -->
+            <li><a href="/usecases.html">Flink Use Cases</a></li>
+
+            <!-- Powered by -->
+            <li><a href="/poweredby.html">Powered by Flink</a></li>
+
+            <!-- Ecosystem -->
+            <li><a href="/ecosystem.html">Ecosystem</a></li>
+
+            <!-- Community -->
+            <li><a href="/community.html">Community &amp; Project Info</a></li>
+
+            <!-- Contribute -->
+            <li><a href="/how-to-contribute.html">How to Contribute</a></li>
+
+            <!-- Blog -->
+            <li class=" hidden-md hidden-sm"><a href="/blog/"><b>Flink 
Blog</b></a></li>
+
+            <hr />
+
+
+
+            <!-- Documentation -->
+            <!-- <li>
+              <a 
href="http://ci.apache.org/projects/flink/flink-docs-release-1.1"; 
target="_blank">Documentation <small><span class="glyphicon 
glyphicon-new-window"></span></small></a>
+            </li> -->
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" 
href="#">Documentation
+                <span class="caret"></span></a>
+                <ul class="dropdown-menu">
+                  <li><a 
href="http://ci.apache.org/projects/flink/flink-docs-release-1.1"; 
target="_blank">1.1 (Latest stable release) <small><span class="glyphicon 
glyphicon-new-window"></span></small></a></li>
+                  <li><a 
href="http://ci.apache.org/projects/flink/flink-docs-release-1.2"; 
target="_blank">1.2 (Snapshot) <small><span class="glyphicon 
glyphicon-new-window"></span></small></a></li>
+                </ul>
+              </li>
+
+            <!-- Quickstart -->
+            <li>
+              <a 
href="http://ci.apache.org/projects/flink/flink-docs-release-1.1/quickstart/setup_quickstart.html";
 target="_blank">Quickstart <small><span class="glyphicon 
glyphicon-new-window"></span></small></a>
+            </li>
+
+            <!-- GitHub -->
+            <li>
+              <a href="https://github.com/apache/flink"; target="_blank">Flink 
on GitHub <small><span class="glyphicon 
glyphicon-new-window"></span></small></a>
+            </li>
+
+
+
+
+
+
+          </ul>
+
+
+
+          <ul class="nav navbar-nav navbar-bottom">
+          <hr />
+
+            <!-- FAQ -->
+            <li ><a href="/faq.html">Project FAQ</a></li>
+
+            <!-- Twitter -->
+            <li><a href="https://twitter.com/apacheflink"; 
target="_blank">@ApacheFlink <small><span class="glyphicon 
glyphicon-new-window"></span></small></a></li>
+
+            <!-- Visualizer -->
+            <li class=" hidden-md hidden-sm"><a href="/visualizer/" 
target="_blank">Plan Visualizer <small><span class="glyphicon 
glyphicon-new-window"></span></small></a></li>
+
+          </ul>
+        </div><!-- /.navbar-collapse -->
+    </nav>
+
+      </div>
+      <div class="col-sm-9">
+      <div class="row-fluid">
+  <div class="col-sm-12">
+    <h1>Contributing Code</h1>
+
+       <p>Apache Flink is maintained, improved, and extended by code 
contributions of volunteers. The Apache Flink community encourages anybody to 
contribute source code. In order to ensure a pleasant contribution experience 
for contributors and reviewers and to preserve the high quality of the code 
base, we follow a contribution process that is explained in this document.</p>
+
+<p>This document contains everything you need to know about contributing code 
to Apache Flink. It describes the process of preparing, testing and submitting 
a contribution, explains coding guidelines and code style of Flink’s code 
base, and gives instructions to setup a development environment.</p>
+
+<p><strong>IMPORTANT</strong>: Please read this document carefully before 
starting to work on a code contribution. It is important to follow the process 
and guidelines explained below. Otherwise, your pull request might not be 
accepted or might require substantial rework. In particular, before opening a 
pull request that implements a <strong>new feature</strong>, you need to open a 
JIRA ticket and reach consensus with the community on whether this feature is 
needed.</p>
+
+<div class="page-toc">
+<ul id="markdown-toc">
+  <li><a href="#code-contribution-process" 
id="markdown-toc-code-contribution-process">Code Contribution Process</a>    
<ul>
+      <li><a href="#before-you-start-coding" 
id="markdown-toc-before-you-start-coding">Before you start coding…</a></li>
+      <li><a href="#while-coding" id="markdown-toc-while-coding">While 
coding…</a></li>
+      <li><a href="#verifying-the-compliance-of-your-code" 
id="markdown-toc-verifying-the-compliance-of-your-code">Verifying the 
compliance of your code</a></li>
+      <li><a href="#preparing-and-submitting-your-contribution" 
id="markdown-toc-preparing-and-submitting-your-contribution">Preparing and 
submitting your contribution</a></li>
+    </ul>
+  </li>
+  <li><a href="#coding-guidelines" id="markdown-toc-coding-guidelines">Coding 
guidelines</a></li>
+  <li><a href="#code-style" id="markdown-toc-code-style">Code style</a></li>
+  <li><a href="#best-practices" id="markdown-toc-best-practices">Best 
practices</a></li>
+  <li><a href="#setup-a-development-environment" 
id="markdown-toc-setup-a-development-environment">Setup a development 
environment</a>    <ul>
+      <li><a href="#requirements-for-developing-and-building-flink" 
id="markdown-toc-requirements-for-developing-and-building-flink">Requirements 
for developing and building Flink</a></li>
+      <li><a href="#proxy-settings" id="markdown-toc-proxy-settings">Proxy 
Settings</a></li>
+    </ul>
+  </li>
+  <li><a href="#how-to-use-git-as-a-committer" 
id="markdown-toc-how-to-use-git-as-a-committer">How to use Git as a 
committer</a></li>
+  <li><a href="#snapshots-nightly-builds" 
id="markdown-toc-snapshots-nightly-builds">Snapshots (Nightly Builds)</a></li>
+</ul>
+
+</div>
+
+<h2 id="code-contribution-process">Code Contribution Process</h2>
+
+<h3 id="before-you-start-coding">Before you start coding…</h3>
+
+<p>… please make sure there is a JIRA issue that corresponds to your 
contribution. This is a <em>general rule</em> that the Flink community follows 
for all code contributions, including bug fixes, improvements, or new features, 
with an exception for <em>trivial</em> hot fixes. If you would like to fix a 
bug that you found or if you would like to add a new feature or improvement to 
Flink, please follow the <a 
href="/how-to-contribute.html#file-a-bug-report">File a bug report</a> or <a 
href="/how-to-contribute.html#propose-an-improvement-or-a-new-feature">Propose 
an improvement or a new feature</a> guidelines to open an issue in <a 
href="http://issues.apache.org/jira/browse/FLINK";>Flink’s JIRA</a> before 
starting with the implementation.</p>
+
+<p>If the description of a JIRA issue indicates that its resolution will touch 
sensible parts of the code base, be sufficiently complex, or add significant 
amounts of new code, the Flink community might request a design document (most 
contributions should not require a design document). The purpose of this 
document is to ensure that the overall approach to address the issue is 
sensible and agreed upon by the community. JIRA issues that require a design 
document are tagged with the <strong><code>requires-design-doc</code></strong> 
label. The label can be attached by any community member who feels that a 
design document is necessary. A good description helps to decide whether a JIRA 
issue requires a design document or not. The design document must be added or 
attached to or link from the JIRA issue and cover the following aspects:</p>
+
+<ul>
+  <li>Overview of the general approach</li>
+  <li>List of API changes (changed interfaces, new and deprecated 
configuration parameters, changed behavior, …)</li>
+  <li>Main components and classes to be touched</li>
+  <li>Known limitations of the proposed approach</li>
+</ul>
+
+<p>A design document can be added by anybody, including the reporter of the 
issue or the person working on it.</p>
+
+<p>Contributions for JIRA issues that require a design document will not be 
added to Flink’s code base before a design document has been accepted by the 
community with <a 
href="http://www.apache.org/foundation/glossary.html#LazyConsensus";>lazy 
consensus</a>. Please check if a design document is required before starting to 
code.</p>
+
+<h3 id="while-coding">While coding…</h3>
+
+<p>… please respect the following rules:</p>
+
+<ul>
+  <li>Take any discussion or requirement that is recorded in the JIRA issue 
into account.</li>
+  <li>Follow the design document (if a design document is required) as close 
as possible. Please update the design document and seek consensus, if your 
implementation deviates too much from the solution proposed by the design 
document. Minor variations are OK but should be pointed out when the 
contribution is submitted.</li>
+  <li>Closely follow the <a 
href="/contribute-code.html#coding-guidelines">coding guidelines</a> and the <a 
href="/contribute-code.html#code-style">code style</a>.</li>
+  <li>Do not mix unrelated issues into one contribution.</li>
+</ul>
+
+<p><strong>Please feel free to ask questions at any time.</strong> Either send 
a mail to the <a href="/community.html#mailing-lists">dev mailing list</a> or 
comment on the JIRA issue.</p>
+
+<p>The following instructions will help you to <a 
href="/contribute-code.html#setup-a-development-environment">setup a 
development environment</a>.</p>
+
+<h3 id="verifying-the-compliance-of-your-code">Verifying the compliance of 
your code</h3>
+
+<p>It is very important to verify the compliance of changes before submitting 
your contribution. This includes:</p>
+
+<ul>
+  <li>Making sure the code builds.</li>
+  <li>Verifying that all existing and new tests pass.</li>
+  <li>Check that the code style is not violated.</li>
+  <li>Making sure no unrelated or unnecessary reformatting changes are 
included.</li>
+</ul>
+
+<p>You can build the code, run the tests, and check (parts of) the code style 
by calling</p>
+
+<div class="highlight"><pre><code>mvn clean verify
+</code></pre></div>
+
+<p>Please note, that some tests in Flink’s code base are flaky and can fail 
by chance. The Flink community is working hard on improving these tests but 
sometimes this is not possible, e.g., when tests include external dependencies. 
We maintain all tests that are known to be flaky in JIRA and attach the 
<strong><code>test-stability</code></strong> label. Please check (and extend) 
this list of <a 
href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20FLINK%20AND%20resolution%20%3D%20Unresolved%20AND%20labels%20%3D%20test-stability%20ORDER%20BY%20priority%20DESC";>known
 flaky tests</a> if you encounter a test failure that seems to be unrelated to 
your changes.</p>
+
+<p>Please note, that we run additional build profiles for different 
combinations of Java, Scala, and Hadoop versions to validate your contribution. 
We encourage every contributor to use a <em>continuous integration</em> service 
that will automatically test the code in your repository whenever you push a 
change. The <a href="/contribute-code.html#best-practices">Best practices</a> 
guide shows how to integrate <a href="https://travis-ci.org/";>Travis</a> with 
your Github repository.</p>
+
+<p>In addition to the automated tests, please check the diff of your changes 
and remove all unrelated changes such as unnecessary reformatting.</p>
+
+<h3 id="preparing-and-submitting-your-contribution">Preparing and submitting 
your contribution</h3>
+
+<p>To make the changes easily mergeable, please rebase them to the latest 
version of the main repositories master branch. Please do also respect the <a 
href="/contribute-code.html#coding-guidelines">commit message guidelines</a>, 
clean up your commit history, and squash your commits to an appropriate set. 
Please verify your contribution one more time after rebasing and commit 
squashing as described above.</p>
+
+<p>The Flink project accepts code contributions through the <a 
href="https://github.com/apache/flink";>GitHub Mirror</a>, in the form of <a 
href="https://help.github.com/articles/using-pull-requests";>Pull Requests</a>. 
Pull requests are a simple way to offer a patch, by providing a pointer to a 
code branch that contains the change.</p>
+
+<p>To open a pull request, push our contribution back into your fork of the 
Flink repository.</p>
+
+<div class="highlight"><pre><code>git push origin myBranch
+</code></pre></div>
+
+<p>Go the website of your repository fork 
(<code>https://github.com/&lt;your-user-name&gt;/flink</code>) and use the 
<em>“Create Pull Request”</em> button to start creating a pull request. 
Make sure that the base fork is <code>apache/flink master</code> and the head 
fork selects the branch with your changes. Give the pull request a meaningful 
description and send it.</p>
+
+<p>It is also possible to attach a patch to a <a 
href="https://issues.apache.org/jira/browse/FLINK";>JIRA</a> issue.</p>
+
+<hr />
+
+<h2 id="coding-guidelines">Coding guidelines</h2>
+
+<h3 class="no_toc" id="pull-requests-and-commit-message">Pull requests and 
commit message</h3>
+
+<ul>
+  <li>
+    <p><strong>Single change per PR</strong>. Please do not combine various 
unrelated changes in a single pull request. Rather, open multiple individual 
pull requests where each PR refers to a JIRA issue. This ensures that pull 
requests are <em>topic related</em>, can be merged more easily, and typically 
result in topic-specific merge conflicts only.</p>
+  </li>
+  <li>
+    <p><strong>No WIP pull requests</strong>. We consider pull requests as 
requests to merge the referenced code <em>as is</em> into the current 
<em>stable</em> master branch. Therefore, a pull request should not be “work 
in progress”. Open a pull request if you are confident that it can be merged 
into the current master branch without problems. If you rather want comments on 
your code, post a link to your working branch.</p>
+  </li>
+  <li>
+    <p><strong>Commit message</strong>. A pull request must relate to a JIRA 
issue; create an issue if none exists for the change you want to make. The 
latest commit message should reference that issue. An example commit message 
would be <em>[FLINK-633] Fix NullPointerException for empty UDF 
parameters</em>. That way, the pull request automatically gives a description 
of what it does, for example what bug does it fix in what way.</p>
+  </li>
+  <li>
+    <p><strong>Append review commits</strong>. When you get comments on the 
pull request asking for changes, append commits for these changes. <em>Do not 
rebase and squash them.</em> It allows people to review the cleanup work 
independently. Otherwise reviewers have to go through the entire set of diffs 
again.</p>
+  </li>
+  <li>
+    <p><strong>No merge commits</strong>. Please do not open pull requests 
containing merge commits. Use <code>git pull --rebase origin master</code> if 
you want to update your changes to the latest master prior to opening a pull 
request.</p>
+  </li>
+</ul>
+
+<h3 class="no_toc" id="exceptions-and-error-messages">Exceptions and error 
messages</h3>
+
+<ul>
+  <li>
+    <p><strong>Exception swallowing</strong>. Do not swallow exceptions and 
print the stacktrace. Instead check how exceptions are handled by similar 
classes.</p>
+  </li>
+  <li>
+    <p><strong>Meaningful error messages</strong>. Give meaningful exception 
messages. Try to imagine why an exception could be thrown (what a user did 
wrong) and give a message that will help a user to resolve the problem.</p>
+  </li>
+</ul>
+
+<h3 class="no_toc" id="tests">Tests</h3>
+
+<ul>
+  <li>
+    <p><strong>Tests need to pass</strong>. Any pull request where the tests 
do not pass or which does not compile will not undergo any further review. We 
recommend to connect your private GitHub accounts with <a 
href="http://travis-ci.org/";>Travis CI</a> (like the Flink GitHub repository). 
Travis will run tests for all tested environments whenever you push something 
into <em>your</em> Github repository. Please note the previous <a 
href="/contribute-code.html#verifying-the-compliance-of-your-code">comment 
about flaky tests</a>.</p>
+  </li>
+  <li>
+    <p><strong>Tests for new features are required</strong>. All new features 
need to be backed by tests, <em>strictly</em>. It is very easy that a later 
merge accidentally throws out a feature or breaks it. This will not be caught 
if the feature is not guarded by tests. Anything not covered by a test is 
considered cosmetic.</p>
+  </li>
+  <li>
+    <p><strong>Use appropriate test mechanisms</strong>. Please use unit tests 
to test isolated functionality, such as methods. Unit tests should execute in 
subseconds and should be preferred whenever possible. The name of unit test 
classes have to  on <code>*Test</code>. Use integration tests to implement 
long-running tests. Flink offers test utilities for end-to-end tests that start 
a Flink instance and run a job. These tests are pretty heavy and can 
significantly increase build time. Hence, they should be added with care. The 
name of unit test classes have to  on <code>*ITCase</code>.</p>
+  </li>
+</ul>
+
+<h3 class="no_toc" id="documentation">Documentation</h3>
+
+<ul>
+  <li>
+    <p><strong>Documentation Updates</strong>. Many changes in the system will 
also affect the documentation (both JavaDocs and the user documentation in the 
<code>docs/</code> directory.). Pull requests and patches are required to 
update the documentation accordingly, otherwise the change can not be accepted 
to the source code. See the <a href="/contribute-documentation.html">Contribute 
documentation</a> guide for how to update the documentation.</p>
+  </li>
+  <li>
+    <p><strong>Javadocs for public methods</strong>. All public methods and 
classes need to have JavaDocs. Please write meaningful docs. Good docs are 
concise and informative. Please do also update JavaDocs if you change the 
signature or behavior of a documented method.</p>
+  </li>
+</ul>
+
+<h3 class="no_toc" id="code-formatting">Code formatting</h3>
+
+<ul>
+  <li><strong>No reformattings</strong>. Please keep reformatting of source 
files to a minimum. Diffs become unreadable if you (or your IDE automatically) 
remove or replace whitespaces, reformat code, or comments. Also, other patches 
that affect the same files become un-mergeable. Please configure your IDE such 
that code is not automatically reformatted. Pull requests with excessive or 
unnecessary code reformatting might be rejected.</li>
+</ul>
+
+<hr />
+
+<h2 id="code-style">Code style</h2>
+
+<ul>
+  <li><strong>Apache license headers</strong>. Make sure you have Apache 
License headers in your files. The RAT plugin is checking for that when you 
build the code.</li>
+  <li><strong>Tabs vs. spaces</strong>. We are using tabs for indentation, not 
spaces. We are not religious there, it just happened to be that we started with 
tabs, and it is important to not mix them (merge/diff conflicts).</li>
+  <li>
+    <p><strong>Blocks</strong>. All statements after <code>if</code>, 
<code>for</code>, <code>while</code>, <code>do</code>, … must always be 
encapsulated in a block with curly braces (even if the block contains one 
statement):</p>
+
+    <div class="highlight"><pre><code class="language-java"><span 
class="k">for</span> <span class="o">(...)</span> <span class="o">{</span>
+ <span class="o">...</span>
+<span class="o">}</span></code></pre></div>
+    <p>If you are wondering why, recall the famous <a 
href="https://www.imperialviolet.org/2014/02/22/applebug.html";><em>goto 
bug</em></a> in Apple’s SSL library.</p>
+  </li>
+  <li><strong>No wildcard imports</strong>. Do not use wildcard imports in the 
core files. They can cause problems when adding to the code and in some cases 
even during refactoring. Exceptions are the Tuple classes, Tuple-related 
utilities, and Flink user programs, when importing operators/functions. Tests 
are a special case of the user programs.</li>
+  <li><strong>No unused imports</strong>. Remove all unused imports.</li>
+  <li><strong>Use Guava Checks</strong>. To increase homogeneity, consistently 
use Guava methods checkNotNull and checkArgument rather than Apache Commons 
Validate.</li>
+  <li><strong>No raw generic types</strong>. Do not use raw generic types, 
unless strictly necessary (sometime necessary for signature matches, 
arrays).</li>
+  <li><strong>Supress warnings</strong>. Add annotations to suppress warnings, 
if they cannot be avoided (such as “unchecked”, or “serial”).</li>
+  <li>
+    <p><strong>Comments</strong>. Add comments to your code. What is it doing? 
Add JavaDocs or inherit them by not adding any comments to the methods. Do not 
automatically generate comments and avoid unnecessary comments like:</p>
+
+    <div class="highlight"><pre><code class="language-java"><span 
class="n">i</span><span class="o">++;</span> <span class="c1">// increment by 
one</span></code></pre></div>
+  </li>
+</ul>
+
+<hr />
+
+<h2 id="best-practices">Best practices</h2>
+
+<ul>
+  <li>Travis: Flink is pre-configured for <a 
href="http://docs.travis-ci.com/";>Travis CI</a>, which can be easily enabled 
for your private repository fork (it uses GitHub for authentication, so you so 
not need an additional account). Simply add the <em>Travis CI</em> hook to your 
repository (<em>settings –&gt; webhooks &amp; services –&gt; add 
service</em>) and enable tests for the <code>flink</code> repository on <a 
href="https://travis-ci.org/profile";>Travis</a>.</li>
+</ul>
+
+<hr />
+
+<h2 id="setup-a-development-environment">Setup a development environment</h2>
+
+<h3 id="requirements-for-developing-and-building-flink">Requirements for 
developing and building Flink</h3>
+
+<ul>
+  <li>Unix-like environment (We use Linux, Mac OS X, Cygwin)</li>
+  <li>git</li>
+  <li>Maven (at least version 3.0.4)</li>
+  <li>Java 7 or 8</li>
+</ul>
+
+<h3 class="no_toc" id="clone-the-repository">Clone the repository</h3>
+
+<p>Apache Flink’s source code is stored in a <a 
href="http://git-scm.com/";>git</a> repository which is mirrored to <a 
href="https://github.com/apache/flink";>Github</a>. The common way to exchange 
code on Github is to fork a the repository into your personal Github account. 
For that, you need to have a <a href="https://github.com";>Github</a> account or 
create one for free. Forking a repository means that Github creates a copy of 
the forked repository for you. This is done by clicking on the <em>fork</em> 
button on the upper right of the <a 
href="https://github.com/apache/flink";>repository website</a>. Once you have a 
fork of Flink’s repository in your personal account, you can clone that 
repository to your local machine.</p>
+
+<div class="highlight"><pre><code>git clone 
https://github.com/&lt;your-user-name&gt;/flink.git
+</code></pre></div>
+
+<p>The code is downloaded into a directory called <code>flink</code>.</p>
+
+<h3 id="proxy-settings">Proxy Settings</h3>
+
+<p>If you are behind a firewall you may need to provide Proxy settings to 
Maven and your IDE.</p>
+
+<p>For example, the WikipediaEditsSourceTest communicates over IRC and need a 
<a 
href="http://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html";>SOCKS
 proxy server</a> to pass.</p>
+
+<h3 class="no_toc" id="setup-an-ide-and-import-the-source-code">Setup an IDE 
and import the source code</h3>
+
+<p>The Flink committers use IntelliJ IDEA and Eclipse IDE to develop the Flink 
code base.</p>
+
+<p>Minimal requirements for an IDE are:</p>
+
+<ul>
+  <li>Support for Java and Scala (also mixed projects)</li>
+  <li>Support for Maven with Java and Scala</li>
+</ul>
+
+<h4 id="intellij-idea">IntelliJ IDEA</h4>
+
+<p>The IntelliJ IDE supports Maven out of the box and offers a plugin for 
Scala development.</p>
+
+<ul>
+  <li>IntelliJ download: <a 
href="https://www.jetbrains.com/idea/";>https://www.jetbrains.com/idea/</a></li>
+  <li>IntelliJ Scala Plugin: <a 
href="http://plugins.jetbrains.com/plugin/?id=1347";>http://plugins.jetbrains.com/plugin/?id=1347</a></li>
+</ul>
+
+<p>Check out our <a 
href="https://github.com/apache/flink/blob/master/docs/internals/ide_setup.md#intellij-idea";>Setting
 up IntelliJ</a> guide for details.</p>
+
+<h4 id="eclipse-scala-ide">Eclipse Scala IDE</h4>
+
+<p>For Eclipse users, we recommend using Scala IDE 3.0.3, based on Eclipse 
Kepler. While this is a slightly older version,
+we found it to be the version that works most robustly for a complex project 
like Flink.</p>
+
+<p>Further details, and a guide to newer Scala IDE versions can be found in the
+<a 
href="https://github.com/apache/flink/blob/master/docs/internals/ide_setup.md#eclipse";>How
 to setup Eclipse</a> docs.</p>
+
+<p><strong>Note:</strong> Before following this setup, make sure to run the 
build from the command line once
+(<code>mvn clean install -DskipTests</code>, see above)</p>
+
+<ol>
+  <li>Download the Scala IDE (preferred) or install the plugin to Eclipse 
Kepler. See 
+<a 
href="https://github.com/apache/flink/blob/master/docs/internals/ide_setup.md#eclipse";>How
 to setup Eclipse</a> for download links and instructions.</li>
+  <li>Add the “macroparadise” compiler plugin to the Scala compiler.
+Open “Window” -&gt; “Preferences” -&gt; “Scala” -&gt; 
“Compiler” -&gt; “Advanced” and put into the “Xplugin” field the 
path to
+the <em>macroparadise</em> jar file (typically 
“/home/<em>-your-user-</em>/.m2/repository/org/scalamacros/paradise_2.10.4/2.0.1/paradise_2.10.4-2.0.1.jar”).
+Note: If you do not have the jar file, you probably did not run the command 
line build.</li>
+  <li>Import the Flink Maven projects (“File” -&gt; “Import” -&gt; 
“Maven” -&gt; “Existing Maven Projects”)</li>
+  <li>During the import, Eclipse will ask to automatically install additional 
Maven build helper plugins.</li>
+  <li>Close the “flink-java8” project. Since Eclipse Kepler does not 
support Java 8, you cannot develop this project.</li>
+</ol>
+
+<h4 id="import-the-source-code">Import the source code</h4>
+
+<p>Apache Flink uses Apache Maven as build tool. Most IDE are capable of 
importing Maven projects.</p>
+
+<h3 class="no_toc" id="build-the-code">Build the code</h3>
+
+<p>To build Flink from source code, open a terminal, navigate to the root 
directory of the Flink source code, and call</p>
+
+<div class="highlight"><pre><code>mvn clean package
+</code></pre></div>
+
+<p>This will build Flink and run all tests. Flink is now installed in 
<code>build-target</code>.</p>
+
+<p>To build Flink without executing the tests you can call</p>
+
+<div class="highlight"><pre><code>mvn -DskipTests clean package
+</code></pre></div>
+
+<hr />
+
+<h2 id="how-to-use-git-as-a-committer">How to use Git as a committer</h2>
+
+<p>Only the infrastructure team of the ASF has administrative access to the 
GitHub mirror. Therefore, comitters have to push changes to the git repository 
at the ASF.</p>
+
+<h3 class="no_toc" id="main-source-repositories">Main source repositories</h3>
+
+<p><strong>ASF writable</strong>: 
https://git-wip-us.apache.org/repos/asf/flink.git</p>
+
+<p><strong>ASF read-only</strong>: git://git.apache.org/repos/asf/flink.git</p>
+
+<p><strong>ASF read-only</strong>: https://github.com/apache/flink.git</p>
+
+<p>Note: Flink does not build with Oracle JDK 6. It runs with Oracle JDK 6.</p>
+
+<p>If you want to build for Hadoop 1, activate the build profile via <code>mvn 
clean package -DskipTests -Dhadoop.profile=1</code>.</p>
+
+<hr />
+
+<h2 id="snapshots-nightly-builds">Snapshots (Nightly Builds)</h2>
+
+<p>Apache Flink <code>1.2-SNAPSHOT</code> is our latest development 
version.</p>
+
+<p>You can download a packaged version of our nightly builds, which include
+the most recent development code. You can use them if you need a feature
+before its release. Only builds that pass all tests are published here.</p>
+
+<ul>
+  <li><strong>Hadoop 1</strong>: <a 
href="https://s3.amazonaws.com/flink-nightly/flink-1.2-SNAPSHOT-bin-hadoop1.tgz";
 class="ga-track" 
id="download-hadoop1-nightly">flink-1.2-SNAPSHOT-bin-hadoop1.tgz</a></li>
+  <li><strong>Hadoop 2 and YARN</strong>: <a 
href="https://s3.amazonaws.com/flink-nightly/flink-1.2-SNAPSHOT-bin-hadoop2.tgz";
 class="ga-track" 
id="download-hadoop2-nightly">flink-1.2-SNAPSHOT-bin-hadoop2.tgz</a></li>
+</ul>
+
+<p>Add the <strong>Apache Snapshot repository</strong> to your Maven 
<code>pom.xml</code>:</p>
+
+<div class="highlight"><pre><code class="language-xml"><span 
class="nt">&lt;repositories&gt;</span>
+  <span class="nt">&lt;repository&gt;</span>
+    <span class="nt">&lt;id&gt;</span>apache.snapshots<span 
class="nt">&lt;/id&gt;</span>
+    <span class="nt">&lt;name&gt;</span>Apache Development Snapshot 
Repository<span class="nt">&lt;/name&gt;</span>
+    <span 
class="nt">&lt;url&gt;</span>https://repository.apache.org/content/repositories/snapshots/<span
 class="nt">&lt;/url&gt;</span>
+    <span class="nt">&lt;releases&gt;&lt;enabled&gt;</span>false<span 
class="nt">&lt;/enabled&gt;&lt;/releases&gt;</span>
+    <span class="nt">&lt;snapshots&gt;&lt;enabled&gt;</span>true<span 
class="nt">&lt;/enabled&gt;&lt;/snapshots&gt;</span>
+  <span class="nt">&lt;/repository&gt;</span>
+<span class="nt">&lt;/repositories&gt;</span></code></pre></div>
+
+<p>You can now include Apache Flink as a Maven dependency (see above) with 
version <code>1.2-SNAPSHOT</code> (or <code>1.2-SNAPSHOT-hadoop1</code> for 
compatibility with old Hadoop 1.x versions).</p>
+
+
+  </div>
+</div>
+
+      </div>
+    </div>
+
+    <hr />
+
+    <div class="row">
+      <div class="footer text-center col-sm-12">
+        <p>Copyright © 2014-2016 <a href="http://apache.org";>The Apache 
Software Foundation</a>. All Rights Reserved.</p>
+        <p>Apache Flink, Apache, and the Apache feather logo are either 
registered trademarks or trademarks of The Apache Software Foundation.</p>
+        <p><a href="/privacy-policy.html">Privacy Policy</a> &middot; <a 
href="/blog/feed.xml">RSS feed</a></p>
+      </div>
+    </div>
+    </div><!-- /.container -->
+
+    <!-- Include all compiled plugins (below), or include individual files as 
needed -->
+    <script 
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js";></script>
+    <script src="/js/codetabs.js"></script>
+    <script src="/js/stickysidebar.js"></script>
+
+
+    <!-- Google Analytics -->
+    <script>
+      
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new 
Date();a=s.createElement(o),
+      
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+      
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+      ga('create', 'UA-52545728-1', 'auto');
+      ga('send', 'pageview');
+    </script>
+  </body>
+</html>

Reply via email to