-
Notifications
You must be signed in to change notification settings - Fork 6.8k
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I saw there are a couple of changes regarding to ${scala.binary.version}
to 2.11
. Any specific reason for doing that? It will make it hard to switch to 2.12 if we need to make that change
scala-package/macros/src/main/scala/org/apache/mxnet/APIDocGenerator.scala
Show resolved
Hide resolved
f2f1280
to
eb31f49
Compare
@mxnet-label-bot add[Scala, Build, pr-awaiting-review] |
${scala.binary.version} is a mistake in original maven.
|
contrib/clojure-package/project.clj
Outdated
@@ -29,7 +29,7 @@ | |||
;[org.apache.mxnet/mxnet-full_2.11-linux-x86_64-gpu "1.2.1"] | |||
|
|||
;;; CI | |||
[org.apache.mxnet/mxnet-full_2.11-linux-x86_64-cpu "1.5.0-SNAPSHOT"] | |||
[org.apache.mxnet/mxnet-full_2.11 "1.5.0-SNAPSHOT"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do you want to remove the platform type from here. ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We removed platform and cpu/gpu specific pom.xml file, the local installed artifact name is now mxnet-full_2.11, clojure won't be able to find mxnet-full_2.11-linux-x86_64-cpu in .m2 any more.
a779b60
to
0603c23
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
With some heavy testing on the published package, the generated package is working. I will give a LGTM for now. However @frankfliu Please provide more detailed information in README
. @yzhliu @nswamy @gigasquid Please spend sometime to review this PR since the change is big.
Also add a C++ expert in here to check the code: @cjolivier01
Don't know whether the problem is in this PR or has to do with the problem fixed in |
@gigasquid
|
8d74d3a
to
d9eff8a
Compare
Seems like even though the
Any ideas? |
@gigasquid Frank's build is no longer have the requirement for the makefile. Try with |
Apart from that, @frankfliu could you please apply the change I have made in your PR: #13655 |
@frankfliu @lanking520 - I still have the same problem when I do |
@gigasquid thanks for testing. I can remember that @frankfliu change the artifact of the package which remove |
To follow up - I did a new clone from the @frankfliu 's fork and ran into the same error. So I don't think it's due to any leftover files on my system. Here is a gist of the full log of |
@gigasquid Can you check if you have a diff command installed on your system? |
@gigasquid problem is not reproducible on my laptop. I ran |
b3ea348
to
b94b1a0
Compare
@zachgk let's plan to prepare for a PR to address Frank's change. Once it's been raised, we can merge this one and get that one for review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One minor thing. Otherwise LGTM
scala-package/README.md
Outdated
``` | ||
|
||
Or run a subset of unit tests, for e.g., | ||
|
||
```bash | ||
make SCALA_TEST_ARGS=-Dsuites=org.apache.mxnet.NDArraySuite scalaunittest | ||
cd scala-package | ||
mvn -DSCALA_TEST_ARGS=-Dsuites=org.apache.mxnet.NDArraySuite integration-test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this should just be mvn -Dsuites=org.apache.mxnet.NDArraySuite integration-test
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the contribution on MKLDNN! Please address the comments
saveLibraryToTemp("libmklml_intel.so", "/lib/native/libmklml_intel.so", false) | ||
saveLibraryToTemp("libmklml.dylib", "/lib/native/libmklml.dylib", false) | ||
saveLibraryToTemp("libmkldnn.so.0", "/lib/native/libmkldnn.so.0", false) | ||
saveLibraryToTemp("libmkldnn.0.dylib", "/lib/native/libmkldnn.0.dylib", false) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a way we can obtain every file name in the native folder and apply them here?
https://stackoverflow.com/questions/5694385/getting-the-filenames-of-all-files-in-a-folder
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There actually might be unnecessary .so files. If the script didn't clean them, we might accidentally includes some garbage in the jar.
It's much safer to explicitly include files that we need. And it's also a good for documentation purpose.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approve for now to reduce the crosses 👍 . Please address the rest of them and I think we are good to go.
-Dcflags="$(CFLAGS)" -Dldflags="$(LDFLAGS)" \ | ||
-Dcurrent_libdir="$(ROOTDIR)/lib" \ | ||
-Dlddeps="$(LIB_DEP) $(ROOTDIR)/lib/libmxnet.a") | ||
(cd $(ROOTDIR)/scala-package && mvn install -DskipTests) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could we change this into mvn package and skiptests
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be install, package doesn't do verify.
<directory>${MXNET_DIR}/3rdparty</directory> | ||
<includes> | ||
<include>cub/LICENSE.TXT</include> | ||
<include>mkldnn/external/mklml_mac_2019.0.1.20180928/license.txt</include> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add this section in README to remind user update the licence
1. Automatically detect which platform to build for scala. 2. Remove platform dependend submodules 3. Fix cyclic module dependencies 4. Fix scalatype style check 5. Now mvn can be executed in submodule 6. Maven build can be executed from any directory not only in root project 7. Checkin javah header file, and use verify task to detect native API changes 8. Improve incremental build performance 9. Remove unittest and integration-test profile, use proper task instead 10. Delete generated scala file during maven clean.
1. Removed maven release plugin. 2. Make maven build friendly to CI, allow cli override version. 3. Moved gpg signing to deploy stage. 4. Created a separeated deploy module. 5. Updated Makefile to new maven build change. 6. Remove unused nexus-staging-plugin 7. Added nightly and staging profile for CI.
* Re-organize scala maven build 1. Automatically detect which platform to build for scala. 2. Remove platform dependend submodules 3. Fix cyclic module dependencies 4. Fix scalatype style check 5. Now mvn can be executed in submodule 6. Maven build can be executed from any directory not only in root project 7. Checkin javah header file, and use verify task to detect native API changes 8. Improve incremental build performance 9. Remove unittest and integration-test profile, use proper task instead 10. Delete generated scala file during maven clean. * Redo maven deploy related tasks. 1. Removed maven release plugin. 2. Make maven build friendly to CI, allow cli override version. 3. Moved gpg signing to deploy stage. 4. Created a separeated deploy module. 5. Updated Makefile to new maven build change. 6. Remove unused nexus-staging-plugin 7. Added nightly and staging profile for CI. * Support mkldnn for Scala.
* Re-organize scala maven build 1. Automatically detect which platform to build for scala. 2. Remove platform dependend submodules 3. Fix cyclic module dependencies 4. Fix scalatype style check 5. Now mvn can be executed in submodule 6. Maven build can be executed from any directory not only in root project 7. Checkin javah header file, and use verify task to detect native API changes 8. Improve incremental build performance 9. Remove unittest and integration-test profile, use proper task instead 10. Delete generated scala file during maven clean. * Redo maven deploy related tasks. 1. Removed maven release plugin. 2. Make maven build friendly to CI, allow cli override version. 3. Moved gpg signing to deploy stage. 4. Created a separeated deploy module. 5. Updated Makefile to new maven build change. 6. Remove unused nexus-staging-plugin 7. Added nightly and staging profile for CI. * Support mkldnn for Scala.
* Re-organize scala maven build 1. Automatically detect which platform to build for scala. 2. Remove platform dependend submodules 3. Fix cyclic module dependencies 4. Fix scalatype style check 5. Now mvn can be executed in submodule 6. Maven build can be executed from any directory not only in root project 7. Checkin javah header file, and use verify task to detect native API changes 8. Improve incremental build performance 9. Remove unittest and integration-test profile, use proper task instead 10. Delete generated scala file during maven clean. * Redo maven deploy related tasks. 1. Removed maven release plugin. 2. Make maven build friendly to CI, allow cli override version. 3. Moved gpg signing to deploy stage. 4. Created a separeated deploy module. 5. Updated Makefile to new maven build change. 6. Remove unused nexus-staging-plugin 7. Added nightly and staging profile for CI. * Support mkldnn for Scala.
* Re-organize scala maven build 1. Automatically detect which platform to build for scala. 2. Remove platform dependend submodules 3. Fix cyclic module dependencies 4. Fix scalatype style check 5. Now mvn can be executed in submodule 6. Maven build can be executed from any directory not only in root project 7. Checkin javah header file, and use verify task to detect native API changes 8. Improve incremental build performance 9. Remove unittest and integration-test profile, use proper task instead 10. Delete generated scala file during maven clean. * Redo maven deploy related tasks. 1. Removed maven release plugin. 2. Make maven build friendly to CI, allow cli override version. 3. Moved gpg signing to deploy stage. 4. Created a separeated deploy module. 5. Updated Makefile to new maven build change. 6. Remove unused nexus-staging-plugin 7. Added nightly and staging profile for CI. * Support mkldnn for Scala.
* Re-organize scala maven build 1. Automatically detect which platform to build for scala. 2. Remove platform dependend submodules 3. Fix cyclic module dependencies 4. Fix scalatype style check 5. Now mvn can be executed in submodule 6. Maven build can be executed from any directory not only in root project 7. Checkin javah header file, and use verify task to detect native API changes 8. Improve incremental build performance 9. Remove unittest and integration-test profile, use proper task instead 10. Delete generated scala file during maven clean. * Redo maven deploy related tasks. 1. Removed maven release plugin. 2. Make maven build friendly to CI, allow cli override version. 3. Moved gpg signing to deploy stage. 4. Created a separeated deploy module. 5. Updated Makefile to new maven build change. 6. Remove unused nexus-staging-plugin 7. Added nightly and staging profile for CI. * Support mkldnn for Scala.
* Re-organize scala maven build 1. Automatically detect which platform to build for scala. 2. Remove platform dependend submodules 3. Fix cyclic module dependencies 4. Fix scalatype style check 5. Now mvn can be executed in submodule 6. Maven build can be executed from any directory not only in root project 7. Checkin javah header file, and use verify task to detect native API changes 8. Improve incremental build performance 9. Remove unittest and integration-test profile, use proper task instead 10. Delete generated scala file during maven clean. * Redo maven deploy related tasks. 1. Removed maven release plugin. 2. Make maven build friendly to CI, allow cli override version. 3. Moved gpg signing to deploy stage. 4. Created a separeated deploy module. 5. Updated Makefile to new maven build change. 6. Remove unused nexus-staging-plugin 7. Added nightly and staging profile for CI. * Support mkldnn for Scala.
This is a follow up of: https://issues.apache.org/jira/browse/MXNET-1224
A design was posted: https://cwiki.apache.org/confluence/display/MXNET/Scala+maven+build+improvement
Checklist
Essentials
Please feel free to remove inapplicable items for your PR.