You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by fh...@apache.org on 2015/10/08 13:03:27 UTC

[1/4] flink-web git commit: Improved 'How to contribute' and contribution guidelines (code, documentation, website)

Repository: flink-web
Updated Branches:
  refs/heads/asf-site f98238ab8 -> 415ee8916


Improved 'How to contribute' and contribution guidelines (code, documentation, website)

This closes #11


Project: http://git-wip-us.apache.org/repos/asf/flink-web/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink-web/commit/f2411e25
Tree: http://git-wip-us.apache.org/repos/asf/flink-web/tree/f2411e25
Diff: http://git-wip-us.apache.org/repos/asf/flink-web/diff/f2411e25

Branch: refs/heads/asf-site
Commit: f2411e25cecee0d0d93d6943ca266d1f05dcfb64
Parents: f98238a
Author: Fabian Hueske <fh...@gmail.com>
Authored: Mon Sep 28 18:01:09 2015 +0200
Committer: Fabian Hueske <fh...@gmail.com>
Committed: Thu Oct 8 12:49:26 2015 +0200

----------------------------------------------------------------------
 _includes/navbar.html       |   4 +-
 coding-guidelines.md        |  46 ------
 contribute-code.md          | 296 +++++++++++++++++++++++++++++++++++++++
 contribute-documentation.md |  66 +++++++++
 css/flink.css               |   4 +
 how-to-contribute.md        | 200 ++++++++++----------------
 improve-website.md          | 102 ++++++++++++++
 7 files changed, 543 insertions(+), 175 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink-web/blob/f2411e25/_includes/navbar.html
