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

Reply via email to