Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion wayang-docs/src/main/resources/_config.prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

url: "https://wayang.apache.org"
baseurl: ""
title: "Apache Wayang (incubating) - Documentation"
title: "Apache Wayang - Documentation"
permalink: pretty
collections:
publications:
Expand Down
2 changes: 1 addition & 1 deletion wayang-docs/src/main/resources/_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

url: "http://127.0.0.1:4000"
baseurl: ""
title: "Apache Wayang (incubating) - Documentation"
title: "Apache Wayang - Documentation"
permalink: pretty
collections:
publications:
Expand Down
153 changes: 80 additions & 73 deletions wayang-docs/src/main/resources/_data/menus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,97 +13,104 @@
# See the License for the specific language governing permissions and
# limitations under the License.
header:
# - url: /what_is_wayang/
# title: What is Wayang?
# identifier: what_wayang
# weight: 1

# - url: /getting_start/
# title: Getting Started with Wayang
# identifier: getting_start
# weight: 2

# - url: /using_wayang/
# title: Using Wayang
# identifier: using
# weight: 3

# - url: /extending_wayang/
# title: Extending Wayang
# identifier: extending
# weight: 4
- url: /what_is_wayang/
title: What is Wayang?
identifier: what_wayang
weight: 1

- url: /getting_start/
title: Getting Started
identifier: getting_start
weight: 2

- url: /using_wayang/
title: Using Wayang
identifier: using
weight: 3

- url: /how_contribute/
title: How To Contribute
identifier: contribute
weight: 4

- url: https://wayang.apache.org/docs/api/javadocs/
title: API JavaDocs
identifier: javadoc
weight: 5

getting_start:
- url: /getting_start/how_build/
title: How To Build Wayang
identifier: build
weight: 0

#getting_start:
# - url: /getting_start/how_build/
# title: How To Build Wayang
# identifier: build
# weight: 0
#
# - url: /getting_start/how_install/
# title: How To Install Wayang
# identifier: install
# weight: 1
#
# - url: /getting_start/how_run/
# title: How To Run Wayang
# identifier: run
# weight: 2
#
# - url: /getting_start/writting_wayang_plan/
# title: Writting a Wayang Plan
# identifier: writting
# weight: 3

#using:
# - url: /using_wayang/api_java_scala/
# title: API Java/Scala
# identifier: api_java
# weight: 0
#
# - url: /using_wayang/api_python/
# title: API Python
# identifier: api_python
# weight: 1
#
# - url: /using_wayang/api_rest/
# title: API REST
# identifier: api_rest
# weight: 2

# - url: /using_wayang/api_sql/
# title: API SQL
# identifier: api_sql
# weight: 3
#
# - url: /using_wayang/api_jdbc/
# title: API JDBC
# identifier: api_jdbc
# weight: 4
- url: /getting_start/how_install/
title: How To Install Wayang
identifier: install
weight: 1

- url: /getting_start/how_run/
title: How To Run Wayang
identifier: run
weight: 2

- url: /getting_start/writting_wayang_plan/
title: Wayang Abstractions & Plans
identifier: writting
weight: 3

#extending:
# - url: /extending_wayang/adding_platform/
# title: Adding Platform
# identifier: platform
# weight: 0
using:
- url: /using_wayang/api_java_scala/
title: API Java/Scala
identifier: api_java
weight: 0

- url: /using_wayang/api_python/
title: API Python
identifier: api_python
weight: 1

- url: /using_wayang/api_rest/
title: API REST
identifier: api_rest
weight: 2

- url: /using_wayang/api_sql/
title: API SQL
identifier: api_sql
weight: 3

- url: /using_wayang/api_jdbc/
title: API JDBC
identifier: api_jdbc
weight: 4

- url: /using_wayang/configuring_wayang/
title: Configuring Wayang
identifier: configuring
weight: 5

- url: /using_wayang/cost_model_calibration/
title: Cost Model Calibration
identifier: cost_model
weight: 6

- url: /using_wayang/scalable_deep_learning/
title: Scalable Deep Learning
identifier: deep_learning
weight: 7

contribute:
- url: /how_contribute/code_changes/
title: Code Changes
identifier: code_changes
weight: 4

