Hi Folks,
I had been working on issues release; one of them was the profile at the
moment of generating the artefacts. So I did some tests, and it looks ok,
but I want you to compile the code with the following commands.
mvn clean install
before running this command, be sure to delete the folder
~/.m2/repository/org/apache/wayang
after the execution you will found the following folder in the path
~/.m2/repository/org/apache/wayang
wayang
wayang-api
wayang-api-python
wayang-api-scala-java
wayang-api-scala-java_2.11
wayang-api-scala-java_2.12
wayang-basic
wayang-benchmark
wayang-benchmark_2.11
wayang-benchmark_2.12
wayang-commons
wayang-core
wayang-flink
wayang-flink_2.11
wayang-flink_2.12
wayang-giraph
wayang-graphchi_2.11
wayang-iejoin
wayang-iejoin_2.11
wayang-iejoin_2.12
wayang-java
wayang-jdbc-template
wayang-platforms
wayang-plugins
wayang-postgres
wayang-profiler
wayang-profiler_2.11
wayang-profiler_2.12
wayang-resources
wayang-spark
wayang-spark_2.11
wayang-spark_2.12
wayang-sqlite3
wayang-tests-integration
wayang-tests-integration_2.11
wayang-tests-integration_2.12
wayang-utils-profile-db
Currently, you do not need to set any profile because the profile depends
on the folder's content. So it is possible because I create "empty"
artefacts that help with the generation of code for scala 2.11 and scala
2.12 simultaneously.
you will found some folders with the following structure
module-name/
├─ pom.xml
├─ code/
│ ├─ main/
│ │ ├─ java/
│ │ ├─ resources/
│ │ ├─ scala/
│ ├─ test/
│ │ ├─ java/
│ │ ├─ resources/
│ │ ├─ scala/
├─ module-name_${scala_version}/
│ ├─ src/
│ │ ├─ main/
│ │ │ ├─ java/ -> ./../../../code/main/java
│ │ │ ├─ java_${scala_version}/
│ │ │ ├─ scala/ -> ./../../../code/main/scala
│ │ │ ├─ scala_${scala_version}/
│ │ │ ├─ resources/ -> ./../../../code/main/resources
│ │ │ ├─ resources_${scala_version}/
│ │ ├─ test/
│ │ │ ├─ java/ -> ./../../../code/test/java
│ │ │ ├─ java_${scala_version}/
│ │ │ ├─ scala/ -> ./../../../code/test/scala
│ │ │ ├─ scala_${scala_version}/
│ │ │ ├─ resources/ -> ./../../../code/test/resources
│ │ │ ├─ resources_${scala_version}/
│ ├─ pom.xml
This structure allows you to have several versions of scala compiling at
the same time without generating errors. Have in consideration that most of
the code will be shared by different versions; because of it, you have a
link(->) to the folder "code" (exist a script for it). The "code" Folder is
the current code that is running for the versions.
The benefit of these changes are:
- Solve the non-compilation of Jenkins issue.
- The release issue, non-generation of artefacts for scala 2.11
- It provides better support to the different versions that we are
currently supporting and allows adding new versions with minimum effort.
- Avoid maintaining several branches of the same code with minor changes.
Before I add the documentation, I want you to compile, review the code and
let me know your thoughts about it.
To simulate a release in your computer, you can try the following command.
mvn clean install -Papache-release
This command take time, please be patient :D
By the way all this change are already in the master
I will be waiting for your feedback.
Best regards,
Bertty