Fixing the versions numbers and links in the site docs (#3332)
* Fixing the versions and links in the site docs
- Fixed Bazel and Heron Versions in all versioned docs
- Fixed language based problems
- Fixed Release Notes problems
- Fixed Broken Links
- Updated the scripts to build site
Signed-off-by: ChethanUK <chethanuk@outlook.com>
* Fixing the versions numbers and links in the site docs
- Fixed Bazel and Heron Versions in all versioned docs
- Fixed language based problems
- Fixed Release Notes problems
- Fixed Broken Links
- Updated the scripts to build site
Signed-off-by: ChethanUK <chethanuk@outlook.com>
* Fixing the versions numbers and links in the site docs
- Fixed Bazel and Heron Versions in all versioned docs
- Fixed language based problems
- Fixed Release Notes problems
- Fixed Broken Links
- Updated the scripts to build site
Signed-off-by: ChethanUK <chethanuk@outlook.com>
* Fixing the versions numbers and links in the site docs
- Fixed Bazel and Heron Versions in all versioned docs
- Fixed language based problems
- Fixed Release Notes problems
- Fixed Broken Links
- Updated the scripts to build site
Signed-off-by: ChethanUK <chethanuk@outlook.com>
diff --git a/website2/Dockerfile b/website2/Dockerfile
index 076969b..8b9eb2e 100755
--- a/website2/Dockerfile
+++ b/website2/Dockerfile
@@ -22,5 +22,6 @@
COPY ./docs /app/docs
COPY ./website /app/website
RUN yarn install
-
+RUN git config user.name "Heron Publish"
+RUN git config user.email "publish@heron.incubator.apache.org"
CMD ["yarn", "start"]
diff --git a/website2/docs/getting-started-local-single-node.md b/website2/docs/getting-started-local-single-node.md
index 9a23a3e..4a958e8 100644
--- a/website2/docs/getting-started-local-single-node.md
+++ b/website2/docs/getting-started-local-single-node.md
@@ -28,7 +28,7 @@
* [MacOS](#macos-homebrew)
* [Ubuntu >= 14.04](#using-installation-scripts)
* [CentOS](#using-installation-scripts)
-
+aa
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
diff --git a/website2/website/README.md b/website2/website/README.md
index 67a0d59..fcc4d46 100755
--- a/website2/website/README.md
+++ b/website2/website/README.md
@@ -16,6 +16,11 @@
specific language governing permissions and limitations
under the License.
-->
+ perl -pi -e 's/^ */\t/' Makefile
+ chmod +x scripts/*
+ npm run version 0.21.2
+
+
# The Heron website and documentation
This `README` is basically the meta-documentation for the Heron website and documentation. You will find instructions on running the site locally.
diff --git a/website2/website/languages.js b/website2/website/languages.js
deleted file mode 100644
index 5a3a0cb..0000000
--- a/website2/website/languages.js
+++ /dev/null
@@ -1,9 +0,0 @@
-
-const languages = [
- {
- enabled: true,
- name: 'English',
- tag: 'en',
- }
-];
-module.exports = languages;
\ No newline at end of file
diff --git a/website2/website/pages/en/index.js b/website2/website/pages/en/index.js
index 8e164f9..74760ce 100755
--- a/website2/website/pages/en/index.js
+++ b/website2/website/pages/en/index.js
@@ -67,7 +67,8 @@
<div className="inner">
<ProjectTitle siteConfig={siteConfig} />
<PromoSection>
- <Button href="/docs/en/getting-started-local-single-node">Documentation</Button>
+ < Button
+ href = "/docs/getting-started-local-single-node" > Documentation < /Button>
{/* keep as reference for now <Button href={docUrl('doc1.html')}>Github</Button> */}
<Button href="https://github.com/apache/incubator-heron" target="_blank">Github</Button>
</PromoSection>
diff --git a/website2/website/pages/en/release-notes.js b/website2/website/pages/en/release-notes.js
new file mode 100644
index 0000000..0695cc1
--- /dev/null
+++ b/website2/website/pages/en/release-notes.js
@@ -0,0 +1,43 @@
+const React = require('react');
+
+const CompLibrary = require('../../core/CompLibrary');
+const MarkdownBlock = CompLibrary.MarkdownBlock; /* Used to read markdown */
+const Container = CompLibrary.Container;
+const GridBlock = CompLibrary.GridBlock;
+
+const CWD = process.cwd();
+
+const siteConfig = require(`${CWD}/siteConfig.js`);
+
+const releaseNotes = require('fs').readFileSync(`${CWD}/release-notes.md`, 'utf8')
+
+class ReleaseNotes extends React.Component {
+ render() {
+
+ return (
+ < div
+ className = "pageContainer" >
+ < Container
+ className = "mainContainer documentContainer postContainer" >
+ < div
+ className = "post" >
+ < header
+ className = "postHeader" >
+ < h1 > Apache
+ Heron(Incubating)
+ Release
+ Notes < /h1>
+ < hr / >
+ < /header>
+ < MarkdownBlock >
+ {releaseNotes}
+ < /MarkdownBlock>
+ < /div>
+ < /Container>
+ < /div>
+ )
+ ;
+ }
+}
+
+module.exports = ReleaseNotes;
\ No newline at end of file
diff --git a/website2/website/pages/en/versions.js b/website2/website/pages/en/versions.js
index b25ac50..db68518 100755
--- a/website2/website/pages/en/versions.js
+++ b/website2/website/pages/en/versions.js
@@ -45,7 +45,8 @@
props.language ? props.language + '/' : ''
}doc1`}> */}
<a
- href={`${siteConfig.baseUrl}docs/${props.language}/getting-started-local-single-node`}>
+ href = {`${siteConfig.baseUrl}docs/getting-started-local-single-node`
+}>
Documentation
</a>
</td>
@@ -68,7 +69,8 @@
{/* You are supposed to change this href where appropriate
Example: href="<baseUrl>/docs(/:language)/next/:id" */}
<a
- href={`${siteConfig.baseUrl}docs/${props.language}/next/getting-started-local-single-node`}>
+ href = {`${siteConfig.baseUrl}docs/next/getting-started-local-single-node`
+}>
Documentation
</a>
</td>
@@ -94,12 +96,15 @@
{/* You are supposed to change this href where appropriate
Example: href="<baseUrl>/docs(/:language)/:version/:id" */}
<a
- href={`${siteConfig.baseUrl}docs/${props.language}/${version}/getting-started-local-single-node`}>
+ href = {`${siteConfig.baseUrl}docs/${version}/getting-started-local-single-node`
+ } >
Documentation
</a>
</td>
<td>
- <a href={`${repoUrl}/releases/tag/v${version}`}>
+ < a
+ href = {`${siteConfig.baseUrl}release-notes#${version}`
+}>
Release Notes
</a>
</td>
diff --git a/website2/website/release-notes.md b/website2/website/release-notes.md
new file mode 100644
index 0000000..b755f23
--- /dev/null
+++ b/website2/website/release-notes.md
@@ -0,0 +1,24 @@
+
+## Releases
+
+### 0.20.0-incubating — 2018-11-21 <a id="0.20.0"></a>
+
+This is the first release of Heron as an Apache Incubating Project
+
+- Fix annotation processor (#3038)
+- Refactor heron_executor to make it easier to customize (#3043)
+- Remove libunwind patches (#3041)
+- cleanup README (#3037)
+- Fix Topology-API window documentation (#3039)
+- Nwang/update thirdparty license (#3042)
+- Fix 'Copyright 2015 The Heron Authors' in scripts (#3036)
+
+### 0.21.1-incubating — 2019-7-20 <a id="0.20.1"></a>
+
+- Example commit of 0.21.1
+
+### 0.21.2-incubating — 2019-08-27 <a id="0.21.2"></a>
+
+- Example Commit (#XXXX)
+
+
diff --git a/website2/website/scripts/build-site.sh b/website2/website/scripts/build-site.sh
old mode 100644
new mode 100755
diff --git a/website2/website/scripts/javadocs-overview.html b/website2/website/scripts/javadocs-overview.html
old mode 100644
new mode 100755
diff --git a/website2/website/scripts/replace.js b/website2/website/scripts/replace.js
old mode 100644
new mode 100755
index 71ed7ef..a1b9cbe
--- a/website2/website/scripts/replace.js
+++ b/website2/website/scripts/replace.js
@@ -8,7 +8,6 @@
function getVersions() {
try {
- console.log(JSON.parse(require('fs').readFileSync(`${CWD}/versions.json`, 'utf8')))
return JSON.parse(require('fs').readFileSync(`${CWD}/versions.json`, 'utf8'));
} catch (error) {
//console.error(error)
@@ -30,14 +29,37 @@
});
}
+
const versions = getVersions();
const latestVersion = versions[0];
+const bazelVersions = {
+ '0.20.0': '0.14.1',
+ '0.20.1': '0.26',
+ 'latest': '0.26',
+}
+
+function replaceBazel(version) {
+ try {
+ if (version in bazelVersions) {
+ return bazelVersions[version]
+ } else {
+ throw new Error('Unable to find bazel Version');
+ }
+ } catch (error) {
+
+ console.error('no versions found defaulting to 0.26')
+ }
+ return '0.26'
+}
+
console.log(latestVersion)
const from = [
- /{{heron:version_latest}}/g,
/{{heron:version}}/g,
+ /{{bazel:version}}/g,
+ /{{% heronVersion %}}/g,
+ /{{% bazelVersion %}}/g
];
const options = {
@@ -48,8 +70,10 @@
ignore: versions.map(v => `${docsDir}/${v}/**/*`), // TODO add next and assets
from: from,
to: [
- `${latestVersion}`,
- `${versions}`,
+ `${latestVersion}`,
+ replaceBazel(`${latestVersion}`),
+ `${latestVersion}`,
+ replaceBazel(`${latestVersion}`),
],
dry: false
};
@@ -68,10 +92,12 @@
],
from: from,
to: [
- `${latestVersion}`,
- `${v}`,
+ `${v}`,
+ replaceBazel(`${v}`),
+ `${v}`,
+ replaceBazel(`${v}`),
],
- dry: true
+ dry: false
};
doReplace(opts);
}
\ No newline at end of file
diff --git a/website2/website/versioned_docs/version-0.20.0/getting-started-local-single-node.md b/website2/website/versioned_docs/version-0.20.0/getting-started-local-single-node.md
index f600634..8e92019 100644
--- a/website2/website/versioned_docs/version-0.20.0/getting-started-local-single-node.md
+++ b/website2/website/versioned_docs/version-0.20.0/getting-started-local-single-node.md
@@ -23,7 +23,6 @@
> The current version of Heron is **{{heron:version}}**
-
The easiest way to get started learning Heron is to install the Heron client tools, which are currently available for:
* [MacOS](#macos-homebrew)
diff --git a/website2/website/versioned_docs/version-0.21.1/getting-started-local-single-node.md b/website2/website/versioned_docs/version-0.21.1/getting-started-local-single-node.md
new file mode 100644
index 0000000..a9c9117
--- /dev/null
+++ b/website2/website/versioned_docs/version-0.21.1/getting-started-local-single-node.md
@@ -0,0 +1,286 @@
+---
+id: version-0.21.1-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}}
+
+
+The easiest way to get started learning Heron is to install the Heron client tools, which are currently available for:
+
+* [MacOS](#macos-homebrew)
+* [Ubuntu >= 14.04](#using-installation-scripts)
+* [CentOS](#using-installation-scripts)
+
+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 on [macOS](#macos-homebrew) using [Homebrew](https://brew.sh) and on Linux using [installation scripts](#using-installation-scripts).
+
+> You can install using [installation scripts](#using-installation-scripts) on macOS as well.
+
+## macOS/Homebrew
+
+The easiest way to get started with Heron on macOS is using [Homebrew](https://brew.sh):
+
+```bash
+$ brew tap streamlio/homebrew-formulae
+$ brew update
+$ brew install heron
+```
+
+This will install a variety of executables and other resources by default in `/usr/local/opt/heron`.
+
+> Homebrew may use a different folder than `/usr/local/opt/heron`. To check which folder is being used, run `brew --prefix heron`.
+
+## 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`.
+
+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 %}}-ubuntu.sh
+```
+
+Once you've downloaded the script, make it executable using [chmod](https://en.wikipedia.org/wiki/Chmod):
+
+```bash
+$ chmod +x heron-*.sh
+```
+
+> The script will install executables in the `~/bin` folder. You should add that folder to your `PATH` using `export PATH=~/bin:$PATH`.
+
+Now run the [Heron client](user-manuals-heron-cli) installation script with the `--user` flag set. Here's an example for Ubuntu:
+
+```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 : 26bb4096130a05f9799510bbce6c37a69a7342ef
+heron.build.git.status : Clean
+heron.build.host : ...
+heron.build.time : Sat Aug 6 12:35:47 PDT {{% currentYear %}}
+heron.build.timestamp : 1470512147000
+heron.build.user : ...
+heron.build.version : {{% heronVersion %}}
+```
+
+## 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 http://heronstreaming.io
+```
+
+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]({{% githubMaster %}}/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.21.2/getting-started-local-single-node.md b/website2/website/versioned_docs/version-0.21.2/getting-started-local-single-node.md
new file mode 100644
index 0000000..672509b
--- /dev/null
+++ b/website2/website/versioned_docs/version-0.21.2/getting-started-local-single-node.md
@@ -0,0 +1,286 @@
+---
+id: version-0.21.2-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}}
+
+The easiest way to get started learning Heron is to install the Heron client tools, which are currently available for:
+
+* [MacOS](#macos-homebrew)
+* [Ubuntu >= 14.04](#using-installation-scripts)
+* [CentOS](#using-installation-scripts)
+
+
+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 on [macOS](#macos-homebrew) using [Homebrew](https://brew.sh) and on Linux using [installation scripts](#using-installation-scripts).
+
+> You can install using [installation scripts](#using-installation-scripts) on macOS as well.
+
+## macOS/Homebrew
+
+The easiest way to get started with Heron on macOS is using [Homebrew](https://brew.sh):
+
+```bash
+$ brew tap streamlio/homebrew-formulae
+$ brew update
+$ brew install heron
+```
+
+This will install a variety of executables and other resources by default in `/usr/local/opt/heron`.
+
+> Homebrew may use a different folder than `/usr/local/opt/heron`. To check which folder is being used, run `brew --prefix heron`.
+
+## 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`.
+
+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 %}}-ubuntu.sh
+```
+
+Once you've downloaded the script, make it executable using [chmod](https://en.wikipedia.org/wiki/Chmod):
+
+```bash
+$ chmod +x heron-*.sh
+```
+
+> The script will install executables in the `~/bin` folder. You should add that folder to your `PATH` using `export PATH=~/bin:$PATH`.
+
+Now run the [Heron client](user-manuals-heron-cli) installation script with the `--user` flag set. Here's an example for Ubuntu:
+
+```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 : 26bb4096130a05f9799510bbce6c37a69a7342ef
+heron.build.git.status : Clean
+heron.build.host : ...
+heron.build.time : Sat Aug 6 12:35:47 PDT {{% currentYear %}}
+heron.build.timestamp : 1470512147000
+heron.build.user : ...
+heron.build.version : {{% heronVersion %}}
+```
+
+## 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 http://heronstreaming.io
+```
+
+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]({{% githubMaster %}}/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.21.2/guides-ui-guide.md b/website2/website/versioned_docs/version-0.21.2/guides-ui-guide.md
new file mode 100644
index 0000000..9a029b4
--- /dev/null
+++ b/website2/website/versioned_docs/version-0.21.2/guides-ui-guide.md
@@ -0,0 +1,206 @@
+---
+id: version-0.21.2-guides-ui-guide
+title: Heron UI Guide
+sidebar_label: Heron UI Guide
+original_id: guides-ui-guide
+---
+<!--
+ 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.
+-->
+
+### Overview
+
+This guide describes how to make best use of Heron UI for monitoring and
+debugging topologies.
+
+The UI provides a lot of information about a topology or a part of it quickly,
+thus reducing debugging time considerably. Some of these features are
+listed below. A complete set of features can be found in following sections.
+
+1. See logical plan of a topology
+2. See physical plan of a topology
+3. Configs of a topology
+4. See some basic metrics for each of the instances and components
+5. Links to get logs, memory histogram, jstack, heapdump and exceptions of
+ a particular instance
+
+#### Topologies Page
+
+Heron UI is a user interface that uses the Heron Tracker to display detailed, colorful visual representations of topologies, including the logical and physical plan for each topology.
+
+Start the Heron tracker using `heron-tracker &` which uses default heron_tracker.yaml configuration file. It's a centralized gateway for cluster-wide information about topologies, including which topologies are running, being launched, being killed, etc. It exposes Json Restful endpoint and relies on Zookeeper nodes.
+
+Launc the Heron UI by the command:
+
+```bash
+heron-ui &
+```
+
+By default Heron UI will be started at `http://localhost:8889`
+
+Below is the home page of Heron UI.
+
+The following information or actions can be found on this page.
+
+1. List of all topologies
+2. Number of topologies filtered after search (total by default)
+3. A topology's overview
+4. Filter the topologies using `cluster`
+5. Filter the topologies using string matching in names, clusters, environs,
+ roles, versions, or submitters
+6. Sort the topologies based on a particular column
+7. Click on the topology name to find more info about the topology
+
+![All topologies](assets/all-topologies.png)
+
+#### Topology Page
+
+Below is the main page to monitor a topology.
+
+1. Name of the topology
+2. [Logical plan](heron-topology-concepts#logical-plan) of the topology
+3. [Physical plan](heron-topology-concepts#physical-plan) of the topology
+4. Health metrics for the topology
+5. General info about the topology
+6. General metrics for the topology
+7. Click components for more details
+8. Click instances for more details
+9. Click on aggregated metrics to color instances by metrics
+10. Link to topology level configs
+11. Link to job page only if the scheduler provides a link
+ <!-- (TODO: Link to this guide) -->
+12. Link to viz dashboard for this topology only if Tracker is configured with
+ one. <!-- (TODO: Link to this configuration) -->
+
+![Topology1](assets/topology1.png)
+
+![Topology2](assets/topology2.png)
+
+Each node in logical plan can be clicked for more specific info about that
+component.
+
+1. Averaged or max metrics for all instances of this component
+2. Aggregated metrics for all instances of this component
+3. List of all instances and their aggregated metrics
+4. [Instance level operations](#instance-actions-pages), which are described in more details below
+
+![Topology Component](assets/topology-component.png)
+
+Clicking on an instance will highlight that instance in the list.
+
+1. Aggregated metrics are only for this instance
+2. Quick access to logs, exceptions and job pages for this instance
+3. Component counters are still aggregated for all instances
+4. The selected instance is highlighted
+
+![Topology Instance](assets/topology-instance.png)
+
+#### Aggregate Topology Metrics
+
+Selecting a metric will highlight the components and instances based on their
+health with respect to the metric, green being healthy, red indicating a problem.
+This is a quick way to find out which instances are having issues.
+
+![Topology Capacity](assets/topology-capacity.png)
+
+![Topology Failures](assets/topology-failures.png)
+
+#### Config Page
+
+These are the topology configurations <!-- (TODO: Add link to Topology
+Configurations) --> that your topology is configured with. Note that spout and
+bolt level configurations are not part of topology config.
+
+![Config](assets/config.png)
+
+#### <a name="instance-actions-pages">Instance Action Pages</a>
+
+These actions are available for all the instances. They are described in the
+next sections.
+
+![Instance Links](assets/topology-instance-links.png)
+
+#### Logs Page
+
+These are the logs generated by the selected instance. The whole logs file can
+also be downloaded.
+
+![Logs](assets/logs.png)
+
+#### Job Page
+
+Below is the directory view of the container. All instances from a container
+will point to the same job page. Following information is available on this page,
+amongst other things.
+
+1. The jar or tar file associated with this topology
+2. Logs for heron-executor <!-- TODO: Link heron-executor -->
+3. `log-files` folder which has instance logs, as well as `stream manager` or
+ `tmaster` logs.
+
+![Jobpage](assets/jobpage1.png)
+
+![Jobpage logfiles](assets/jobpage2-logfiles.png)
+
+#### Exceptions Page
+
+This page lists all exceptions logged by this instance. The exceptions are
+deduplicated, and for each exception, the page shows the number of times this
+exception occurred, the latest and the oldest occurance times.
+
+![Exceptions](assets/exceptions.png)
+
+#### PID Page
+
+This link can be used to find the process ID for an instance. Since each instance
+runs in its own JVM process, this will be unique for a host. The PID is also
+used for other tasks, such as getting jstack or heap dump for an instance.
+
+![PID](assets/pid.png)
+
+#### Jstack Page
+
+Click on this link to run the `jstack` command on the host against the PID for
+the instance. The output of the command is printed on the page in the browser
+itself.
+
+![Jstack](assets/jstack.png)
+
+#### Memory Histogram Page
+
+Click on this link to run the `jmap -histo` command on the host against the PID
+for the instance. The output of the command is printed on the page in the
+browser itself.
+
+![Histo](assets/histo.png)
+
+#### Memory Dump page
+
+Click on this link to run the `jmap -dump:format=b,file=/tmp/heap.bin` command
+agaist the PID for the instance. Follow the instructions on the page to download
+the heap dump file. This link does not download the file.
+
+![Memory Dump](assets/dump.png)
+
+#### Kill Heron UI server
+
+To kill Heron UI server run the following command:
+
+```bash
+kill $(pgrep -f heron-ui)
+```
+
+To stop all the Heron tools, kill the Heron Tracker as well using `kill $(pgrep -f heron-tracker)`.
diff --git a/website2/website/versioned_docs/version-0.21.2/user-manuals-heron-ui.md b/website2/website/versioned_docs/version-0.21.2/user-manuals-heron-ui.md
new file mode 100644
index 0000000..c293fe1
--- /dev/null
+++ b/website2/website/versioned_docs/version-0.21.2/user-manuals-heron-ui.md
@@ -0,0 +1,62 @@
+---
+id: version-0.21.2-user-manuals-heron-ui-runbook
+title: Heron UI Runbook
+sidebar_label: Heron UI Runbook
+original_id: user-manuals-heron-ui-runbook
+---
+<!--
+ 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 UI** is a user interface that uses the [Heron Tracker](heron-architecture#heron-tracker) to display detailed,
+colorful visual representations of topologies, including the
+[logical](heron-topology-concepts#logical-plan) and [physical
+plan](heron-topology-concepts#physical-plan) for each topology. Check out
+[Heron UI Usage Guide](guides-ui-guide) for more information about
+various elements that UI exposes.
+
+### Building Heron UI
+
+Heron uses [bazel](http://bazel.io/) for compiling.
+[This page](compiling-overview) describes how to setup bazel
+for heron.
+
+```bash
+# Build heron-ui
+$ bazel build heron/tools/ui/src/python:heron-ui
+
+# The location of heron-ui pex executable is
+# bazel-bin/heron/tools/ui/src/python/heron-ui
+# To run using default options:
+$ ./bazel-bin/heron/tools/ui/src/python/heron-ui
+```
+
+`heron-ui` is a self executable
+[pex](https://pex.readthedocs.io/en/latest/whatispex.html) archive.
+
+### Heron UI Args
+
+* `--port` - Port to run the heron-ui on. Default port is `8889`.
+* `--tracker_url` - The base url for tracker. All the information about the
+ topologies is fetched from tracker. Default url is `http://localhost:8888`.
+* `--address` - Address to listen; Default address is `0.0.0.0`
+* `--base_url` - The base url path if operating behind proxy; Default is [`None`](https://github.com/apache/incubator-heron/blob/master/heron/tools/ui/src/python/main.py#L145)
+
+```bash
+$ heron-ui
+# is equivalent to
+$ heron-ui --port=8889 --tracker_url=http://localhost:8888
+```
diff --git a/website2/website/versions.json b/website2/website/versions.json
index 0340361..6ed5017 100644
--- a/website2/website/versions.json
+++ b/website2/website/versions.json
@@ -1,3 +1,5 @@
[
+ "0.21.1",
+ "0.21.2",
"0.20.0"
]