You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@heron.apache.org by jo...@apache.org on 2021/05/26 23:25:32 UTC

[incubator-heron] 03/03: adding versioned docs; updating heron:bazel matrix

This is an automated email from the ASF dual-hosted git repository.

joshfischer pushed a commit to branch joshfischer/0.20.4-incubating-site
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git

commit d5c6bb9f0290efa6d3a2857bf77ed306bbcb3665
Author: Josh Fischer <jo...@joshfischer.io>
AuthorDate: Wed May 26 18:24:59 2021 -0500

    adding versioned docs; updating heron:bazel matrix
---
 website2/website/scripts/replace.js                |   1 +
 .../version-0.20.4-incubating/compiling-linux.md   | 212 ++++++++++++++++
 .../version-0.20.4-incubating/compiling-osx.md     |  89 +++++++
 .../compiling-overview.md                          | 144 +++++++++++
 .../getting-started-docker.md                      |  29 +++
 .../getting-started-local-single-node.md           | 275 +++++++++++++++++++++
 .../heron-resources-resources.md                   |  69 ++++++
 .../version-0.20.4-incubating-sidebars.json        | 100 ++++++++
 website2/website/versions.json                     |   1 +
 9 files changed, 920 insertions(+)

diff --git a/website2/website/scripts/replace.js b/website2/website/scripts/replace.js
index bb5ac7a..72e4e19 100755
--- a/website2/website/scripts/replace.js
+++ b/website2/website/scripts/replace.js
@@ -39,6 +39,7 @@ const bazelVersions = {
     '0.20.1-incubating': '0.26.0',
     '0.20.2-incubating': '0.26.0',
     '0.20.3-incubating': '3.7.0',
+    '0.20.4-incubating': '3.7.2',
     'latest': '3.7.2',
 }
 
