Repository: mahout Updated Branches: refs/heads/branch-0.14.0 98d345cbc -> c31739327
MAHOUT-2036 Create Build Profiles Project: http://git-wip-us.apache.org/repos/asf/mahout/repo Commit: http://git-wip-us.apache.org/repos/asf/mahout/commit/c3173932 Tree: http://git-wip-us.apache.org/repos/asf/mahout/tree/c3173932 Diff: http://git-wip-us.apache.org/repos/asf/mahout/diff/c3173932 Branch: refs/heads/branch-0.14.0 Commit: c317393277c56ed789246b17fabbcea18679ba9a Parents: 98d345c Author: Trevor a.k.a @rawkintrevo <[email protected]> Authored: Wed Jun 6 09:36:18 2018 -0500 Committer: Trevor a.k.a @rawkintrevo <[email protected]> Committed: Wed Jun 6 09:36:18 2018 -0500 ---------------------------------------------------------------------- community/pom.xml | 29 ++++++-- experimental/pom.xml | 20 ++++-- pom.xml | 25 ++++++- refactor-readme.md | 14 ++-- website/_includes/navbar.html | 6 +- website/developers/buildingmahout.md | 112 +++++++++++++++++------------- 6 files changed, 137 insertions(+), 69 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mahout/blob/c3173932/community/pom.xml ---------------------------------------------------------------------- diff --git a/community/pom.xml b/community/pom.xml index 55f2fe5..b458f10 100644 --- a/community/pom.xml +++ b/community/pom.xml @@ -34,11 +34,6 @@ <packaging>pom</packaging> - <modules> - <module>spark-cli-drivers</module> - <module>community-engines</module> - - </modules> <build> <plugins> @@ -53,11 +48,35 @@ <profiles> <profile> + <id>flink-batch</id> + <modules> + <module>community-engines</module> + </modules> + </profile> + <profile> + <id>h2o</id> + <modules> + <module>community-engines</module> + </modules> + </profile> + <profile> <id>mahout-mr</id> <modules> <module>mahout-mr</module> </modules> </profile> + <profile> + <id>spark-cli-drivers</id> + <activation> + <property> + <name>skipCli</name> + <value>!true</value> + </property> + </activation> + <modules> + <module>spark-cli-drivers</module> + </modules> + </profile> </profiles> </project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/mahout/blob/c3173932/experimental/pom.xml ---------------------------------------------------------------------- diff --git a/experimental/pom.xml b/experimental/pom.xml index 4e67b2b..33f4a0a 100644 --- a/experimental/pom.xml +++ b/experimental/pom.xml @@ -36,10 +36,7 @@ <properties> </properties> - <modules> - <module>viennacl</module> - <module>viennacl-omp</module> - </modules> + <build> <plugins> @@ -50,4 +47,19 @@ </plugin> </plugins> </build> + + <profiles> + <profile> + <id>viennacl</id> + <modules> + <module>viennacl</module> + </modules> + </profile> + <profile> + <id>viennacl-omp</id> + <modules> + <module>viennacl-omp</module> + </modules> + </profile> + </profiles> </project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/mahout/blob/c3173932/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 6564ff3..3f356aa 100644 --- a/pom.xml +++ b/pom.xml @@ -168,7 +168,6 @@ <module>core</module> <module>engine</module> <module>community</module> - <module>experimental</module> <!-- <module>examples</module> --> </modules> @@ -675,6 +674,18 @@ <profiles> <profile> + <id>all</id> + <modules> + <module>community/community-engines</module> + <module>community/community-engines/flink-batch</module> + <module>community/community-engines/h2o</module> + <module>community/mahout-mr</module> + <module>experimental</module> + <module>experimental/viennacl</module> + <module>experimental/viennacl-omp</module> + </modules> + </profile> + <profile> <id>apache-release</id> <properties> <skipTests>false</skipTests> @@ -694,6 +705,18 @@ </plugins> </build> </profile> + <profile> + <id>viennacl</id> + <modules> + <module>experimental</module> + </modules> + </profile> + <profile> + <id>viennacl-omp</id> + <modules> + <module>experimental</module> + </modules> + </profile> </profiles> <!--<defaultGoal>install</defaultGoal>--> <!--<pluginManagement>--> http://git-wip-us.apache.org/repos/asf/mahout/blob/c3173932/refactor-readme.md ---------------------------------------------------------------------- diff --git a/refactor-readme.md b/refactor-readme.md index 2656f7c..8787bc6 100644 --- a/refactor-readme.md +++ b/refactor-readme.md @@ -69,12 +69,14 @@ mahout -[ ] profile to turn on flink / h2o / other non-essentials (then disable them in standard build) ### Current profiles -`mahout-mr` - builds the MapReduce stuff. -`apache-release` - contains the release plugin -`mahout_keys` - a profile used for releasing (actually lives in ~/.m2/settings.xml, see release instructions) -`flink-batch` - build flink batch community engine -`h2o` - build h2o community engine - +- `mahout-mr` - builds the MapReduce stuff. +- `apache-release` - contains the release plugin +- `mahout_keys` - a profile used for releasing (actually lives in ~/.m2/settings.xml, see release instructions) +- `flink-batch` - build flink batch community engine +- `h2o` - build h2o community engine +- `viennacl` `viennacl-omp` to build experimental BLAS packs +- `all` +- `Dskip-cli` add note in how to release about calling the tag `mahout-0.X.Y-rcZ` ### Release rollback notes http://git-wip-us.apache.org/repos/asf/mahout/blob/c3173932/website/_includes/navbar.html ---------------------------------------------------------------------- diff --git a/website/_includes/navbar.html b/website/_includes/navbar.html index 83bf09e..417ded8 100644 --- a/website/_includes/navbar.html +++ b/website/_includes/navbar.html @@ -28,11 +28,11 @@ <a class="nav-link dropdown-toggle" href="" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Developers</a> <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink"> <a class="dropdown-item" href="/developers/developer-resources.html">Developer Resources</a> - <a class="dropdown-item" href="/developers/buildingmahout/">Building Mahout from Source</a> - <a class="dropdown-item" href="/developers/issue-tracker/">Issues Tracking (JIRA)</a> + <a class="dropdown-item" href="/developers/buildingmahout">Building Mahout from Source</a> + <a class="dropdown-item" href="/developers/issue-tracker">Issues Tracking (JIRA)</a> <!-- <a class="dropdown-item" href="/developers/patch-check-list/">Patch Check List</a> going to github template --> <!-- <a class="dropdown-item" href="/developers/reference/">References</a> a lot of overlap with books, talks, etc. page --> - <a class="dropdown-item" href="/developers/release-notes/">Release Notes</a> + <a class="dropdown-item" href="/developers/release-notes">Release Notes</a> <!-- <a class="dropdown-item" href="/developers/thirdparty-dependencies/">Third Party Dependencies</a> is our site the reasonable place for this? --> <!-- <a class="dropdown-item" href="/developers/version-control/">Version Control</a> --> <div class="dropdown-divider"></div> http://git-wip-us.apache.org/repos/asf/mahout/blob/c3173932/website/developers/buildingmahout.md ---------------------------------------------------------------------- diff --git a/website/developers/buildingmahout.md b/website/developers/buildingmahout.md index 34bca45..8f1576d 100644 --- a/website/developers/buildingmahout.md +++ b/website/developers/buildingmahout.md @@ -1,8 +1,7 @@ --- layout: page title: Building Mahout - - + --- @@ -126,61 +125,74 @@ JVM with native OpenMP and OpenCL for Level 2 and level 3 matrix/vector Multipli mvn clean install -Pviennacl -DskipTests ``` -### Changing Scala Version - +### Profiles Reference -A convenience script for updating maven dependencies is included in `buildtools` +Apache Maven encourages users to make use of build profiles for selectively building modules. +The command ```bash -cd $MAHOUT_HOME/buildtools -./change-scala-version.sh 2.11 +mvn clean package ``` -Now go back to `$MAHOUT_HOME` and execute +Is the basic build command. This default will build the following packages. ```bash -mvn clean install -``` - - -### The Distribution Profile - -The distribution profile, among other things, will produce the same artifact for multiple Scala and Spark versions. - -Specifically, in addition to creating all of the - -Default Targets: -- Spark 1.6 Bindings, Scala-2.10 -- Mahout-Math Scala-2.10 -- ViennaCL Scala-2.10* -- ViennaCL-OMP Scala-2.10* -- H2O Scala-2.10 - -It will also create: -- Spark 2.0 Bindings, Scala-2.11 -- Spark 2.1 Bindings, Scala-2.11 -- Mahout-Math Scala-2.11 -- ViennaCL Scala-2.11* -- ViennaCL-OMP Scala-2.11* -- H2O Scala-2.11 - -Note: * ViennaCLs are only created if the `viennacl` or `viennacl-omp` profiles are activated. - -By default, this phase will execute the `package` lifecycle goal on all built "extra" varients. - -E.g. if you were to run - -```bash -mvn clean install -Pdistribution -``` - -You will `install` all of the "Default Targets" but only `package` the "Also created". - -If you wish to `install` all of the above, you can set the `lifecycle.target` switch as follows: +[INFO] Apache Mahout +[INFO] Mahout Core +[INFO] Mahout Engine +[INFO] - Mahout HDFS Support +[INFO] - Mahout Spark Engine +[INFO] Mahout Community +[INFO] - Mahout Spark CLI Drivers +``` + +The following profiles are available for building optional components: +<center> + <table> + <tr> + <th>Profile</th> + <th colspan="5">Description</th> + </tr> + <tr> + <td><code>all</code></td> + <td>Build all modules</td> + <tr> + <td><code>apache-release</code></td> + <td>Used for releasing Apache Mahout. See <a href="http://mahout.apache.org/developers/how-to-release">How To Release</a> for more information.</td> + </tr> + <tr> + <td><code>flink-batch</code></td> + <td>Build Community Engine of Mahout for Apache Flink (Batch)</td> + </tr> + <tr> + <td><code>h2o</code></td> + <td>Build Community Engine of Mahout for H2o</td> + </tr> + <tr> + <td><code>viennacl</code></td> + <td>Build Experimental ViennaCL (GPU) BLAS Pack</td> + </tr> + <tr> + <td><code>viennacl-omp</code></td> + <td>Build Experimental ViennaCL-OpenMP (CPU) BLAS Pack</td> + <tr> + <tr> + <th>Mahout Specific Option</th> + <th>Description</th> + </tr> + <tr> + <td><code>skipCli</code></td> + <td>Skip building the command line drivers for Mahout on Apache Spark</td> + </tr> + </table> +</center> + +#### Example + +If you want to build Apache Mahout with ViennaCL OpenMP support but skip the command line Spark drivers you would use this +command to build: ```bash -mvn clean install -Pdistribution -Dlifecycle.target=install +mvn clean package -Pviennacl-omp -DskipCli ``` - - - + \ No newline at end of file
