Skip to content
Permalink
Browse files
Joshfischer/add download links (#3671)
* initial addition of heron download page.  Still work to do.

* adding start to release page; adding updates for versioned docs

* adding versioned docs
  • Loading branch information
joshfischer1108 committed Feb 1, 2021
1 parent bfdbd43 commit 43fa2ffd41a2fd23c69834934f9b0f66d9775257
Show file tree
Hide file tree
Showing 13 changed files with 1,770 additions and 5 deletions.
@@ -20,7 +20,7 @@ sidebar_label: Compiling Overview
under the License.
-->

Heron is currently available for [Mac OS X 10.14](compiling-osx),
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,
@@ -50,7 +50,7 @@ You must have the following installed to compile Heron:
* [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.4
* [Python](https://www.python.org/) >= 3.8
* [Perl](https://www.perl.org/) >= 5.8.8
* [Ant] (https://ant.apache.org/) >= 1.10.0
* [CppUnit] (https://freedesktop.org/wiki/Software/cppunit/) >= 1.10.1
@@ -0,0 +1,3 @@
[
"0.20.3-incubating"
]
@@ -0,0 +1,157 @@
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 releases = require(`${CWD}/releases.json`);
const heronReleases = require(`${CWD}/heron-release.json`)

function getLatestArchiveMirrorUrl(version, type) {
return `https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/heron/heron-${version}/heron-${version}-${type}.tar.gz`
}

function distUrl(version, type) {
return `https://www.apache.org/dist/incubator/heron/heron-${version}/heron-${version}-${type}.tar.gz`
}

function archiveUrl(version, type) {
if (version.includes('incubating')) {
return `https://archive.apache.org/dist/incubator/heron/heron-${version}/apache-heron-v-${version}-${type}.tar.gz`
} else {
return `https://archive.apache.org/dist/heron/heron-${version}/apache-heron-v-${version}-${type}.tar.gz`
}
}



class Download extends React.Component {
render() {
const latestVersion = releases[0];
const latestHeronVersion = heronReleases[0];
const latestArchiveMirrorUrl = getLatestArchiveMirrorUrl(latestVersion, 'bin');
const latestSrcArchiveMirrorUrl = getLatestArchiveMirrorUrl(latestVersion, 'src');
const latestArchiveUrl = distUrl(latestVersion, 'bin');
const latestSrcArchiveUrl = distUrl(latestVersion, 'src')

const releaseInfo = releases.map(version => {
return {
version: version,
binArchiveUrl: archiveUrl(version, 'bin'),
srcArchiveUrl: archiveUrl(version, 'source')
}
});


return (
<div className="pageContainer">
<Container className="mainContainer documentContainer postContainer">
<div className="post">
<header className="postHeader">
<h1>Apache Heron (Incubating) downloads</h1>
<hr />
</header>

<h2>Release notes</h2>
<div>
<p>
<a href={`${siteConfig.baseUrl}${this.props.language}/release-notes`}>Release notes</a> for all Heron's versions
</p>
</div>

<h2 id="latest">Current version (Stable) {latestHeronVersion}</h2>
<table className="versions" style={{width:'100%'}}>
<thead>
<tr>
<th>Release</th>
<th>Link</th>
<th>Crypto files</th>
</tr>
</thead>
<tbody>


<tr key={'source'}>
<th>Source</th>
<td>
<a href={latestSrcArchiveMirrorUrl}>apache-heron-{latestVersion}-src.tar.gz</a>
</td>
<td>
<a href={`${latestSrcArchiveUrl}.asc`}>asc</a>,&nbsp;
<a href={`${latestSrcArchiveUrl}.sha512`}>sha512</a>
</td>
</tr>
</tbody>
</table>


<h2>Release Integrity</h2>
<MarkdownBlock>
You must [verify](https://www.apache.org/info/verification.html) the integrity of the downloaded files.
We provide OpenPGP signatures for every release file. This signature should be matched against the
[KEYS](https://downloads.apache.org/incubator/heron/KEYS) file which contains the OpenPGP keys of
Herons's Release Managers. We also provide `SHA-512` checksums for every release file.
After you download the file, you should calculate a checksum for your download, and make sure it is
the same as ours.
</MarkdownBlock>

<h2>Getting started</h2>
<div>
<p>

Once you've downloaded a Heron release, instructions on getting up and running with a standalone cluster
that you can run on your laptop can be found in the{' '}
&nbsp;
<a href={`${siteConfig.baseUrl}docs/getting-started-local-single-node`}>run Heron locally</a> tutorial.
</p>
</div>


<h2 id="archive">Older releases</h2>
<table className="versions">
<thead>
<tr>
<th>Release</th>

<th>Source</th>
<th>Release notes</th>
</tr>
</thead>
<tbody>
{releaseInfo.map(
info => {
var sha = "sha512"
if (info.version.includes('1.19.0-incubating') || info.version.includes('1.20.0-incubating')) {
sha = "sha"
}
return info.version !== latestVersion && (
<tr key={info.version}>
<th>{info.version}</th>

<td>
<a href={info.srcArchiveUrl}>apache-heron-{info.version}-source.tar.gz</a>
&nbsp;
(<a href={`${info.srcArchiveUrl}.asc`}>asc</a>,&nbsp;
<a href={`${info.srcArchiveUrl}.${sha}`}>{`${sha}`}</a>)
</td>
<td>
<a href={`${siteConfig.baseUrl}${this.props.language}/release-notes#${info.version}`}>Release Notes</a>
</td>
</tr>
)
}
)}
</tbody>
</table>
</div>
</Container>
</div>
);
}
}

module.exports = Download;
@@ -1,5 +1,4 @@
[
"0.20.0",
"0.19.0.16",
"0.19.0.12"
"0.20.3-incubating",
"0.20.0-incubating"
]
@@ -38,6 +38,7 @@ const bazelVersions = {
'0.20.0-incubating': '0.14.1',
'0.20.1-incubating': '0.26.0',
'0.20.2-incubating': '0.26.0',
'0.20.3-incubating': '3.7.0',
'latest': '3.7.2',
}

@@ -75,6 +75,7 @@ const siteConfig = {
{href: '/api/java', label: "Javadocs"},
{href: '/api/python', label: "Pydocs"},
{doc: 'getting-started-local-single-node', label: 'Docs'},
{page: 'download', label: "Downloads"},
{href: '#community', label: 'Community'},
//{blog: true, label: 'Blog'},
{href: '#apache', label: 'Apache'},
@@ -0,0 +1,145 @@
---
id: version-0.20.3-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
* [CppUnit] (https://freedesktop.org/wiki/Software/cppunit/) >= 1.10.1
* [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).

0 comments on commit 43fa2ff

Please sign in to comment.