You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mxnet.apache.org by li...@apache.org on 2017/11/01 16:23:31 UTC

[incubator-mxnet] branch master updated: Add Scala package dev tools for deploy (#8498)

This is an automated email from the ASF dual-hosted git repository.

liuyizhi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-mxnet.git


The following commit(s) were added to refs/heads/master by this push:
     new 8ac6ec9  Add Scala package dev tools for deploy (#8498)
8ac6ec9 is described below

commit 8ac6ec99719e59f957f893176da8ced02bb73ee2
Author: Yizhi Liu <ja...@gmail.com>
AuthorDate: Thu Nov 2 00:23:23 2017 +0800

    Add Scala package dev tools for deploy (#8498)
    
    * [scala] do not print op definition during compiling by default
    
    * [scala] add dev tools for changing artifactId
    
    * [scala] add scala make clean
---
 Makefile                                           |  6 ++-
 scala-package/dev/change-artifact-id.sh            | 51 ++++++++++++++++++++++
 .../main/scala/ml/dmlc/mxnet/NDArrayMacro.scala    |  5 ++-
 .../src/main/scala/ml/dmlc/mxnet/SymbolMacro.scala |  5 ++-
 4 files changed, 64 insertions(+), 3 deletions(-)

diff --git a/Makefile b/Makefile
index e821c6f..8c7ae6e 100644
--- a/Makefile
+++ b/Makefile
@@ -480,9 +480,13 @@ rpkg:
 rpkgtest:
 	Rscript -e "require(testthat);res<-test_dir('R-package/tests/testthat');if(!testthat:::all_passed(res)){stop('Test failures', call. = FALSE)}"
 
+scalaclean:
+	(cd $(ROOTDIR)/scala-package; \
+		mvn clean -P$(SCALA_PKG_PROFILE))
+
 scalapkg:
 	(cd $(ROOTDIR)/scala-package; \
-		mvn clean package -P$(SCALA_PKG_PROFILE) -Dcxx="$(CXX)" \
+		mvn package -P$(SCALA_PKG_PROFILE) -Dcxx="$(CXX)" \
 			-Dcflags="$(CFLAGS)" -Dldflags="$(LDFLAGS)" \
 			-Dcurrent_libdir="$(ROOTDIR)/lib" \
 			-Dlddeps="$(LIB_DEP) $(ROOTDIR)/lib/libmxnet.a")
diff --git a/scala-package/dev/change-artifact-id.sh b/scala-package/dev/change-artifact-id.sh
new file mode 100755
index 0000000..fa78379
--- /dev/null
+++ b/scala-package/dev/change-artifact-id.sh
@@ -0,0 +1,51 @@
+#!/bin/bash
+
+#
+# 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.
+#
+# (Yizhi) This is mainly inspired by the script in apache/spark.
+# I did some modificaiton to get it with our project.
+#
+
+set -e
+
+if [[ ($# -ne 2) || ( $1 == "--help") ||  $1 == "-h" ]]; then
+  echo "Usage: $(basename $0) [-h|--help] <from_artifactId> <to_artifactId>" 1>&2
+  exit 1
+fi
+
+FROM_ARTIFACT_ID=$1
+TO_ARTIFACT_ID=$2
+
+sed_i() {
+  perl -p -000 -e "$1" "$2" > "$2.tmp" && mv "$2.tmp" "$2"
+}
+   
+export -f sed_i
+ 
+BASEDIR=$(dirname $0)/..
+
+find "$BASEDIR" -name 'pom.xml' -not -path '*target*' -print \
+  -exec bash -c \
+  "sed_i 's/(<artifactId)>'$FROM_ARTIFACT_ID'(<\/artifactId>)/\1>'$TO_ARTIFACT_ID'\2/g' {}" \;
+
+# Change assembly including settings
+# <includes>
+# 	<include>ml.dmlc.mxnet:libmxnet-scala-linux-x86_64-cpu:so</include>
+# </includes>
+find "$BASEDIR" -name 'assembly.xml' -not -path '*target*' -print \
+  -exec bash -c \
+  "sed_i 's/(<include>.*mxnet):'$FROM_ARTIFACT_ID'(:.*<\/include>)/\1:'$TO_ARTIFACT_ID'\2/g' {}" \;
diff --git a/scala-package/macros/src/main/scala/ml/dmlc/mxnet/NDArrayMacro.scala b/scala-package/macros/src/main/scala/ml/dmlc/mxnet/NDArrayMacro.scala
index 45e2571..1be9a8d 100644
--- a/scala-package/macros/src/main/scala/ml/dmlc/mxnet/NDArrayMacro.scala
+++ b/scala-package/macros/src/main/scala/ml/dmlc/mxnet/NDArrayMacro.scala
@@ -177,7 +177,10 @@ private[mxnet] object NDArrayMacro {
     val realName = if (aliasName == name.value) "" else s"(a.k.a., ${name.value})"
     val docStr = s"$aliasName $realName\n${desc.value}\n\n$paramStr\n$extraDoc\n"
     // scalastyle:off println
-    println("NDArray function definition:\n" + docStr)
+    if (System.getenv("MXNET4J_PRINT_OP_DEF") != null
+          && System.getenv("MXNET4J_PRINT_OP_DEF").toLowerCase == "true") {
+      println("NDArray function definition:\n" + docStr)
+    }
     // scalastyle:on println
     (aliasName, new NDArrayFunction(handle))
   }
diff --git a/scala-package/macros/src/main/scala/ml/dmlc/mxnet/SymbolMacro.scala b/scala-package/macros/src/main/scala/ml/dmlc/mxnet/SymbolMacro.scala
index bd5b05b..730d424 100644
--- a/scala-package/macros/src/main/scala/ml/dmlc/mxnet/SymbolMacro.scala
+++ b/scala-package/macros/src/main/scala/ml/dmlc/mxnet/SymbolMacro.scala
@@ -169,7 +169,10 @@ private[mxnet] object SymbolImplMacros {
     val realName = if (aliasName == name.value) "" else s"(a.k.a., ${name.value})"
     val docStr = s"$aliasName $realName\n${desc.value}\n\n$paramStr\n$extraDoc\n"
     // scalastyle:off println
-    println("Symbol function definition:\n" + docStr)
+    if (System.getenv("MXNET4J_PRINT_OP_DEF") != null
+          && System.getenv("MXNET4J_PRINT_OP_DEF").toLowerCase == "true") {
+      println("Symbol function definition:\n" + docStr)
+    }
     // scalastyle:on println
     (aliasName, new SymbolFunction(handle, keyVarNumArgs.value))
   }

-- 
To stop receiving notification emails like this one, please contact
['"commits@mxnet.apache.org" <co...@mxnet.apache.org>'].