diff --git a/website2/website/versioned_docs/version-0.20.4-incubating/compiling-linux.md b/website2/website/versioned_docs/version-0.20.4-incubating/compiling-linux.md
new file mode 100644
index 0000000..7ff5470
--- /dev/null
+++ b/website2/website/versioned_docs/version-0.20.4-incubating/compiling-linux.md
@@ -0,0 +1,212 @@
+---
+id: version-0.20.4-incubating-compiling-linux
+title: Compiling on Linux
+sidebar_label: Compiling on Linux
+original_id: compiling-linux
+---
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+      http://www.apache.org/licenses/LICENSE-2.0
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+
+Heron can currently be built on the following Linux platforms:
+
+* [Ubuntu 18.04](#building-on-ubuntu-18.04)
+* [CentOS 7](#building-on-centos-7)
+
+## Building on Ubuntu 18.04
+
+To build Heron on a fresh Ubuntu 18.04 installation:
+
+### Step 1 --- Update Ubuntu
+
+```bash
+$ sudo apt-get update -y
+$ sudo apt-get upgrade -y
+```
+
+### Step 2 --- Install required libraries
+
+```bash
+$ sudo apt-get install git build-essential automake cmake libtool-bin zip ant \
+  libunwind-setjmp0-dev zlib1g-dev unzip pkg-config python3-setuptools -y
+```
+
+#### Step 3 --- Set the following environment variables
+
+```bash
+export CC=/usr/bin/gcc
+export CCX=/usr/bin/g++
+```
+
+### Step 4 --- Install JDK 11 and set JAVA_HOME
+
+```bash
+$ sudo add-apt-repository ppa:webupd8team/java
+$ sudo apt-get update -y
+$ sudo apt-get install openjdk-11-jdk-headless -y
+$ export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
+```
+
+#### Step 5 - Install Bazel {{% bazelVersion %}}
+
+```bash
+wget -O /tmp/bazel.sh https://github.com/bazelbuild/bazel/releases/download/0.26.0/bazel-0.26.0-installer-linux-x86_64.sh
+chmod +x /tmp/bazel.sh
+/tmp/bazel.sh --user
+```
+
+Make sure to download the appropriate version of Bazel (currently {{%
+bazelVersion %}}).
+
+### Step 6 --- Install python development tools
+```bash
+$ sudo apt-get install  python3-dev python3-pip
+```
+
+### Step 7 --- Make sure the Bazel executable is in your `PATH`
+
+```bash
+$ export PATH="$PATH:$HOME/bin"
+```
+
+### Step 8 --- Fetch the latest version of Heron's source code
+
+```bash
+$ git clone https://github.com/apache/incubator-heron.git && cd heron
+```
+
+### Step 9 --- Configure Heron for building with Bazel
+
+```bash
+$ ./bazel_configure.py
+```
+
+### Step 10 --- Build the project
+
+```bash
+$ bazel build --config=ubuntu heron/...
+```
+
+### Step 11 --- Build the packages
+
+```bash
+$ bazel build --config=ubuntu scripts/packages:binpkgs
+$ bazel build --config=ubuntu scripts/packages:tarpkgs
+```
+
+This will install Heron packages in the `bazel-bin/scripts/packages/` directory.
+
+## Manually Installing Libraries
+
+If you encounter errors with [libunwind](http://www.nongnu.org/libunwind), [libtool](https://www.gnu.org/software/libtool), or
+[gperftools](https://github.com/gperftools/gperftools/releases), we recommend
+installing them manually.
+
+### Compling and installing libtool
+
+```bash
+$ wget http://ftpmirror.gnu.org/libtool/libtool-2.4.6.tar.gz
+$ tar -xvf libtool-2.4.6.tar.gz
+$ cd libtool-2.4.6
+$ ./configure
+$ make
+$ sudo make install
+```
+
+### Compiling and installing libunwind
+
+```bash
+$ wget http://download.savannah.gnu.org/releases/libunwind/libunwind-1.1.tar.gz
+$ tar -xvf libunwind-1.1.tar.gz
+$ cd libunwind-1.1
+$ ./configure
+$ make
+$ sudo make install
+```
+
+### Compiling and installing gperftools
+
+```bash
+$ wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.5/gperftools-2.5.tar.gz
+$ tar -xvf gperftools-2.5.tar.gz
+$ cd gperftools-2.5
+$ ./configure
+$ make
+$ sudo make install
+```
+
+## Building on CentOS 7
+
+To build Heron on a fresh CentOS 7 installation:
+
+### Step 1 --- Install the required dependencies
+
+```bash
+$ sudo yum install gcc gcc-c++ kernel-devel wget unzip zlib-devel zip git automake cmake patch libtool ant pkg-config -y
+```
+
+### Step 2 --- Install libunwind from source
+
+```bash
+$ wget http://download.savannah.gnu.org/releases/libunwind/libunwind-1.1.tar.gz
+$ tar xvf libunwind-1.1.tar.gz
+$ cd libunwind-1.1
+$ ./configure
+$ make
+$ sudo make install
+```
+
+### Step 3 --- Set the following environment variables
+
+```bash
+$ export CC=/usr/bin/gcc
+$ export CCX=/usr/bin/g++
+```
+
+### Step 4 --- Install JDK 11
+
+```bash
+$ sudo yum install java-11-openjdk java-11-openjdk-devel
+$ export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
+```
+
+#### Step 5 - Install Bazel {{% bazelVersion %}}
+
+```bash
+wget -O /tmp/bazel.sh https://github.com/bazelbuild/bazel/releases/download/0.26.0/bazel-0.26.0-installer-linux-x86_64.sh
+chmod +x /tmp/bazel.sh
+/tmp/bazel.sh --user
+```
+
+Make sure to download the appropriate version of Bazel (currently {{%
+bazelVersion %}}).
+
+### Step 6 --- Download Heron and compile it
+
+```bash
+$ git clone https://github.com/apache/incubator-heron.git && cd heron
+$ ./bazel_configure.py
+$ bazel build --config=centos heron/...
+```
+
+### Step 7 --- Build the binary packages
+
+```bash
+$ bazel build --config=centos scripts/packages:binpkgs
+$ bazel build --config=centos scripts/packages:tarpkgs
+```
+
+This will install Heron packages in the `bazel-bin/scripts/packages/` directory.
diff --git a/website2/website/versioned_docs/version-0.20.4-incubating/compiling-osx.md b/website2/website/versioned_docs/version-0.20.4-incubating/compiling-osx.md
new file mode 100644
index 0000000..20b2130
--- /dev/null
+++ b/website2/website/versioned_docs/version-0.20.4-incubating/compiling-osx.md
@@ -0,0 +1,89 @@
+---
+id: version-0.20.4-incubating-compiling-osx
+title: Compiling on OS X
+sidebar_label: Compiling on OS X
+original_id: compiling-osx
+---
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+      http://www.apache.org/licenses/LICENSE-2.0
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+
+This is a step-by-step guide to building Heron on Mac OS X (versions 10.10 and
+  10.11).
+
+### Step 1 --- Install Homebrew
+
+If [Homebrew](http://brew.sh/) isn't yet installed on your system, you can
+install it using this one-liner:
+
+```bash
+$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
+```
+
+### Step 2 -- Install Bazel
+```bash
+wget -O /tmp/bazel.sh https://github.com/bazelbuild/bazel/releases/download/3.7.2/bazel-3.7.2-installer-darwin-x86_64.sh
+chmod +x /tmp/bazel.sh
+/tmp/bazel.sh --user
+```
+
+### Step 2 --- Install other required libraries
+
+```bash
+brew install automake
+brew install cmake
+brew install libtool
+brew install ant
+brew install pkg-config
+```
+
+### Step 3 --- Set the following environment variables
+
+```bash
+$ export CC=/usr/bin/clang
+$ export CXX=/usr/bin/clang++
+$ echo $CC $CXX
+```
+
+### Step 4 --- Fetch the latest version of Heron's source code
+
+```bash
+$ git clone https://github.com/apache/incubator-heron.git && cd incubator-heron
+```
+
+### Step 5 --- Configure Heron for building with Bazel
+
+```bash
+$ ./bazel_configure.py
+```
+
+If this configure script fails with missing dependencies, Homebrew can be used
+to install those dependencies.
+
+### Step 6 --- Build the project
+
+```bash
+$ bazel build --config=darwin heron/...
+```
+
+### Step 7 --- Build the packages
+
+```bash
+$ bazel build --config=darwin scripts/packages:binpkgs
+$ bazel build --config=darwin scripts/packages:tarpkgs
+```
+
+This will install Heron packages in the `bazel-bin/scripts/packages/` directory.
diff --git a/website2/website/versioned_docs/version-0.20.4-incubating/compiling-overview.md b/website2/website/versioned_docs/version-0.20.4-incubating/compiling-overview.md
new file mode 100644
index 0000000..0a4d1da
--- /dev/null
+++ b/website2/website/versioned_docs/version-0.20.4-incubating/compiling-overview.md
@@ -0,0 +1,144 @@
+---
+id: version-0.20.4-incubating-compiling-overview
+title: Compiling Heron
+sidebar_label: Compiling Overview
+original_id: compiling-overview
+---
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+      http://www.apache.org/licenses/LICENSE-2.0
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+
+Heron is currently available for [Mac OS X 11.01](compiling-osx),
+[Ubuntu 18.04](compiling-linux), and [Debian10](compiling-docker#building-heron).
+ This guide describes the basics of the
+Heron build system. For step-by-step build instructions for other platforms,
+the following guides are available:
+
+* [Building on Linux Platforms](compiling-linux)
+* [Building on Mac OS X](compiling-osx)
+
+Heron can be built either [in its entirety](#building-all-components), as [individual components](#building-specific-components).
+
+Instructions on running unit tests for Heron can also be found in [Testing Heron](compiling-running-tests).
+
+## Requirements
+
+You must have the following installed to compile Heron:
+
+* [Bazel](http://bazel.io/docs/install.html) = {{% bazelVersion %}}. Later
+  versions might work but have not been tested. See [Installing Bazel](#installing-bazel)below.
+* [Java 11](https://www.oracle.com/java/technologies/javase-jdk11-downloads.html)
+  is required by Bazel and Heron;
+  topologies can be written in Java 7 or above
+  , but Heron jars are required to run with a Java 11 JRE.
+* [Autoconf](http://www.gnu.org/software/autoconf/autoconf.html) >=
+  2.6.3
+* [Automake](https://www.gnu.org/software/automake/) >= 1.11.1
+* [GNU Make](https://www.gnu.org/software/make/) >= 3.81
+* [GNU Libtool](http://www.gnu.org/software/libtool/) >= 2.4.6
+* [gcc/g++](https://gcc.gnu.org/) >= 4.8.1 (Linux platforms)
+* [CMake](https://cmake.org/) >= 2.6.4
+* [Python](https://www.python.org/) >= 3.8
+* [Perl](https://www.perl.org/) >= 5.8.8
+* [Ant] (https://ant.apache.org/) >= 1.10.0
+* [Pkg-Config] (https://www.freedesktop.org/wiki/Software/pkg-config/) >= 0.29.2
+
+Export the `CC` and `CXX` environment variables with a path specific to your
+machine:
+
+```bash
+$ export CC=/your-path-to/bin/c_compiler
+$ export CXX=/your-path-to/bin/c++_compiler
+$ echo $CC $CXX
+```
+
+## Installing Bazel
+
+Heron uses the [Bazel](http://bazel.io) build tool. Bazel releases can be found here:
+https://github.com/bazelbuild/bazel/releases/tag/{{% bazelVersion %}}
+and installation instructions can be found [here](http://bazel.io/docs/install.html).
+
+To ensure that Bazel has been installed, run `bazel version` and check the
+version (listed next to `Build label` in the script's output) to ensure that you
+have Bazel {{% bazelVersion %}}.
+
+## Configuring Bazel
+
+There is a Python script that you can run to configure Bazel on supported
+platforms:
+
+```bash
+$ cd /path/to/heron
+$ ./bazel_configure.py
+```
+
+## Building
+
+### Bazel OS Environments
+
+Bazel builds are specific to a given OS. When building you must specify an
+OS-specific configuration using the `--config` flag. The following OS values
+are supported:
+
+* `darwin` (Mac OS X)
+* `ubuntu` (Ubuntu 18.04)
+* `debian` (Debian10)
+* `centos5` (CentOS 7)
+
+For example, on Mac OS X (`darwin`), the following command will build all
+packages:
+
+```bash
+$ bazel build --config=darwin heron/...
+```
+
+Production release packages include additional performance optimizations
+not enabled by default. Enabling these optimizations increases build time.
+To enable production optimizations, include the `opt` flag:
+```bash
+$ bazel build -c opt --config=PLATFORM heron/...
+```
+
+### Building All Components
+
+The Bazel build process can produce either executable install scripts or
+bundled tars. To build executables or tars for all Heron components at once,
+use the following `bazel build` commands, respectively:
+
+```bash
+$ bazel build --config=PLATFORM scripts/packages:binpkgs
+$ bazel build --config=PLATFORM scripts/packages:tarpkgs
+```
+
+Resulting artifacts can be found in subdirectories below the `bazel-bin`
+directory. The `heron-tracker` executable, for example, can be found at
+`bazel-bin/heron/tools/tracker/src/python/heron-tracker`.
+
+### Building Specific Components
+
+As an alternative to building a full release, you can build Heron executables
+for a single Heron component (such as the [Heron
+Tracker](user-manuals-heron-tracker-runbook)) by passing a target to the `bazel
+build` command. For example, the following command would build the Heron Tracker:
+
+```bash
+$ bazel build --config=darwin heron/tools/tracker/src/python:heron-tracker
+```
+
+## Testing Heron
+
+Instructions for running Heron unit tests can be found at [Testing
+Heron](compiling-running-tests).
diff --git a/website2/website/versioned_docs/version-0.20.4-incubating/getting-started-docker.md b/website2/website/versioned_docs/version-0.20.4-incubating/getting-started-docker.md
new file mode 100644
index 0000000..11afc60
--- /dev/null
+++ b/website2/website/versioned_docs/version-0.20.4-incubating/getting-started-docker.md
@@ -0,0 +1,29 @@
+---
+id: version-0.20.4-incubating-getting-started-docker
+title: The official Apache Heron Docker Image(s)
+sidebar_label: Heron & Docker
+original_id: getting-started-docker
+---
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+      http://www.apache.org/licenses/LICENSE-2.0
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+
+> The current version of Heron is {{heron:version}}
+
+The official Apache Heron Docker image is located at the link below
+
+<a target="_blank" href="https://hub.docker.com/repository/docker/apache/heron">https://hub.docker.com/repository/docker/apache/heron</a>
+
diff --git a/website2/website/versioned_docs/version-0.20.4-incubating/getting-started-local-single-node.md b/website2/website/versioned_docs/version-0.20.4-incubating/getting-started-local-single-node.md
new file mode 100644
index 0000000..88d47b0
--- /dev/null
+++ b/website2/website/versioned_docs/version-0.20.4-incubating/getting-started-local-single-node.md
@@ -0,0 +1,275 @@
+---
+id: version-0.20.4-incubating-getting-started-local-single-node
+title: Local (Single Node)
+sidebar_label: Local (Single Node)
+original_id: getting-started-local-single-node
+---
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+      http://www.apache.org/licenses/LICENSE-2.0
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+
+> The current version of Heron is {{heron:version}}
+For other platforms, you need to build from source. Please refer to the [guide to compiling Heron](compiling-overview).
+
+## Step 1 --- Download the Heron tools
+
+Heron tools can be installed using [installation scripts](#using-installation-scripts).
+
+> Note: As of version  0.20.4-incubating, there is a python compatibility on OSX.
+> The supported platforms are CentOS7, Debian10, and Ubuntu18.04.
+
+## Using installation scripts
+
+To install Heron binaries directly, using installation scripts, go to Heron's [releases page](https://github.com/apache/incubator-heron/releases) on GitHub
+and see a full listing of Heron releases for each available platform. The installation script for macOS (`darwin`), for example, is named
+`heron-install-{{% heronVersion %}}-darwin.sh`.
+
+```bash
+$ wget https://github.com/apache/incubator-heron/releases/download/{{% heronVersion %}}/heron-install-{{% heronVersion %}}-darwin.sh
+
+
+```
+
+Download the for your platform either from the releases page or using [`wget`](https://www.gnu.org/software/wget/). Here's a `wget` example for Ubuntu:
+
+```bash
+$ wget https://github.com/apache/incubator-heron/releases/download/{{% heronVersion %}}/heron-install-{{% heronVersion %}}-ubuntu18.04.sh
+```
+Debian10
+```bash
+$ wget https://github.com/apache/incubator-heron/releases/download/{{% heronVersion %}}/heron-install-{{% heronVersion %}}-debian.sh
+```
+
+Once you've downloaded the script, make it executable using [chmod](https://en.wikipedia.org/wiki/Chmod):
+
+```bash
+$ chmod +x heron-*.sh
+```
+
+Now run the [Heron client](user-manuals-heron-cli) installation script with the `--user` flag set. Here's an example:
+
+> The script will install executables in the `~/bin` folder. You should add that folder to your `PATH` using `export PATH=~/bin:$PATH`.
+
+```bash
+$ ./heron-install-{{% heronVersion %}}-ubuntu.sh --user
+Heron installer
+---------------
+
+Uncompressing...done
+...
+Heron is now installed!
+```
+
+To check that Heron is successfully installed, run `heron version`:
+
+```bash
+$ heron version
+heron.build.git.revision : b580f689d8cbcb3026966bde2aacf6da74d5bcf5
+heron.build.git.status : Modified
+heron.build.host : MBP
+heron.build.time : Sun Mar 22 06:42:05 CDT 2020
+heron.build.timestamp : 1584877325000
+heron.build.user : ...
+heron.build.version : update-docs-compiling
+```
+
+## Step 2 --- Launch an example topology
+
+> #### Note for macOS users
+
+> If you want to run topologies locally on macOS, you may need to add your
+> hostname to your `/etc/hosts` file under `localhost`. Here's an example line:
+> `127.0.0.1 localhost My-Mac-Laptop.local`. You can fetch your hostname by simply
+> running `hostname` in your shell.
+
+If you set the `--user` flag when running the installation scripts, some example
+topologies will be installed in your `~/.heron/examples` directory. You can
+launch an example [topology](heron-topology-concepts) locally (on your machine)
+using the [Heron CLI tool](user-manuals-heron-cli):
+
+```bash
+$ heron submit local \
+  ~/.heron/examples/heron-streamlet-examples.jar \
+  org.apache.heron.examples.streamlet.WindowedWordCountTopology \
+  WindowedWordCountTopology \
+  --deploy-deactivated
+```
+
+The output should look something like this:
+
+```bash
+INFO: Launching topology 'WindowedWordCountTopology'
+
+...
+
+INFO: Topology 'WindowedWordCountTopology' launched successfully
+INFO: Elapsed time: 3.409s.
+```
+
+This will *submit* the topology to your locally running Heron cluster but it
+won't *activate* the topology because the `--deploy-deactivated` flag was set.
+Activating the topology will be explored in [step
+5](#step-5-explore-topology-management-commands) below.
+
+Note that the output shows whether the topology has been launched successfully as well
+the working directory for the topology.
+
+To check what's under the working directory, run:
+
+```bash
+$ ls -al ~/.herondata/topologies/local/${ROLE}/WindowedWordCountTopology
+-rw-r--r--   1 username  staff     6141 Oct 12 09:58 WindowedWordCountTopology.defn
+-rw-r--r--   1 username  staff        5 Oct 12 09:58 container_1_flatmap1_4.pid
+-rw-r--r--   1 username  staff        5 Oct 12 09:58 container_1_logger1_3.pid
+# etc.
+```
+
+All instances' log files can be found in `log-files` under the working directory:
+
+```bash
+$ ls -al ~/.herondata/topologies/local/${ROLE}/WindowedWordCountTopology/log-files
+total 408
+-rw-r--r--   1 username  staff   5055 Oct 12 09:58 container_1_flatmap1_4.log.0
+-rw-r--r--   1 username  staff      0 Oct 12 09:58 container_1_flatmap1_4.log.0.lck
+-rw-r--r--   1 username  staff   5052 Oct 12 09:58 container_1_logger1_3.log.0
+# etc.
+```
+
+## Step 3 --- Start Heron Tracker
+
+The [Heron Tracker](user-manuals-heron-tracker-runbook) is a web service that
+continuously gathers information about your Heron cluster. You can launch the
+tracker by running the `heron-tracker` command (which is already installed):
+
+```bash
+$ heron-tracker
+... Running on port: 8888
+... Using config file: $HOME/.herontools/conf/heron_tracker.yaml
+```
+
+You can reach Heron Tracker in your browser at [http://localhost:8888](http://localhost:8888)
+and see something like the following upon successful submission of the topology:
+![Heron Tracker](assets/heron-tracker.png)
+
+To explore Heron Tracker, please refer to [Heron Tracker Rest API](user-manuals-tracker-rest)
+
+## Step 4 --- Start Heron UI
+
+[Heron UI](user-manuals-heron-ui-runbook) is a user interface that uses Heron Tracker to
+provide detailed visual representations of your Heron topologies. To launch
+Heron UI:
+
+```bash
+$ heron-ui
+... Running on port: 8889
+... Using tracker url: http://localhost:8888
+```
+
+You can open Heron UI in your browser at [http://localhost:8889](http://localhost:8889)
+and see something like this upon successful submission of the topology:
+![Heron UI](assets/heron-ui.png)
+
+To play with Heron UI, please refer to [Heron UI Usage Guide](guides-ui-guide)
+
+## Step 5 --- Explore topology management commands
+
+In step 2 you submitted a topology to your local cluster. The `heron` CLI tool
+also enables you to activate, deactivate, and kill topologies and more.
+
+```bash
+$ heron activate local WindowedWordCountTopology
+$ heron deactivate local WindowedWordCountTopology
+$ heron kill local WindowedWordCountTopology
+```
+
+Upon successful actions, a message similar to the following will appear:
+
+```bash
+INFO: Successfully activated topology 'WindowedWordCountTopology'
+INFO: Elapsed time: 1.980s.
+```
+
+For more info on these commands, read about [topology
+lifecycles](heron-topology-concepts#topology-lifecycle).
+
+To list the available CLI commands, run `heron` by itself:
+
+```bash
+usage: heron <command> <options> ...
+
+Available commands:
+    activate           Activate a topology
+    deactivate         Deactivate a topology
+    help               Prints help for commands
+    kill               Kill a topology
+    restart            Restart a topology
+    submit             Submit a topology
+    version            Print version of heron-cli
+
+For detailed documentation, go to https://heron.incubator.apache.org
+```
+
+To invoke help output for a command, run `heron help COMMAND`. Here's an
+example:
+
+```bash
+$ heron help submit
+usage: heron submit [options] cluster/[role]/[environ] topology-file-name topology-class-name [topology-args]
+
+Required arguments:
+  cluster/[role]/[env]  Cluster, role, and environ to run topology
+  topology-file-name    Topology jar/tar/zip file
+  topology-class-name   Topology class name
+
+Optional arguments:
+  --config-path (a string; path to cluster config; default: "$HOME/.heron/conf")
+  --config-property (key=value; a config key and its value; default: [])
+  --deploy-deactivated (a boolean; default: "false")
+  -D DEFINE             Define a system property to pass to java -D when
+                        running main.
+  --verbose (a boolean; default: "false")
+```
+
+## Step 6 --- Explore other example topologies
+
+The source code for the example topologies can be found
+[on
+GitHub](https://github.com/apache/incubator-heron/tree/master/examples/src/java/org/apache/heron/examples).
+The included example topologies:
+
+* `AckingTopology.java` --- A topology with acking enabled.
+* `ComponentJVMOptionsTopology.java` --- A topology that supplies JVM options
+  for each component.
+* `CustomGroupingTopology.java` --- A topology that implements custom grouping.
+* `ExclamationTopology.java` --- A spout that emits random words to a bolt that
+  then adds an exclamation mark.
+* `MultiSpoutExclamationTopology.java` --- a topology with multiple spouts.
+* `MultiStageAckingTopology.java` --- A three-stage topology. A spout emits to a
+  bolt that then feeds to another bolt.
+* `TaskHookTopology.java` --- A topology that uses a task hook to subscribe to
+   event notifications.
+
+## Troubleshooting
+In case of any issues, please refer to [Quick Start Troubleshooting](getting-started-troubleshooting-guide).
+
+### Next Steps
+
+* [Migrate Storm topologies](getting-started-migrate-storm-topologies) to Heron with simple `pom.xml`
+  changes
+* [Deploy topologies](deployment-overview) in clustered, scheduler-driven
+  environments (such as on [Aurora](schedulers-aurora-cluster)
+  and [locally](schedulers-local))
+* [Develop topologies](heron-architecture) for Heron
\ No newline at end of file
diff --git a/website2/website/versioned_docs/version-0.20.4-incubating/heron-resources-resources.md b/website2/website/versioned_docs/version-0.20.4-incubating/heron-resources-resources.md
new file mode 100644
index 0000000..7530889
--- /dev/null
+++ b/website2/website/versioned_docs/version-0.20.4-incubating/heron-resources-resources.md
@@ -0,0 +1,69 @@
+---
+id: version-0.20.4-incubating-heron-resources-resources
+title: Heron Resources
+sidebar_label: Heron Resources
+original_id: heron-resources-resources
+---
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+      http://www.apache.org/licenses/LICENSE-2.0
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+
+Heron Resources outside this documentation:
+
+## Books
+
+* [Heron Streaming: Fundamentals, Applications, Operations, and Insights](https://www.springer.com/us/book/9783030600938)
+
+## Conference & Journal Papers
+
+* [Streaming@Twitter - Bulletin of the IEEE Computer Society Technical Committee on Data Engineering](http://sites.computer.org/debull/A15dec/p15.pdf) (Jul, 2016)
+* [Twitter Heron: Stream Processing at
+  Scale - SIGMOD’15](http://dl.acm.org/citation.cfm?id=2742788) (May, 2015)
+* [Storm@Twitter - SIGMOD'14](http://dl.acm.org/citation.cfm?id=2595641) (Jun, 2014)
+
+## Videos
+
+* [Twitter Heron on Apache Aurora - #compute event @Twitter](https://m.youtube.com/watch?v=ua0ufmr9sQI&feature=youtu.be) (Apr, 2016)
+* [Flying Faster with Heron - InfoQ](http://www.infoq.com/presentations/twitter-heron) (Apr, 2016)
+* [Twitter Heron: Stream Processing at
+  Scale - @Scale](https://www.youtube.com/watch?v=pUaFOuGgmco) (Sep, 2015)
+* [Stream Processing and Anomaly Detection - Velocity O'Reilly - Note: requires O'Reilly login ](
+https://player.oreilly.com/videos/9781491927977?login=true)(Jun, 2015)
+* [Building Apache Heron - BazelCon 2018](https://www.youtube.com/watch?v=yBTSfA4YDtY&t=1s)(Oct, 2018)
+
+##  Blog Posts
+* [Leaving the Nest: Heron donated to Apache Software Foundation](https://blog.twitter.com/engineering/en_us/topics/open-source/2018/heron-donated-to-apache-software-foundation.html) (Feb, 2018)
+* [Open Sourcing Twitter Heron](https://blog.twitter.com/2016/open-sourcing-twitter-heron) (May, 2016)
+* [Flying Faster with Twitter
+  Heron](https://blog.twitter.com/2015/flying-faster-with-twitter-heron) (June, 2015)
+* [Deploying Heron on a Cluster of Machines with Apache Aurora](http://streamanalytics.blogspot.com/2016/06/deploying-heron-on-cluster-of-machines.html) (Supun Kamburugamuve, Jun, 2016)
+* [Setting up Heron Locally with Apache Aurora](http://pulasthisupun.blogspot.com/2016/06/setting-up-heron-cluster-with-apache.html) (Pulasthi Supun, Jun, 2016)
+* [Introducing Heron’s ECO; A Flexible Way To Manage Topologies](https://1904labs.com/2018/02/14/introducing-herons-eco-flexible-way-manage-topologies/) (Feb, 2018)
+
+## Slides
+
+* [Real-Time Analytics: Algorithms and Systems - Twitter University ](
+http://www.slideshare.net/arunkejariwal/real-time-analytics-algorithms-and-systems) (May, 2016)
+* [Stream Processing and Anomaly Detection - Velocity O'Reilly ](http://www.slideshare.net/arunkejariwal/velocity-2015final)(Jun, 2015)
+
+## Press 
+
+* [Heron, Twitter's Data Streaming Platform, Has Been Open Sourced](http://www.benzinga.com/tech/16/06/8119962/heron-twitters-data-streaming-platform-has-been-open-sourced) (BenZinga, Jun, 2016)
+* [Twitter Open Sources Heron -- Data Streaming For Dummies](http://www.forbes.com/sites/adrianbridgwater/2016/06/16/twitter-open-sources-heron-data-streaming-for-dummies/#6f8984319b50) (Forbes, Jun, 2016)
+* [Getting Started with Heron on Apache Mesos and Apache Kafka](https://allthingshadoop.com/2016/05/30/getting-started-with-heron-on-apache-mesos-and-apache-kafka/) (All Things Hadoop, May, 2016)
+* [Twitter open-sources Heron, its real-time stream-processing engine](http://venturebeat.com/2016/05/25/twitter-open-sources-heron-its-real-time-stream-processing-engine/) (VentureBeat, May, 2016)
+* [Twitter's Heron Will Start a New Chapter in Real-Time Streaming](http://www.forbes.com/sites/janakirammsv/2015/06/08/twitters-heron-will-start-a-new-chapter-in-real-time-streaming/#62c8645b2306) (Forbes, Jun, 2015)
+* [Twitter Has Replaced Storm with Heron](https://www.infoq.com/news/2015/06/twitter-storm-heron) (InfoQ, Jun, 2015)
\ No newline at end of file
diff --git a/website2/website/versioned_sidebars/version-0.20.4-incubating-sidebars.json b/website2/website/versioned_sidebars/version-0.20.4-incubating-sidebars.json
new file mode 100644
index 0000000..c4c48c0
--- /dev/null
+++ b/website2/website/versioned_sidebars/version-0.20.4-incubating-sidebars.json
@@ -0,0 +1,100 @@
+{
+  "version-0.20.4-incubating-docs": {
+    "Getting Started": [
+      "version-0.20.4-incubating-getting-started-local-single-node",
+      "version-0.20.4-incubating-getting-started-migrate-storm-topologies",
+      "version-0.20.4-incubating-getting-started-docker",
+      "version-0.20.4-incubating-getting-started-troubleshooting-guide"
+    ],
+    "Deployment": [
+      "version-0.20.4-incubating-deployment-overview",
+      "version-0.20.4-incubating-deployment-configuration",
+      "version-0.20.4-incubating-deployment-api-server"
+    ],
+    "Topology Development APIs": [
+      "version-0.20.4-incubating-topology-development-streamlet-api",
+      "version-0.20.4-incubating-topology-development-eco-api",
+      "version-0.20.4-incubating-topology-development-topology-api-java",
+      "version-0.20.4-incubating-topology-development-topology-api-python",
+      "version-0.20.4-incubating-topology-development-streamlet-scala"
+    ],
+    "Client API Docs": [
+      "version-0.20.4-incubating-client-api-docs-overview"
+    ],
+    "Guides": [
+      "version-0.20.4-incubating-guides-effectively-once-java-topologies",
+      "version-0.20.4-incubating-guides-data-model",
+      "version-0.20.4-incubating-guides-tuple-serialization",
+      "version-0.20.4-incubating-guides-ui-guide",
+      "version-0.20.4-incubating-guides-topology-tuning",
+      "version-0.20.4-incubating-guides-packing-algorithms",
+      "version-0.20.4-incubating-guides-simulator-mode",
+      "version-0.20.4-incubating-guides-troubeshooting-guide"
+    ],
+    "Heron Concepts": [
+      "version-0.20.4-incubating-heron-design-goals",
+      "version-0.20.4-incubating-heron-topology-concepts",
+      "version-0.20.4-incubating-heron-streamlet-concepts",
+      "version-0.20.4-incubating-heron-architecture",
+      "version-0.20.4-incubating-heron-delivery-semantics"
+    ],
+    "State Managers": [
+      "version-0.20.4-incubating-state-managers-zookeeper",
+      "version-0.20.4-incubating-state-managers-local-fs"
+    ],
+    "Uploaders": [
+      "version-0.20.4-incubating-uploaders-local-fs",
+      "version-0.20.4-incubating-uploaders-hdfs",
+      "version-0.20.4-incubating-uploaders-http",
+      "version-0.20.4-incubating-uploaders-amazon-s3",
+      "version-0.20.4-incubating-uploaders-scp"
+    ],
+    "Schedulers": [
+      "version-0.20.4-incubating-schedulers-k8s-by-hand",
+      "version-0.20.4-incubating-schedulers-k8s-with-helm",
+      "version-0.20.4-incubating-schedulers-aurora-cluster",
+      "version-0.20.4-incubating-schedulers-aurora-local",
+      "version-0.20.4-incubating-schedulers-local",
+      "version-0.20.4-incubating-schedulers-nomad",
+      "version-0.20.4-incubating-schedulers-mesos-local-mac",
+      "version-0.20.4-incubating-schedulers-slurm",
+      "version-0.20.4-incubating-schedulers-yarn"
+    ],
+    "Cluster Configuration": [
+      "version-0.20.4-incubating-cluster-config-overview",
+      "version-0.20.4-incubating-cluster-config-system-level",
+      "version-0.20.4-incubating-cluster-config-instance",
+      "version-0.20.4-incubating-cluster-config-metrics",
+      "version-0.20.4-incubating-cluster-config-stream",
+      "version-0.20.4-incubating-cluster-config-tmanager"
+    ],
+    "Observability": [
+      "version-0.20.4-incubating-observability-prometheus",
+      "version-0.20.4-incubating-observability-graphite",
+      "version-0.20.4-incubating-observability-scribe"
+    ],
+    "User Manuals": [
+      "version-0.20.4-incubating-user-manuals-heron-cli",
+      "version-0.20.4-incubating-user-manuals-heron-explorer",
+      "version-0.20.4-incubating-user-manuals-tracker-rest",
+      "version-0.20.4-incubating-user-manuals-heron-tracker-runbook",
+      "version-0.20.4-incubating-user-manuals-heron-ui-runbook",
+      "version-0.20.4-incubating-user-manuals-heron-shell"
+    ],
+    "Compiling": [
+      "version-0.20.4-incubating-compiling-overview",
+      "version-0.20.4-incubating-compiling-linux",
+      "version-0.20.4-incubating-compiling-osx",
+      "version-0.20.4-incubating-compiling-docker",
+      "version-0.20.4-incubating-compiling-running-tests",
+      "version-0.20.4-incubating-compiling-code-organization"
+    ],
+    "Extending Heron": [
+      "version-0.20.4-incubating-extending-heron-scheduler",
+      "version-0.20.4-incubating-extending-heron-metric-sink"
+    ],
+    "Heron Resources": [
+      "version-0.20.4-incubating-heron-resources-resources"
+    ]
+  }
+}
diff --git a/website2/website/versions.json b/website2/website/versions.json
index 707894d..99b1145 100644
--- a/website2/website/versions.json
+++ b/website2/website/versions.json
@@ -1,4 +1,5 @@
 [
+  "0.20.4-incubating",
   "0.20.3-incubating",
   "0.20.2-incubating",
   "0.20.1-incubating",