carnival-data / carnival

JVM property graph data unification framework
https://carnival-data.github.io/carnival/
GNU General Public License v3.0
7 stars 2 forks source link

Upgrade dependencies #25

Closed augustearth closed 3 years ago

augustearth commented 3 years ago

With GPars removed, it should be possible to upgrade a number of Carnival dependencies. We have fallen behind on many fronts, including Groovy and Tinkerpop.

augustearth commented 3 years ago

While updating dependencies, ran into an issue with carnival-gremlin-dsl. It is not compiling as written with the latest version of tinkerpop-gremlin. We have not made much use of the Gremlin DSL.... It is probably not worth trying to get it to work at this time. Will carve it out in the same way as carnival-async.

augustearth commented 3 years ago

So after a fair amount of effort, I have paired down carnival to carnival-gradle, carnival-util, carnival-graph, and carnival-core. These represent the domain-independent parts of the library. carnival-gremlin-dsl and carnival-clinical were pulled out. likewise, the async stuff formerly resident in carnival-core was pulled out into carnival-async. carnival-async has dependencies on GPars and can and probably should be rewritten. carnival-gremlin-dsl refused to compile with the newer tinkerpop libraries. since we do not really rely on it so much, i figured we could pull it out. except of course carnival-clinical relies on it. however, it probably shouldn't. carnival-async, carnival-gremlin-dsl, and carnival-clinical are good proofs of concept. the bits of functionality what we want to keep should be re-implemented.

the good news is that the dependencies are now pretty much up-to-date. Neo4j APOC refuses to work. But, we do not rely on it. And, we probably shouldn't.

augustearth commented 3 years ago

After talking with @hjwilli and communicating that Neo4j APOC is not working, we decided to try to upgrade to the most recent versions of everything in the hopes we could find a APOC library that would work. Based on some web searching, it would seem that Neo4j expects Java11. So, the goal is to upgrade to Java 11 and Groovy 3. In order to do so, Spock will have to be upgraded to the most current alpha version.

This was all accomplished. Sadly, APOC still does not work. However, it is probably good to be at Java 11 and Groovy 3. It is a bit worrisome that we currently rely on an alpha version of Spock. The code did not have to change. It seems worth it to keep things at this current level with the expectation that Spock will mature requiring no changes to Carnival code.