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

Commit 9ddbeb6

Browse files
updating docs for compiling (#3483)
* updating docs for compiling * clean up docs
1 parent 43c7c74 commit 9ddbeb6

11 files changed

+4803
-5141
lines changed

docker/scripts/build-docker.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,13 @@ case $# in
9696
echo "Usage: $0 <platform> <version_string> <artifact-directory> [-s|--squash]"
9797
echo " "
9898
echo "Argument options:"
99-
echo " <platform>: darwin, debian9, ubuntu14.04, ubuntu16.04, ubuntu18.04, centos7"
99+
echo " <platform>: darwin, debian9, debian10, ubuntu14.04, ubuntu18.04, centos7"
100100
echo " <version_string>: Version of Heron build, e.g. v0.17.5.1-rc"
101101
echo " <artifact-directory>: Location of compiled Heron artifact"
102102
echo " [-s|--squash]: Enables using Docker experimental feature --squash"
103103
echo " "
104104
echo "Example:"
105-
echo " ./build-docker.sh ubuntu14.04 0.12.0 ~/ubuntu"
105+
echo " ./build-docker.sh ubuntu18.04 0.12.0 ~/ubuntu"
106106
echo " "
107107
exit 1
108108
;;

docker/scripts/dev-env-create.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ case $# in
4343
esac
4444

4545
# Default platform is ubuntu18.04. Other available platforms
46-
# include centos7, debian9
46+
# include centos7, debian9, debian10, ubuntu18.04
4747
TARGET_PLATFORM=${2:-"ubuntu18.04"}
4848
SCRATCH_DIR="$HOME/.heron-docker"
4949
REPOSITORY="heron-dev"

website2/docs/compiling-docker.md

+37-19
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ For developing Heron, you will need to compile it for the environment that you
2424
want to use it in. If you'd like to use Docker to create that build environment,
2525
Heron provides a convenient script to make that process easier.
2626

27-
Currently, only Ubuntu 14.04, Ubuntu 18.04, and CentOS 7 are supported, but if you
27+
Currently Debian10 and Ubuntu 18.04 are actively being supported. There is also limited support for Ubuntu 14.04, Debian9, and CentOS 7. If you
2828
need another platform there are instructions for adding new ones
2929
[below](#contributing-new-environments).
3030

@@ -58,21 +58,39 @@ $ docker/build-artifacts.sh
5858
Running the script by itself will display usage information:
5959

6060
```
61-
Usage: docker/build-artifacts.sh <platform> <version_string> [source-tarball] <output-directory>
62-
63-
Platforms Supported: darwin, ubuntu14.04, ubuntu18.04, centos7
64-
61+
Script to build heron docker image for different platforms
62+
Input - directory containing the artifacts from the directory <artifact-directory>
63+
Output - docker image tar file saved in the directory <artifact-directory>
64+
65+
Usage: ./docker/scripts/build-docker.sh <platform> <version_string> <artifact-directory> [-s|--squash]
66+
67+
Argument options:
68+
<platform>: darwin, debian9, debian10, ubuntu14.04, ubuntu18.04, centos7
69+
<version_string>: Version of Heron build, e.g. v0.17.5.1-rc
70+
<artifact-directory>: Location of compiled Heron artifact
71+
[-s|--squash]: Enables using Docker experimental feature --squash
72+
6573
Example:
66-
./build-artifacts.sh ubuntu14.04 0.12.0 .
74+
./build-docker.sh ubuntu18.04 0.12.0 ~/ubuntu
6775
6876
NOTE: If running on OSX, the output directory will need to
6977
be under /Users so virtualbox has access to.
7078
```
7179

7280
The following arguments are required:
7381

74-
* `platform` --- Currently, this can be one of: `ubuntu14.04`, `centos7`. You
75-
can add other platforms using the [instructions
82+
* `platform` --- Currently we are focused on supporting the `debian10` and `ubuntu18.04` platforms.
83+
We also support building Heron locally on OSX. You can specify this as listing `darwin` as the platform.
84+
All options are:
85+
- `centos7`
86+
- `darwin`
87+
- `debian9`
88+
- `debian10`
89+
- `ubuntu14.04`
90+
- `ubuntu18.04`
91+
92+
93+
You can add other platforms using the [instructions
7694
below](#contributing-new-environments).
7795
* `version-string` --- The Heron release for which you'd like to build
7896
artifacts.
@@ -82,10 +100,10 @@ The following arguments are required:
82100
Here's an example usage:
83101

84102
```bash
85-
$ docker/scripts/build-artifacts.sh ubuntu14.04 0.12.0 ~/heron-release
103+
$ docker/scripts/build-artifacts.sh debian10 0.22.1-incubating ~/heron-release
86104
```
87105

88-
This will build a Docker container specific to Ubuntu 14.04, create a source
106+
This will build a Docker container specific to Debian10, create a source
89107
tarball of the Heron repository, run a full release build of Heron, and then
90108
copy the artifacts into the `~/heron-release` directory.
91109

@@ -105,12 +123,12 @@ of the generated artifacts:
105123

106124
```bash
107125
$ ls ~/heron-release
108-
heron-0.12.0-ubuntu14.04.tar
109-
heron-0.12.0-ubuntu14.04.tar.gz
110-
heron-core-0.12.0-ubuntu14.04.tar.gz
111-
heron-install-0.12.0-ubuntu14.04.sh
112-
heron-layer-0.12.0-ubuntu14.04.tar
113-
heron-tools-0.12.0-ubuntu14.04.tar.gz
126+
heron-0.22.1-incubating-debian10.tar
127+
heron-0.22.1-incubating-debian10.tar.gz
128+
heron-core-0.22.1-incubating-debian10.tar.gz
129+
heron-install-0.22.1-incubating-debian10.sh
130+
heron-layer-0.22.1-incubating-debian10.tar
131+
heron-tools-0.22.1-incubating-debian10.tar.gz
114132
```
115133

116134
## Set Up A Docker Based Development Environment
@@ -130,8 +148,8 @@ After the commands, a new docker container is started with all the libraries and
130148
installed. The operation system is Ubuntu 18.04 by default. Now you can build Heron
131149
like:
132150
```bash
133-
\# bazel build --config=ubuntu scripts/packages:binpkgs
134-
\# bazel build --config=ubuntu scripts/packages:tarpkgs
151+
\# bazel build --config=debian scripts/packages:binpkgs
152+
\# bazel build --config=debian scripts/packages:tarpkgs
135153
```
136154

137155
The current folder is mapped to the '/heron' directory in the container and any changes
@@ -221,7 +239,7 @@ ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64
221239
Here's an example:
222240

223241
```dockerfile
224-
RUN wget -O /tmp/bazel.sh https://github.com/bazelbuild/bazel/releases/download/0.23.2/bazel-0.23.2-installer-linux-x86_64.sh \
242+
RUN wget -O /tmp/bazel.sh https://github.com/bazelbuild/bazel/releases/download/0.26.0/bazel-0.26.0-installer-linux-x86_64.sh \
225243
&& chmod +x /tmp/bazel.sh \
226244
&& /tmp/bazel.sh
227245
```

website2/docs/compiling-osx.md

+8-2
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,16 @@ install it using this one-liner:
3232
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
3333
```
3434

35-
### Step 2 --- Install bazel and other required libraries
35+
### Step 2 -- Install Bazel
36+
```bash
37+
wget -O /tmp/bazel.sh https://github.com/bazelbuild/bazel/releases/download/0.26.0/bazel-0.26.0-installer-darwin-x86_64.sh
38+
chmod +x /tmp/bazel.sh
39+
/tmp/bazel.sh --user
40+
```
41+
42+
### Step 2 --- Install other required libraries
3643

3744
```bash
38-
brew install bazel
3945
brew install automake
4046
brew install cmake
4147
brew install libtool

website2/docs/compiling-overview.md

+10-10
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ sidebar_label: Compiling Overview
2121
-->
2222

2323
Heron is currently available for [Mac OS X 10.14](compiling-osx),
24-
[Ubuntu 14.04](compiling-linux), and [CentOS
25-
7](compiling-linux#building-on-centos-7). This guide describes the basics of the
26-
Heron build system. For step-by-step build instructions for a specific platform,
24+
[Ubuntu 18.04](compiling-linux), and [Debian10](compiling-docker#building-heron).
25+
This guide describes the basics of the
26+
Heron build system. For step-by-step build instructions for other platforms,
2727
the following guides are available:
2828

2929
* [Building on Linux Platforms](compiling-linux)
@@ -38,11 +38,10 @@ Instructions on running unit tests for Heron can also be found in [Testing Heron
3838
You must have the following installed to compile Heron:
3939

4040
* [Bazel](http://bazel.io/docs/install.html) = {{% bazelVersion %}}. Later
41-
versions might work but have not been tested. See [Installing Bazel]({{< ref
42-
"#installing-bazel" >}}) below.
41+
versions might work but have not been tested. See [Installing Bazel](#installing-bazel)below.
4342
* [Java 11](https://www.oracle.com/java/technologies/javase-jdk11-downloads.html)
4443
is required by Bazel and Heron;
45-
[topologies](../../../concepts/topologies) can be written in Java 7 or above
44+
topologies can be written in Java 7 or above
4645
, but Heron jars are required to run with a Java 11 JRE.
4746
* [Autoconf](http://www.gnu.org/software/autoconf/autoconf.html) >=
4847
2.6.3
@@ -65,8 +64,8 @@ $ echo $CC $CXX
6564

6665
## Installing Bazel
6766

68-
Heron uses the [Bazel](http://bazel.io) build tool. Bazel releases can be found
69-
[here](https://github.com/bazelbuild/bazel/releases/tag/{{% bazelVersion %}})
67+
Heron uses the [Bazel](http://bazel.io) build tool. Bazel releases can be found here:
68+
https://github.com/bazelbuild/bazel/releases/tag/{{% bazelVersion %}}
7069
and installation instructions can be found [here](http://bazel.io/docs/install.html).
7170

7271
To ensure that Bazel has been installed, run `bazel version` and check the
@@ -92,8 +91,9 @@ OS-specific configuration using the `--config` flag. The following OS values
9291
are supported:
9392

9493
* `darwin` (Mac OS X)
95-
* `ubuntu` (Ubuntu 14.04)
96-
* `centos5` (CentOS 5)
94+
* `ubuntu` (Ubuntu 18.04)
95+
* `debian` (Debian10)
96+
* `centos5` (CentOS 7)
9797

9898
For example, on Mac OS X (`darwin`), the following command will build all
9999
packages:

website2/docs/getting-started-local-single-node.md

+30-49
Original file line numberDiff line numberDiff line change
@@ -22,63 +22,44 @@ sidebar_label: Local (Single Node)
2222

2323
> The current version of Heron is {{heron:version}}
2424
25-
26-
The easiest way to get started learning Heron is to install the Heron client tools, which are currently available for:
25+
The current way to get started learning Heron is to build from source.
26+
Please refer to the [guide to compiling Heron](compiling-overview). The Heron community is working to add release scripts and Heron
27+
binaries available from Apache mirrors soon.
2728

2829
* [MacOS](#macos-homebrew)
29-
* [Ubuntu >= 14.04](#using-installation-scripts)
30+
* [Ubuntu 18.04](#using-installation-scripts)
3031
* [CentOS](#using-installation-scripts)
3132

32-
For other platforms, you need to build from source. Please refer to the [guide to compiling Heron](compiling-overview).
33-
34-
## Step 1 --- Download the Heron tools
35-
36-
Heron tools can be installed on [macOS](#macos-homebrew) using [Homebrew](https://brew.sh) and on Linux using [installation scripts](#using-installation-scripts).
33+
## Building installation scripts
3734

38-
> You can install using [installation scripts](#using-installation-scripts) on macOS as well.
35+
The only way to obtain the installation scripts at this time are to compile from source. We are working to add release scripts and Heron
36+
binaries available from Apache mirrors soon.
3937

40-
## macOS/Homebrew
38+
See how to get setup building Heron see the notes [here](compiling-overview.md)
4139

42-
The easiest way to get started with Heron on macOS is using [Homebrew](https://brew.sh):
40+
If you already have Bazel and the other required tools installed for your platform you can execute the following:
4341

4442
```bash
45-
$ brew tap streamlio/homebrew-formulae
46-
$ brew update
47-
$ brew install heron
43+
$ bazel build --config=[platform] scripts/packages:binpkgs
4844
```
49-
50-
This will install a variety of executables and other resources by default in `/usr/local/opt/heron`.
51-
52-
> Homebrew may use a different folder than `/usr/local/opt/heron`. To check which folder is being used, run `brew --prefix heron`.
53-
54-
## Using installation scripts
55-
56-
To install Heron binaries directly, using installation scripts, go to Heron's [releases page](https://github.com/apache/incubator-heron/releases) on GitHub
57-
and see a full listing of Heron releases for each available platform. The installation script for macOS (`darwin`), for example, is named
58-
`heron-install-{{% heronVersion %}}-darwin.sh`.
59-
60-
```bash
61-
$ wget https://github.com/apache/incubator-heron/releases/download/{{% heronVersion %}}/heron-install-{{% heronVersion %}}-darwin.sh
45+
Options for the config flag are:
46+
* `debian` (Debian10)
47+
* `ubuntu` (Ubuntu)
48+
* `darwin` (OSX)
49+
50+
This command will take approximately 45 minutes to compile based on your machine settings.
51+
It will output a script called `heron-install.sh` You will be able to find it relative to the Heron root folder:
52+
53+
```bash
54+
$ ./bazel-bin/scripts/packages/heron-install.sh
6255
```
6356

64-
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:
65-
66-
```bash
67-
$ wget https://github.com/apache/incubator-heron/releases/download/{{% heronVersion %}}/heron-install-{{% heronVersion %}}-ubuntu.sh
68-
```
69-
70-
Once you've downloaded the script, make it executable using [chmod](https://en.wikipedia.org/wiki/Chmod):
71-
72-
```bash
73-
$ chmod +x heron-*.sh
74-
```
57+
Now run the [Heron client](user-manuals-heron-cli) installation script with the `--user` flag set. Here's an example:
7558

7659
> The script will install executables in the `~/bin` folder. You should add that folder to your `PATH` using `export PATH=~/bin:$PATH`.
7760
78-
Now run the [Heron client](user-manuals-heron-cli) installation script with the `--user` flag set. Here's an example for Ubuntu:
79-
8061
```bash
81-
$ ./heron-install-{{% heronVersion %}}-ubuntu.sh --user
62+
$ ./heron-install.sh --user
8263
Heron installer
8364
---------------
8465

@@ -91,13 +72,13 @@ To check that Heron is successfully installed, run `heron version`:
9172

9273
```bash
9374
$ heron version
94-
heron.build.git.revision : 26bb4096130a05f9799510bbce6c37a69a7342ef
95-
heron.build.git.status : Clean
96-
heron.build.host : ...
97-
heron.build.time : Sat Aug 6 12:35:47 PDT {{% currentYear %}}
98-
heron.build.timestamp : 1470512147000
75+
heron.build.git.revision : b580f689d8cbcb3026966bde2aacf6da74d5bcf5
76+
heron.build.git.status : Modified
77+
heron.build.host : MBP
78+
heron.build.time : Sun Mar 22 06:42:05 CDT 2020
79+
heron.build.timestamp : 1584877325000
9980
heron.build.user : ...
100-
heron.build.version : {{% heronVersion %}}
81+
heron.build.version : update-docs-compiling
10182
```
10283

10384
## Step 2 --- Launch an example topology
@@ -261,7 +242,7 @@ Optional arguments:
261242

262243
The source code for the example topologies can be found
263244
[on
264-
GitHub]({{% githubMaster %}}/examples/src/java/org/apache/heron/examples).
245+
GitHub](https://github.com/apache/incubator-heron/tree/master/examples/src/java/org/apache/heron/examples).
265246
The included example topologies:
266247

267248
* `AckingTopology.java` --- A topology with acking enabled.
@@ -286,4 +267,4 @@ In case of any issues, please refer to [Quick Start Troubleshooting](getting-sta
286267
* [Deploy topologies](deployment-overview) in clustered, scheduler-driven
287268
environments (such as on [Aurora](schedulers-aurora-cluster)
288269
and [locally](schedulers-local))
289-
* [Develop topologies](heron-architecture) for Heron
270+
* [Develop topologies](heron-architecture) for Heron

0 commit comments

Comments
 (0)