weight: 1

code_changes:
- url: /how_contribute/code_changes/preparing_contribute_code_changes/
title: Preparing to Contribute Code Changes
identifier: preparing_code_changes
weight: 5
weight: 1



Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ license: |
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.
Expand All @@ -17,14 +17,69 @@ license: |
layout: default
title: "Step by Step Building Wayang"
previous:
url: /
title: previous
url: /getting_start/how_build/
title: How to Build Wayang
next:
url: /
title: next
menus:
url: /getting_start/how_install/
title: How to Install Wayang
menu:
build:
weight: 1
---

Step by Step Building Wayang
# Step by Step Building Wayang

Follow these step-by-step instructions to compile, test, and package Apache Wayang on your machine.

---

### Step 1: Clone the Git Repository
```shell
$ git clone https://github.com/apache/wayang.git
$ cd wayang
```

---

### Step 2: Verify System Prerequisites
Ensure that your `JAVA_HOME` points to JDK 17 and that Java is in your system PATH:

```shell
$ java -version
# Expected: openjdk version "17.0.x"
```

---

### Step 3: Compile and Install Core Libraries
Build the core framework and platform adapters using the included Maven wrapper:

```shell
$ ./mvnw clean install -DskipTests
```

This compiles all modules into your local Maven cache (`~/.m2/repository`).

---

### Step 4: Building Specific Modules
You can build individual sub-modules to accelerate development workflows:

```shell
# Build only core and basic modules
$ ./mvnw clean install -pl wayang-commons/wayang-core,wayang-commons/wayang-basic -DskipTests

# Build the Spark platform adapter
$ ./mvnw clean install -pl wayang-platforms/wayang-spark -DskipTests
```

---

### Step 5: Assembling Binary Distributions
To assemble the full redistributable binary tarball containing executable scripts and dependencies:

```shell
$ ./mvnw clean package -Pdistro -DskipTests
```

The resulting archives are generated in `wayang-assembly/target/`.
64 changes: 58 additions & 6 deletions wayang-docs/src/main/resources/getting_start/how_build/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ license: |
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.
Expand All @@ -17,11 +17,63 @@ license: |
layout: default
title: "How to Build Wayang"
previous:
url: /
title: previous
url: /getting_start/
title: Getting Started
next:
url: /
title: next
url: /getting_start/how_build/build_step/
title: Step by Step Building Wayang
menu:
getting_start:
weight: 0
---

# How to Build Apache Wayang

This guide details the system prerequisites, environment setup, and Maven commands required to build Apache Wayang from source.

---

## Requirements

Before building Apache Wayang from source, ensure your environment meets the following specifications:

- **Java Development Kit (JDK)**: JDK 17.
- **Scala**: Version 2.12.x.
- **Apache Maven**: Maven 3.8.0 or newer (or use the included Maven wrapper `./mvnw` / `mvnw.cmd`).
- **Platform Prerequisites**:
- **Linux / macOS**: Standard development toolchains (`tar`, `gzip`).
- **Windows**: Requires Hadoop winutils binaries located in `%HADOOP_HOME%\bin\winutils.exe` if running Hadoop/Spark integration locally.

---

How to Build Wayang
## Building from Source

### Quick Build (Skipping Tests)
To build all Wayang modules and compile JARs without running test suites:

```shell
$ git clone https://github.com/apache/wayang.git
$ cd wayang
$ ./mvnw clean install -DskipTests
```

### Full Build with Tests
To run unit and platform integration tests:

```shell
$ ./mvnw clean install
```

---

## Build Profiles

Wayang provides specialized Maven build profiles for assembling distributions and targeting execution environments:

| Profile | Command | Purpose |
|---|---|---|
| `distro` | `./mvnw clean install -Pdistro` | Assembles the complete binary release archive in `wayang-assembly`. |
| `standalone` | `./mvnw clean install -Pstandalone` | Packages bundled dependencies so standalone applications do not need external cluster libraries. |
| `web-documentation` | `./mvnw site -pl wayang-docs -Pweb-documentation` | Builds the Jekyll documentation site. |

For step-by-step guidance, see [Step by Step Building Wayang]({% link getting_start/how_build/build_step.md %}).
Loading