----------------------------------------------------------------------
diff --git a/_includes/navbar.html b/_includes/navbar.html
index 4aa7f75..8c8568f 100644
--- a/_includes/navbar.html
+++ b/_includes/navbar.html
@@ -83,7 +83,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="{{ site.baseurl }}/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="{{ site.baseurl }}/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="{{ site.baseurl }}/contribute-code.html">Contribute Code</a></li>
+                <li><a href="{{ site.baseurl }}/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="{{ site.baseurl }}/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f2411e25/coding-guidelines.md
----------------------------------------------------------------------
diff --git a/coding-guidelines.md b/coding-guidelines.md
deleted file mode 100644
index f1010b8..0000000
--- a/coding-guidelines.md
+++ /dev/null
@@ -1,46 +0,0 @@
----
-title:  "Coding Guidelines"
----
-
-These are the coding and style guidelines that we follow.
-
-## Guidelines for pull requests and patches
-
-- **JIRA issue and commit message**. A pull request should 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 *[FLINK-633] Fix NullPointerException for empty UDF parameters*. That way, the pull request automatically gives a description of what it does, for example what bug does it fix in what way.
-- **Documentation Updates**. Many changes in the system will also affect the documentation (both JavaDocs and the user documentation in the `docs/` directory.). Pull requests and patches are required to update the documentation accordingly, otherwise the change can not be accepted to the source code.
-- **No WIP pull requests**. We consider pull requests as requests to merge the referenced code *as is* into the current *stable* 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.
-- **Single change per PR**. Please do not combine various unrelated changes in a single pull request. Rather, open multiple individual pull requests. This ensures that pull requests are *topic related*, can be merged more easily, and typically result in topic-specific merge conflicts only.
-- **Tests need to pass**. 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 [Travis CI](http://travis-ci.org/) (like the Flink GitHub repository). Travis will run tests for all tested environments whenever you push something into *your* Github repository.
-- **No reformattings**. 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.
-- **Tests for new features are required**. All new features need to be backed by tests, *strictly*. 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.
-- **Cleanup**. Before opening a pull request follow this checklist:
-  - Rebase onto the latest version of the master branch
-  - Clean up your commits, i.e., squash them in a reasonable way and give meaningful commit messages
-  - Run *all* tests either locally with ```mvn clean verify``` or use Travis CI to check the build
-- **Append review commits**. When you get comments on the pull request asking for changes, append commits for these changes. *Do not rebase and squash them.* It allows people to review the cleanup work independently. Otherwise reviewers have to go through the entire set of diffs again.
-- **Javadocs for public methods**. Public methods and classes that are part of the user-facing API need to have JavaDocs. Please write meaningful docs. Good docs are concise and informative.
-- **Meaningful error messages**. 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.
-- **Follow the coding style** (see below). The checkstyle plugin verifies these rules when you build the code. If your code does not follow the checkstyle rules, Maven will not compile it and consequently the build will fail.
-
-## Coding Style Guidelines
-
-- **Apache license headers**. Make sure you have Apache License headers in your files. The RAT plugin is checking for that when you build the code.
-- **Tabs vs. spaces**. 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).
-- **Blocks**. All statements after `if`, `for`, `while`, `do`, ... must always be encapsulated in a block with curly braces (even if the block contains one statement):
-  
-  ```java
-for (...) {
- ...
-}
-```
-  If you are wondering why, recall the famous [*goto bug*](https://www.imperialviolet.org/2014/02/22/applebug.html) in Apple's SSL library.
-- **No wildcard imports**. 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.
-- **No unused imports**. Remove all unused imports.
-- **Use Guava Checks**. To increase homogeneity, consistently use Guava methods checkNotNull and checkArgument rather than Apache Commons Validate.
-- **No raw generic types**. Do not use raw generic types, unless strictly necessary (sometime necessary for signature matches, arrays).
-- **Supress warnings**. Add annotations to suppress warnings, if they cannot be avoided (such as "unchecked", or "serial").
-- **Comments**. 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:
-
-  ```java
-i++; // increment by one
-```

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f2411e25/contribute-code.md
----------------------------------------------------------------------
diff --git a/contribute-code.md b/contribute-code.md
new file mode 100644
index 0000000..8c822b0
--- /dev/null
+++ b/contribute-code.md
@@ -0,0 +1,296 @@
+---
+title:  "Contributing Code"
+---
+
+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.
+
+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.
+
+**IMPORTANT**: 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.
+
+{% toc %}
+
+## Code Contribution Process
+
+### Before you start coding...
+
+... please make sure there is a JIRA issue that corresponds to your contribution. This is a *general rule* that the Flink community follows for all code contributions, including bug fixes, improvements, or new features, with an exception for *trivial* 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 [File a bug report]({{ site.baseurl }}/how-to-contribute.html#file-a-bug-report) or [Propose an improvement or a new feature]({{ site.baseurl }}/how-to-contribute.html#propose-an-improvement-or-a-new-feature) guidelines to open an issue in [Flink's JIRA](http://issues.apache.org/jira/browse/FLINK) before starting with the implementation.
+
+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 **`requires-design-doc`** 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:
+
+- Overview of the general approach
+- List of API changes (changed interfaces, new and deprecated configuration parameters, changed behavior, ...)
+- Main components and classes to be touched
+- Known limitations of the proposed approach
+
+A design document can be added by anybody, including the reporter of the issue or the person working on it.
+
+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 [lazy consensus](http://www.apache.org/foundation/glossary.html#LazyConsensus). Please check if a design document is required before starting to code.
+
+
+### While coding...
+
+... please respect the following rules:
+
+- Take any discussion or requirement that is recorded in the JIRA issue into account.
+- 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.
+- Closely follow the [coding guidelines]( {{site.base}}/contribute-code.html#coding-guidelines) and the [code style]({{ site.base }}/contribute-code.html#code-style).
+- Do not mix unrelated issues into one contribution. 
+
+**Please feel free to ask questions at any time.** Either send a mail to the [dev mailing list]( {{ site.base }}/community.html#mailing-lists ) or comment on the JIRA issue.
+
+The following instructions will help you to [setup a development environment]( {{ site.base }}/contribute-code.html#setup-a-development-environment).
+
+
+
+
+### Verifying the compliance of your code
+
+It is very important to verify the compliance of changes before submitting your contribution. This includes:
+
+- Making sure the code builds.
+- Verifying that all existing and new tests pass.
+- Check that the code style is not violated.
+- Making sure no unrelated or unnecessary reformatting changes are included.
+
+You can build the code, run the tests, and check (parts of) the code style by calling 
+
+```
+mvn clean verify
+```
+
+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 **`test-stability`** label. Please check (and extend) this list of [known flaky tests](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) if you encounter a test failure that seems to be unrelated to your changes.
+
+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 *continuous integration* service that will automatically test the code in your repository whenever you push a change. The [Best practices]( {{site.base}}/contribute-code.html#best-practices ) guide shows how to integrate [Travis](https://travis-ci.org/) with your Github repository.
+
+In addition to the automated tests, please check the diff of your changes and remove all unrelated changes such as unnecessary reformatting.
+
+
+
+
+### Preparing and submitting your contribution
+
+To make the changes easily mergeable, please rebase them to the latest version of the main repositories master branch. Please do also respect the [commit message guidelines]( {{ site.base }}/contribute-code.html#coding-guidelines ), 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.
+
+The Flink project accepts code contributions through the [GitHub Mirror](https://github.com/apache/flink), in the form of [Pull Requests](https://help.github.com/articles/using-pull-requests). Pull requests are a simple way to offer a patch, by providing a pointer to a code branch that contains the change.
+
+To open a pull request, push our contribution back into your fork of the Flink repository.
+
+```
+git push origin myBranch
+```
+
+Go the website of your repository fork (`https://github.com/<your-user-name>/flink`) and use the *"Create Pull Request"* button to start creating a pull request. Make sure that the base fork is `apache/flink master` and the head fork selects the branch with your changes. Give the pull request a meaningful description and send it.
+
+It is also possible to attach a patch to a [JIRA]({{site.FLINK_ISSUES_URL}}) issue.
+
+-----
+
+## Coding guidelines
+
+### Pull requests and commit message
+{:.no_toc} 
+
+- **Single change per PR**. 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 *topic related*, can be merged more easily, and typically result in topic-specific merge conflicts only.
+
+- **No WIP pull requests**. We consider pull requests as requests to merge the referenced code *as is* into the current *stable* 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.
+
+- **Commit message**. 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 *[FLINK-633] Fix NullPointerException for empty UDF parameters*. That way, the pull request automatically gives a description of what it does, for example what bug does it fix in what way.
+
+- **Append review commits**. When you get comments on the pull request asking for changes, append commits for these changes. *Do not rebase and squash them.* It allows people to review the cleanup work independently. Otherwise reviewers have to go through the entire set of diffs again.
+
+### Exceptions and error messages
+{:.no_toc} 
+
+- **Exception swallowing**. Do not swallow exceptions and print the stacktrace. Instead check how exceptions are handled by similar classes.
+
+- **Meaningful error messages**. 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.
+
+### Tests
+{:.no_toc} 
+
+- **Tests need to pass**. 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 [Travis CI](http://travis-ci.org/) (like the Flink GitHub repository). Travis will run tests for all tested environments whenever you push something into *your* Github repository. Please note the previous [comment about flaky tests]( {{site.base}}/contribute-code.html#verifying-the-compliance-of-your-code).
+
+- **Tests for new features are required**. All new features need to be backed by tests, *strictly*. 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.
+
+- **Use appropriate test mechanisms**. 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 `*Test`. 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 `*ITCase`.
+
+### Documentation
+{:.no_toc}
+
+- **Documentation Updates**. Many changes in the system will also affect the documentation (both JavaDocs and the user documentation in the `docs/` 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 [Contribute documentation]({{site.base}}/contribute-documentation.html) guide for how to update the documentation.
+
+- **Javadocs for public methods**. 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.
+
+### Code formatting
+{:.no_toc} 
+
+- **No reformattings**. 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.
+
+
+
+-----
+
+## Code style
+
+- **Apache license headers**. Make sure you have Apache License headers in your files. The RAT plugin is checking for that when you build the code.
+- **Tabs vs. spaces**. 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).
+- **Blocks**. All statements after `if`, `for`, `while`, `do`, ... must always be encapsulated in a block with curly braces (even if the block contains one statement):
+  
+  ```java
+for (...) {
+ ...
+}
+```
+  If you are wondering why, recall the famous [*goto bug*](https://www.imperialviolet.org/2014/02/22/applebug.html) in Apple's SSL library.
+- **No wildcard imports**. 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.
+- **No unused imports**. Remove all unused imports.
+- **Use Guava Checks**. To increase homogeneity, consistently use Guava methods checkNotNull and checkArgument rather than Apache Commons Validate.
+- **No raw generic types**. Do not use raw generic types, unless strictly necessary (sometime necessary for signature matches, arrays).
+- **Supress warnings**. Add annotations to suppress warnings, if they cannot be avoided (such as "unchecked", or "serial").
+- **Comments**. 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:
+
+  ```java
+i++; // increment by one
+```
+
+-----
+
+## Best practices
+
+- Travis: Flink is pre-configured for [Travis CI](http://docs.travis-ci.com/), 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 *Travis CI* hook to your repository (*settings --> webhooks & services --> add service*) and enable tests for the `flink` repository on [Travis](https://travis-ci.org/profile).
+
+-----
+
+## Setup a development environment
+
+### Requirements for developing and building Flink
+
+* Unix-like environment (We use Linux, Mac OS X, Cygwin)
+* git
+* Maven (at least version 3.0.4)
+* Java 7 or 8
+
+### Clone the repository
+{:.no_toc} 
+
+Apache Flink's source code is stored in a [git](http://git-scm.com/) repository which is mirrored to [Github](https://github.com/apache/flink). 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 [Github](https://github.com) 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 *fork* button on the upper right of the [repository website](https://github.com/apache/flink). Once you have a fork of Flink's repository in your personal account, you can clone that repository to your local machine.
+
+```
+git clone https://github.com/<your-user-name>/flink.git
+```
+
+The code is downloaded into a directory called `flink`.
+
+
+### Setup an IDE and import the source code
+{:.no_toc} 
+
+The Flink committers use IntelliJ IDEA and Eclipse IDE to develop the Flink code base.
+
+Minimal requirements for an IDE are:
+
+- Support for Java and Scala (also mixed projects)
+- Support for Maven with Java and Scala
+
+#### IntelliJ IDEA
+
+The IntelliJ IDE supports Maven out of the box and offers a plugin for Scala development.
+
+- IntelliJ download: [https://www.jetbrains.com/idea/](https://www.jetbrains.com/idea/)
+- IntelliJ Scala Plugin: [http://plugins.jetbrains.com/plugin/?id=1347](http://plugins.jetbrains.com/plugin/?id=1347)
+
+Check out our [Setting up IntelliJ](https://github.com/apache/flink/blob/master/docs/internals/ide_setup.md#intellij-idea) guide for details.
+
+#### Eclipse Scala IDE
+
+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.
+
+Further details, and a guide to newer Scala IDE versions can be found in the
+[How to setup Eclipse](https://github.com/apache/flink/blob/master/docs/internals/ide_setup.md#eclipse) docs.
+
+**Note:** Before following this setup, make sure to run the build from the command line once
+(`mvn clean install -DskipTests`, see above)
+
+1. Download the Scala IDE (preferred) or install the plugin to Eclipse Kepler. See 
+   [How to setup Eclipse](https://github.com/apache/flink/blob/master/docs/internals/ide_setup.md#eclipse) for download links and instructions.
+2. Add the "macroparadise" compiler plugin to the Scala compiler.
+   Open "Window" -> "Preferences" -> "Scala" -> "Compiler" -> "Advanced" and put into the "Xplugin" field the path to
+   the *macroparadise* jar file (typically "/home/*-your-user-*/.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.
+3. Import the Flink Maven projects ("File" -> "Import" -> "Maven" -> "Existing Maven Projects") 
+4. During the import, Eclipse will ask to automatically install additional Maven build helper plugins.
+5. Close the "flink-java8" project. Since Eclipse Kepler does not support Java 8, you cannot develop this project.
+
+#### Import the source code
+
+Apache Flink uses Apache Maven as build tool. Most IDE are capable of importing Maven projects.
+
+
+### Build the code
+{:.no_toc} 
+
+To build Flink from source code, open a terminal, navigate to the root directory of the Flink source code, and call
+
+```
+mvn clean package
+```
+
+This will build Flink and run all tests. Flink is now installed in `build-target`.
+
+To build Flink without executing the tests you can call 
+
+```
+mvn -DskipTests clean package
+```
+
+
+-----
+
+
+## How to use Git as a committer
+
+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.
+
+### Main source repositories
+{:.no_toc} 
+
+**ASF writable**: https://git-wip-us.apache.org/repos/asf/flink.git
+
+**ASF read-only**: git://git.apache.org/repos/asf/flink.git
+
+**ASF read-only**: https://github.com/apache/flink.git
+
+Note: Flink does not build with Oracle JDK 6. It runs with Oracle JDK 6.
+
+If you want to build for Hadoop 1, activate the build profile via `mvn clean package -DskipTests -Dhadoop.profile=1`.
+
+-----
+
+## Snapshots (Nightly Builds)
+
+Apache Flink `{{ site.FLINK_VERSION_LATEST }}` is our latest development version.
+
+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.
+
+- **Hadoop 1**: <a href="{{ site.FLINK_DOWNLOAD_URL_HADOOP_1_LATEST }}" class="ga-track" id="download-hadoop1-nightly">{{ site.FLINK_DOWNLOAD_URL_HADOOP_1_LATEST | split:'/' | last }}</a>
+- **Hadoop 2 and YARN**: <a href="{{ site.FLINK_DOWNLOAD_URL_HADOOP_2_LATEST }}" class="ga-track" id="download-hadoop2-nightly">{{ site.FLINK_DOWNLOAD_URL_HADOOP_2_LATEST | split:'/' | last }}</a>
+
+Add the **Apache Snapshot repository** to your Maven `pom.xml`:
+
+```xml
+<repositories>
+  <repository>
+    <id>apache.snapshots</id>
+    <name>Apache Development Snapshot Repository</name>
+    <url>https://repository.apache.org/content/repositories/snapshots/</url>
+    <releases><enabled>false</enabled></releases>
+    <snapshots><enabled>true</enabled></snapshots>
+  </repository>
+</repositories>
+```
+
+You can now include Apache Flink as a Maven dependency (see above) with version `{{ site.FLINK_VERSION_LATEST }}` (or `{{ site.FLINK_VERSION_HADOOP_1_LATEST}}` for compatibility with old Hadoop 1.x versions).

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f2411e25/contribute-documentation.md
----------------------------------------------------------------------
diff --git a/contribute-documentation.md b/contribute-documentation.md
new file mode 100644
index 0000000..d0af39e
--- /dev/null
+++ b/contribute-documentation.md
@@ -0,0 +1,66 @@
+---
+title:  "Contribute Documentation"
+---
+
+Good documentation is crucial for any kind of software. This is especially true for sophisticated software systems such as distributed data processing engines like Apache Flink. The Apache Flink community aims to provide concise, precise, and complete documentation and welcomes any contribution to improve Apache Flink's documentation.
+
+{% toc %}
+
+## Obtain the documentation sources
+
+Apache Flink's documentation is maintained in the same [git](http://git-scm.com/) repository as the code base. This is done to ensure that code and documentation can be easily kept in sync. 
+
+The easiest way to contribute documentation is to fork [Flink's mirrored repository on Github](https://github.com/apache/flink) into your own Github account by clicking on the fork button at the top right. If you have no Github account, you can create one for free.
+
+Next, clone your fork to your local machine.
+  
+```
+git clone https://github.com/<your-user-name>/flink.git
+```
+
+The documentation is located in the `docs/` subdirectory of the Flink code base.
+
+## Before you start working on the documentation ...
+
+... please make sure there exists a [JIRA](https://issues.apache.org/jira/browse/FLINK) issue that corresponds to your contribution. We require all documentation changes to refer to a JIRA issue, except for trivial fixes such as typos. 
+
+## Update or extend the documentation
+
+The Flink documentation is written in [Markdown](http://daringfireball.net/projects/markdown/). Markdown is a lightweight markup language which can be translated to HTML.
+
+In order to update or extend the documentation you have to modify the Markdown (`.md`) files. Please verify your changes by starting the build script in preview mode.
+
+```
+cd docs
+./build_docs.sh -p
+```
+
+The script compiles the Markdown files into static HTML pages and starts a local webserver. Open your browser at `http://localhost:4000` to view the compiled documentation including your changes. The served documentation is automatically re-compiled and updated when you modify and save Markdown files and refresh your browser.
+
+Please feel free to ask any questions you have on the developer mailing list.
+
+## Submit your contribution
+
+The Flink project accepts documentation contributions through the [GitHub Mirror](https://github.com/apache/flink) as [Pull Requests](https://help.github.com/articles/using-pull-requests). Pull requests are a simple way of offering a patch by providing a pointer to a code branch that contains the changes.
+
+To prepare and submit a pull request follow these steps.
+
+1. Commit your changes to your local git repository. The commit message should point to the corresponding JIRA issue by starting with `[FLINK-XXXX]`. 
+
+2. Push your committed contribution to your fork of the Flink repository at Github.
+
+	```
+	git push origin myBranch
+	```
+
+3. Go the website of your repository fork (`https://github.com/<your-user-name>/flink`) and use the "Create Pull Request" button to start creating a pull request. Make sure that the base fork is `apache/flink master` and the head fork selects the branch with your changes. Give the pull request a meaningful description and submit it.
+
+It is also possible to attach a patch to a [JIRA]({{site.FLINK_ISSUES_URL}}) issue.
+
+
+
+
+
+
+
+

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f2411e25/css/flink.css
----------------------------------------------------------------------
diff --git a/css/flink.css b/css/flink.css
index 7e04d60..5b68542 100644
--- a/css/flink.css
+++ b/css/flink.css
@@ -51,6 +51,10 @@ h3, h4, h5, h6 {
 	font-size: 120%;
 }
 
+blockquote {
+	font-size: 100%;
+}
+
 /*=============================================================================
                               Table of Contents
 =============================================================================*/

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f2411e25/how-to-contribute.md
----------------------------------------------------------------------
diff --git a/how-to-contribute.md b/how-to-contribute.md
index a75170e..2e35687 100644
--- a/how-to-contribute.md
+++ b/how-to-contribute.md
@@ -1,197 +1,141 @@
 ---
-title:  "How To Contribute"
+title:  "Contributions Welcome!"
 ---
 
-The Flink project welcomes all sort of contributions in the form of code (improvements, features, bugfixes), tests, documentation, and community participation (discussions & questions).
+Apache Flink is developed by an open and friendly community. Everybody is cordially welcome to join the community and contribute to Apache Flink. There are several ways to interact with the community and to contribute to Flink including asking questions, filing bug reports, proposing new features, joining discussions on the mailing lists, contributing code or documentation, improving the website, or testing release candidates.
 
 {% toc %}
 
-## Easy Issues for Starters
+## Ask questions!
 
-We maintain all known issues and feature drafts in the [Flink JIRA project](https://issues.apache.org/jira/issues/?jql=project+%3D+FLINK).
+The Apache Flink community is eager to help and to answer your questions. We have a [user mailing list]({{ site.baseurl }}/community.html#mailing-lists ), hang out in an [IRC channel]({{ site.baseurl }}/community.html#irc), and watch Stack Overflow on the [[apache-flink]](http://stackoverflow.com/questions/tagged/apache-flink) tag.
 
-We also try to maintain a [list of simple "starter issues"](https://issues.apache.org/jira/issues/?jql=project%20%3D%20FLINK%20AND%20resolution%20%3D%20Unresolved%20AND%20labels%20%3D%20starter%20ORDER%20BY%20priority%20DESC) that we believe are good tasks for new contributors. Those tasks are meant to allow people to get into the project and become familiar with the process of contributing. Feel free to ask questions about issues that you would be interested in working on.
+-----
 
-In addition, you can find a list of ideas for projects and improvements in the [projects Wiki page](https://cwiki.apache.org/confluence/display/FLINK/Project+Ideas).
+## File a bug report
 
-## Contributing Code & Documentation
+Please let us know if you experienced a problem with Flink and file a bug report. Open [Flink's JIRA](http://issues.apache.org/jira/browse/FLINK) and click on the blue **Create** button at the top. Please give detailed information about the problem you encountered and, if possible, add a description that helps to reproduce the problem. Thank you very much.
 
-This section gives you a brief introduction in how to contribute code and documentation to Flink. We maintain both the code and the documentation in the same repository, so the process is essentially the same for both. We use [git](http://git-scm.com/) for the code and documentation version control. The documentation is located in the `docs/` subdirectory of the git repository.
+-----
 
-The Flink project accepts code contributions through the [GitHub Mirror](https://github.com/apache/flink), in the form of [Pull Requests](https://help.github.com/articles/using-pull-requests). Pull requests are basically a simpler way of offering a patch, by providing a pointer to a code branch that contains the change.
+## Propose an improvement or a new feature
 
-It is also possible to attach a patch to a [JIRA]({{site.FLINK_ISSUES_URL}}) issue.
+Our community is constantly looking for feedback to improve Apache Flink. If you have an idea how to improve Flink or have a new feature in mind that would be beneficial for Flink users, please open an issue in [Flink's JIRA](http://issues.apache.org/jira/browse/FLINK). The improvement or new feature should be described in appropriate detail and include the scope and its requirements if possible. Detailed information is important for a few reasons:
 
+- It ensures your requirements are met when the improvement or feature is implemented.
+- It helps to estimate the effort and to design a solution that addresses your needs.
+- It allow for constructive discussions that might arise around this issue.
 
-### Setting up the Infrastructure and Creating a Pull Request
+Detailed information is also required, if you plan to contribute the improvement or feature you proposed yourself. Please read the [Contribute code]({{ site.base }}/contribute-code.html) guide in this case as well. 
 
-1. The first step is to create yourself a copy of the Flink code base. We suggest to fork the [Flink GitHub Mirror Repository](https://github.com/apache/flink) into your own [GitHub](https://github.com) account. You need to register on GitHub for that, if you have no account so far.
+-----
 
-2. Next, clone your repository fork to your local machine.
+## Help others and join the discussions
 
-   ```
-git clone https://github.com/<your-user-name>/flink.git
-```
+Most communication in the Apache Flink community happens on two mailing lists:
 
-3. It is typically helpful to switch to a *topic branch* for the changes. To create a dedicated branch based on the current master, use the following command:
+- The user mailing lists `user@flink.apache.org` is the place where users of Apache Flink ask questions and seek for help or advice. Joining the user list and helping other users is a very good way to contribute to Flink's community. Furthermore, there is the [[apache-flink]](http://stackoverflow.com/questions/tagged/apache-flink) tag on Stack Overflow if you'd like to help Flink users (and harvest some points) there.
+- The development mailing list `dev@flink.apache.org` is the place where Flink developers exchange ideas and discuss new features, upcoming releases, and the development process in general. If you are interested in contributing code to Flink, you should join this mailing list.
 
-   ```
-git checkout -b myBranch master
-```
+You are very welcome to [subscribe to both mailing lists]({{ site.baseurl }}/community.html#mailing-lists). In addition to the user list, there is also a [Flink IRC]({{ site.baseurl }}/community.html#irc) channel that you can join to talk to other users and contributors.
 
-4. Now you can create your changes, compile the code, and validate the changes. Here are some pointers on how to [build the code](https://github.com/apache/flink/#building-apache-flink-from-source).
-In addition to that, we recommend setting up Eclipse (or IntelliJ) using the "Import Maven Project" feature:
+-----
 
-      * Select "Import" from the "File" menu.
-      * Expand the "Maven" node, select "Existing Maven Projects", and click the "Next" button.
-      * Select the root directory by clicking on the "Browse" button and navigate to the top folder of the cloned Flink git repository.
-      * Ensure that all projects are selected and click the "Finish" button.<br/><br/><!-- newline hack -->
+## Test a release candidate
 
-      If you want to work on the Scala code you will need the following plugins:
+Apache Flink is continuously improved by its active community. Every few weeks, we release a new version of Apache Flink with bug fixes, improvements, and new features. The process of releasing a new version consists of the following steps:
 
-    **Eclipse 4.x**:
+1. Building a new release candidate and starting a vote (usually for 72 hours).
+2. Testing the release candidate and voting (`+1` if no issues were found, `-1` if the release candidate has issues).
+3. Going back to step 1 if the release candidate had issues otherwise we publish the release.
 
-      * scala-ide: `http://download.scala-ide.org/sdk/e38/scala210/stable/site`
-      * m2eclipse-scala: `http://alchim31.free.fr/m2e-scala/update-site`
-      * build-helper-maven-plugin: `https://repository.sonatype.org/content/repositories/forge-sites/m2e-extras/0.15.0/N/0.15.0.201206251206/`<br/><br/><!-- newline hack -->
+Our wiki contains a page that summarizes the [test procedure for a release](https://cwiki.apache.org/confluence/display/FLINK/Releasing). Release testing is a big effort if done by a small group of people but can be easily scaled out to more people. The Flink community encourages everybody to participate in the testing of a release candidate. By testing a release candidate, you can ensure that the next Flink release is working properly for your setup and help to improve the quality of releases. 
 
-    **Eclipse 3.7**:
+-----
 
-      * scala-ide: `http://download.scala-ide.org/sdk/e37/scala210/stable/site`
-      * m2eclipse-scala: `http://alchim31.free.fr/m2e-scala/update-site`
-      * build-helper-maven-plugin: `https://repository.sonatype.org/content/repositories/forge-sites/m2e-extras/0.14.0/N/0.14.0.201109282148/`<br/><br/><!-- newline hack -->
+## Contribute code
 
-      If you don't have the plugins your project will have build errors, but you can just close the Scala projects and ignore them.
+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 our [Contribute code]( {{ site.base }}/contribute-code.html) guide. The guide does also include instructions to setup a development environment, our coding guidelines and code style, and explains how to submit a code contribution.
 
-5. After you have finalized your contribution, verify the compliance with the contribution guidelines (see below), and make the commit. To make the changes easily mergeable, please rebase them to the latest version of the main repository's master branch. Assuming you created a topic branch (step 3), you can follow this sequence of commands to do that:
-switch to the master branch, update it to the latest revision, switch back to your topic branch, and rebase it on top of the master branch.
+**Please read the [Contribute code]( {{ site.base }}/contribute-code.html) guide before you start to work on a code contribution.**
 
-   ```
-git checkout master
-git pull https://github.com/apache/flink.git master
-git checkout myBranch
-git rebase master
-```
-Have a look [here](https://help.github.com/articles/using-git-rebase) for more information about rebasing commits.
+Please do also read the [Submit a Contributor License Agreement]({{ site.baseurl }}/how-to-contribute.html#submit-a-contributor-license-agreement) Section.
 
+### Looking for an issue to work on?
+{:.no_toc} 
 
-6. Push the contribution back into your fork of the Flink repository.
+We maintain a list of all known bugs, proposed improvements and suggested features in [Flink's JIRA](https://issues.apache.org/jira/browse/FLINK/?selectedTab=com.atlassian.jira.jira-projects-plugin:issues-panel). Issues that we believe are good tasks for new contributors are tagged with a special "starter" tag. Those tasks are supposed to be rather easy to solve and will help you to become familiar with the project and the contribution process. 
 
-   ```
-git push origin myBranch
-```
-Go the website of your repository fork (`https://github.com/<your-user-name>/flink`) and use the "Create Pull Request" button to start creating a pull request. Make sure that the base fork is `apache/flink master` and the head fork selects the branch with your changes. Give the pull request a meaningful description and send it.
+Please have a look at the list of [starter issues](https://issues.apache.org/jira/issues/?jql=project%20%3D%20FLINK%20AND%20resolution%20%3D%20Unresolved%20AND%20labels%20%3D%20starter%20ORDER%20BY%20priority%20DESC), if you are looking for an issue to work on. You can of course also choose [any other issue](https://issues.apache.org/jira/issues/?jql=project%20%3D%20FLINK%20AND%20resolution%20%3D%20Unresolved%20ORDER%20BY%20priority%20DESC) to work on. Feel free to ask questions about issues that you would be interested in working on.
 
+-----
 
-### Verifying the Compliance of your Code
+## Contribute documentation
 
-Before sending a patch or pull request, please verify that it complies with the guidelines of the project. While we try to keep the set of guidelines small and easy, it is important to follow those rules in order to guarantee good code quality, to allow efficient reviews, and to allow committers to easily merge your changes.
+Good documentation is crucial for any kind of software. This is especially true for sophisticated software systems such as distributed data processing engines like Apache Flink. The Apache Flink community aims to provide concise, precise, and complete documentation and welcomes any contribution to improve Apache Flink's documentation.
 
-Please have a look at the [coding guidelines]({{ site.baseurl }}/coding-guidelines.html) for a guide to the format of code and pull requests.
+- Please report missing, incorrect, or out-dated documentation as a [JIRA issue](http://issues.apache.org/jira/browse/FLINK).
+- Flink's documentation is written in Markdown and located in the `docs` folder in [Flink's source code repository]({{ site.baseurl }}/community.html#main-source-repositories). See the [Contribute documentation]({{ site.base }}/contribute-documentation.html) guidelines for detailed instructions for how to update and improve the documentation and to contribute your changes.
 
-Most important of all, verify that your changes are correct and do not break existing functionality. Run the existing tests by calling `mvn verify` in the root directory of the repository, and make sure that the tests succeed. We encourage every contributor to use a *continuous integration* service that will automatically test the code in your repository whenever you push a change. Flink is pre-configured for [Travis CI](http://docs.travis-ci.com/), which can be easily enabled for your private repository fork (it uses GitHub for authentication, so you don't need an additional account). Simply add the *Travis CI* hook to your repository (*settings --> webhooks & services --> add service*) and enable tests for the "flink" repository on [Travis](https://travis-ci.org/profile).
+-----
 
-When contributing documentation, please review the rendered HTML versions of the documents you changed. You can look at the HTML pages by using the rendering script in preview mode.
+## Improve the website
 
-```
-cd docs
-./build_docs.sh -p
-```
-Now, open your browser at `http://localhost:4000` and check out the pages you changed.
+The [Apache Flink website](http://flink.apache.org) presents Apache Flink and its community. It serves several purposes including:
 
-## Contribute changes to the Website
+- Informing visitors about Apache Flink and its features.
+- Encouraging visitors to download and use Flink.
+- Encouraging visitors to engage with the community.
 
-The website of Apache Flink is hosted in a separate Git repository. We suggest making a fork of the [flink-web GitHub mirror repository](https://github.com/apache/flink-web).
+We welcome any contribution to improve our website.
 
-To make changes to the website, you have to checkout its source code first. The website resides in the `asf-site` branch of the repository:
+- Please open a [JIRA issue](http://issues.apache.org/jira/browse/FLINK) if you think our website could be improved.
+- Please follow the [Improve the website]({{ site.baseurl }}/improve-website.html) guidelines if you would like to update and improve the website.
 
-```
-git clone -b asf-site https://github.com/<your-user-name>/flink-web.git
-cd flink-web
-```
+-----
 
-The `flink-web` directory contains the files that we use to build the website. We use [Jekyll](http://jekyllrb.com/) to generate static HTML files for the website.
+## More ways to contribute...
 
-### Files and Directories in the website git repository
+There are many more ways to contribute to the Flink community. For example you can
 
-The files and directories in the website git repository have the following roles:
+- give a talk about Flink and tell others how you use it.
+- organize a local Meetup or user group.
+- talk to people about Flink.
+- ...
 
-- all files ending with `.md` are [Markdown](http://daringfireball.net/projects/markdown/) files. Those are the input for the HTML files.
-- regular directories (not starting with an underscore (`_`)) contain also `.md` files. The directory structure is also represented in the generated HTML files.
-- the `_posts` directory contains one Markdown file for each blog post on the website. To contribute a post, just add a new file there.
-- the `_includes/` directory contains includeable files such as the navigation bar or the footer.
-- the `docs/` directory contains copies of the documentation of Flink for different releases. There is a directory inside `docs/` for each stable release and the latest SNAPSHOT version. The build script is taking care of the maintenance of this directory.
-- the `content/` directory contains the generated HTML files from Jekyll. It is important to place the files in this directory since the Apache Infrastructure to host the Flink website is pulling the HTML content from his directory. (For committers: When pushing changes to the website repository, push also the updates in the `content/` directory!)
-- see the section below for the `build.sh` script.
+-----
 
+## Submit a Contributor License Agreement
 
-### The `build.sh` script
+Please submit a contributor license agreement to the Apache Software Foundation (ASF) if you would like to contribute to Apache Flink. The following quote from [http://www.apache.org/licenses](http://www.apache.org/licenses/#clas) gives more information about the ICLA and CCLA and why they are necessary.
 
-The `build.sh` script creates HTML files from the input Markdown files. Use the `-p` flag to let Jekyll serve a **p**review of the website on `http://localhost:4000/`.
+> The ASF desires that all contributors of ideas, code, or documentation to the Apache projects complete, sign, and submit (via postal mail, fax or email) an [Individual Contributor License Agreement](http://www.apache.org/licenses/icla.txt) (CLA) [ [PDF form](http://www.apache.org/licenses/icla.pdf) ]. The purpose of this agreement is to clearly define the terms under which intellectual property has been contributed to the ASF and thereby allow us to defend the project should there be a legal dispute regarding the software at some future time. A signed CLA is required to be on file before an individual is given commit rights to an ASF project.
+>
+> For a corporation that has assigned employees to work on an Apache project, a [Corporate CLA](http://www.apache.org/licenses/cla-corporate.txt) (CCLA) is available for contributing intellectual property via the corporation, that may have been assigned as part of an employment agreement. Note that a Corporate CLA does not remove the need for every developer to sign their own CLA as an individual, to cover any of their contributions which are not owned by the corporation signing the CCLA.
+>
+>  ...
 
-The build script also takes care of maintaining the `docs/` directory. Set the `-u` flag to **u**pdate documentation. This includes fetching the Flink git repository and copying different versions of the documentation.
+-----
 
 ## How to become a committer
 
-There is no strict protocol for becoming a committer. Candidates for new committers are typically people that are active contributors and community members.
-
-Being an active community member means participating on mailing list discussions, helping to answer questions, being respectful towards others, and following the meritocratic principles of community management. Since the "Apache Way" has a strong focus on the project community, this part is very important.
-
-Of course, contributing code to the project is important as well. A good way to start is contributing improvements, new features, or bugfixes. You need to show that you take responsibility for the code that you contribute, add tests/documentation, and help maintaining it.
-
-Finally, candidates for new committers are suggested by current committers, mentors, or PMC members, and voted upon by the PMC.
-
-
-### How to use git as a committer
+Committers are community members that have write access to the project's repositories, i.e., they can modify the code, documentation, and website by themselves and also accept other contributions. 
 
-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.
-
-#### Main source repositories
-
-**ASF writable**: `https://git-wip-us.apache.org/repos/asf/flink.git`
-
-**ASF read-only**: `git://git.apache.org/repos/asf/flink.git`
-
-**ASF read-only**: `https://github.com/apache/flink.git`
-
-Note: Flink does not build with Oracle JDK 6. It runs with Oracle JDK 6.
+There is no strict protocol for becoming a committer. Candidates for new committers are typically people that are active contributors and community members.
 
-If you want to build for Hadoop 1, activate the build profile via `mvn clean package -DskipTests -Dhadoop.profile=1`.
+Being an active community member means participating on mailing list discussions, helping to answer questions, verifying release candidates, being respectful towards others, and following the meritocratic principles of community management. Since the "Apache Way" has a strong focus on the project community, this part is *very* important.
 
-#### Website repositories
+Of course, contributing code and documentation to the project is important as well. A good way to start is contributing improvements, new features, or bug fixes. You need to show that you take responsibility for the code that you contribute, add tests and documentation, and help maintaining it.
 
-**ASF writable**: `https://git-wip-us.apache.org/repos/asf/flink-web.git`
+Candidates for new committers are suggested by current committers or PMC members, and voted upon by the PMC. 
 
-**ASF read-only**: `git://git.apache.org/repos/asf/flink-web.git`
+If you would like to become a committer, you should engage with the community and start contributing to Apache Flink in any of the above ways. You might also want to talk to other committers and ask for their advice and guidance.
 
-**ASF read-only**: `https://github.com/apache/flink-web.git`
 
-Details on how to set the credentials for the ASF git repostiory are [linked here](https://git-wip-us.apache.org/).
-To merge pull requests from our Flink GitHub mirror, there is a script in the source `./tools/merge_pull_request.sh.template`. Rename it to `merge_pull_request.sh` with the appropriate settings and use it for merging.
 
-## Snapshots (Nightly Builds)
 
-Apache Flink `{{ site.FLINK_VERSION_LATEST }}` is our latest development version.
 
-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.
 
-- **Hadoop 1**: <a href="{{ site.FLINK_DOWNLOAD_URL_HADOOP_1_LATEST }}" class="ga-track" id="download-hadoop1-nightly">{{ site.FLINK_DOWNLOAD_URL_HADOOP_1_LATEST | split:'/' | last }}</a>
-- **Hadoop 2 and YARN**: <a href="{{ site.FLINK_DOWNLOAD_URL_HADOOP_2_LATEST }}" class="ga-track" id="download-hadoop2-nightly">{{ site.FLINK_DOWNLOAD_URL_HADOOP_2_LATEST | split:'/' | last }}</a>
 
-Add the **Apache Snapshot repository** to your Maven `pom.xml`:
 
-```xml
-<repositories>
-  <repository>
-    <id>apache.snapshots</id>
-    <name>Apache Development Snapshot Repository</name>
-    <url>https://repository.apache.org/content/repositories/snapshots/</url>
-    <releases><enabled>false</enabled></releases>
-    <snapshots><enabled>true</enabled></snapshots>
-  </repository>
-</repositories>
-```
 
-You can now include Apache Flink as a Maven dependency (see above) with version `{{ site.FLINK_VERSION_LATEST }}` (or `{{ site.FLINK_VERSION_HADOOP_1_LATEST}}` for compatibility with old Hadoop 1.x versions).

http://git-wip-us.apache.org/repos/asf/flink-web/blob/f2411e25/improve-website.md
----------------------------------------------------------------------
diff --git a/improve-website.md b/improve-website.md
new file mode 100644
index 0000000..86a4f02
--- /dev/null
+++ b/improve-website.md
@@ -0,0 +1,102 @@
+---
+title:  "Improving the Website"
+---
+
+The [Apache Flink website](http://flink.apache.org) presents Apache Flink and its community. It serves several purposes including:
+
+- Informing visitors about Apache Flink and its features.
+- Encouraging visitors to download and use Flink.
+- Encouraging visitors to engage with the community.
+
+We welcome any contribution to improve our website. This document contains all information that is necessary to improve Flink's website.
+
+{% toc %}
+
+## Obtain the website sources
+
+The website of Apache Flink is hosted in a dedicated [git](http://git-scm.com/) repository which is mirrored to Github at [https://github.com/apache/flink-web](https://github.com/apache/flink-web).
+
+The easiest way to contribute website updates is to fork [the mirrored website repository on Github](https://github.com/apache/flink-web) into your own Github account by clicking on the fork button at the top right. If you have no Github account, you can create one for free.
+
+Next, clone your fork to your local machine.
+  
+```
+git clone https://github.com/<your-user-name>/flink-web.git
+```
+
+The `flink-web` directory contains the cloned repository. The website resides in the `asf-site` branch of the repository. Run the following commands to enter the directory and switch to the `asf-site` branch.
+
+```
+cd flink-web
+git checkout asf-site
+```
+
+## Directory structure and files
+
+Flink's website is written in [Markdown](http://daringfireball.net/projects/markdown/). Markdown is a lightweight markup language which can be translated to HTML. We use [Jekyll](http://jekyllrb.com/) to generate static HTML files from Markdown.
+
+The files and directories in the website git repository have the following roles:
+
+- All files ending with `.md` are Markdown files. These files are translated into static HTML files.
+- Regular directories (not starting with an underscore (`_`)) contain also `.md` files. The directory structure is reflected in the generated HTML files and the published website.
+- The `_posts` directory contains blog posts. Each blog post is written as one Markdown file. To contribute a post, add a new file there.
+- The `_includes/` directory contains includeable files such as the navigation bar or the footer.
+- The `docs/` directory contains copies of the documentation of Flink for different releases. There is a directory inside `docs/` for each stable release and the latest SNAPSHOT version. The build script is taking care of the maintenance of this directory.
+- The `content/` directory contains the generated HTML files from Jekyll. It is important to place the files in this directory since the Apache Infrastructure to host the Flink website is pulling the HTML content from his directory. (For committers: When pushing changes to the website git, push also the updates in the `content/` directory!)
+
+## Update or extend the documentation
+
+You can update and extend the website by modifying or adding Markdown files or any other resources such as CSS files. To verify your changes start the build script in preview mode.
+
+```
+./build.sh -p
+```
+
+The script compiles the Markdown files into HTML and starts a local webserver. Open your browser at `http://localhost:4000` to view the website including your changes. The served website is automatically re-compiled and updated when you modify and save any file and refresh your browser.
+
+Please feel free to ask any questions you have on the developer mailing list.
+
+## Submit your contribution
+
+The Flink project accepts website contributions through the [GitHub Mirror](https://github.com/apache/flink-web) as [Pull Requests](https://help.github.com/articles/using-pull-requests). Pull requests are a simple way of offering a patch by providing a pointer to a code branch that contains the changes.
+
+To prepare and submit a pull request follow these steps.
+
+1. Commit your changes to your local git repository. **Please Make sure that your commit does not include translated files (any files in the `content/` directory).** Unless your contribution is a major rework of the website, please squash it into a single commit.
+
+2. Push the commit to a dedicated branch of your fork of the Flink repository at Github.
+
+	```
+	git push origin myBranch
+	```
+
+3. Go the website of your repository fork (`https://github.com/<your-user-name>/flink-web`) and use the "Create Pull Request" button to start creating a pull request. Make sure that the base fork is `apache/flink-web asf-site` and the head fork selects the branch with your changes. Give the pull request a meaningful description and submit it.
+
+## Committer section
+
+**This section is only relevant for committers.**
+
+### ASF website git repositories
+{:.no_toc} 
+
+**ASF writable**: https://git-wip-us.apache.org/repos/asf/flink-web.git
+
+**ASF read-only**: git://git.apache.org/repos/asf/flink-web.git
+
+Details on how to set the credentials for the ASF git repository are [linked here](https://git-wip-us.apache.org/).
+
+### Merging a pull request
+{:.no_toc} 
+
+Contributions are expected to be done on the source files only (no modifications on the compiled files in the `content/` directory.). Before pushing a website change, please run the build script
+
+```
+./build.sh
+```
+
+add the changes to the `content/` directory as an additional commit and push the changes to the ASF base repository.
+
+### Updating the documentation directory
+{:.no_toc} 
+
+The build script does also take care of maintaining the `docs/` directory. Set the `-u` flag to update documentation. This includes fetching the Flink git repository and copying different versions of the documentation.


[2/4] flink-web git commit: Build website

Posted by fh...@apache.org.
http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2014/11/18/hadoop-compatibility.html
----------------------------------------------------------------------
diff --git a/content/news/2014/11/18/hadoop-compatibility.html b/content/news/2014/11/18/hadoop-compatibility.html
index ef5eb15..7786593 100644
--- a/content/news/2014/11/18/hadoop-compatibility.html
+++ b/content/news/2014/11/18/hadoop-compatibility.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 
@@ -153,7 +155,7 @@
 <img src="/img/blog/hcompat-logos.png" style="width:30%;margin:15px" />
 </center>
 
-<p>To close this gap, Flink provides a Hadoop Compatibility package to wrap functions implemented against Hadoop’s MapReduce interfaces and embed them in Flink programs. This package was developed as part of a <a href="https://developers.google.com/open-source/soc/">Google Summer of Code</a> 2014 project.</p>
+<p>To close this gap, Flink provides a Hadoop Compatibility package to wrap functions implemented against Hadoop’s MapReduce interfaces and embed them in Flink programs. This package was developed as part of a <a href="https://developers.google.com/open-source/soc/">Google Summer of Code</a> 2014 project. </p>
 
 <p>With the Hadoop Compatibility package, you can reuse all your Hadoop</p>
 
@@ -166,7 +168,7 @@
 
 <p>in Flink programs without changing a line of code. Moreover, Flink also natively supports all Hadoop data types (<code>Writables</code> and <code>WritableComparable</code>).</p>
 
-<p>The following code snippet shows a simple Flink WordCount program that solely uses Hadoop data types, InputFormat, OutputFormat, Mapper, and Reducer functions.</p>
+<p>The following code snippet shows a simple Flink WordCount program that solely uses Hadoop data types, InputFormat, OutputFormat, Mapper, and Reducer functions. </p>
 
 <div class="highlight"><pre><code class="language-java"><span class="c1">// Definition of Hadoop Mapper function</span>
 <span class="kd">public</span> <span class="kd">class</span> <span class="nc">Tokenizer</span> <span class="kd">implements</span> <span class="n">Mapper</span><span class="o">&lt;</span><span class="n">LongWritable</span><span class="o">,</span> <span class="n">Text</span><span class="o">,</span> <span class="n">Text</span><span class="o">,</span> <span class="n">LongWritable</span><span class="o">&gt;</span> <span class="o">{</span> <span class="o">...</span> <span class="o">}</span>

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2015/01/06/december-in-flink.html
----------------------------------------------------------------------
diff --git a/content/news/2015/01/06/december-in-flink.html b/content/news/2015/01/06/december-in-flink.html
index 71663da..0fd101f 100644
--- a/content/news/2015/01/06/december-in-flink.html
+++ b/content/news/2015/01/06/december-in-flink.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2015/01/21/release-0.8.html
----------------------------------------------------------------------
diff --git a/content/news/2015/01/21/release-0.8.html b/content/news/2015/01/21/release-0.8.html
index 65a8e70..933606c 100644
--- a/content/news/2015/01/21/release-0.8.html
+++ b/content/news/2015/01/21/release-0.8.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 
@@ -196,7 +198,7 @@
   <li>Stefan Bunk</li>
   <li>Paris Carbone</li>
   <li>Ufuk Celebi</li>
-  <li>Nils Engelbach</li>
+  <li>Nils Engelbach </li>
   <li>Stephan Ewen</li>
   <li>Gyula Fora</li>
   <li>Gabor Hermann</li>

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2015/02/04/january-in-flink.html
----------------------------------------------------------------------
diff --git a/content/news/2015/02/04/january-in-flink.html b/content/news/2015/02/04/january-in-flink.html
index 8c54920..74f3565 100644
--- a/content/news/2015/02/04/january-in-flink.html
+++ b/content/news/2015/02/04/january-in-flink.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 
@@ -177,7 +179,7 @@
 
 <h3 id="using-off-heap-memoryhttpsgithubcomapacheflinkpull290"><a href="https://github.com/apache/flink/pull/290">Using off-heap memory</a></h3>
 
-<p>This pull request enables Flink to use off-heap memory for its internal memory uses (sort, hash, caching of intermediate data sets).</p>
+<p>This pull request enables Flink to use off-heap memory for its internal memory uses (sort, hash, caching of intermediate data sets). </p>
 
 <h3 id="gelly-flinks-graph-apihttpsgithubcomapacheflinkpull335"><a href="https://github.com/apache/flink/pull/335">Gelly, Flink’s Graph API</a></h3>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2015/02/09/streaming-example.html
----------------------------------------------------------------------
diff --git a/content/news/2015/02/09/streaming-example.html b/content/news/2015/02/09/streaming-example.html
index 70ac3c8..4cf0561 100644
--- a/content/news/2015/02/09/streaming-example.html
+++ b/content/news/2015/02/09/streaming-example.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 
@@ -181,7 +183,7 @@ found <a href="https://github.com/mbalassi/flink/blob/stockprices/flink-staging/
   <li>Read a socket stream of stock prices</li>
   <li>Parse the text in the stream to create a stream of <code>StockPrice</code> objects</li>
   <li>Add four other sources tagged with the stock symbol.</li>
-  <li>Finally, merge the streams to create a unified stream.</li>
+  <li>Finally, merge the streams to create a unified stream. </li>
 </ol>
 
 <p><img alt="Reading from multiple inputs" src="/img/blog/blog_multi_input.png" width="70%" class="img-responsive center-block" /></p>
@@ -653,7 +655,7 @@ number of mentions of a given stock in the Twitter stream. As both of
 these data streams are potentially infinite, we apply the join on a
 30-second window.</p>
 
-<p><img alt="Streaming joins" src="/img/blog/blog_stream_join.png" width="60%" class="img-responsive center-block" /></p>
+<p><img alt="Streaming joins" src="/img/blog/blog_stream_join.png" width="60%" class="img-responsive center-block" /> </p>
 
 <div class="codetabs">
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2015/03/02/february-2015-in-flink.html
----------------------------------------------------------------------
diff --git a/content/news/2015/03/02/february-2015-in-flink.html b/content/news/2015/03/02/february-2015-in-flink.html
index 128dedf..f5305c7 100644
--- a/content/news/2015/03/02/february-2015-in-flink.html
+++ b/content/news/2015/03/02/february-2015-in-flink.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2015/03/13/peeking-into-Apache-Flinks-Engine-Room.html
----------------------------------------------------------------------
diff --git a/content/news/2015/03/13/peeking-into-Apache-Flinks-Engine-Room.html b/content/news/2015/03/13/peeking-into-Apache-Flinks-Engine-Room.html
index 4486bee..3378ca6 100644
--- a/content/news/2015/03/13/peeking-into-Apache-Flinks-Engine-Room.html
+++ b/content/news/2015/03/13/peeking-into-Apache-Flinks-Engine-Room.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 
@@ -152,7 +154,7 @@
 <p>In this blog post, we cut through Apache Flink’s layered architecture and take a look at its internals with a focus on how it handles joins. Specifically, I will</p>
 
 <ul>
-  <li>show how easy it is to join data sets using Flink’s fluent APIs,</li>
+  <li>show how easy it is to join data sets using Flink’s fluent APIs, </li>
   <li>discuss basic distributed join strategies, Flink’s join implementations, and its memory management,</li>
   <li>talk about Flink’s optimizer that automatically chooses join strategies,</li>
   <li>show some performance numbers for joining data sets of different sizes, and finally</li>
@@ -163,7 +165,7 @@
 
 <h3 id="how-do-i-join-with-flink">How do I join with Flink?</h3>
 
-<p>Flink provides fluent APIs in Java and Scala to write data flow programs. Flink’s APIs are centered around parallel data collections which are called data sets. data sets are processed by applying Transformations that compute new data sets. Flink’s transformations include Map and Reduce as known from MapReduce <a href="http://research.google.com/archive/mapreduce.html">[1]</a> but also operators for joining, co-grouping, and iterative processing. The documentation gives an overview of all available transformations <a href="http://ci.apache.org/projects/flink/flink-docs-release-0.8/dataset_transformations.html">[2]</a>.</p>
+<p>Flink provides fluent APIs in Java and Scala to write data flow programs. Flink’s APIs are centered around parallel data collections which are called data sets. data sets are processed by applying Transformations that compute new data sets. Flink’s transformations include Map and Reduce as known from MapReduce <a href="http://research.google.com/archive/mapreduce.html">[1]</a> but also operators for joining, co-grouping, and iterative processing. The documentation gives an overview of all available transformations <a href="http://ci.apache.org/projects/flink/flink-docs-release-0.8/dataset_transformations.html">[2]</a>. </p>
 
 <p>Joining two Scala case class data sets is very easy as the following example shows:</p>
 
@@ -200,7 +202,7 @@
 
 <ol>
   <li>The data of both inputs is distributed across all parallel instances that participate in the join and</li>
-  <li>each parallel instance performs a standard stand-alone join algorithm on its local partition of the overall data.</li>
+  <li>each parallel instance performs a standard stand-alone join algorithm on its local partition of the overall data. </li>
 </ol>
 
 <p>The distribution of data across parallel instances must ensure that each valid join pair can be locally built by exactly one instance. For both steps, there are multiple valid strategies that can be independently picked and which are favorable in different situations. In Flink terminology, the first phase is called Ship Strategy and the second phase Local Strategy. In the following I will describe Flink’s ship and local strategies to join two data sets <em>R</em> and <em>S</em>.</p>
@@ -219,7 +221,7 @@
 <img src="/img/blog/joins-repartition.png" style="width:90%;margin:15px" />
 </center>
 
-<p>The Broadcast-Forward strategy sends one complete data set (R) to each parallel instance that holds a partition of the other data set (S), i.e., each parallel instance receives the full data set R. Data set S remains local and is not shipped at all. The cost of the BF strategy depends on the size of R and the number of parallel instances it is shipped to. The size of S does not matter because S is not moved. The figure below illustrates how both ship strategies work.</p>
+<p>The Broadcast-Forward strategy sends one complete data set (R) to each parallel instance that holds a partition of the other data set (S), i.e., each parallel instance receives the full data set R. Data set S remains local and is not shipped at all. The cost of the BF strategy depends on the size of R and the number of parallel instances it is shipped to. The size of S does not matter because S is not moved. The figure below illustrates how both ship strategies work. </p>
 
 <center>
 <img src="/img/blog/joins-broadcast.png" style="width:90%;margin:15px" />
@@ -228,7 +230,7 @@
 <p>The Repartition-Repartition and Broadcast-Forward ship strategies establish suitable data distributions to execute a distributed join. Depending on the operations that are applied before the join, one or even both inputs of a join are already distributed in a suitable way across parallel instances. In this case, Flink will reuse such distributions and only ship one or no input at all.</p>
 
 <h4 id="flinks-memory-management">Flink’s Memory Management</h4>
-<p>Before delving into the details of Flink’s local join algorithms, I will briefly discuss Flink’s internal memory management. Data processing algorithms such as joining, grouping, and sorting need to hold portions of their input data in memory. While such algorithms perform best if there is enough memory available to hold all data, it is crucial to gracefully handle situations where the data size exceeds memory. Such situations are especially tricky in JVM-based systems such as Flink because the system needs to reliably recognize that it is short on memory. Failure to detect such situations can result in an <code>OutOfMemoryException</code> and kill the JVM.</p>
+<p>Before delving into the details of Flink’s local join algorithms, I will briefly discuss Flink’s internal memory management. Data processing algorithms such as joining, grouping, and sorting need to hold portions of their input data in memory. While such algorithms perform best if there is enough memory available to hold all data, it is crucial to gracefully handle situations where the data size exceeds memory. Such situations are especially tricky in JVM-based systems such as Flink because the system needs to reliably recognize that it is short on memory. Failure to detect such situations can result in an <code>OutOfMemoryException</code> and kill the JVM. </p>
 
 <p>Flink handles this challenge by actively managing its memory. When a worker node (TaskManager) is started, it allocates a fixed portion (70% by default) of the JVM’s heap memory that is available after initialization as 32KB byte arrays. These byte arrays are distributed as working memory to all algorithms that need to hold significant portions of data in memory. The algorithms receive their input data as Java data objects and serialize them into their working memory.</p>
 
@@ -245,7 +247,7 @@
 <p>After the data has been distributed across all parallel join instances using either a Repartition-Repartition or Broadcast-Forward ship strategy, each instance runs a local join algorithm to join the elements of its local partition. Flink’s runtime features two common join strategies to perform these local joins:</p>
 
 <ul>
-  <li>the <em>Sort-Merge-Join</em> strategy (SM) and</li>
+  <li>the <em>Sort-Merge-Join</em> strategy (SM) and </li>
   <li>the <em>Hybrid-Hash-Join</em> strategy (HH).</li>
 </ul>
 
@@ -290,13 +292,13 @@
 <ul>
   <li>1GB     : 1000GB</li>
   <li>10GB    : 1000GB</li>
-  <li>100GB   : 1000GB</li>
+  <li>100GB   : 1000GB </li>
   <li>1000GB  : 1000GB</li>
 </ul>
 
 <p>The Broadcast-Forward strategy is only executed for up to 10GB. Building a hash table from 100GB broadcasted data in 5GB working memory would result in spilling proximately 95GB (build input) + 950GB (probe input) in each parallel thread and require more than 8TB local disk storage on each machine.</p>
 
-<p>As in the single-core benchmark, we run 1:N joins, generate the data on-the-fly, and immediately discard the result after the join. We run the benchmark on 10 n1-highmem-8 Google Compute Engine instances. Each instance is equipped with 8 cores, 52GB RAM, 40GB of which are configured as working memory (5GB per core), and one local SSD for spilling to disk. All benchmarks are performed using the same configuration, i.e., no fine tuning for the respective data sizes is done. The programs are executed with a parallelism of 80.</p>
+<p>As in the single-core benchmark, we run 1:N joins, generate the data on-the-fly, and immediately discard the result after the join. We run the benchmark on 10 n1-highmem-8 Google Compute Engine instances. Each instance is equipped with 8 cores, 52GB RAM, 40GB of which are configured as working memory (5GB per core), and one local SSD for spilling to disk. All benchmarks are performed using the same configuration, i.e., no fine tuning for the respective data sizes is done. The programs are executed with a parallelism of 80. </p>
 
 <center>
 <img src="/img/blog/joins-dist-perf.png" style="width:70%;margin:15px" />
@@ -313,7 +315,7 @@
 <ul>
   <li>Flink’s fluent Scala and Java APIs make joins and other data transformations easy as cake.</li>
   <li>The optimizer does the hard choices for you, but gives you control in case you know better.</li>
-  <li>Flink’s join implementations perform very good in-memory and gracefully degrade when going to disk.</li>
+  <li>Flink’s join implementations perform very good in-memory and gracefully degrade when going to disk. </li>
   <li>Due to Flink’s robust memory management, there is no need for job- or data-specific memory tuning to avoid a nasty <code>OutOfMemoryException</code>. It just runs out-of-the-box.</li>
 </ul>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2015/04/07/march-in-flink.html
----------------------------------------------------------------------
diff --git a/content/news/2015/04/07/march-in-flink.html b/content/news/2015/04/07/march-in-flink.html
index 3a5d4bc..dbb3544 100644
--- a/content/news/2015/04/07/march-in-flink.html
+++ b/content/news/2015/04/07/march-in-flink.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2015/04/13/release-0.9.0-milestone1.html
----------------------------------------------------------------------
diff --git a/content/news/2015/04/13/release-0.9.0-milestone1.html b/content/news/2015/04/13/release-0.9.0-milestone1.html
index c9031ef..56cfd10 100644
--- a/content/news/2015/04/13/release-0.9.0-milestone1.html
+++ b/content/news/2015/04/13/release-0.9.0-milestone1.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2015/05/11/Juggling-with-Bits-and-Bytes.html
----------------------------------------------------------------------
diff --git a/content/news/2015/05/11/Juggling-with-Bits-and-Bytes.html b/content/news/2015/05/11/Juggling-with-Bits-and-Bytes.html
index 1b1abaa..b02e679 100644
--- a/content/news/2015/05/11/Juggling-with-Bits-and-Bytes.html
+++ b/content/news/2015/05/11/Juggling-with-Bits-and-Bytes.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 
@@ -164,7 +166,7 @@ However, this approach has a few notable drawbacks. First of all it is not trivi
 <img src="/img/blog/memory-mgmt.png" style="width:90%;margin:15px" />
 </center>
 
-<p>Flink’s style of active memory management and operating on binary data has several benefits:</p>
+<p>Flink’s style of active memory management and operating on binary data has several benefits: </p>
 
 <ol>
   <li><strong>Memory-safe execution &amp; efficient out-of-core algorithms.</strong> Due to the fixed amount of allocated memory segments, it is trivial to monitor remaining memory resources. In case of memory shortage, processing operators can efficiently write larger batches of memory segments to disk and later them read back. Consequently, <code>OutOfMemoryErrors</code> are effectively prevented.</li>
@@ -173,13 +175,13 @@ However, this approach has a few notable drawbacks. First of all it is not trivi
   <li><strong>Efficient binary operations &amp; cache sensitivity.</strong> Binary data can be efficiently compared and operated on given a suitable binary representation. Furthermore, the binary representations can put related values, as well as hash codes, keys, and pointers, adjacently into memory. This gives data structures with usually more cache efficient access patterns.</li>
 </ol>
 
-<p>These properties of active memory management are very desirable in a data processing systems for large-scale data analytics but have a significant price tag attached. Active memory management and operating on binary data is not trivial to implement, i.e., using <code>java.util.HashMap</code> is much easier than implementing a spillable hash-table backed by byte arrays and a custom serialization stack. Of course Apache Flink is not the only JVM-based data processing system that operates on serialized binary data. Projects such as <a href="http://drill.apache.org/">Apache Drill</a>, <a href="http://ignite.incubator.apache.org/">Apache Ignite (incubating)</a> or <a href="http://projectgeode.org/">Apache Geode (incubating)</a> apply similar techniques and it was recently announced that also <a href="http://spark.apache.org/">Apache Spark</a> will evolve into this direction with <a href="https://databricks.com/blog/2015/04/28/project-tungsten-bringing-spark-closer-to-bare-metal.html">
 Project Tungsten</a>.</p>
+<p>These properties of active memory management are very desirable in a data processing systems for large-scale data analytics but have a significant price tag attached. Active memory management and operating on binary data is not trivial to implement, i.e., using <code>java.util.HashMap</code> is much easier than implementing a spillable hash-table backed by byte arrays and a custom serialization stack. Of course Apache Flink is not the only JVM-based data processing system that operates on serialized binary data. Projects such as <a href="http://drill.apache.org/">Apache Drill</a>, <a href="http://ignite.incubator.apache.org/">Apache Ignite (incubating)</a> or <a href="http://projectgeode.org/">Apache Geode (incubating)</a> apply similar techniques and it was recently announced that also <a href="http://spark.apache.org/">Apache Spark</a> will evolve into this direction with <a href="https://databricks.com/blog/2015/04/28/project-tungsten-bringing-spark-closer-to-bare-metal.html">
 Project Tungsten</a>. </p>
 
 <p>In the following we discuss in detail how Flink allocates memory, de/serializes objects, and operates on binary data. We will also show some performance numbers comparing processing objects on the heap and operating on binary data.</p>
 
 <h2 id="how-does-flink-allocate-memory">How does Flink allocate memory?</h2>
 
-<p>A Flink worker, called TaskManager, is composed of several internal components such as an actor system for coordination with the Flink master, an IOManager that takes care of spilling data to disk and reading it back, and a MemoryManager that coordinates memory usage. In the context of this blog post, the MemoryManager is of most interest.</p>
+<p>A Flink worker, called TaskManager, is composed of several internal components such as an actor system for coordination with the Flink master, an IOManager that takes care of spilling data to disk and reading it back, and a MemoryManager that coordinates memory usage. In the context of this blog post, the MemoryManager is of most interest. </p>
 
 <p>The MemoryManager takes care of allocating, accounting, and distributing MemorySegments to data processing operators such as sort and join operators. A <a href="https://github.com/apache/flink/blob/release-0.9.0-milestone-1/flink-core/src/main/java/org/apache/flink/core/memory/MemorySegment.java">MemorySegment</a> is Flink’s distribution unit of memory and is backed by a regular Java byte array (size is 32 KB by default). A MemorySegment provides very efficient write and read access to its backed byte array using Java’s unsafe methods. You can think of a MemorySegment as a custom-tailored version of Java’s NIO ByteBuffer. In order to operate on multiple MemorySegments like on a larger chunk of consecutive memory, Flink uses logical views that implement Java’s <code>java.io.DataOutput</code> and <code>java.io.DataInput</code> interfaces.</p>
 
@@ -191,7 +193,7 @@ However, this approach has a few notable drawbacks. First of all it is not trivi
 
 <h2 id="how-does-flink-serialize-objects">How does Flink serialize objects?</h2>
 
-<p>The Java ecosystem offers several libraries to convert objects into a binary representation and back. Common alternatives are standard Java serialization, <a href="https://github.com/EsotericSoftware/kryo">Kryo</a>, <a href="http://avro.apache.org/">Apache Avro</a>, <a href="http://thrift.apache.org/">Apache Thrift</a>, or Google’s <a href="https://github.com/google/protobuf">Protobuf</a>. Flink includes its own custom serialization framework in order to control the binary representation of data. This is important because operating on binary data such as comparing or even manipulating binary data requires exact knowledge of the serialization layout. Further, configuring the serialization layout with respect to operations that are performed on binary data can yield a significant performance boost. Flink’s serialization stack also leverages the fact, that the type of the objects which are going through de/serialization are exactly known before a program is executed.</p>
+<p>The Java ecosystem offers several libraries to convert objects into a binary representation and back. Common alternatives are standard Java serialization, <a href="https://github.com/EsotericSoftware/kryo">Kryo</a>, <a href="http://avro.apache.org/">Apache Avro</a>, <a href="http://thrift.apache.org/">Apache Thrift</a>, or Google’s <a href="https://github.com/google/protobuf">Protobuf</a>. Flink includes its own custom serialization framework in order to control the binary representation of data. This is important because operating on binary data such as comparing or even manipulating binary data requires exact knowledge of the serialization layout. Further, configuring the serialization layout with respect to operations that are performed on binary data can yield a significant performance boost. Flink’s serialization stack also leverages the fact, that the type of the objects which are going through de/serialization are exactly known before a program is executed. </p>
 
 <p>Flink programs can process data represented as arbitrary Java or Scala objects. Before a program is optimized, the data types at each processing step of the program’s data flow need to be identified. For Java programs, Flink features a reflection-based type extraction component to analyze the return types of user-defined functions. Scala programs are analyzed with help of the Scala compiler. Flink represents each data type with a <a href="https://github.com/apache/flink/blob/release-0.9.0-milestone-1/flink-core/src/main/java/org/apache/flink/api/common/typeinfo/TypeInformation.java">TypeInformation</a>. Flink has TypeInformations for several kinds of data types, including:</p>
 
@@ -201,11 +203,11 @@ However, this approach has a few notable drawbacks. First of all it is not trivi
   <li>WritableTypeInfo: Any implementation of Hadoop’s Writable interface.</li>
   <li>TupleTypeInfo: Any Flink tuple (Tuple1 to Tuple25). Flink tuples are Java representations for fixed-length tuples with typed fields.</li>
   <li>CaseClassTypeInfo: Any Scala CaseClass (including Scala tuples).</li>
-  <li>PojoTypeInfo: Any POJO (Java or Scala), i.e., an object with all fields either being public or accessible through getters and setter that follow the common naming conventions.</li>
+  <li>PojoTypeInfo: Any POJO (Java or Scala), i.e., an object with all fields either being public or accessible through getters and setter that follow the common naming conventions. </li>
   <li>GenericTypeInfo: Any data type that cannot be identified as another type.</li>
 </ul>
 
-<p>Each TypeInformation provides a serializer for the data type it represents. For example, a BasicTypeInfo returns a serializer that writes the respective primitive type, the serializer of a WritableTypeInfo delegates de/serialization to the write() and readFields() methods of the object implementing Hadoop’s Writable interface, and a GenericTypeInfo returns a serializer that delegates serialization to Kryo. Object serialization to a DataOutput which is backed by Flink MemorySegments goes automatically through Java’s efficient unsafe operations. For data types that can be used as keys, i.e., compared and hashed, the TypeInformation provides TypeComparators. TypeComparators compare and hash objects and can - depending on the concrete data type - also efficiently compare binary representations and extract fixed-length binary key prefixes.</p>
+<p>Each TypeInformation provides a serializer for the data type it represents. For example, a BasicTypeInfo returns a serializer that writes the respective primitive type, the serializer of a WritableTypeInfo delegates de/serialization to the write() and readFields() methods of the object implementing Hadoop’s Writable interface, and a GenericTypeInfo returns a serializer that delegates serialization to Kryo. Object serialization to a DataOutput which is backed by Flink MemorySegments goes automatically through Java’s efficient unsafe operations. For data types that can be used as keys, i.e., compared and hashed, the TypeInformation provides TypeComparators. TypeComparators compare and hash objects and can - depending on the concrete data type - also efficiently compare binary representations and extract fixed-length binary key prefixes. </p>
 
 <p>Tuple, Pojo, and CaseClass types are composite types, i.e., containers for one or more possibly nested data types. As such, their serializers and comparators are also composite and delegate the serialization and comparison of their member data types to the respective serializers and comparators. The following figure illustrates the serialization of a (nested) <code>Tuple3&lt;Integer, Double, Person&gt;</code> object where <code>Person</code> is a POJO and defined as follows:</p>
 
@@ -218,13 +220,13 @@ However, this approach has a few notable drawbacks. First of all it is not trivi
 <img src="/img/blog/data-serialization.png" style="width:80%;margin:15px" />
 </center>
 
-<p>Flink’s type system can be easily extended by providing custom TypeInformations, Serializers, and Comparators to improve the performance of serializing and comparing custom data types.</p>
+<p>Flink’s type system can be easily extended by providing custom TypeInformations, Serializers, and Comparators to improve the performance of serializing and comparing custom data types. </p>
 
 <h2 id="how-does-flink-operate-on-binary-data">How does Flink operate on binary data?</h2>
 
 <p>Similar to many other data processing APIs (including SQL), Flink’s APIs provide transformations to group, sort, and join data sets. These transformations operate on potentially very large data sets. Relational database systems feature very efficient algorithms for these purposes since several decades including external merge-sort, merge-join, and hybrid hash-join. Flink builds on this technology, but generalizes it to handle arbitrary objects using its custom serialization and comparison stack. In the following, we show how Flink operates with binary data by the example of Flink’s in-memory sort algorithm.</p>
 
-<p>Flink assigns a memory budget to its data processing operators. Upon initialization, a sort algorithm requests its memory budget from the MemoryManager and receives a corresponding set of MemorySegments. The set of MemorySegments becomes the memory pool of a so-called sort buffer which collects the data that is be sorted. The following figure illustrates how data objects are serialized into the sort buffer.</p>
+<p>Flink assigns a memory budget to its data processing operators. Upon initialization, a sort algorithm requests its memory budget from the MemoryManager and receives a corresponding set of MemorySegments. The set of MemorySegments becomes the memory pool of a so-called sort buffer which collects the data that is be sorted. The following figure illustrates how data objects are serialized into the sort buffer. </p>
 
 <center>
 <img src="/img/blog/sorting-binary-data-1.png" style="width:90%;margin:15px" />
@@ -237,7 +239,7 @@ The following figure shows how two objects are compared.</p>
 <img src="/img/blog/sorting-binary-data-2.png" style="width:80%;margin:15px" />
 </center>
 
-<p>The sort buffer compares two elements by comparing their binary fix-length sort keys. The comparison is successful if either done on a full key (not a prefix key) or if the binary prefix keys are not equal. If the prefix keys are equal (or the sort key data type does not provide a binary prefix key), the sort buffer follows the pointers to the actual object data, deserializes both objects and compares the objects. Depending on the result of the comparison, the sort algorithm decides whether to swap the compared elements or not. The sort buffer swaps two elements by moving their fix-length keys and pointers. The actual data is not moved. Once the sort algorithm finishes, the pointers in the sort buffer are correctly ordered. The following figure shows how the sorted data is returned from the sort buffer.</p>
+<p>The sort buffer compares two elements by comparing their binary fix-length sort keys. The comparison is successful if either done on a full key (not a prefix key) or if the binary prefix keys are not equal. If the prefix keys are equal (or the sort key data type does not provide a binary prefix key), the sort buffer follows the pointers to the actual object data, deserializes both objects and compares the objects. Depending on the result of the comparison, the sort algorithm decides whether to swap the compared elements or not. The sort buffer swaps two elements by moving their fix-length keys and pointers. The actual data is not moved. Once the sort algorithm finishes, the pointers in the sort buffer are correctly ordered. The following figure shows how the sorted data is returned from the sort buffer. </p>
 
 <center>
 <img src="/img/blog/sorting-binary-data-3.png" style="width:80%;margin:15px" />
@@ -255,7 +257,7 @@ The following figure shows how two objects are compared.</p>
   <li><strong>Kryo-serialized.</strong> The tuple fields are serialized into a sort buffer of 600 MB size using Kryo serialization and sorted without binary sort keys. This means that each pair-wise comparison requires two object to be deserialized.</li>
 </ol>
 
-<p>All sort methods are implemented using a single thread. The reported times are averaged over ten runs. After each run, we call <code>System.gc()</code> to request a garbage collection run which does not go into measured execution time. The following figure shows the time to store the input data in memory, sort it, and read it back as objects.</p>
+<p>All sort methods are implemented using a single thread. The reported times are averaged over ten runs. After each run, we call <code>System.gc()</code> to request a garbage collection run which does not go into measured execution time. The following figure shows the time to store the input data in memory, sort it, and read it back as objects. </p>
 
 <center>
 <img src="/img/blog/sort-benchmark.png" style="width:90%;margin:15px" />
@@ -313,13 +315,13 @@ The following figure shows how two objects are compared.</p>
 
 <p><br /></p>
 
-<p>To summarize, the experiments verify the previously stated benefits of operating on binary data.</p>
+<p>To summarize, the experiments verify the previously stated benefits of operating on binary data. </p>
 
 <h2 id="were-not-done-yet">We’re not done yet!</h2>
 
-<p>Apache Flink features quite a bit of advanced techniques to safely and efficiently process huge amounts of data with limited memory resources. However, there are a few points that could make Flink even more efficient. The Flink community is working on moving the managed memory to off-heap memory. This will allow for smaller JVMs, lower garbage collection overhead, and also easier system configuration. With Flink’s Table API, the semantics of all operations such as aggregations and projections are known (in contrast to black-box user-defined functions). Hence we can generate code for Table API operations that directly operates on binary data. Further improvements include serialization layouts which are tailored towards the operations that are applied on the binary data and code generation for serializers and comparators.</p>
+<p>Apache Flink features quite a bit of advanced techniques to safely and efficiently process huge amounts of data with limited memory resources. However, there are a few points that could make Flink even more efficient. The Flink community is working on moving the managed memory to off-heap memory. This will allow for smaller JVMs, lower garbage collection overhead, and also easier system configuration. With Flink’s Table API, the semantics of all operations such as aggregations and projections are known (in contrast to black-box user-defined functions). Hence we can generate code for Table API operations that directly operates on binary data. Further improvements include serialization layouts which are tailored towards the operations that are applied on the binary data and code generation for serializers and comparators. </p>
 
-<p>The groundwork (and a lot more) for operating on binary data is done but there is still some room for making Flink even better and faster. If you are crazy about performance and like to juggle with lot of bits and bytes, join the Flink community!</p>
+<p>The groundwork (and a lot more) for operating on binary data is done but there is still some room for making Flink even better and faster. If you are crazy about performance and like to juggle with lot of bits and bytes, join the Flink community! </p>
 
 <h2 id="tldr-give-me-three-things-to-remember">TL;DR; Give me three things to remember!</h2>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2015/05/14/Community-update-April.html
----------------------------------------------------------------------
diff --git a/content/news/2015/05/14/Community-update-April.html b/content/news/2015/05/14/Community-update-April.html
index e0edf16..ec9c204 100644
--- a/content/news/2015/05/14/Community-update-April.html
+++ b/content/news/2015/05/14/Community-update-April.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 
@@ -145,7 +147,7 @@
       <article>
         <p>14 May 2015 by Kostas Tzoumas (<a href="https://twitter.com/kostas_tzoumas">@kostas_tzoumas</a>)</p>
 
-<p>April was an packed month for Apache Flink.</p>
+<p>April was an packed month for Apache Flink. </p>
 
 <h2 id="flink-090-milestone1-release">Flink 0.9.0-milestone1 release</h2>
 
@@ -161,7 +163,7 @@
 
 <h2 id="flink-on-the-web">Flink on the web</h2>
 
-<p>Fabian Hueske gave an <a href="http://www.infoq.com/news/2015/04/hueske-apache-flink?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global">interview at InfoQ</a> on Apache Flink.</p>
+<p>Fabian Hueske gave an <a href="http://www.infoq.com/news/2015/04/hueske-apache-flink?utm_campaign=infoq_content&amp;utm_source=infoq&amp;utm_medium=feed&amp;utm_term=global">interview at InfoQ</a> on Apache Flink. </p>
 
 <h2 id="upcoming-events">Upcoming events</h2>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2015/06/24/announcing-apache-flink-0.9.0-release.html
----------------------------------------------------------------------
diff --git a/content/news/2015/06/24/announcing-apache-flink-0.9.0-release.html b/content/news/2015/06/24/announcing-apache-flink-0.9.0-release.html
index 3a97291..6cc3e35 100644
--- a/content/news/2015/06/24/announcing-apache-flink-0.9.0-release.html
+++ b/content/news/2015/06/24/announcing-apache-flink-0.9.0-release.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2015/08/24/introducing-flink-gelly.html
----------------------------------------------------------------------
diff --git a/content/news/2015/08/24/introducing-flink-gelly.html b/content/news/2015/08/24/introducing-flink-gelly.html
index afc61ec..41a5f35 100644
--- a/content/news/2015/08/24/introducing-flink-gelly.html
+++ b/content/news/2015/08/24/introducing-flink-gelly.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 
@@ -211,21 +213,21 @@ and mutations as well as neighborhood aggregations.</p>
 
 <h4 id="common-graph-metrics">Common Graph Metrics</h4>
 <p>These methods can be used to retrieve several graph metrics and properties, such as the number
-of vertices, edges and the node degrees.</p>
+of vertices, edges and the node degrees. </p>
 
 <h4 id="transformations">Transformations</h4>
 <p>The transformation methods enable several Graph operations, using high-level functions similar to
 the ones provided by the batch processing API. These transformations can be applied one after the
-other, yielding a new Graph after each step, in a fashion similar to operators on DataSets:</p>
+other, yielding a new Graph after each step, in a fashion similar to operators on DataSets: </p>
 
 <div class="highlight"><pre><code class="language-java"><span class="n">inputGraph</span><span class="o">.</span><span class="na">getUndirected</span><span class="o">().</span><span class="na">mapEdges</span><span class="o">(</span><span class="k">new</span> <span class="nf">CustomEdgeMapper</span><span class="o">());</span></code></pre></div>
 
 <p>Transformations can be applied on:</p>
 
 <ol>
-  <li><strong>Vertices</strong>: <code>mapVertices</code>, <code>joinWithVertices</code>, <code>filterOnVertices</code>, <code>addVertex</code>, …</li>
-  <li><strong>Edges</strong>: <code>mapEdges</code>, <code>filterOnEdges</code>, <code>removeEdge</code>, …</li>
-  <li><strong>Triplets</strong> (source vertex, target vertex, edge): <code>getTriplets</code></li>
+  <li><strong>Vertices</strong>: <code>mapVertices</code>, <code>joinWithVertices</code>, <code>filterOnVertices</code>, <code>addVertex</code>, …  </li>
+  <li><strong>Edges</strong>: <code>mapEdges</code>, <code>filterOnEdges</code>, <code>removeEdge</code>, …   </li>
+  <li><strong>Triplets</strong> (source vertex, target vertex, edge): <code>getTriplets</code>  </li>
 </ol>
 
 <h4 id="neighborhood-aggregations">Neighborhood Aggregations</h4>
@@ -359,7 +361,7 @@ vertex values do not need to be recomputed during an iteration.</p>
 <p>Let us reconsider the Single Source Shortest Paths algorithm. In each iteration, a vertex:</p>
 
 <ol>
-  <li><strong>Gather</strong> retrieves distances from its neighbors summed up with the corresponding edge values;</li>
+  <li><strong>Gather</strong> retrieves distances from its neighbors summed up with the corresponding edge values; </li>
   <li><strong>Sum</strong> compares the newly obtained distances in order to extract the minimum;</li>
   <li><strong>Apply</strong> and finally adopts the minimum distance computed in the sum step,
 provided that it is lower than its current value. If a vertex’s value does not change during
@@ -418,7 +420,7 @@ plays that each song has. We then filter out the list of songs the users do not
 playlist. Then we compute the top songs per user (i.e. the songs a user listened to the most).
 Finally, as a separate use-case on the same data set, we create a user-user similarity graph based
 on the common songs and use this resulting graph to detect communities by calling Gelly’s Label Propagation
-library method.</p>
+library method. </p>
 
 <p>For running the example implementation, please use the 0.10-SNAPSHOT version of Flink as a
 dependency. The full example code base can be found <a href="https://github.com/apache/flink/blob/master/flink-staging/flink-gelly/src/main/java/org/apache/flink/graph/example/MusicProfiles.java">here</a>. The public data set used for testing
@@ -508,10 +510,10 @@ in the figure below.</p>
 
 <p>To form the user-user graph in Flink, we will simply take the edges from the user-song graph
 (left-hand side of the image), group them by song-id, and then add all the users (source vertex ids)
-to an ArrayList.</p>
+to an ArrayList. </p>
 
 <p>We then match users who listened to the same song two by two, creating a new edge to mark their
-common interest (right-hand side of the image).</p>
+common interest (right-hand side of the image). </p>
 
 <p>Afterwards, we perform a <code>distinct()</code> operation to avoid creation of duplicate data.
 Considering that we now have the DataSet of edges which present interest, creating a graph is as
@@ -550,7 +552,7 @@ formed. To do so, we first initialize each vertex with a numeric label using the
 the id of a vertex with the first element of the tuple, afterwards applying a map function.
 Finally, we call the <code>run()</code> method with the LabelPropagation library method passed
 as a parameter. In the end, the vertices will be updated to contain the most frequent label
-among their neighbors.</p>
+among their neighbors. </p>
 
 <div class="highlight"><pre><code class="language-java"><span class="c1">// detect user communities using label propagation</span>
 <span class="c1">// initialize each vertex with a unique numeric label</span>
@@ -580,10 +582,10 @@ among their neighbors.</p>
 <p>Currently, Gelly matches the basic functionalities provided by most state-of-the-art graph
 processing systems. Our vision is to turn Gelly into more than “yet another library for running
 PageRank-like algorithms” by supporting generic iterations, implementing graph partitioning,
-providing bipartite graph support and by offering numerous other features.</p>
+providing bipartite graph support and by offering numerous other features. </p>
 
 <p>We are also enriching Flink Gelly with a set of operators suitable for highly skewed graphs
-as well as a Graph API built on Flink Streaming.</p>
+as well as a Graph API built on Flink Streaming. </p>
 
 <p>In the near future, we would like to see how Gelly can be integrated with graph visualization
 tools, graph database systems and sampling techniques.</p>

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2015/09/01/release-0.9.1.html
----------------------------------------------------------------------
diff --git a/content/news/2015/09/01/release-0.9.1.html b/content/news/2015/09/01/release-0.9.1.html
index 989615c..f8246b9 100644
--- a/content/news/2015/09/01/release-0.9.1.html
+++ b/content/news/2015/09/01/release-0.9.1.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2015/09/03/flink-forward.html
----------------------------------------------------------------------
diff --git a/content/news/2015/09/03/flink-forward.html b/content/news/2015/09/03/flink-forward.html
index 9fdd3df..c4424c3 100644
--- a/content/news/2015/09/03/flink-forward.html
+++ b/content/news/2015/09/03/flink-forward.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2015/09/16/off-heap-memory.html
----------------------------------------------------------------------
diff --git a/content/news/2015/09/16/off-heap-memory.html b/content/news/2015/09/16/off-heap-memory.html
index 5f15468..557f9ef 100644
--- a/content/news/2015/09/16/off-heap-memory.html
+++ b/content/news/2015/09/16/off-heap-memory.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/privacy-policy.html
----------------------------------------------------------------------
diff --git a/content/privacy-policy.html b/content/privacy-policy.html
index 26e018a..752de53 100644
--- a/content/privacy-policy.html
+++ b/content/privacy-policy.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/project.html
----------------------------------------------------------------------
diff --git a/content/project.html b/content/project.html
index c85264d..c22c6ed 100644
--- a/content/project.html
+++ b/content/project.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 


[3/4] flink-web git commit: Build website

Posted by fh...@apache.org.
http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/faq.html
----------------------------------------------------------------------
diff --git a/content/faq.html b/content/faq.html
index 7456bcb..294e6f7 100644
--- a/content/faq.html
+++ b/content/faq.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 
@@ -166,41 +168,41 @@ under the License.
 
 <div class="page-toc">
 <ul id="markdown-toc">
-  <li><a href="#general" id="markdown-toc-general">General</a>    <ul>
-      <li><a href="#is-flink-a-hadoop-project" id="markdown-toc-is-flink-a-hadoop-project">Is Flink a Hadoop Project?</a></li>
-      <li><a href="#do-i-have-to-install-apache-hadoop-to-use-flink" id="markdown-toc-do-i-have-to-install-apache-hadoop-to-use-flink">Do I have to install Apache Hadoop to use Flink?</a></li>
+  <li><a href="#general">General</a>    <ul>
+      <li><a href="#is-flink-a-hadoop-project">Is Flink a Hadoop Project?</a></li>
+      <li><a href="#do-i-have-to-install-apache-hadoop-to-use-flink">Do I have to install Apache Hadoop to use Flink?</a></li>
     </ul>
   </li>
-  <li><a href="#usage" id="markdown-toc-usage">Usage</a>    <ul>
-      <li><a href="#how-do-i-assess-the-progress-of-a-flink-program" id="markdown-toc-how-do-i-assess-the-progress-of-a-flink-program">How do I assess the progress of a Flink program?</a></li>
-      <li><a href="#how-can-i-figure-out-why-a-program-failed" id="markdown-toc-how-can-i-figure-out-why-a-program-failed">How can I figure out why a program failed?</a></li>
-      <li><a href="#how-do-i-debug-flink-programs" id="markdown-toc-how-do-i-debug-flink-programs">How do I debug Flink programs?</a></li>
-      <li><a href="#what-is-the-parallelism-how-do-i-set-it" id="markdown-toc-what-is-the-parallelism-how-do-i-set-it">What is the parallelism? How do I set it?</a></li>
+  <li><a href="#usage">Usage</a>    <ul>
+      <li><a href="#how-do-i-assess-the-progress-of-a-flink-program">How do I assess the progress of a Flink program?</a></li>
+      <li><a href="#how-can-i-figure-out-why-a-program-failed">How can I figure out why a program failed?</a></li>
+      <li><a href="#how-do-i-debug-flink-programs">How do I debug Flink programs?</a></li>
+      <li><a href="#what-is-the-parallelism-how-do-i-set-it">What is the parallelism? How do I set it?</a></li>
     </ul>
   </li>
-  <li><a href="#errors" id="markdown-toc-errors">Errors</a>    <ul>
-      <li><a href="#why-am-i-getting-a-nonserializableexception-" id="markdown-toc-why-am-i-getting-a-nonserializableexception-">Why am I getting a “NonSerializableException” ?</a></li>
-      <li><a href="#in-scala-api-i-get-an-error-about-implicit-values-and-evidence-parameters" id="markdown-toc-in-scala-api-i-get-an-error-about-implicit-values-and-evidence-parameters">In Scala API, I get an error about implicit values and evidence parameters</a></li>
-      <li><a href="#i-get-an-error-message-saying-that-not-enough-buffers-are-available-how-do-i-fix-this" id="markdown-toc-i-get-an-error-message-saying-that-not-enough-buffers-are-available-how-do-i-fix-this">I get an error message saying that not enough buffers are available. How do I fix this?</a></li>
-      <li><a href="#my-job-fails-early-with-a-javaioeofexception-what-could-be-the-cause" id="markdown-toc-my-job-fails-early-with-a-javaioeofexception-what-could-be-the-cause">My job fails early with a java.io.EOFException. What could be the cause?</a></li>
-      <li><a href="#my-job-fails-with-various-exceptions-from-the-hdfshadoop-code-what-can-i-do" id="markdown-toc-my-job-fails-with-various-exceptions-from-the-hdfshadoop-code-what-can-i-do">My job fails with various exceptions from the HDFS/Hadoop code. What can I do?</a></li>
-      <li><a href="#in-eclipse-i-get-compilation-errors-in-the-scala-projects" id="markdown-toc-in-eclipse-i-get-compilation-errors-in-the-scala-projects">In Eclipse, I get compilation errors in the Scala projects</a></li>
-      <li><a href="#my-program-does-not-compute-the-correct-result-why-are-my-custom-key-types" id="markdown-toc-my-program-does-not-compute-the-correct-result-why-are-my-custom-key-types">My program does not compute the correct result. Why are my custom key types</a></li>
-      <li><a href="#i-get-a-javalanginstantiationexception-for-my-data-type-what-is-wrong" id="markdown-toc-i-get-a-javalanginstantiationexception-for-my-data-type-what-is-wrong">I get a java.lang.InstantiationException for my data type, what is wrong?</a></li>
-      <li><a href="#i-cant-stop-flink-with-the-provided-stop-scripts-what-can-i-do" id="markdown-toc-i-cant-stop-flink-with-the-provided-stop-scripts-what-can-i-do">I can’t stop Flink with the provided stop-scripts. What can I do?</a></li>
-      <li><a href="#i-got-an-outofmemoryexception-what-can-i-do" id="markdown-toc-i-got-an-outofmemoryexception-what-can-i-do">I got an OutOfMemoryException. What can I do?</a></li>
-      <li><a href="#why-do-the-taskmanager-log-files-become-so-huge" id="markdown-toc-why-do-the-taskmanager-log-files-become-so-huge">Why do the TaskManager log files become so huge?</a></li>
-      <li><a href="#the-slot-allocated-for-my-task-manager-has-been-released-what-should-i-do" id="markdown-toc-the-slot-allocated-for-my-task-manager-has-been-released-what-should-i-do">The slot allocated for my task manager has been released. What should I do?</a></li>
+  <li><a href="#errors">Errors</a>    <ul>
+      <li><a href="#why-am-i-getting-a-nonserializableexception-">Why am I getting a “NonSerializableException” ?</a></li>
+      <li><a href="#in-scala-api-i-get-an-error-about-implicit-values-and-evidence-parameters">In Scala API, I get an error about implicit values and evidence parameters</a></li>
+      <li><a href="#i-get-an-error-message-saying-that-not-enough-buffers-are-available-how-do-i-fix-this">I get an error message saying that not enough buffers are available. How do I fix this?</a></li>
+      <li><a href="#my-job-fails-early-with-a-javaioeofexception-what-could-be-the-cause">My job fails early with a java.io.EOFException. What could be the cause?</a></li>
+      <li><a href="#my-job-fails-with-various-exceptions-from-the-hdfshadoop-code-what-can-i-do">My job fails with various exceptions from the HDFS/Hadoop code. What can I do?</a></li>
+      <li><a href="#in-eclipse-i-get-compilation-errors-in-the-scala-projects">In Eclipse, I get compilation errors in the Scala projects</a></li>
+      <li><a href="#my-program-does-not-compute-the-correct-result-why-are-my-custom-key-types">My program does not compute the correct result. Why are my custom key types</a></li>
+      <li><a href="#i-get-a-javalanginstantiationexception-for-my-data-type-what-is-wrong">I get a java.lang.InstantiationException for my data type, what is wrong?</a></li>
+      <li><a href="#i-cant-stop-flink-with-the-provided-stop-scripts-what-can-i-do">I can’t stop Flink with the provided stop-scripts. What can I do?</a></li>
+      <li><a href="#i-got-an-outofmemoryexception-what-can-i-do">I got an OutOfMemoryException. What can I do?</a></li>
+      <li><a href="#why-do-the-taskmanager-log-files-become-so-huge">Why do the TaskManager log files become so huge?</a></li>
+      <li><a href="#the-slot-allocated-for-my-task-manager-has-been-released-what-should-i-do">The slot allocated for my task manager has been released. What should I do?</a></li>
     </ul>
   </li>
-  <li><a href="#yarn-deployment" id="markdown-toc-yarn-deployment">YARN Deployment</a>    <ul>
-      <li><a href="#the-yarn-session-runs-only-for-a-few-seconds" id="markdown-toc-the-yarn-session-runs-only-for-a-few-seconds">The YARN session runs only for a few seconds</a></li>
-      <li><a href="#the-yarn-session-crashes-with-a-hdfs-permission-exception-during-startup" id="markdown-toc-the-yarn-session-crashes-with-a-hdfs-permission-exception-during-startup">The YARN session crashes with a HDFS permission exception during startup</a></li>
+  <li><a href="#yarn-deployment">YARN Deployment</a>    <ul>
+      <li><a href="#the-yarn-session-runs-only-for-a-few-seconds">The YARN session runs only for a few seconds</a></li>
+      <li><a href="#the-yarn-session-crashes-with-a-hdfs-permission-exception-during-startup">The YARN session crashes with a HDFS permission exception during startup</a></li>
     </ul>
   </li>
-  <li><a href="#features" id="markdown-toc-features">Features</a>    <ul>
-      <li><a href="#what-kind-of-fault-tolerance-does-flink-provide" id="markdown-toc-what-kind-of-fault-tolerance-does-flink-provide">What kind of fault-tolerance does Flink provide?</a></li>
-      <li><a href="#are-hadoop-like-utilities-such-as-counters-and-the-distributedcache-supported" id="markdown-toc-are-hadoop-like-utilities-such-as-counters-and-the-distributedcache-supported">Are Hadoop-like utilities, such as Counters and the DistributedCache supported?</a></li>
+  <li><a href="#features">Features</a>    <ul>
+      <li><a href="#what-kind-of-fault-tolerance-does-flink-provide">What kind of fault-tolerance does Flink provide?</a></li>
+      <li><a href="#are-hadoop-like-utilities-such-as-counters-and-the-distributedcache-supported">Are Hadoop-like utilities, such as Counters and the DistributedCache supported?</a></li>
     </ul>
   </li>
 </ul>
@@ -430,7 +432,7 @@ cluster.sh</code>). You can kill their processes on Linux/Mac as follows:</p>
 <ul>
   <li>Determine the process id (pid) of the JobManager / TaskManager process. You
 can use the <code>jps</code> command on Linux(if you have OpenJDK installed) or command
-<code>ps -ef | grep java</code> to find all Java processes.</li>
+<code>ps -ef | grep java</code> to find all Java processes. </li>
   <li>Kill the process with <code>kill -9 &lt;pid&gt;</code>, where <code>pid</code> is the process id of the
 affected JobManager or TaskManager process.</li>
 </ul>

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/features.html
----------------------------------------------------------------------
diff --git a/content/features.html b/content/features.html
index 0ac66ef..237055b 100644
--- a/content/features.html
+++ b/content/features.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/how-to-contribute.html
----------------------------------------------------------------------
diff --git a/content/how-to-contribute.html b/content/how-to-contribute.html
index a29e46b..724221e 100644
--- a/content/how-to-contribute.html
+++ b/content/how-to-contribute.html
@@ -5,7 +5,7 @@
     <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: How To Contribute</title>
+    <title>Apache Flink: Contributions Welcome!</title>
     <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
     <link rel="icon" href="/favicon.ico" type="image/x-icon">
 
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 
@@ -140,228 +142,168 @@
 <div class="row">
   <div class="col-sm-8 col-sm-offset-2">
     <div class="row">
-      <div class="col-sm-12"><h1>How To Contribute</h1></div>
+      <div class="col-sm-12"><h1>Contributions Welcome!</h1></div>
     </div>
 
-<p>The Flink project welcomes all sort of contributions in the form of code (improvements, features, bugfixes), tests, documentation, and community participation (discussions &amp; questions).</p>
+<p>Apache Flink is developed by an open and friendly community. Everybody is cordially welcome to join the community and contribute to Apache Flink. There are several ways to interact with the community and to contribute to Flink including asking questions, filing bug reports, proposing new features, joining discussions on the mailing lists, contributing code or documentation, improving the website, or testing release candidates.</p>
 
 <div class="page-toc">
 <ul id="markdown-toc">
-  <li><a href="#easy-issues-for-starters" id="markdown-toc-easy-issues-for-starters">Easy Issues for Starters</a></li>
-  <li><a href="#contributing-code--documentation" id="markdown-toc-contributing-code--documentation">Contributing Code &amp; Documentation</a>    <ul>
-      <li><a href="#setting-up-the-infrastructure-and-creating-a-pull-request" id="markdown-toc-setting-up-the-infrastructure-and-creating-a-pull-request">Setting up the Infrastructure and Creating a Pull Request</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>
-    </ul>
-  </li>
-  <li><a href="#contribute-changes-to-the-website" id="markdown-toc-contribute-changes-to-the-website">Contribute changes to the Website</a>    <ul>
-      <li><a href="#files-and-directories-in-the-website-git-repository" id="markdown-toc-files-and-directories-in-the-website-git-repository">Files and Directories in the website git repository</a></li>
-      <li><a href="#the-buildsh-script" id="markdown-toc-the-buildsh-script">The <code>build.sh</code> script</a></li>
-    </ul>
-  </li>
-  <li><a href="#how-to-become-a-committer" id="markdown-toc-how-to-become-a-committer">How to become a committer</a>    <ul>
-      <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>
-    </ul>
-  </li>
-  <li><a href="#snapshots-nightly-builds" id="markdown-toc-snapshots-nightly-builds">Snapshots (Nightly Builds)</a></li>
+  <li><a href="#ask-questions">Ask questions!</a></li>
+  <li><a href="#file-a-bug-report">File a bug report</a></li>
+  <li><a href="#propose-an-improvement-or-a-new-feature">Propose an improvement or a new feature</a></li>
+  <li><a href="#help-others-and-join-the-discussions">Help others and join the discussions</a></li>
+  <li><a href="#test-a-release-candidate">Test a release candidate</a></li>
+  <li><a href="#contribute-code">Contribute code</a></li>
+  <li><a href="#contribute-documentation">Contribute documentation</a></li>
+  <li><a href="#improve-the-website">Improve the website</a></li>
+  <li><a href="#more-ways-to-contribute">More ways to contribute…</a></li>
+  <li><a href="#submit-a-contributor-license-agreement">Submit a Contributor License Agreement</a></li>
+  <li><a href="#how-to-become-a-committer">How to become a committer</a></li>
 </ul>
 
 </div>
 
-<h2 id="easy-issues-for-starters">Easy Issues for Starters</h2>
+<h2 id="ask-questions">Ask questions!</h2>
 
-<p>We maintain all known issues and feature drafts in the <a href="https://issues.apache.org/jira/issues/?jql=project+%3D+FLINK">Flink JIRA project</a>.</p>
+<p>The Apache Flink community is eager to help and to answer your questions. We have a <a href="/community.html#mailing-lists">user mailing list</a>, hang out in an <a href="/community.html#irc">IRC channel</a>, and watch Stack Overflow on the <a href="http://stackoverflow.com/questions/tagged/apache-flink">[apache-flink]</a> tag.</p>
 
-<p>We also try to maintain a <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20FLINK%20AND%20resolution%20%3D%20Unresolved%20AND%20labels%20%3D%20starter%20ORDER%20BY%20priority%20DESC">list of simple “starter issues”</a> that we believe are good tasks for new contributors. Those tasks are meant to allow people to get into the project and become familiar with the process of contributing. Feel free to ask questions about issues that you would be interested in working on.</p>
+<hr />
 
-<p>In addition, you can find a list of ideas for projects and improvements in the <a href="https://cwiki.apache.org/confluence/display/FLINK/Project+Ideas">projects Wiki page</a>.</p>
+<h2 id="file-a-bug-report">File a bug report</h2>
 
-<h2 id="contributing-code--documentation">Contributing Code &amp; Documentation</h2>
+<p>Please let us know if you experienced a problem with Flink and file a bug report. Open <a href="http://issues.apache.org/jira/browse/FLINK">Flink’s JIRA</a> and click on the blue <strong>Create</strong> button at the top. Please give detailed information about the problem you encountered and, if possible, add a description that helps to reproduce the problem. Thank you very much.</p>
 
-<p>This section gives you a brief introduction in how to contribute code and documentation to Flink. We maintain both the code and the documentation in the same repository, so the process is essentially the same for both. We use <a href="http://git-scm.com/">git</a> for the code and documentation version control. The documentation is located in the <code>docs/</code> subdirectory of the git repository.</p>
+<hr />
 
-<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 basically a simpler way of offering a patch, by providing a pointer to a code branch that contains the change.</p>
+<h2 id="propose-an-improvement-or-a-new-feature">Propose an improvement or a new feature</h2>
 
-<p>It is also possible to attach a patch to a <a href="https://issues.apache.org/jira/browse/FLINK">JIRA</a> issue.</p>
+<p>Our community is constantly looking for feedback to improve Apache Flink. If you have an idea how to improve Flink or have a new feature in mind that would be beneficial for Flink users, please open an issue in <a href="http://issues.apache.org/jira/browse/FLINK">Flink’s JIRA</a>. The improvement or new feature should be described in appropriate detail and include the scope and its requirements if possible. Detailed information is important for a few reasons:</p>
 
-<h3 id="setting-up-the-infrastructure-and-creating-a-pull-request">Setting up the Infrastructure and Creating a Pull Request</h3>
+<ul>
+  <li>It ensures your requirements are met when the improvement or feature is implemented.</li>
+  <li>It helps to estimate the effort and to design a solution that addresses your needs.</li>
+  <li>It allow for constructive discussions that might arise around this issue.</li>
+</ul>
 
-<ol>
-  <li>
-    <p>The first step is to create yourself a copy of the Flink code base. We suggest to fork the <a href="https://github.com/apache/flink">Flink GitHub Mirror Repository</a> into your own <a href="https://github.com">GitHub</a> account. You need to register on GitHub for that, if you have no account so far.</p>
-  </li>
-  <li>
-    <p>Next, clone your repository fork 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>
-  </li>
-  <li>
-    <p>It is typically helpful to switch to a <em>topic branch</em> for the changes. To create a dedicated branch based on the current master, use the following command:</p>
-
-    <div class="highlight"><pre><code>git checkout -b myBranch master
-</code></pre></div>
-  </li>
-  <li>
-    <p>Now you can create your changes, compile the code, and validate the changes. Here are some pointers on how to <a href="https://github.com/apache/flink/#building-apache-flink-from-source">build the code</a>.
-In addition to that, we recommend setting up Eclipse (or IntelliJ) using the “Import Maven Project” feature:</p>
-
-    <ul>
-      <li>Select “Import” from the “File” menu.</li>
-      <li>Expand the “Maven” node, select “Existing Maven Projects”, and click the “Next” button.</li>
-      <li>Select the root directory by clicking on the “Browse” button and navigate to the top folder of the cloned Flink git repository.</li>
-      <li>Ensure that all projects are selected and click the “Finish” button.<br /><br /><!-- newline hack --></li>
-    </ul>
-
-    <p>If you want to work on the Scala code you will need the following plugins:</p>
-
-    <p><strong>Eclipse 4.x</strong>:</p>
-
-    <ul>
-      <li>scala-ide: <code>http://download.scala-ide.org/sdk/e38/scala210/stable/site</code></li>
-      <li>m2eclipse-scala: <code>http://alchim31.free.fr/m2e-scala/update-site</code></li>
-      <li>build-helper-maven-plugin: <code>https://repository.sonatype.org/content/repositories/forge-sites/m2e-extras/0.15.0/N/0.15.0.201206251206/</code><br /><br /><!-- newline hack --></li>
-    </ul>
-
-    <p><strong>Eclipse 3.7</strong>:</p>
-
-    <ul>
-      <li>scala-ide: <code>http://download.scala-ide.org/sdk/e37/scala210/stable/site</code></li>
-      <li>m2eclipse-scala: <code>http://alchim31.free.fr/m2e-scala/update-site</code></li>
-      <li>build-helper-maven-plugin: <code>https://repository.sonatype.org/content/repositories/forge-sites/m2e-extras/0.14.0/N/0.14.0.201109282148/</code><br /><br /><!-- newline hack --></li>
-    </ul>
-
-    <p>If you don’t have the plugins your project will have build errors, but you can just close the Scala projects and ignore them.</p>
-  </li>
-  <li>
-    <p>After you have finalized your contribution, verify the compliance with the contribution guidelines (see below), and make the commit. To make the changes easily mergeable, please rebase them to the latest version of the main repository’s master branch. Assuming you created a topic branch (step 3), you can follow this sequence of commands to do that:
-switch to the master branch, update it to the latest revision, switch back to your topic branch, and rebase it on top of the master branch.</p>
-
-    <div class="highlight"><pre><code>git checkout master
-git pull https://github.com/apache/flink.git master
-git checkout myBranch
-git rebase master
-</code></pre></div>
-    <p>Have a look <a href="https://help.github.com/articles/using-git-rebase">here</a> for more information about rebasing commits.</p>
-  </li>
-  <li>
-    <p>Push the 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 “Create Pull Request” 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>
-  </li>
-</ol>
+<p>Detailed information is also required, if you plan to contribute the improvement or feature you proposed yourself. Please read the <a href="/contribute-code.html">Contribute code</a> guide in this case as well. </p>
 
-<h3 id="verifying-the-compliance-of-your-code">Verifying the Compliance of your Code</h3>
+<hr />
 
-<p>Before sending a patch or pull request, please verify that it complies with the guidelines of the project. While we try to keep the set of guidelines small and easy, it is important to follow those rules in order to guarantee good code quality, to allow efficient reviews, and to allow committers to easily merge your changes.</p>
+<h2 id="help-others-and-join-the-discussions">Help others and join the discussions</h2>
 
-<p>Please have a look at the <a href="/coding-guidelines.html">coding guidelines</a> for a guide to the format of code and pull requests.</p>
+<p>Most communication in the Apache Flink community happens on two mailing lists:</p>
 
-<p>Most important of all, verify that your changes are correct and do not break existing functionality. Run the existing tests by calling <code>mvn verify</code> in the root directory of the repository, and make sure that the tests succeed. 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. 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 don’t 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 “flink” repository on <a href="https://travis-ci.org/profile">Travis</a>.</p>
+<ul>
+  <li>The user mailing lists <code>user@flink.apache.org</code> is the place where users of Apache Flink ask questions and seek for help or advice. Joining the user list and helping other users is a very good way to contribute to Flink’s community. Furthermore, there is the <a href="http://stackoverflow.com/questions/tagged/apache-flink">[apache-flink]</a> tag on Stack Overflow if you’d like to help Flink users (and harvest some points) there.</li>
+  <li>The development mailing list <code>dev@flink.apache.org</code> is the place where Flink developers exchange ideas and discuss new features, upcoming releases, and the development process in general. If you are interested in contributing code to Flink, you should join this mailing list.</li>
+</ul>
 
-<p>When contributing documentation, please review the rendered HTML versions of the documents you changed. You can look at the HTML pages by using the rendering script in preview mode.</p>
+<p>You are very welcome to <a href="/community.html#mailing-lists">subscribe to both mailing lists</a>. In addition to the user list, there is also a <a href="/community.html#irc">Flink IRC</a> channel that you can join to talk to other users and contributors.</p>
 
-<div class="highlight"><pre><code>cd docs
-./build_docs.sh -p
-</code></pre></div>
-<p>Now, open your browser at <code>http://localhost:4000</code> and check out the pages you changed.</p>
+<hr />
 
-<h2 id="contribute-changes-to-the-website">Contribute changes to the Website</h2>
+<h2 id="test-a-release-candidate">Test a release candidate</h2>
 
-<p>The website of Apache Flink is hosted in a separate Git repository. We suggest making a fork of the <a href="https://github.com/apache/flink-web">flink-web GitHub mirror repository</a>.</p>
+<p>Apache Flink is continuously improved by its active community. Every few weeks, we release a new version of Apache Flink with bug fixes, improvements, and new features. The process of releasing a new version consists of the following steps:</p>
 
-<p>To make changes to the website, you have to checkout its source code first. The website resides in the <code>asf-site</code> branch of the repository:</p>
+<ol>
+  <li>Building a new release candidate and starting a vote (usually for 72 hours).</li>
+  <li>Testing the release candidate and voting (<code>+1</code> if no issues were found, <code>-1</code> if the release candidate has issues).</li>
+  <li>Going back to step 1 if the release candidate had issues otherwise we publish the release.</li>
+</ol>
 
-<div class="highlight"><pre><code>git clone -b asf-site https://github.com/&lt;your-user-name&gt;/flink-web.git
-cd flink-web
-</code></pre></div>
+<p>Our wiki contains a page that summarizes the <a href="https://cwiki.apache.org/confluence/display/FLINK/Releasing">test procedure for a release</a>. Release testing is a big effort if done by a small group of people but can be easily scaled out to more people. The Flink community encourages everybody to participate in the testing of a release candidate. By testing a release candidate, you can ensure that the next Flink release is working properly for your setup and help to improve the quality of releases. </p>
 
-<p>The <code>flink-web</code> directory contains the files that we use to build the website. We use <a href="http://jekyllrb.com/">Jekyll</a> to generate static HTML files for the website.</p>
+<hr />
 
-<h3 id="files-and-directories-in-the-website-git-repository">Files and Directories in the website git repository</h3>
+<h2 id="contribute-code">Contribute code</h2>
 
-<p>The files and directories in the website git repository have the following roles:</p>
+<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 our <a href="/contribute-code.html">Contribute code</a> guide. The guide does also include instructions to setup a development environment, our coding guidelines and code style, and explains how to submit a code contribution.</p>
 
-<ul>
-  <li>all files ending with <code>.md</code> are <a href="http://daringfireball.net/projects/markdown/">Markdown</a> files. Those are the input for the HTML files.</li>
-  <li>regular directories (not starting with an underscore (<code>_</code>)) contain also <code>.md</code> files. The directory structure is also represented in the generated HTML files.</li>
-  <li>the <code>_posts</code> directory contains one Markdown file for each blog post on the website. To contribute a post, just add a new file there.</li>
-  <li>the <code>_includes/</code> directory contains includeable files such as the navigation bar or the footer.</li>
-  <li>the <code>docs/</code> directory contains copies of the documentation of Flink for different releases. There is a directory inside <code>docs/</code> for each stable release and the latest SNAPSHOT version. The build script is taking care of the maintenance of this directory.</li>
-  <li>the <code>content/</code> directory contains the generated HTML files from Jekyll. It is important to place the files in this directory since the Apache Infrastructure to host the Flink website is pulling the HTML content from his directory. (For committers: When pushing changes to the website repository, push also the updates in the <code>content/</code> directory!)</li>
-  <li>see the section below for the <code>build.sh</code> script.</li>
-</ul>
+<p><strong>Please read the <a href="/contribute-code.html">Contribute code</a> guide before you start to work on a code contribution.</strong></p>
 
-<h3 id="the-buildsh-script">The <code>build.sh</code> script</h3>
+<p>Please do also read the <a href="/how-to-contribute.html#submit-a-contributor-license-agreement">Submit a Contributor License Agreement</a> Section.</p>
 
-<p>The <code>build.sh</code> script creates HTML files from the input Markdown files. Use the <code>-p</code> flag to let Jekyll serve a <strong>p</strong>review of the website on <code>http://localhost:4000/</code>.</p>
+<h3 class="no_toc" id="looking-for-an-issue-to-work-on">Looking for an issue to work on?</h3>
 
-<p>The build script also takes care of maintaining the <code>docs/</code> directory. Set the <code>-u</code> flag to <strong>u</strong>pdate documentation. This includes fetching the Flink git repository and copying different versions of the documentation.</p>
+<p>We maintain a list of all known bugs, proposed improvements and suggested features in <a href="https://issues.apache.org/jira/browse/FLINK/?selectedTab=com.atlassian.jira.jira-projects-plugin:issues-panel">Flink’s JIRA</a>. Issues that we believe are good tasks for new contributors are tagged with a special “starter” tag. Those tasks are supposed to be rather easy to solve and will help you to become familiar with the project and the contribution process. </p>
 
-<h2 id="how-to-become-a-committer">How to become a committer</h2>
+<p>Please have a look at the list of <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20FLINK%20AND%20resolution%20%3D%20Unresolved%20AND%20labels%20%3D%20starter%20ORDER%20BY%20priority%20DESC">starter issues</a>, if you are looking for an issue to work on. You can of course also choose <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20FLINK%20AND%20resolution%20%3D%20Unresolved%20ORDER%20BY%20priority%20DESC">any other issue</a> to work on. Feel free to ask questions about issues that you would be interested in working on.</p>
 
-<p>There is no strict protocol for becoming a committer. Candidates for new committers are typically people that are active contributors and community members.</p>
+<hr />
 
-<p>Being an active community member means participating on mailing list discussions, helping to answer questions, being respectful towards others, and following the meritocratic principles of community management. Since the “Apache Way” has a strong focus on the project community, this part is very important.</p>
+<h2 id="contribute-documentation">Contribute documentation</h2>
 
-<p>Of course, contributing code to the project is important as well. A good way to start is contributing improvements, new features, or bugfixes. You need to show that you take responsibility for the code that you contribute, add tests/documentation, and help maintaining it.</p>
+<p>Good documentation is crucial for any kind of software. This is especially true for sophisticated software systems such as distributed data processing engines like Apache Flink. The Apache Flink community aims to provide concise, precise, and complete documentation and welcomes any contribution to improve Apache Flink’s documentation.</p>
 
-<p>Finally, candidates for new committers are suggested by current committers, mentors, or PMC members, and voted upon by the PMC.</p>
+<ul>
+  <li>Please report missing, incorrect, or out-dated documentation as a <a href="http://issues.apache.org/jira/browse/FLINK">JIRA issue</a>.</li>
+  <li>Flink’s documentation is written in Markdown and located in the <code>docs</code> folder in <a href="/community.html#main-source-repositories">Flink’s source code repository</a>. See the <a href="/contribute-documentation.html">Contribute documentation</a> guidelines for detailed instructions for how to update and improve the documentation and to contribute your changes.</li>
+</ul>
 
-<h3 id="how-to-use-git-as-a-committer">How to use git as a committer</h3>
+<hr />
 
-<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>
+<h2 id="improve-the-website">Improve the website</h2>
 
-<h4 id="main-source-repositories">Main source repositories</h4>
+<p>The <a href="http://flink.apache.org">Apache Flink website</a> presents Apache Flink and its community. It serves several purposes including:</p>
 
-<p><strong>ASF writable</strong>: <code>https://git-wip-us.apache.org/repos/asf/flink.git</code></p>
+<ul>
+  <li>Informing visitors about Apache Flink and its features.</li>
+  <li>Encouraging visitors to download and use Flink.</li>
+  <li>Encouraging visitors to engage with the community.</li>
+</ul>
 
-<p><strong>ASF read-only</strong>: <code>git://git.apache.org/repos/asf/flink.git</code></p>
+<p>We welcome any contribution to improve our website.</p>
 
-<p><strong>ASF read-only</strong>: <code>https://github.com/apache/flink.git</code></p>
+<ul>
+  <li>Please open a <a href="http://issues.apache.org/jira/browse/FLINK">JIRA issue</a> if you think our website could be improved.</li>
+  <li>Please follow the <a href="/improve-website.html">Improve the website</a> guidelines if you would like to update and improve the website.</li>
+</ul>
 
-<p>Note: Flink does not build with Oracle JDK 6. It runs with Oracle JDK 6.</p>
+<hr />
 
-<p>If you want to build for Hadoop 1, activate the build profile via <code>mvn clean package -DskipTests -Dhadoop.profile=1</code>.</p>
+<h2 id="more-ways-to-contribute">More ways to contribute…</h2>
 
-<h4 id="website-repositories">Website repositories</h4>
+<p>There are many more ways to contribute to the Flink community. For example you can</p>
 
-<p><strong>ASF writable</strong>: <code>https://git-wip-us.apache.org/repos/asf/flink-web.git</code></p>
+<ul>
+  <li>give a talk about Flink and tell others how you use it.</li>
+  <li>organize a local Meetup or user group.</li>
+  <li>talk to people about Flink.</li>
+  <li>…</li>
+</ul>
 
-<p><strong>ASF read-only</strong>: <code>git://git.apache.org/repos/asf/flink-web.git</code></p>
+<hr />
 
-<p><strong>ASF read-only</strong>: <code>https://github.com/apache/flink-web.git</code></p>
+<h2 id="submit-a-contributor-license-agreement">Submit a Contributor License Agreement</h2>
 
-<p>Details on how to set the credentials for the ASF git repostiory are <a href="https://git-wip-us.apache.org/">linked here</a>.
-To merge pull requests from our Flink GitHub mirror, there is a script in the source <code>./tools/merge_pull_request.sh.template</code>. Rename it to <code>merge_pull_request.sh</code> with the appropriate settings and use it for merging.</p>
+<p>Please submit a contributor license agreement to the Apache Software Foundation (ASF) if you would like to contribute to Apache Flink. The following quote from <a href="http://www.apache.org/licenses/#clas">http://www.apache.org/licenses</a> gives more information about the ICLA and CCLA and why they are necessary.</p>
 
-<h2 id="snapshots-nightly-builds">Snapshots (Nightly Builds)</h2>
+<blockquote>
+  <p>The ASF desires that all contributors of ideas, code, or documentation to the Apache projects complete, sign, and submit (via postal mail, fax or email) an <a href="http://www.apache.org/licenses/icla.txt">Individual Contributor License Agreement</a> (CLA) [ <a href="http://www.apache.org/licenses/icla.pdf">PDF form</a> ]. The purpose of this agreement is to clearly define the terms under which intellectual property has been contributed to the ASF and thereby allow us to defend the project should there be a legal dispute regarding the software at some future time. A signed CLA is required to be on file before an individual is given commit rights to an ASF project.</p>
 
-<p>Apache Flink <code>0.10-SNAPSHOT</code> is our latest development version.</p>
+  <p>For a corporation that has assigned employees to work on an Apache project, a <a href="http://www.apache.org/licenses/cla-corporate.txt">Corporate CLA</a> (CCLA) is available for contributing intellectual property via the corporation, that may have been assigned as part of an employment agreement. Note that a Corporate CLA does not remove the need for every developer to sign their own CLA as an individual, to cover any of their contributions which are not owned by the corporation signing the CCLA.</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>
+  <p>…</p>
+</blockquote>
 
-<ul>
-  <li><strong>Hadoop 1</strong>: <a href="http://stratosphere-bin.s3-website-us-east-1.amazonaws.com/flink-0.10-SNAPSHOT-bin-hadoop1.tgz" class="ga-track" id="download-hadoop1-nightly">flink-0.10-SNAPSHOT-bin-hadoop1.tgz</a></li>
-  <li><strong>Hadoop 2 and YARN</strong>: <a href="http://stratosphere-bin.s3-website-us-east-1.amazonaws.com/flink-0.10-SNAPSHOT-bin-hadoop2.tgz" class="ga-track" id="download-hadoop2-nightly">flink-0.10-SNAPSHOT-bin-hadoop2.tgz</a></li>
-</ul>
+<hr />
+
+<h2 id="how-to-become-a-committer">How to become a committer</h2>
+
+<p>Committers are community members that have write access to the project’s repositories, i.e., they can modify the code, documentation, and website by themselves and also accept other contributions. </p>
+
+<p>There is no strict protocol for becoming a committer. Candidates for new committers are typically people that are active contributors and community members.</p>
+
+<p>Being an active community member means participating on mailing list discussions, helping to answer questions, verifying release candidates, being respectful towards others, and following the meritocratic principles of community management. Since the “Apache Way” has a strong focus on the project community, this part is <em>very</em> important.</p>
+
+<p>Of course, contributing code and documentation to the project is important as well. A good way to start is contributing improvements, new features, or bug fixes. You need to show that you take responsibility for the code that you contribute, add tests and documentation, and help maintaining it.</p>
 
-<p>Add the <strong>Apache Snapshot repository</strong> to your Maven <code>pom.xml</code>:</p>
+<p>Candidates for new committers are suggested by current committers or PMC members, and voted upon by the PMC. </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>If you would like to become a committer, you should engage with the community and start contributing to Apache Flink in any of the above ways. You might also want to talk to other committers and ask for their advice and guidance.</p>
 
-<p>You can now include Apache Flink as a Maven dependency (see above) with version <code>0.10-SNAPSHOT</code> (or <code>0.10-SNAPSHOT-hadoop1</code> for compatibility with old Hadoop 1.x versions).</p>
 
 
   </div>

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/improve-website.html
----------------------------------------------------------------------
diff --git a/content/improve-website.html b/content/improve-website.html
new file mode 100644
index 0000000..0e99bce
--- /dev/null
+++ b/content/improve-website.html
@@ -0,0 +1,290 @@
+<!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: Improving the Website</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" />
+
+    <!-- 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>  
+    
+
+  <!-- Top navbar. -->
+    <nav class="navbar navbar-default navbar-fixed-top">
+      <div class="container">
+        <!-- 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.jpg" width="78px" height="40px"></a>
+          </div>
+        </div><!-- /.navbar-header -->
+
+        <!-- The navigation links. -->
+        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
+          <ul class="nav navbar-nav">
+            <!-- Overview -->
+            <li><a href="/index.html">Overview</a></li>
+
+            <!-- Quickstart -->
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Quickstart <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/quickstart/setup_quickstart.html">Setup</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/quickstart/java_api_quickstart.html">Java API</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/quickstart/scala_api_quickstart.html">Scala API</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/quickstart/run_example_quickstart.html">Run Step-by-Step Example</a></li>
+              </ul>
+            </li>
+
+            <!-- Features -->
+            <li><a href="/features.html">Features</a></li>
+
+            <!-- Downloads -->
+            <li><a href="/downloads.html">Downloads</a></li>
+
+            <!-- Documentation -->
+            <li class="dropdown">
+              <a href="" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Documentation <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <!-- Latest stable release -->
+                <li role="presentation" class="dropdown-header"><strong>Latest Release</strong> (Stable)</li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9">0.9.1 Documentation</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/api/java" class="active">0.9.1 Javadocs</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/api/scala/index.html" class="active">0.9.1 ScalaDocs</a></li>
+
+                <!-- Snapshot docs -->
+                <li class="divider"></li>
+                <li role="presentation" class="dropdown-header"><strong>Snapshot</strong> (Development)</li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-master">0.10 Documentation</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-master/api/java" class="active">0.10 Javadocs</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-master/api/scala/index.html" class="active">0.10 ScalaDocs</a></li>
+
+                <!-- Wiki -->
+                <li class="divider"></li>
+                <li><a href="https://cwiki.apache.org/confluence/display/FLINK/Apache+Flink+Home"><small><span class="glyphicon glyphicon-new-window"></span></small> Wiki</a></li>
+              </ul>
+            </li>
+
+            <!-- FAQ -->
+            <li><a href="/faq.html">FAQ</a></li>
+          </ul>
+
+          <ul class="nav navbar-nav navbar-right">
+            <!-- Blog -->
+            <li class=" hidden-md hidden-sm"><a href="/blog/">Blog</a></li>
+
+            <li class="dropdown hidden-md hidden-sm">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Community <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <!-- Community -->
+                <li role="presentation" class="dropdown-header"><strong>Community</strong></li>
+                <li><a href="/community.html#mailing-lists">Mailing Lists</a></li>
+                <li><a href="/community.html#irc">IRC</a></li>
+                <li><a href="/community.html#stack-overflow">Stack Overflow</a></li>
+                <li><a href="/community.html#issue-tracker">Issue Tracker</a></li>
+                <li><a href="/community.html#source-code">Source Code</a></li>
+                <li><a href="/community.html#people">People</a></li>
+
+                <!-- Contribute -->
+                <li class="divider"></li>
+                <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
+                <li><a href="/how-to-contribute.html">How to Contribute</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
+              </ul>
+            </li>
+
+            <li class="dropdown hidden-md hidden-sm">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Project <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <!-- Project -->
+                <li role="presentation" class="dropdown-header"><strong>Project</strong></li>
+                <li><a href="/material.html">Material</a></li>
+                <li><a href="https://twitter.com/apacheflink"><small><span class="glyphicon glyphicon-new-window"></span></small> Twitter</a></li>
+                <li><a href="https://github.com/apache/flink"><small><span class="glyphicon glyphicon-new-window"></span></small> GitHub</a></li>
+                <li><a href="https://cwiki.apache.org/confluence/display/FLINK/Apache+Flink+Home"><small><span class="glyphicon glyphicon-new-window"></span></small> Wiki</a></li>
+              </ul>
+            </li>
+          </ul>
+        </div><!-- /.navbar-collapse -->
+      </div><!-- /.container -->
+    </nav>
+
+
+    <!-- Main content. -->
+    <div class="container">
+      
+
+<div class="row">
+  <div class="col-sm-8 col-sm-offset-2">
+    <div class="row">
+      <div class="col-sm-12"><h1>Improving the Website</h1></div>
+    </div>
+
+<p>The <a href="http://flink.apache.org">Apache Flink website</a> presents Apache Flink and its community. It serves several purposes including:</p>
+
+<ul>
+  <li>Informing visitors about Apache Flink and its features.</li>
+  <li>Encouraging visitors to download and use Flink.</li>
+  <li>Encouraging visitors to engage with the community.</li>
+</ul>
+
+<p>We welcome any contribution to improve our website. This document contains all information that is necessary to improve Flink’s website.</p>
+
+<div class="page-toc">
+<ul id="markdown-toc">
+  <li><a href="#obtain-the-website-sources">Obtain the website sources</a></li>
+  <li><a href="#directory-structure-and-files">Directory structure and files</a></li>
+  <li><a href="#update-or-extend-the-documentation">Update or extend the documentation</a></li>
+  <li><a href="#submit-your-contribution">Submit your contribution</a></li>
+  <li><a href="#committer-section">Committer section</a></li>
+</ul>
+
+</div>
+
+<h2 id="obtain-the-website-sources">Obtain the website sources</h2>
+
+<p>The website of Apache Flink is hosted in a dedicated <a href="http://git-scm.com/">git</a> repository which is mirrored to Github at <a href="https://github.com/apache/flink-web">https://github.com/apache/flink-web</a>.</p>
+
+<p>The easiest way to contribute website updates is to fork <a href="https://github.com/apache/flink-web">the mirrored website repository on Github</a> into your own Github account by clicking on the fork button at the top right. If you have no Github account, you can create one for free.</p>
+
+<p>Next, clone your fork to your local machine.</p>
+
+<div class="highlight"><pre><code>git clone https://github.com/&lt;your-user-name&gt;/flink-web.git
+</code></pre></div>
+
+<p>The <code>flink-web</code> directory contains the cloned repository. The website resides in the <code>asf-site</code> branch of the repository. Run the following commands to enter the directory and switch to the <code>asf-site</code> branch.</p>
+
+<div class="highlight"><pre><code>cd flink-web
+git checkout asf-site
+</code></pre></div>
+
+<h2 id="directory-structure-and-files">Directory structure and files</h2>
+
+<p>Flink’s website is written in <a href="http://daringfireball.net/projects/markdown/">Markdown</a>. Markdown is a lightweight markup language which can be translated to HTML. We use <a href="http://jekyllrb.com/">Jekyll</a> to generate static HTML files from Markdown.</p>
+
+<p>The files and directories in the website git repository have the following roles:</p>
+
+<ul>
+  <li>All files ending with <code>.md</code> are Markdown files. These files are translated into static HTML files.</li>
+  <li>Regular directories (not starting with an underscore (<code>_</code>)) contain also <code>.md</code> files. The directory structure is reflected in the generated HTML files and the published website.</li>
+  <li>The <code>_posts</code> directory contains blog posts. Each blog post is written as one Markdown file. To contribute a post, add a new file there.</li>
+  <li>The <code>_includes/</code> directory contains includeable files such as the navigation bar or the footer.</li>
+  <li>The <code>docs/</code> directory contains copies of the documentation of Flink for different releases. There is a directory inside <code>docs/</code> for each stable release and the latest SNAPSHOT version. The build script is taking care of the maintenance of this directory.</li>
+  <li>The <code>content/</code> directory contains the generated HTML files from Jekyll. It is important to place the files in this directory since the Apache Infrastructure to host the Flink website is pulling the HTML content from his directory. (For committers: When pushing changes to the website git, push also the updates in the <code>content/</code> directory!)</li>
+</ul>
+
+<h2 id="update-or-extend-the-documentation">Update or extend the documentation</h2>
+
+<p>You can update and extend the website by modifying or adding Markdown files or any other resources such as CSS files. To verify your changes start the build script in preview mode.</p>
+
+<div class="highlight"><pre><code>./build.sh -p
+</code></pre></div>
+
+<p>The script compiles the Markdown files into HTML and starts a local webserver. Open your browser at <code>http://localhost:4000</code> to view the website including your changes. The served website is automatically re-compiled and updated when you modify and save any file and refresh your browser.</p>
+
+<p>Please feel free to ask any questions you have on the developer mailing list.</p>
+
+<h2 id="submit-your-contribution">Submit your contribution</h2>
+
+<p>The Flink project accepts website contributions through the <a href="https://github.com/apache/flink-web">GitHub Mirror</a> as <a href="https://help.github.com/articles/using-pull-requests">Pull Requests</a>. Pull requests are a simple way of offering a patch by providing a pointer to a code branch that contains the changes.</p>
+
+<p>To prepare and submit a pull request follow these steps.</p>
+
+<ol>
+  <li>
+    <p>Commit your changes to your local git repository. <strong>Please Make sure that your commit does not include translated files (any files in the <code>content/</code> directory).</strong> Unless your contribution is a major rework of the website, please squash it into a single commit.</p>
+  </li>
+  <li>
+    <p>Push the commit to a dedicated branch of your fork of the Flink repository at Github.</p>
+
+    <p><code>
+ git push origin myBranch
+</code></p>
+  </li>
+  <li>
+    <p>Go the website of your repository fork (<code>https://github.com/&lt;your-user-name&gt;/flink-web</code>) and use the “Create Pull Request” button to start creating a pull request. Make sure that the base fork is <code>apache/flink-web asf-site</code> and the head fork selects the branch with your changes. Give the pull request a meaningful description and submit it.</p>
+  </li>
+</ol>
+
+<h2 id="committer-section">Committer section</h2>
+
+<p><strong>This section is only relevant for committers.</strong></p>
+
+<h3 class="no_toc" id="asf-website-git-repositories">ASF website git repositories</h3>
+
+<p><strong>ASF writable</strong>: https://git-wip-us.apache.org/repos/asf/flink-web.git</p>
+
+<p><strong>ASF read-only</strong>: git://git.apache.org/repos/asf/flink-web.git</p>
+
+<p>Details on how to set the credentials for the ASF git repository are <a href="https://git-wip-us.apache.org/">linked here</a>.</p>
+
+<h3 class="no_toc" id="merging-a-pull-request">Merging a pull request</h3>
+
+<p>Contributions are expected to be done on the source files only (no modifications on the compiled files in the <code>content/</code> directory.). Before pushing a website change, please run the build script</p>
+
+<div class="highlight"><pre><code>./build.sh
+</code></pre></div>
+
+<p>add the changes to the <code>content/</code> directory as an additional commit and push the changes to the ASF base repository.</p>
+
+<h3 class="no_toc" id="updating-the-documentation-directory">Updating the documentation directory</h3>
+
+<p>The build script does also take care of maintaining the <code>docs/</code> directory. Set the <code>-u</code> flag to update documentation. This includes fetching the Flink git repository and copying different versions of the documentation.</p>
+
+
+  </div>
+</div>
+
+
+      <hr />
+      <div class="footer text-center">
+        <p>Copyright © 2014-2015 <a href="http://apache.org">The Apache Software Foundation</a>. All Rights Reserved.</p>
+        <p>Apache Flink, Apache, and the Apache feather logo are 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><!-- /.container -->
+
+    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
+    <!-- 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>
+
+    <!-- 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/415ee891/content/index.html
----------------------------------------------------------------------
diff --git a/content/index.html b/content/index.html
index 3e04686..f2dd572 100644
--- a/content/index.html
+++ b/content/index.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/material.html
----------------------------------------------------------------------
diff --git a/content/material.html b/content/material.html
index 582cb4c..1af83cd 100644
--- a/content/material.html
+++ b/content/material.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 
@@ -145,14 +147,14 @@
 
 <div class="page-toc">
 <ul id="markdown-toc">
-  <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>
+  <li><a href="#apache-flink-logos">Apache Flink Logos</a>    <ul>
+      <li><a href="#portable-network-graphics-png">Portable Network Graphics (PNG)</a></li>
+      <li><a href="#scalable-vector-graphics-svg">Scalable Vector Graphics (SVG)</a></li>
+      <li><a href="#photoshop-psd">Photoshop (PSD)</a></li>
     </ul>
   </li>
-  <li><a href="#color-scheme" id="markdown-toc-color-scheme">Color Scheme</a></li>
-  <li><a href="#slides" id="markdown-toc-slides">Slides</a></li>
+  <li><a href="#color-scheme">Color Scheme</a></li>
+  <li><a href="#slides">Slides</a></li>
 </ul>
 
 </div>

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2012/08/21/release02.html
----------------------------------------------------------------------
diff --git a/content/news/2012/08/21/release02.html b/content/news/2012/08/21/release02.html
index 0cf23c6..7ec8fdf 100644
--- a/content/news/2012/08/21/release02.html
+++ b/content/news/2012/08/21/release02.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2012/10/15/icde2013.html
----------------------------------------------------------------------
diff --git a/content/news/2012/10/15/icde2013.html b/content/news/2012/10/15/icde2013.html
index 89f16c9..387fe05 100644
--- a/content/news/2012/10/15/icde2013.html
+++ b/content/news/2012/10/15/icde2013.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2012/11/12/btw2013demo.html
----------------------------------------------------------------------
diff --git a/content/news/2012/11/12/btw2013demo.html b/content/news/2012/11/12/btw2013demo.html
index 6ac3a9f..3b2f7ec 100644
--- a/content/news/2012/11/12/btw2013demo.html
+++ b/content/news/2012/11/12/btw2013demo.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2012/11/21/previewICDE2013.html
----------------------------------------------------------------------
diff --git a/content/news/2012/11/21/previewICDE2013.html b/content/news/2012/11/21/previewICDE2013.html
index 91b71b3..9ff5a3e 100644
--- a/content/news/2012/11/21/previewICDE2013.html
+++ b/content/news/2012/11/21/previewICDE2013.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2013/03/27/www-demo-paper.html
----------------------------------------------------------------------
diff --git a/content/news/2013/03/27/www-demo-paper.html b/content/news/2013/03/27/www-demo-paper.html
index e340937..392ccc5 100644
--- a/content/news/2013/03/27/www-demo-paper.html
+++ b/content/news/2013/03/27/www-demo-paper.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2013/10/21/cikm2013-paper.html
----------------------------------------------------------------------
diff --git a/content/news/2013/10/21/cikm2013-paper.html b/content/news/2013/10/21/cikm2013-paper.html
index 58be4c0..9ec66c4 100644
--- a/content/news/2013/10/21/cikm2013-paper.html
+++ b/content/news/2013/10/21/cikm2013-paper.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2013/12/13/humboldt-innovation-award.html
----------------------------------------------------------------------
diff --git a/content/news/2013/12/13/humboldt-innovation-award.html b/content/news/2013/12/13/humboldt-innovation-award.html
index 4258fb5..f19a6f5 100644
--- a/content/news/2013/12/13/humboldt-innovation-award.html
+++ b/content/news/2013/12/13/humboldt-innovation-award.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2014/01/10/stratosphere-hadoop-summit.html
----------------------------------------------------------------------
diff --git a/content/news/2014/01/10/stratosphere-hadoop-summit.html b/content/news/2014/01/10/stratosphere-hadoop-summit.html
index 4bcbc2c..83d8555 100644
--- a/content/news/2014/01/10/stratosphere-hadoop-summit.html
+++ b/content/news/2014/01/10/stratosphere-hadoop-summit.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2014/01/12/0.4-migration-guide.html
----------------------------------------------------------------------
diff --git a/content/news/2014/01/12/0.4-migration-guide.html b/content/news/2014/01/12/0.4-migration-guide.html
index 56fabaa..c53c425 100644
--- a/content/news/2014/01/12/0.4-migration-guide.html
+++ b/content/news/2014/01/12/0.4-migration-guide.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2014/01/13/stratosphere-release-0.4.html
----------------------------------------------------------------------
diff --git a/content/news/2014/01/13/stratosphere-release-0.4.html b/content/news/2014/01/13/stratosphere-release-0.4.html
index a518834..2f86bfe 100644
--- a/content/news/2014/01/13/stratosphere-release-0.4.html
+++ b/content/news/2014/01/13/stratosphere-release-0.4.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 
@@ -145,7 +147,7 @@
       <article>
         <p>13 Jan 2014</p>
 
-<p>We are pleased to announce that version 0.4 of the Stratosphere system has been released.</p>
+<p>We are pleased to announce that version 0.4 of the Stratosphere system has been released. </p>
 
 <p>Our team has been working hard during the last few months to create an improved and stable Stratosphere version. The new version comes with many new features, usability and performance improvements in all levels, including a new Scala API for the concise specification of programs, a Pregel-like API, support for Yarn clusters, and major performance improvements. The system features now first-class support for iterative programs and thus covers traditional analytical use cases as well as data mining and graph processing use cases with great performance.</p>
 
@@ -173,7 +175,7 @@ Follow <a href="/docs/0.4/setup/yarn.html">our guide</a> on how to start a Strat
 <p>The high-level language Meteor now natively serializes JSON trees for greater performance and offers additional operators and file formats. We greatly empowered the user to write crispier scripts by adding second-order functions, multi-output operators, and other syntactical sugar. For developers of Meteor packages, the API is much more comprehensive and allows to define custom data types that can be easily embedded in JSON trees through ad-hoc byte code generation.</p>
 
 <h3 id="spargel-pregel-inspired-graph-processing">Spargel: Pregel Inspired Graph Processing</h3>
-<p>Spargel is a vertex-centric API similar to the interface proposed in Google’s Pregel paper and implemented in Apache Giraph. Spargel is implemented in 500 lines of code (including comments) on top of Stratosphere’s delta iterations feature. This confirms the flexibility of Stratosphere’s architecture.</p>
+<p>Spargel is a vertex-centric API similar to the interface proposed in Google’s Pregel paper and implemented in Apache Giraph. Spargel is implemented in 500 lines of code (including comments) on top of Stratosphere’s delta iterations feature. This confirms the flexibility of Stratosphere’s architecture. </p>
 
 <h3 id="web-frontend">Web Frontend</h3>
 <p>Using the new web frontend, you can monitor the progress of Stratosphere jobs. For finished jobs, the frontend shows a breakdown of the execution times for each operator. The webclient also visualizes the execution strategies chosen by the optimizer.</p>
@@ -201,7 +203,7 @@ Follow <a href="/docs/0.4/setup/yarn.html">our guide</a> on how to start a Strat
 </ul>
 
 <h3 id="download-and-get-started-with-stratosphere-v04">Download and get started with Stratosphere v0.4</h3>
-<p>There are several options for getting started with Stratosphere.</p>
+<p>There are several options for getting started with Stratosphere. </p>
 
 <ul>
   <li>Download it on the <a href="/downloads">download page</a></li>

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2014/01/26/optimizer_plan_visualization_tool.html
----------------------------------------------------------------------
diff --git a/content/news/2014/01/26/optimizer_plan_visualization_tool.html b/content/news/2014/01/26/optimizer_plan_visualization_tool.html
index 2004a46..f050f4a 100644
--- a/content/news/2014/01/26/optimizer_plan_visualization_tool.html
+++ b/content/news/2014/01/26/optimizer_plan_visualization_tool.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2014/01/28/querying_mongodb.html
----------------------------------------------------------------------
diff --git a/content/news/2014/01/28/querying_mongodb.html b/content/news/2014/01/28/querying_mongodb.html
index 5ad57bd..032ef83 100644
--- a/content/news/2014/01/28/querying_mongodb.html
+++ b/content/news/2014/01/28/querying_mongodb.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2014/02/18/amazon-elastic-mapreduce-cloud-yarn.html
----------------------------------------------------------------------
diff --git a/content/news/2014/02/18/amazon-elastic-mapreduce-cloud-yarn.html b/content/news/2014/02/18/amazon-elastic-mapreduce-cloud-yarn.html
index f34ec53..fe528fc 100644
--- a/content/news/2014/02/18/amazon-elastic-mapreduce-cloud-yarn.html
+++ b/content/news/2014/02/18/amazon-elastic-mapreduce-cloud-yarn.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 
@@ -215,7 +217,7 @@
 ssh hadoop@ec2-54-213-61-105.us-west-2.compute.amazonaws.com -i ~/Downloads/work-laptop.pem</code></pre></div>
 
 <p>(Windows users have to follow <a href="http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-connect-master-node-ssh.html">these instructions</a> to SSH into the machine running the master.) &lt;/br&gt;&lt;/br&gt;
-Once connected to the master, download and start Stratosphere for YARN:</p>
+Once connected to the master, download and start Stratosphere for YARN: </p>
 <ul>
 	<li>Download and extract Stratosphere-YARN</li>
 
@@ -238,11 +240,11 @@ The arguments have the following meaning
 	</ul>
 </ul>
 
-<p>Once the output has changed from</p>
+<p>Once the output has changed from </p>
 
 <div class="highlight"><pre><code class="language-bash" data-lang="bash">JobManager is now running on N/A:6123</code></pre></div>
 
-<p>to</p>
+<p>to </p>
 
 <div class="highlight"><pre><code class="language-bash" data-lang="bash">JobManager is now running on ip-172-31-13-68.us-west-2.compute.internal:6123</code></pre></div>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2014/02/24/stratosphere-google-summer-of-code-2014.html
----------------------------------------------------------------------
diff --git a/content/news/2014/02/24/stratosphere-google-summer-of-code-2014.html b/content/news/2014/02/24/stratosphere-google-summer-of-code-2014.html
index 337808d..bd55996 100644
--- a/content/news/2014/02/24/stratosphere-google-summer-of-code-2014.html
+++ b/content/news/2014/02/24/stratosphere-google-summer-of-code-2014.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2014/04/16/stratosphere-goes-apache-incubator.html
----------------------------------------------------------------------
diff --git a/content/news/2014/04/16/stratosphere-goes-apache-incubator.html b/content/news/2014/04/16/stratosphere-goes-apache-incubator.html
index f921cb4..6c3c696 100644
--- a/content/news/2014/04/16/stratosphere-goes-apache-incubator.html
+++ b/content/news/2014/04/16/stratosphere-goes-apache-incubator.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2014/05/31/release-0.5.html
----------------------------------------------------------------------
diff --git a/content/news/2014/05/31/release-0.5.html b/content/news/2014/05/31/release-0.5.html
index f8d7480..98b2c7d 100644
--- a/content/news/2014/05/31/release-0.5.html
+++ b/content/news/2014/05/31/release-0.5.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2014/08/26/release-0.6.html
----------------------------------------------------------------------
diff --git a/content/news/2014/08/26/release-0.6.html b/content/news/2014/08/26/release-0.6.html
index d985ac1..55c0598 100644
--- a/content/news/2014/08/26/release-0.6.html
+++ b/content/news/2014/08/26/release-0.6.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2014/09/26/release-0.6.1.html
----------------------------------------------------------------------
diff --git a/content/news/2014/09/26/release-0.6.1.html b/content/news/2014/09/26/release-0.6.1.html
index a0175e7..801af9f 100644
--- a/content/news/2014/09/26/release-0.6.1.html
+++ b/content/news/2014/09/26/release-0.6.1.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2014/10/03/upcoming_events.html
----------------------------------------------------------------------
diff --git a/content/news/2014/10/03/upcoming_events.html b/content/news/2014/10/03/upcoming_events.html
index 1326db6..2fc7d73 100644
--- a/content/news/2014/10/03/upcoming_events.html
+++ b/content/news/2014/10/03/upcoming_events.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/news/2014/11/04/release-0.7.0.html
----------------------------------------------------------------------
diff --git a/content/news/2014/11/04/release-0.7.0.html b/content/news/2014/11/04/release-0.7.0.html
index e2e4cd7..22b035b 100644
--- a/content/news/2014/11/04/release-0.7.0.html
+++ b/content/news/2014/11/04/release-0.7.0.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 
@@ -165,7 +167,7 @@
 
 <p><strong>Record API deprecated:</strong> The (old) Stratosphere Record API has been marked as deprecated and is planned for removal in the 0.9.0 release.</p>
 
-<p><strong>BLOB service:</strong> This release contains a new service to distribute jar files and other binary data among the JobManager, TaskManagers and the client.</p>
+<p><strong>BLOB service:</strong> This release contains a new service to distribute jar files and other binary data among the JobManager, TaskManagers and the client. </p>
 
 <p><strong>Intermediate data sets:</strong> A major rewrite of the system internals introduces intermediate data sets as first class citizens. The internal state machine that tracks the distributed tasks has also been completely rewritten for scalability. While this is not visible as a user-facing feature yet, it is the foundation for several upcoming exciting features.</p>
 


[4/4] flink-web git commit: Build website

Posted by fh...@apache.org.
Build website


Project: http://git-wip-us.apache.org/repos/asf/flink-web/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink-web/commit/415ee891
Tree: http://git-wip-us.apache.org/repos/asf/flink-web/tree/415ee891
Diff: http://git-wip-us.apache.org/repos/asf/flink-web/diff/415ee891

Branch: refs/heads/asf-site
Commit: 415ee89164efaca2d5802141330b4ac5661a0920
Parents: f2411e2
Author: Fabian Hueske <fh...@gmail.com>
Authored: Thu Oct 8 12:51:45 2015 +0200
Committer: Fabian Hueske <fh...@gmail.com>
Committed: Thu Oct 8 12:52:17 2015 +0200

----------------------------------------------------------------------
 content/blog/feed.xml                           |  20 +-
 content/blog/index.html                         |   6 +-
 content/blog/page2/index.html                   |   4 +-
 content/blog/page3/index.html                   |   8 +-
 content/blog/page4/index.html                   |   4 +-
 content/coding-guidelines.html                  | 227 ---------
 content/community.html                          |  22 +-
 content/contribute-code.html                    | 508 +++++++++++++++++++
 content/contribute-documentation.html           | 247 +++++++++
 content/css/flink.css                           |   4 +
 content/downloads.html                          |  10 +-
 content/faq.html                                |  60 +--
 content/features.html                           |   4 +-
 content/how-to-contribute.html                  | 270 ++++------
 content/improve-website.html                    | 290 +++++++++++
 content/index.html                              |   4 +-
 content/material.html                           |  16 +-
 content/news/2012/08/21/release02.html          |   4 +-
 content/news/2012/10/15/icde2013.html           |   4 +-
 content/news/2012/11/12/btw2013demo.html        |   4 +-
 content/news/2012/11/21/previewICDE2013.html    |   4 +-
 content/news/2013/03/27/www-demo-paper.html     |   4 +-
 content/news/2013/10/21/cikm2013-paper.html     |   4 +-
 .../2013/12/13/humboldt-innovation-award.html   |   4 +-
 .../2014/01/10/stratosphere-hadoop-summit.html  |   4 +-
 .../news/2014/01/12/0.4-migration-guide.html    |   4 +-
 .../2014/01/13/stratosphere-release-0.4.html    |  10 +-
 .../26/optimizer_plan_visualization_tool.html   |   4 +-
 content/news/2014/01/28/querying_mongodb.html   |   4 +-
 .../18/amazon-elastic-mapreduce-cloud-yarn.html |  10 +-
 ...stratosphere-google-summer-of-code-2014.html |   4 +-
 .../16/stratosphere-goes-apache-incubator.html  |   4 +-
 content/news/2014/05/31/release-0.5.html        |   4 +-
 content/news/2014/08/26/release-0.6.html        |   4 +-
 content/news/2014/09/26/release-0.6.1.html      |   4 +-
 content/news/2014/10/03/upcoming_events.html    |   4 +-
 content/news/2014/11/04/release-0.7.0.html      |   6 +-
 .../news/2014/11/18/hadoop-compatibility.html   |   8 +-
 content/news/2015/01/06/december-in-flink.html  |   4 +-
 content/news/2015/01/21/release-0.8.html        |   6 +-
 content/news/2015/02/04/january-in-flink.html   |   6 +-
 content/news/2015/02/09/streaming-example.html  |   8 +-
 .../news/2015/03/02/february-2015-in-flink.html |   4 +-
 .../peeking-into-Apache-Flinks-Engine-Room.html |  22 +-
 content/news/2015/04/07/march-in-flink.html     |   4 +-
 .../2015/04/13/release-0.9.0-milestone1.html    |   4 +-
 .../05/11/Juggling-with-Bits-and-Bytes.html     |  30 +-
 .../news/2015/05/14/Community-update-April.html |   8 +-
 .../announcing-apache-flink-0.9.0-release.html  |   4 +-
 .../2015/08/24/introducing-flink-gelly.html     |  28 +-
 content/news/2015/09/01/release-0.9.1.html      |   4 +-
 content/news/2015/09/03/flink-forward.html      |   4 +-
 content/news/2015/09/16/off-heap-memory.html    |   4 +-
 content/privacy-policy.html                     |   4 +-
 content/project.html                            |   4 +-
 55 files changed, 1407 insertions(+), 547 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/blog/feed.xml
----------------------------------------------------------------------
diff --git a/content/blog/feed.xml b/content/blog/feed.xml
index 530b9cd..08a5699 100644
--- a/content/blog/feed.xml
+++ b/content/blog/feed.xml
@@ -2258,7 +2258,7 @@ Tez as an execution backend instead of Flink’s own network stack. Learn more
 </item>
 
 <item>
-<title>Peeking into Apache Flink's Engine Room</title>
+<title>Peeking into Apache Flink&#39;s Engine Room</title>
 <description>&lt;h3 id=&quot;join-processing-in-apache-flink&quot;&gt;Join Processing in Apache Flink&lt;/h3&gt;
 
 &lt;p&gt;Joins are prevalent operations in many data processing applications. Most data processing systems feature APIs that make joining data sets very easy. However, the internal algorithms for join processing are much more involved – especially if large data sets need to be efficiently handled. Therefore, join processing serves as a good example to discuss the salient design points and implementation details of a data processing system.&lt;/p&gt;
@@ -2769,12 +2769,12 @@ INFO    Socket Stream(1/1) switched to DEPLOYING
 INFO    Custom Source(1/1) switched to SCHEDULED 
 INFO    Custom Source(1/1) switched to DEPLOYING
 …
-1&amp;gt; StockPrice{symbol='SPX', count=1011.3405732645239}
-2&amp;gt; StockPrice{symbol='SPX', count=1018.3381290039248}
-1&amp;gt; StockPrice{symbol='DJI', count=1036.7454894073978}
-3&amp;gt; StockPrice{symbol='DJI', count=1135.1170217478427}
-3&amp;gt; StockPrice{symbol='BUX', count=1053.667523187687}
-4&amp;gt; StockPrice{symbol='BUX', count=1036.552601487263}
+1&amp;gt; StockPrice{symbol=&#39;SPX&#39;, count=1011.3405732645239}
+2&amp;gt; StockPrice{symbol=&#39;SPX&#39;, count=1018.3381290039248}
+1&amp;gt; StockPrice{symbol=&#39;DJI&#39;, count=1036.7454894073978}
+3&amp;gt; StockPrice{symbol=&#39;DJI&#39;, count=1135.1170217478427}
+3&amp;gt; StockPrice{symbol=&#39;BUX&#39;, count=1053.667523187687}
+4&amp;gt; StockPrice{symbol=&#39;BUX&#39;, count=1036.552601487263}
 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 
 &lt;p&gt;&lt;a href=&quot;#top&quot;&gt;Back to top&lt;/a&gt;&lt;/p&gt;
@@ -3931,7 +3931,7 @@ Applying students can use our wiki (create a new page) to create a project propo
 			&lt;li&gt;For the Hadoop distribution, it is very important to choose one with YARN support. We use &lt;b&gt;3.0.3 (Hadoop 2.2.0)&lt;/b&gt; (the minor version might change over time)&lt;/li&gt;
 			&lt;li&gt;Remove all applications to be installed (unless you want to use them)&lt;/li&gt;
 			&lt;li&gt;Choose the instance types you want to start. Stratosphere runs fine with m1.large instances. Core and Task instances both run Stratosphere, but only core instances contain HDFS data nodes.&lt;/li&gt;
-			&lt;li&gt;Choose the &lt;b&gt;EC2 key pair&lt;/b&gt; you've created in the previous step!&lt;/li&gt;
+			&lt;li&gt;Choose the &lt;b&gt;EC2 key pair&lt;/b&gt; you&#39;ve created in the previous step!&lt;/li&gt;
 		&lt;/ul&gt;
 	&lt;/div&gt;
 &lt;/div&gt;
@@ -3991,7 +3991,7 @@ The arguments have the following meaning
 &lt;ul&gt;
 &lt;li&gt; Open an additional terminal and connect again to the master of your cluster. &lt;/li&gt;
 
-We recommend to create a SOCKS-proxy with your SSH that allows you to easily connect into the cluster. (If you've already a VPN setup with EC2, you can probably use that as well.)
+We recommend to create a SOCKS-proxy with your SSH that allows you to easily connect into the cluster. (If you&#39;ve already a VPN setup with EC2, you can probably use that as well.)
 
 
 &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;ssh -D localhost:2001 hadoop@&amp;lt;your master dns name&amp;gt; -i &amp;lt;your pem file&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
@@ -4473,7 +4473,7 @@ The demo shows how static code analysis can be leveraged to reordered UDF operat
 <description> &lt;p&gt;Our demo submission&lt;br /&gt;
 &lt;strong&gt;&lt;cite&gt;&quot;Applying Stratosphere for Big Data Analytics&quot;&lt;/cite&gt;&lt;/strong&gt;&lt;br /&gt;
 has been accepted for BTW 2013 in Magdeburg, Germany.&lt;br /&gt;
-The demo focuses on Stratosphere's query language Meteor, which has been presented in our paper &lt;cite&gt;&quot;Meteor/Sopremo: An Extensible Query Language and Operator Model&quot;&lt;/cite&gt; &lt;a href=&quot;/assets/papers/Sopremo_Meteor BigData.pdf&quot;&gt;[pdf]&lt;/a&gt; at the BigData workshop associated with VLDB 2012 in Istanbul.&lt;/p&gt;
+The demo focuses on Stratosphere&#39;s query language Meteor, which has been presented in our paper &lt;cite&gt;&quot;Meteor/Sopremo: An Extensible Query Language and Operator Model&quot;&lt;/cite&gt; &lt;a href=&quot;/assets/papers/Sopremo_Meteor BigData.pdf&quot;&gt;[pdf]&lt;/a&gt; at the BigData workshop associated with VLDB 2012 in Istanbul.&lt;/p&gt;
 &lt;p&gt;Visit our demo, and talk to us if you are going to attend BTW 2013.&lt;/p&gt;
 &lt;p&gt;&lt;strong&gt;Abstract:&lt;/strong&gt;&lt;br /&gt;
 Analyzing big data sets as they occur in modern business and science applications requires query languages that allow for the specification of complex data processing tasks. Moreover, these ideally declarative query specifications have to be optimized, parallelized and scheduled for processing on massively parallel data processing platforms. This paper demonstrates the application of Stratosphere to different kinds of Big Data Analytics tasks. Using examples from different application domains, we show how to formulate analytical tasks as Meteor queries and execute them with Stratosphere. These examples include data cleansing and information extraction tasks, and a correlation analysis of microblogging and stock trade volume data that we describe in detail in this paper.&lt;/p&gt;

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/blog/index.html
----------------------------------------------------------------------
diff --git a/content/blog/index.html b/content/blog/index.html
index 7672859..d26c49b 100644
--- a/content/blog/index.html
+++ b/content/blog/index.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 
@@ -191,7 +193,7 @@ Apache Flink started.</p>
       <h2 class="blog-title"><a href="/news/2015/08/24/introducing-flink-gelly.html">Introducing Gelly: Graph Processing with Apache Flink</a></h2>
       <p>24 Aug 2015</p>
 
-      <p><p>This blog post introduces <strong>Gelly</strong>, Apache Flink&#8217;s <em>graph-processing API and library</em>. Flink&#8217;s native support
+      <p><p>This blog post introduces <strong>Gelly</strong>, Apache Flink’s <em>graph-processing API and library</em>. Flink’s native support
 for iterations makes it a suitable platform for large-scale graph analytics.
 By leveraging delta iterations, Gelly is able to map various graph processing models such as
 vertex-centric or gather-sum-apply to Flink dataflows.</p>

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/blog/page2/index.html
----------------------------------------------------------------------
diff --git a/content/blog/page2/index.html b/content/blog/page2/index.html
index 2dcd1ab..4f62fe8 100644
--- a/content/blog/page2/index.html
+++ b/content/blog/page2/index.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/blog/page3/index.html
----------------------------------------------------------------------
diff --git a/content/blog/page3/index.html b/content/blog/page3/index.html
index 5f39e22..36512a1 100644
--- a/content/blog/page3/index.html
+++ b/content/blog/page3/index.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 
@@ -214,7 +216,7 @@
       <h2 class="blog-title"><a href="/news/2014/01/26/optimizer_plan_visualization_tool.html">Optimizer Plan Visualization Tool</a></h2>
       <p>26 Jan 2014</p>
 
-      <p><p>Stratosphere&#8217;s hybrid approach combines <strong>MapReduce</strong> and <strong>MPP database</strong> techniques. One central part of this approach is to have a <strong>separation between the programming (API) and the way programs are executed</strong> <em>(execution plans)</em>. The <strong>compiler/optimizer</strong> decides the details concerning caching or when to partition/broadcast with a holistic view of the program. The same program may actually be executed differently in different scenarios (input data of different sizes, different number of machines).</p>
+      <p><p>Stratosphere’s hybrid approach combines <strong>MapReduce</strong> and <strong>MPP database</strong> techniques. One central part of this approach is to have a <strong>separation between the programming (API) and the way programs are executed</strong> <em>(execution plans)</em>. The <strong>compiler/optimizer</strong> decides the details concerning caching or when to partition/broadcast with a holistic view of the program. The same program may actually be executed differently in different scenarios (input data of different sizes, different number of machines).</p>
 
 </p>
 
@@ -253,7 +255,7 @@
       <h2 class="blog-title"><a href="/news/2014/01/10/stratosphere-hadoop-summit.html">Stratosphere got accepted to the Hadoop Summit Europe in Amsterdam</a></h2>
       <p>10 Jan 2014</p>
 
-      <p><p>The Stratosphere team is proud to announce that it is going to present at the <a href="http://hadoopsummit.org/amsterdam/">Hadoop Summit 2014 in Amsterdam</a> on April 2-3. Our talk &#8220;Big Data looks tiny from Stratosphere&#8221; is part of the &#8220;Future of Hadoop&#8221; Track. The talk abstract already made it into the top 5 in the <a href="https://hadoopsummit.uservoice.com/forums/196822-future-of-apache-hadoop/filters/top">Community Vote</a> that took place by the end of last year.</p>
+      <p><p>The Stratosphere team is proud to announce that it is going to present at the <a href="http://hadoopsummit.org/amsterdam/">Hadoop Summit 2014 in Amsterdam</a> on April 2-3. Our talk “Big Data looks tiny from Stratosphere” is part of the “Future of Hadoop” Track. The talk abstract already made it into the top 5 in the <a href="https://hadoopsummit.uservoice.com/forums/196822-future-of-apache-hadoop/filters/top">Community Vote</a> that took place by the end of last year.</p>
 
 </p>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/blog/page4/index.html
----------------------------------------------------------------------
diff --git a/content/blog/page4/index.html b/content/blog/page4/index.html
index 6c2b8fa..018512d 100644
--- a/content/blog/page4/index.html
+++ b/content/blog/page4/index.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/coding-guidelines.html
----------------------------------------------------------------------
diff --git a/content/coding-guidelines.html b/content/coding-guidelines.html
deleted file mode 100644
index 9abe396..0000000
--- a/content/coding-guidelines.html
+++ /dev/null
@@ -1,227 +0,0 @@
-<!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: Coding Guidelines</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" />
-
-    <!-- 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>  
-    
-
-  <!-- Top navbar. -->
-    <nav class="navbar navbar-default navbar-fixed-top">
-      <div class="container">
-        <!-- 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.jpg" width="78px" height="40px"></a>
-          </div>
-        </div><!-- /.navbar-header -->
-
-        <!-- The navigation links. -->
-        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
-          <ul class="nav navbar-nav">
-            <!-- Overview -->
-            <li><a href="/index.html">Overview</a></li>
-
-            <!-- Quickstart -->
-            <li class="dropdown">
-              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Quickstart <span class="caret"></span></a>
-              <ul class="dropdown-menu" role="menu">
-                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/quickstart/setup_quickstart.html">Setup</a></li>
-                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/quickstart/java_api_quickstart.html">Java API</a></li>
-                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/quickstart/scala_api_quickstart.html">Scala API</a></li>
-                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/quickstart/run_example_quickstart.html">Run Step-by-Step Example</a></li>
-              </ul>
-            </li>
-
-            <!-- Features -->
-            <li><a href="/features.html">Features</a></li>
-
-            <!-- Downloads -->
-            <li><a href="/downloads.html">Downloads</a></li>
-
-            <!-- Documentation -->
-            <li class="dropdown">
-              <a href="" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Documentation <span class="caret"></span></a>
-              <ul class="dropdown-menu" role="menu">
-                <!-- Latest stable release -->
-                <li role="presentation" class="dropdown-header"><strong>Latest Release</strong> (Stable)</li>
-                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9">0.9.1 Documentation</a></li>
-                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/api/java" class="active">0.9.1 Javadocs</a></li>
-                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/api/scala/index.html" class="active">0.9.1 ScalaDocs</a></li>
-
-                <!-- Snapshot docs -->
-                <li class="divider"></li>
-                <li role="presentation" class="dropdown-header"><strong>Snapshot</strong> (Development)</li>
-                <li><a href="http://ci.apache.org/projects/flink/flink-docs-master">0.10 Documentation</a></li>
-                <li><a href="http://ci.apache.org/projects/flink/flink-docs-master/api/java" class="active">0.10 Javadocs</a></li>
-                <li><a href="http://ci.apache.org/projects/flink/flink-docs-master/api/scala/index.html" class="active">0.10 ScalaDocs</a></li>
-
-                <!-- Wiki -->
-                <li class="divider"></li>
-                <li><a href="https://cwiki.apache.org/confluence/display/FLINK/Apache+Flink+Home"><small><span class="glyphicon glyphicon-new-window"></span></small> Wiki</a></li>
-              </ul>
-            </li>
-
-            <!-- FAQ -->
-            <li><a href="/faq.html">FAQ</a></li>
-          </ul>
-
-          <ul class="nav navbar-nav navbar-right">
-            <!-- Blog -->
-            <li class=" hidden-md hidden-sm"><a href="/blog/">Blog</a></li>
-
-            <li class="dropdown active hidden-md hidden-sm">
-              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Community <span class="caret"></span></a>
-              <ul class="dropdown-menu" role="menu">
-                <!-- Community -->
-                <li role="presentation" class="dropdown-header"><strong>Community</strong></li>
-                <li><a href="/community.html#mailing-lists">Mailing Lists</a></li>
-                <li><a href="/community.html#irc">IRC</a></li>
-                <li><a href="/community.html#stack-overflow">Stack Overflow</a></li>
-                <li><a href="/community.html#issue-tracker">Issue Tracker</a></li>
-                <li><a href="/community.html#source-code">Source Code</a></li>
-                <li><a href="/community.html#people">People</a></li>
-
-                <!-- Contribute -->
-                <li class="divider"></li>
-                <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
-                <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
-              </ul>
-            </li>
-
-            <li class="dropdown hidden-md hidden-sm">
-              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Project <span class="caret"></span></a>
-              <ul class="dropdown-menu" role="menu">
-                <!-- Project -->
-                <li role="presentation" class="dropdown-header"><strong>Project</strong></li>
-                <li><a href="/material.html">Material</a></li>
-                <li><a href="https://twitter.com/apacheflink"><small><span class="glyphicon glyphicon-new-window"></span></small> Twitter</a></li>
-                <li><a href="https://github.com/apache/flink"><small><span class="glyphicon glyphicon-new-window"></span></small> GitHub</a></li>
-                <li><a href="https://cwiki.apache.org/confluence/display/FLINK/Apache+Flink+Home"><small><span class="glyphicon glyphicon-new-window"></span></small> Wiki</a></li>
-              </ul>
-            </li>
-          </ul>
-        </div><!-- /.navbar-collapse -->
-      </div><!-- /.container -->
-    </nav>
-
-
-    <!-- Main content. -->
-    <div class="container">
-      
-
-<div class="row">
-  <div class="col-sm-8 col-sm-offset-2">
-    <div class="row">
-      <div class="col-sm-12"><h1>Coding Guidelines</h1></div>
-    </div>
-
-<p>These are the coding and style guidelines that we follow.</p>
-
-<h2 id="guidelines-for-pull-requests-and-patches">Guidelines for pull requests and patches</h2>
-
-<ul>
-  <li><strong>JIRA issue and commit message</strong>. A pull request should 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.</li>
-  <li><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.</li>
-  <li><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.</li>
-  <li><strong>Single change per PR</strong>. Please do not combine various unrelated changes in a single pull request. Rather, open multiple individual pull requests. This ensures that pull requests are <em>topic related</em>, can be merged more easily, and typically result in topic-specific merge conflicts only.</li>
-  <li><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.</li>
-  <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>
-  <li><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.</li>
-  <li><strong>Cleanup</strong>. Before opening a pull request follow this checklist:
-    <ul>
-      <li>Rebase onto the latest version of the master branch</li>
-      <li>Clean up your commits, i.e., squash them in a reasonable way and give meaningful commit messages</li>
-      <li>Run <em>all</em> tests either locally with <code>mvn clean verify</code> or use Travis CI to check the build</li>
-    </ul>
-  </li>
-  <li><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.</li>
-  <li><strong>Javadocs for public methods</strong>. Public methods and classes that are part of the user-facing API need to have JavaDocs. Please write meaningful docs. Good docs are concise and informative.</li>
-  <li><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.</li>
-  <li><strong>Follow the coding style</strong> (see below). The checkstyle plugin verifies these rules when you build the code. If your code does not follow the checkstyle rules, Maven will not compile it and consequently the build will fail.</li>
-</ul>
-
-<h2 id="coding-style-guidelines">Coding Style Guidelines</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>
-
-
-  </div>
-</div>
-
-
-      <hr />
-      <div class="footer text-center">
-        <p>Copyright © 2014-2015 <a href="http://apache.org">The Apache Software Foundation</a>. All Rights Reserved.</p>
-        <p>Apache Flink, Apache, and the Apache feather logo are 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><!-- /.container -->
-
-    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
-    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
-    <!-- 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>
-
-    <!-- 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/415ee891/content/community.html
----------------------------------------------------------------------
diff --git a/content/community.html b/content/community.html
index 2084a87..8442d59 100644
--- a/content/community.html
+++ b/content/community.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 
@@ -147,17 +149,17 @@
 
 <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>
+  <li><a href="#mailing-lists">Mailing Lists</a></li>
+  <li><a href="#irc">IRC</a></li>
+  <li><a href="#stack-overflow">Stack Overflow</a></li>
+  <li><a href="#issue-tracker">Issue Tracker</a></li>
+  <li><a href="#source-code">Source Code</a>    <ul>
+      <li><a href="#main-source-repositories">Main source repositories</a></li>
+      <li><a href="#website-repositories">Website repositories</a></li>
     </ul>
   </li>
-  <li><a href="#people" id="markdown-toc-people">People</a></li>
-  <li><a href="#former-mentors" id="markdown-toc-former-mentors">Former mentors</a></li>
+  <li><a href="#people">People</a></li>
+  <li><a href="#former-mentors">Former mentors</a></li>
 </ul>
 
 </div>

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/contribute-code.html
----------------------------------------------------------------------
diff --git a/content/contribute-code.html b/content/contribute-code.html
new file mode 100644
index 0000000..b0a634f
--- /dev/null
+++ b/content/contribute-code.html
@@ -0,0 +1,508 @@
+<!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" />
+
+    <!-- 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>  
+    
+
+  <!-- Top navbar. -->
+    <nav class="navbar navbar-default navbar-fixed-top">
+      <div class="container">
+        <!-- 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.jpg" width="78px" height="40px"></a>
+          </div>
+        </div><!-- /.navbar-header -->
+
+        <!-- The navigation links. -->
+        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
+          <ul class="nav navbar-nav">
+            <!-- Overview -->
+            <li><a href="/index.html">Overview</a></li>
+
+            <!-- Quickstart -->
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Quickstart <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/quickstart/setup_quickstart.html">Setup</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/quickstart/java_api_quickstart.html">Java API</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/quickstart/scala_api_quickstart.html">Scala API</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/quickstart/run_example_quickstart.html">Run Step-by-Step Example</a></li>
+              </ul>
+            </li>
+
+            <!-- Features -->
+            <li><a href="/features.html">Features</a></li>
+
+            <!-- Downloads -->
+            <li><a href="/downloads.html">Downloads</a></li>
+
+            <!-- Documentation -->
+            <li class="dropdown">
+              <a href="" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Documentation <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <!-- Latest stable release -->
+                <li role="presentation" class="dropdown-header"><strong>Latest Release</strong> (Stable)</li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9">0.9.1 Documentation</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/api/java" class="active">0.9.1 Javadocs</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/api/scala/index.html" class="active">0.9.1 ScalaDocs</a></li>
+
+                <!-- Snapshot docs -->
+                <li class="divider"></li>
+                <li role="presentation" class="dropdown-header"><strong>Snapshot</strong> (Development)</li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-master">0.10 Documentation</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-master/api/java" class="active">0.10 Javadocs</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-master/api/scala/index.html" class="active">0.10 ScalaDocs</a></li>
+
+                <!-- Wiki -->
+                <li class="divider"></li>
+                <li><a href="https://cwiki.apache.org/confluence/display/FLINK/Apache+Flink+Home"><small><span class="glyphicon glyphicon-new-window"></span></small> Wiki</a></li>
+              </ul>
+            </li>
+
+            <!-- FAQ -->
+            <li><a href="/faq.html">FAQ</a></li>
+          </ul>
+
+          <ul class="nav navbar-nav navbar-right">
+            <!-- Blog -->
+            <li class=" hidden-md hidden-sm"><a href="/blog/">Blog</a></li>
+
+            <li class="dropdown hidden-md hidden-sm">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Community <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <!-- Community -->
+                <li role="presentation" class="dropdown-header"><strong>Community</strong></li>
+                <li><a href="/community.html#mailing-lists">Mailing Lists</a></li>
+                <li><a href="/community.html#irc">IRC</a></li>
+                <li><a href="/community.html#stack-overflow">Stack Overflow</a></li>
+                <li><a href="/community.html#issue-tracker">Issue Tracker</a></li>
+                <li><a href="/community.html#source-code">Source Code</a></li>
+                <li><a href="/community.html#people">People</a></li>
+
+                <!-- Contribute -->
+                <li class="divider"></li>
+                <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
+                <li><a href="/how-to-contribute.html">How to Contribute</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
+              </ul>
+            </li>
+
+            <li class="dropdown hidden-md hidden-sm">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Project <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <!-- Project -->
+                <li role="presentation" class="dropdown-header"><strong>Project</strong></li>
+                <li><a href="/material.html">Material</a></li>
+                <li><a href="https://twitter.com/apacheflink"><small><span class="glyphicon glyphicon-new-window"></span></small> Twitter</a></li>
+                <li><a href="https://github.com/apache/flink"><small><span class="glyphicon glyphicon-new-window"></span></small> GitHub</a></li>
+                <li><a href="https://cwiki.apache.org/confluence/display/FLINK/Apache+Flink+Home"><small><span class="glyphicon glyphicon-new-window"></span></small> Wiki</a></li>
+              </ul>
+            </li>
+          </ul>
+        </div><!-- /.navbar-collapse -->
+      </div><!-- /.container -->
+    </nav>
+
+
+    <!-- Main content. -->
+    <div class="container">
+      
+
+<div class="row">
+  <div class="col-sm-8 col-sm-offset-2">
+    <div class="row">
+      <div class="col-sm-12"><h1>Contributing Code</h1></div>
+    </div>
+
+<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.</p>
+
+<div class="page-toc">
+<ul id="markdown-toc">
+  <li><a href="#code-contribution-process">Code Contribution Process</a>    <ul>
+      <li><a href="#before-you-start-coding">Before you start coding…</a></li>
+      <li><a href="#while-coding">While coding…</a></li>
+      <li><a href="#verifying-the-compliance-of-your-code">Verifying the compliance of your code</a></li>
+      <li><a href="#preparing-and-submitting-your-contribution">Preparing and submitting your contribution</a></li>
+    </ul>
+  </li>
+  <li><a href="#coding-guidelines">Coding guidelines</a></li>
+  <li><a href="#code-style">Code style</a></li>
+  <li><a href="#best-practices">Best practices</a></li>
+  <li><a href="#setup-a-development-environment">Setup a development environment</a>    <ul>
+      <li><a href="#requirements-for-developing-and-building-flink">Requirements for developing and building Flink</a></li>
+    </ul>
+  </li>
+  <li><a href="#how-to-use-git-as-a-committer">How to use Git as a committer</a></li>
+  <li><a href="#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>
+</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 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>0.10-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="http://stratosphere-bin.s3-website-us-east-1.amazonaws.com/flink-0.10-SNAPSHOT-bin-hadoop1.tgz" class="ga-track" id="download-hadoop1-nightly">flink-0.10-SNAPSHOT-bin-hadoop1.tgz</a></li>
+  <li><strong>Hadoop 2 and YARN</strong>: <a href="http://stratosphere-bin.s3-website-us-east-1.amazonaws.com/flink-0.10-SNAPSHOT-bin-hadoop2.tgz" class="ga-track" id="download-hadoop2-nightly">flink-0.10-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>0.10-SNAPSHOT</code> (or <code>0.10-SNAPSHOT-hadoop1</code> for compatibility with old Hadoop 1.x versions).</p>
+
+
+  </div>
+</div>
+
+
+      <hr />
+      <div class="footer text-center">
+        <p>Copyright © 2014-2015 <a href="http://apache.org">The Apache Software Foundation</a>. All Rights Reserved.</p>
+        <p>Apache Flink, Apache, and the Apache feather logo are 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><!-- /.container -->
+
+    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
+    <!-- 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>
+
+    <!-- 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/415ee891/content/contribute-documentation.html
----------------------------------------------------------------------
diff --git a/content/contribute-documentation.html b/content/contribute-documentation.html
new file mode 100644
index 0000000..83b1906
--- /dev/null
+++ b/content/contribute-documentation.html
@@ -0,0 +1,247 @@
+<!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: Contribute Documentation</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" />
+
+    <!-- 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>  
+    
+
+  <!-- Top navbar. -->
+    <nav class="navbar navbar-default navbar-fixed-top">
+      <div class="container">
+        <!-- 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.jpg" width="78px" height="40px"></a>
+          </div>
+        </div><!-- /.navbar-header -->
+
+        <!-- The navigation links. -->
+        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
+          <ul class="nav navbar-nav">
+            <!-- Overview -->
+            <li><a href="/index.html">Overview</a></li>
+
+            <!-- Quickstart -->
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Quickstart <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/quickstart/setup_quickstart.html">Setup</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/quickstart/java_api_quickstart.html">Java API</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/quickstart/scala_api_quickstart.html">Scala API</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/quickstart/run_example_quickstart.html">Run Step-by-Step Example</a></li>
+              </ul>
+            </li>
+
+            <!-- Features -->
+            <li><a href="/features.html">Features</a></li>
+
+            <!-- Downloads -->
+            <li><a href="/downloads.html">Downloads</a></li>
+
+            <!-- Documentation -->
+            <li class="dropdown">
+              <a href="" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Documentation <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <!-- Latest stable release -->
+                <li role="presentation" class="dropdown-header"><strong>Latest Release</strong> (Stable)</li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9">0.9.1 Documentation</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/api/java" class="active">0.9.1 Javadocs</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-release-0.9/api/scala/index.html" class="active">0.9.1 ScalaDocs</a></li>
+
+                <!-- Snapshot docs -->
+                <li class="divider"></li>
+                <li role="presentation" class="dropdown-header"><strong>Snapshot</strong> (Development)</li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-master">0.10 Documentation</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-master/api/java" class="active">0.10 Javadocs</a></li>
+                <li><a href="http://ci.apache.org/projects/flink/flink-docs-master/api/scala/index.html" class="active">0.10 ScalaDocs</a></li>
+
+                <!-- Wiki -->
+                <li class="divider"></li>
+                <li><a href="https://cwiki.apache.org/confluence/display/FLINK/Apache+Flink+Home"><small><span class="glyphicon glyphicon-new-window"></span></small> Wiki</a></li>
+              </ul>
+            </li>
+
+            <!-- FAQ -->
+            <li><a href="/faq.html">FAQ</a></li>
+          </ul>
+
+          <ul class="nav navbar-nav navbar-right">
+            <!-- Blog -->
+            <li class=" hidden-md hidden-sm"><a href="/blog/">Blog</a></li>
+
+            <li class="dropdown hidden-md hidden-sm">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Community <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <!-- Community -->
+                <li role="presentation" class="dropdown-header"><strong>Community</strong></li>
+                <li><a href="/community.html#mailing-lists">Mailing Lists</a></li>
+                <li><a href="/community.html#irc">IRC</a></li>
+                <li><a href="/community.html#stack-overflow">Stack Overflow</a></li>
+                <li><a href="/community.html#issue-tracker">Issue Tracker</a></li>
+                <li><a href="/community.html#source-code">Source Code</a></li>
+                <li><a href="/community.html#people">People</a></li>
+
+                <!-- Contribute -->
+                <li class="divider"></li>
+                <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
+                <li><a href="/how-to-contribute.html">How to Contribute</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
+              </ul>
+            </li>
+
+            <li class="dropdown hidden-md hidden-sm">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Project <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <!-- Project -->
+                <li role="presentation" class="dropdown-header"><strong>Project</strong></li>
+                <li><a href="/material.html">Material</a></li>
+                <li><a href="https://twitter.com/apacheflink"><small><span class="glyphicon glyphicon-new-window"></span></small> Twitter</a></li>
+                <li><a href="https://github.com/apache/flink"><small><span class="glyphicon glyphicon-new-window"></span></small> GitHub</a></li>
+                <li><a href="https://cwiki.apache.org/confluence/display/FLINK/Apache+Flink+Home"><small><span class="glyphicon glyphicon-new-window"></span></small> Wiki</a></li>
+              </ul>
+            </li>
+          </ul>
+        </div><!-- /.navbar-collapse -->
+      </div><!-- /.container -->
+    </nav>
+
+
+    <!-- Main content. -->
+    <div class="container">
+      
+
+<div class="row">
+  <div class="col-sm-8 col-sm-offset-2">
+    <div class="row">
+      <div class="col-sm-12"><h1>Contribute Documentation</h1></div>
+    </div>
+
+<p>Good documentation is crucial for any kind of software. This is especially true for sophisticated software systems such as distributed data processing engines like Apache Flink. The Apache Flink community aims to provide concise, precise, and complete documentation and welcomes any contribution to improve Apache Flink’s documentation.</p>
+
+<div class="page-toc">
+<ul id="markdown-toc">
+  <li><a href="#obtain-the-documentation-sources">Obtain the documentation sources</a></li>
+  <li><a href="#before-you-start-working-on-the-documentation-">Before you start working on the documentation …</a></li>
+  <li><a href="#update-or-extend-the-documentation">Update or extend the documentation</a></li>
+  <li><a href="#submit-your-contribution">Submit your contribution</a></li>
+</ul>
+
+</div>
+
+<h2 id="obtain-the-documentation-sources">Obtain the documentation sources</h2>
+
+<p>Apache Flink’s documentation is maintained in the same <a href="http://git-scm.com/">git</a> repository as the code base. This is done to ensure that code and documentation can be easily kept in sync. </p>
+
+<p>The easiest way to contribute documentation is to fork <a href="https://github.com/apache/flink">Flink’s mirrored repository on Github</a> into your own Github account by clicking on the fork button at the top right. If you have no Github account, you can create one for free.</p>
+
+<p>Next, clone your fork 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 documentation is located in the <code>docs/</code> subdirectory of the Flink code base.</p>
+
+<h2 id="before-you-start-working-on-the-documentation-">Before you start working on the documentation …</h2>
+
+<p>… please make sure there exists a <a href="https://issues.apache.org/jira/browse/FLINK">JIRA</a> issue that corresponds to your contribution. We require all documentation changes to refer to a JIRA issue, except for trivial fixes such as typos. </p>
+
+<h2 id="update-or-extend-the-documentation">Update or extend the documentation</h2>
+
+<p>The Flink documentation is written in <a href="http://daringfireball.net/projects/markdown/">Markdown</a>. Markdown is a lightweight markup language which can be translated to HTML.</p>
+
+<p>In order to update or extend the documentation you have to modify the Markdown (<code>.md</code>) files. Please verify your changes by starting the build script in preview mode.</p>
+
+<div class="highlight"><pre><code>cd docs
+./build_docs.sh -p
+</code></pre></div>
+
+<p>The script compiles the Markdown files into static HTML pages and starts a local webserver. Open your browser at <code>http://localhost:4000</code> to view the compiled documentation including your changes. The served documentation is automatically re-compiled and updated when you modify and save Markdown files and refresh your browser.</p>
+
+<p>Please feel free to ask any questions you have on the developer mailing list.</p>
+
+<h2 id="submit-your-contribution">Submit your contribution</h2>
+
+<p>The Flink project accepts documentation contributions through the <a href="https://github.com/apache/flink">GitHub Mirror</a> as <a href="https://help.github.com/articles/using-pull-requests">Pull Requests</a>. Pull requests are a simple way of offering a patch by providing a pointer to a code branch that contains the changes.</p>
+
+<p>To prepare and submit a pull request follow these steps.</p>
+
+<ol>
+  <li>
+    <p>Commit your changes to your local git repository. The commit message should point to the corresponding JIRA issue by starting with <code>[FLINK-XXXX]</code>. </p>
+  </li>
+  <li>
+    <p>Push your committed contribution to your fork of the Flink repository at Github.</p>
+
+    <p><code>
+ git push origin myBranch
+</code></p>
+  </li>
+  <li>
+    <p>Go the website of your repository fork (<code>https://github.com/&lt;your-user-name&gt;/flink</code>) and use the “Create Pull Request” 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 submit it.</p>
+  </li>
+</ol>
+
+<p>It is also possible to attach a patch to a <a href="https://issues.apache.org/jira/browse/FLINK">JIRA</a> issue.</p>
+
+
+
+  </div>
+</div>
+
+
+      <hr />
+      <div class="footer text-center">
+        <p>Copyright © 2014-2015 <a href="http://apache.org">The Apache Software Foundation</a>. All Rights Reserved.</p>
+        <p>Apache Flink, Apache, and the Apache feather logo are 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><!-- /.container -->
+
+    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
+    <!-- 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>
+
+    <!-- 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/415ee891/content/css/flink.css
----------------------------------------------------------------------
diff --git a/content/css/flink.css b/content/css/flink.css
index 7e04d60..5b68542 100644
--- a/content/css/flink.css
+++ b/content/css/flink.css
@@ -51,6 +51,10 @@ h3, h4, h5, h6 {
 	font-size: 120%;
 }
 
+blockquote {
+	font-size: 100%;
+}
+
 /*=============================================================================
                               Table of Contents
 =============================================================================*/

http://git-wip-us.apache.org/repos/asf/flink-web/blob/415ee891/content/downloads.html
----------------------------------------------------------------------
diff --git a/content/downloads.html b/content/downloads.html
index 21d9c6d..c27193e 100644
--- a/content/downloads.html
+++ b/content/downloads.html
@@ -112,7 +112,9 @@
                 <li class="divider"></li>
                 <li role="presentation" class="dropdown-header"><strong>Contribute</strong></li>
                 <li><a href="/how-to-contribute.html">How to Contribute</a></li>
-                <li><a href="/coding-guidelines.html">Coding Guidelines</a></li>
+                <li><a href="/contribute-code.html">Contribute Code</a></li>
+                <li><a href="/contribute-documentation.html">Contribute Documentation</a></li>
+                <li><a href="/improve-website.html">Improve the Website</a></li>
               </ul>
             </li>
 
@@ -156,9 +158,9 @@ $( document ).ready(function() {
 
 <div class="page-toc">
 <ul id="markdown-toc">
-  <li><a href="#latest-stable-release-v091" id="markdown-toc-latest-stable-release-v091">Latest stable release (v0.9.1)</a></li>
-  <li><a href="#maven-dependencies" id="markdown-toc-maven-dependencies">Maven Dependencies</a></li>
-  <li><a href="#all-releases" id="markdown-toc-all-releases">All releases</a></li>
+  <li><a href="#latest-stable-release-v091">Latest stable release (v0.9.1)</a></li>
+  <li><a href="#maven-dependencies">Maven Dependencies</a></li>
+  <li><a href="#all-releases">All releases</a></li>
 </ul>
 
 </div>