TinkerPop 3.4.0 is released. I think it would be good to update it in JanusGraph.
There are a bunch of fixes and enhancements:
https://github.com/apache/tinkerpop/blob/3.4.0/CHANGELOG.asciidoc#release-3-4-0
Tinkerpop 3.3.5 is also released.
I just gave this a first try and noticed that the upgrade to TinkerPop 3.4.0 requires work in a few different areas. Therefore, I suggest that we split this up into separate PRs so we don't have one big PR that is hard to review and to allow different contributors to collaborate on this.
Based on my first try and after briefly studying the TinkerPop upgrade docs I identified the following tasks for this upgrade, but this list might not be complete.
Mandatory changes:
gremlin-server.sh with that in TinkerPopGraphManager.getGraphs and GraphManager#getTraversalSources can only be removed together with the upgrade.)Optional / might be done with a separate issue:
traversal() is the recommended way to create a graph traversal source - We should change our docs accordingly and all places where we use other methods.@ryou90: We will probably directly upgrade to TinkerPop 3.4.0 for JanusGraph 0.4.0 and the 0.3 branch will only receive bug fixes. If you have good reasons for JanusGraph to also support TinkerPop 3.3.5 with a separate release, then you can make your point in this discussion I started on janusgraph-dev for this topic.
Thx @FlorianHockmann for your comment. I also prefer the directly upgrade to 3.4.0
The gremlin-server.sh -i removal was actually a very minimal change. So, I just made a CTR commit for that.
We don't need to change our own gremlin-server.sh script for that as it is actually a completely different script (I initially assumed that it would be the same as TinkerPop's and therefore would need an update).
Tinkerpop 3.4.1 is released.
Not quite yet, the VOTE for the release is still going on and the release will happen after that.
But it shouldn't be a problem to update from 3.4.0 to 3.4.1 or directly to 3.4.1 as 3.4.1 contains mostly bug fixes and features were we don't have to do anything. So, we will probably target 3.4.1 directly for our 0.4.0 release.
Regarding the update to 3.4.0, I can give a quick status update:
With the changes we already made on master (see the bucket list above), it was relatively easy to get JanusGraph to compile with 3.4.0. Unfortunately, a lot of TinkerPop tests are failing now. 3 already fail on master with 3.3.z versions of TinkerPop: #1466.
On top of that, it looks like some work will be required to get the FulgoraGraphComputer to work with 3.4.0 as a lot of graph computer tests were failing. I don't have any experience with that component. So, if anyone wants to look into that, then that would be really helpful.
I also only executed tests for the inmemory backend so far, so there might be other problems ahead with the other backends.
Now that the PR for the upgrade to TinkerPop 3.4.1 is merged, I created issues for the remaining tasks:
I assigned them to the new v0.4.x milestone as they don't have to be fixed directly for 0.4.0.
@FlorianHockmann Thank you! Do we need to create issue for Upsert Graph Feature?
Oh right, I forgot to mention that one!
I think that will be a more complicated topic where I'm not sure yet on how we could support that. We would have to define how we identify whether a vertex or an edge already exists and then update that or create a new one. Then we would need to check which of the backends actually support upserts or whether we have to implement that completely ourselves.
So, overall I think that we need a discussion on janusgraph-dev first about this to decide if and how we want to implement this. That is why I didn't create an issue yet.
Thanks for explanation! Discussion in dev makes sense.
Tinkerpop 3.4.2 is released. Maybe we can update it for JanusGraph 0.4.0?
Tinkerpop 3.4.2 is released. Maybe we can update it for JanusGraph 0.4.0?
Sure, but I think we should use a different issue for that as this one is already resolved due to the update to 3.4.1.
Most helpful comment
I just gave this a first try and noticed that the upgrade to TinkerPop 3.4.0 requires work in a few different areas. Therefore, I suggest that we split this up into separate PRs so we don't have one big PR that is hard to review and to allow different contributors to collaborate on this.
Based on my first try and after briefly studying the TinkerPop upgrade docs I identified the following tasks for this upgrade, but this list might not be complete.
Mandatory changes:
gremlin-server.shwith that in TinkerPopGraphManager.getGraphsandGraphManager#getTraversalSourcescan only be removed together with the upgrade.)Optional / might be done with a separate issue:
traversal()is the recommended way to create a graph traversal source - We should change our docs accordingly and all places where we use other methods.@ryou90: We will probably directly upgrade to TinkerPop 3.4.0 for JanusGraph 0.4.0 and the 0.3 branch will only receive bug fixes. If you have good reasons for JanusGraph to also support TinkerPop 3.3.5 with a separate release, then you can make your point in this discussion I started on janusgraph-dev for this topic.