Skip to content
This repository was archived by the owner on Mar 3, 2023. It is now read-only.

Commit 43fa2ff

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
1 parent bfdbd43 commit 43fa2ff

13 files changed

+1770
-5
lines changed

website2/docs/compiling-overview.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ sidebar_label: Compiling Overview
2020
under the License.
2121
-->
2222

23-
Heron is currently available for [Mac OS X 10.14](compiling-osx),
23+
Heron is currently available for [Mac OS X 11.01](compiling-osx),
2424
[Ubuntu 18.04](compiling-linux), and [Debian10](compiling-docker#building-heron).
2525
This guide describes the basics of the
2626
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:
5050
* [GNU Libtool](http://www.gnu.org/software/libtool/) >= 2.4.6
5151
* [gcc/g++](https://gcc.gnu.org/) >= 4.8.1 (Linux platforms)
5252
* [CMake](https://cmake.org/) >= 2.6.4
53-
* [Python](https://www.python.org/) >= 3.4
53+
* [Python](https://www.python.org/) >= 3.8
5454
* [Perl](https://www.perl.org/) >= 5.8.8
5555
* [Ant] (https://ant.apache.org/) >= 1.10.0
5656
* [CppUnit] (https://freedesktop.org/wiki/Software/cppunit/) >= 1.10.1

website2/website/heron-release.json

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[
2+
"0.20.3-incubating"
3+
]

website2/website/pages/en/download.js

+157
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
const React = require('react');
2+
3+
const CompLibrary = require('../../core/CompLibrary');
4+
const MarkdownBlock = CompLibrary.MarkdownBlock; /* Used to read markdown */
5+
const Container = CompLibrary.Container;
6+
const GridBlock = CompLibrary.GridBlock;
7+
8+
const CWD = process.cwd();
9+
10+
const siteConfig = require(`${CWD}/siteConfig.js`);
11+
const releases = require(`${CWD}/releases.json`);
12+
const heronReleases = require(`${CWD}/heron-release.json`)
13+
14+
function getLatestArchiveMirrorUrl(version, type) {
15+
return `https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/heron/heron-${version}/heron-${version}-${type}.tar.gz`
16+
}
17+
18+
function distUrl(version, type) {
19+
return `https://www.apache.org/dist/incubator/heron/heron-${version}/heron-${version}-${type}.tar.gz`
20+
}
21+
22+
function archiveUrl(version, type) {
23+
if (version.includes('incubating')) {
24+
return `https://archive.apache.org/dist/incubator/heron/heron-${version}/apache-heron-v-${version}-${type}.tar.gz`
25+
} else {
26+
return `https://archive.apache.org/dist/heron/heron-${version}/apache-heron-v-${version}-${type}.tar.gz`
27+
}
28+
}
29+
30+
31+
32+
class Download extends React.Component {
33+
render() {
34+
const latestVersion = releases[0];
35+
const latestHeronVersion = heronReleases[0];
36+
const latestArchiveMirrorUrl = getLatestArchiveMirrorUrl(latestVersion, 'bin');
37+
const latestSrcArchiveMirrorUrl = getLatestArchiveMirrorUrl(latestVersion, 'src');
38+
const latestArchiveUrl = distUrl(latestVersion, 'bin');
39+
const latestSrcArchiveUrl = distUrl(latestVersion, 'src')
40+
41+
const releaseInfo = releases.map(version => {
42+
return {
43+
version: version,
44+
binArchiveUrl: archiveUrl(version, 'bin'),
45+
srcArchiveUrl: archiveUrl(version, 'source')
46+
}
47+
});
48+
49+
50+
return (
51+
<div className="pageContainer">
52+
<Container className="mainContainer documentContainer postContainer">
53+
<div className="post">
54+
<header className="postHeader">
55+
<h1>Apache Heron (Incubating) downloads</h1>
56+
<hr />
57+
</header>
58+
59+
<h2>Release notes</h2>
60+
<div>
61+
<p>
62+
<a href={`${siteConfig.baseUrl}${this.props.language}/release-notes`}>Release notes</a> for all Heron's versions
63+
</p>
64+
</div>
65+
66+
<h2 id="latest">Current version (Stable) {latestHeronVersion}</h2>
67+
<table className="versions" style={{width:'100%'}}>
68+
<thead>
69+
<tr>
70+
<th>Release</th>
71+
<th>Link</th>
72+
<th>Crypto files</th>
73+
</tr>
74+
</thead>
75+
<tbody>
76+
77+
78+
<tr key={'source'}>
79+
<th>Source</th>
80+
<td>
81+
<a href={latestSrcArchiveMirrorUrl}>apache-heron-{latestVersion}-src.tar.gz</a>
82+
</td>
83+
<td>
84+
<a href={`${latestSrcArchiveUrl}.asc`}>asc</a>,&nbsp;
85+
<a href={`${latestSrcArchiveUrl}.sha512`}>sha512</a>
86+
</td>
87+
</tr>
88+
</tbody>
89+
</table>
90+
91+
92+
<h2>Release Integrity</h2>
93+
<MarkdownBlock>
94+
You must [verify](https://www.apache.org/info/verification.html) the integrity of the downloaded files.
95+
We provide OpenPGP signatures for every release file. This signature should be matched against the
96+
[KEYS](https://downloads.apache.org/incubator/heron/KEYS) file which contains the OpenPGP keys of
97+
Herons's Release Managers. We also provide `SHA-512` checksums for every release file.
98+
After you download the file, you should calculate a checksum for your download, and make sure it is
99+
the same as ours.
100+
</MarkdownBlock>
101+
102+
<h2>Getting started</h2>
103+
<div>
104+
<p>
105+
106+
Once you've downloaded a Heron release, instructions on getting up and running with a standalone cluster
107+
that you can run on your laptop can be found in the{' '}
108+
&nbsp;
109+
<a href={`${siteConfig.baseUrl}docs/getting-started-local-single-node`}>run Heron locally</a> tutorial.
110+
</p>
111+
</div>
112+
113+
114+
<h2 id="archive">Older releases</h2>
115+
<table className="versions">
116+
<thead>
117+
<tr>
118+
<th>Release</th>
119+
120+
<th>Source</th>
121+
<th>Release notes</th>
122+
</tr>
123+
</thead>
124+
<tbody>
125+
{releaseInfo.map(
126+
info => {
127+
var sha = "sha512"
128+
if (info.version.includes('1.19.0-incubating') || info.version.includes('1.20.0-incubating')) {
129+
sha = "sha"
130+
}
131+
return info.version !== latestVersion && (
132+
<tr key={info.version}>
133+
<th>{info.version}</th>
134+
135+
<td>
136+
<a href={info.srcArchiveUrl}>apache-heron-{info.version}-source.tar.gz</a>
137+
&nbsp;
138+
(<a href={`${info.srcArchiveUrl}.asc`}>asc</a>,&nbsp;
139+
<a href={`${info.srcArchiveUrl}.${sha}`}>{`${sha}`}</a>)
140+
</td>
141+
<td>
142+
<a href={`${siteConfig.baseUrl}${this.props.language}/release-notes#${info.version}`}>Release Notes</a>
143+
</td>
144+
</tr>
145+
)
146+
}
147+
)}
148+
</tbody>
149+
</table>
150+
</div>
151+
</Container>
152+
</div>
153+
);
154+
}
155+
}
156+
157+
module.exports = Download;

website2/website/releases.json

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
[
2-
"0.20.0",
3-
"0.19.0.16",
4-
"0.19.0.12"
2+
"0.20.3-incubating",
3+
"0.20.0-incubating"
54
]

website2/website/scripts/replace.js

+1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ const bazelVersions = {
3838
'0.20.0-incubating': '0.14.1',
3939
'0.20.1-incubating': '0.26.0',
4040
'0.20.2-incubating': '0.26.0',
41+
'0.20.3-incubating': '3.7.0',
4142
'latest': '3.7.2',
4243
}
4344

website2/website/siteConfig.js

+1
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ const siteConfig = {
7575
{href: '/api/java', label: "Javadocs"},
7676
{href: '/api/python', label: "Pydocs"},
7777
{doc: 'getting-started-local-single-node', label: 'Docs'},
78+
{page: 'download', label: "Downloads"},
7879
{href: '#community', label: 'Community'},
7980
//{blog: true, label: 'Blog'},
8081
{href: '#apache', label: 'Apache'},
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
---
2+
id: version-0.20.3-incubating-compiling-overview
3+
title: Compiling Heron
4+
sidebar_label: Compiling Overview
5+
original_id: compiling-overview
6+
---
7+
<!--
8+
Licensed to the Apache Software Foundation (ASF) under one
9+
or more contributor license agreements. See the NOTICE file
10+
distributed with this work for additional information
11+
regarding copyright ownership. The ASF licenses this file
12+
to you under the Apache License, Version 2.0 (the
13+
"License"); you may not use this file except in compliance
14+
with the License. You may obtain a copy of the License at
15+
http://www.apache.org/licenses/LICENSE-2.0
16+
Unless required by applicable law or agreed to in writing,
17+
software distributed under the License is distributed on an
18+
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
19+
KIND, either express or implied. See the License for the
20+
specific language governing permissions and limitations
21+
under the License.
22+
-->
23+
24+
Heron is currently available for [Mac OS X 11.01](compiling-osx),
25+
[Ubuntu 18.04](compiling-linux), and [Debian10](compiling-docker#building-heron).
26+
This guide describes the basics of the
27+
Heron build system. For step-by-step build instructions for other platforms,
28+
the following guides are available:
29+
30+
* [Building on Linux Platforms](compiling-linux)
31+
* [Building on Mac OS X](compiling-osx)
32+
33+
Heron can be built either [in its entirety](#building-all-components), as [individual components](#building-specific-components).
34+
35+
Instructions on running unit tests for Heron can also be found in [Testing Heron](compiling-running-tests).
36+
37+
## Requirements
38+
39+
You must have the following installed to compile Heron:
40+
41+
* [Bazel](http://bazel.io/docs/install.html) = {{% bazelVersion %}}. Later
42+
versions might work but have not been tested. See [Installing Bazel](#installing-bazel)below.
43+
* [Java 11](https://www.oracle.com/java/technologies/javase-jdk11-downloads.html)
44+
is required by Bazel and Heron;
45+
topologies can be written in Java 7 or above
46+
, but Heron jars are required to run with a Java 11 JRE.
47+
* [Autoconf](http://www.gnu.org/software/autoconf/autoconf.html) >=
48+
2.6.3
49+
* [Automake](https://www.gnu.org/software/automake/) >= 1.11.1
50+
* [GNU Make](https://www.gnu.org/software/make/) >= 3.81
51+
* [GNU Libtool](http://www.gnu.org/software/libtool/) >= 2.4.6
52+
* [gcc/g++](https://gcc.gnu.org/) >= 4.8.1 (Linux platforms)
53+
* [CMake](https://cmake.org/) >= 2.6.4
54+
* [Python](https://www.python.org/) >= 3.8
55+
* [Perl](https://www.perl.org/) >= 5.8.8
56+
* [Ant] (https://ant.apache.org/) >= 1.10.0
57+
* [CppUnit] (https://freedesktop.org/wiki/Software/cppunit/) >= 1.10.1
58+
* [Pkg-Config] (https://www.freedesktop.org/wiki/Software/pkg-config/) >= 0.29.2
59+
60+
Export the `CC` and `CXX` environment variables with a path specific to your
61+
machine:
62+
63+
```bash
64+
$ export CC=/your-path-to/bin/c_compiler
65+
$ export CXX=/your-path-to/bin/c++_compiler
66+
$ echo $CC $CXX
67+
```
68+
69+
## Installing Bazel
70+
71+
Heron uses the [Bazel](http://bazel.io) build tool. Bazel releases can be found here:
72+
https://github.com/bazelbuild/bazel/releases/tag/{{% bazelVersion %}}
73+
and installation instructions can be found [here](http://bazel.io/docs/install.html).
74+
75+
To ensure that Bazel has been installed, run `bazel version` and check the
76+
version (listed next to `Build label` in the script's output) to ensure that you
77+
have Bazel {{% bazelVersion %}}.
78+
79+
## Configuring Bazel
80+
81+
There is a Python script that you can run to configure Bazel on supported
82+
platforms:
83+
84+
```bash
85+
$ cd /path/to/heron
86+
$ ./bazel_configure.py
87+
```
88+
89+
## Building
90+
91+
### Bazel OS Environments
92+
93+
Bazel builds are specific to a given OS. When building you must specify an
94+
OS-specific configuration using the `--config` flag. The following OS values
95+
are supported:
96+
97+
* `darwin` (Mac OS X)
98+
* `ubuntu` (Ubuntu 18.04)
99+
* `debian` (Debian10)
100+
* `centos5` (CentOS 7)
101+
102+
For example, on Mac OS X (`darwin`), the following command will build all
103+
packages:
104+
105+
```bash
106+
$ bazel build --config=darwin heron/...
107+
```
108+
109+
Production release packages include additional performance optimizations
110+
not enabled by default. Enabling these optimizations increases build time.
111+
To enable production optimizations, include the `opt` flag:
112+
```bash
113+
$ bazel build -c opt --config=PLATFORM heron/...
114+
```
115+
116+
### Building All Components
117+
118+
The Bazel build process can produce either executable install scripts or
119+
bundled tars. To build executables or tars for all Heron components at once,
120+
use the following `bazel build` commands, respectively:
121+
122+
```bash
123+
$ bazel build --config=PLATFORM scripts/packages:binpkgs
124+
$ bazel build --config=PLATFORM scripts/packages:tarpkgs
125+
```
126+
127+
Resulting artifacts can be found in subdirectories below the `bazel-bin`
128+
directory. The `heron-tracker` executable, for example, can be found at
129+
`bazel-bin/heron/tools/tracker/src/python/heron-tracker`.
130+
131+
### Building Specific Components
132+
133+
As an alternative to building a full release, you can build Heron executables
134+
for a single Heron component (such as the [Heron
135+
Tracker](user-manuals-heron-tracker-runbook)) by passing a target to the `bazel
136+
build` command. For example, the following command would build the Heron Tracker:
137+
138+
```bash
139+
$ bazel build --config=darwin heron/tools/tracker/src/python:heron-tracker
140+
```
141+
142+
## Testing Heron
143+
144+
Instructions for running Heron unit tests can be found at [Testing
145+
Heron](compiling-running-tests).

0 commit comments

Comments
 (0)