Thanks for the update, Marko. For clarification, when running the Neo4j test suite, the AGPL/GPL-licensed Neo4j impl classes are pulled down from Central Repo. Running the Neo4j test suite is OPTIONAL, and all other TinkerPop unit tests can be run without running the Neo4j test suite. Did I understand that correctly? Are there other Apache projects that have set a precedent with this technique?
I'll definitely try out the branch and see how it fits. Thanks again. -- Jason On Thu, May 28, 2015 at 12:44 PM, Marko Rodriguez <[email protected]> wrote: > Hello everyone, > > Michael Hunger and Philip Rathle of Neo4j have been working closely with > Apache TinkerPop to get neo4j-gremlin/ back into the Apache TinkerPop > distribution. For those that don't remember, the reason it was gutted was > due to LICENSE conflicts. In order to find a solution to this problem, > there have been numerous calls/emails with Neo4j, Apache TinkerPop PMC, the > Apache TinkerPop mentors, and discussions on the general@incubator > mailing list. Given all the recommendations, we have zero'd in on a > solution that will allow Apache TinkerPop to provide neo4j-gremlin/ in the > next release. > > For those interested in the technical solution to the license problem, > please see the following branch which is sync'd with TinkerPop master/: > > https://github.com/apache/incubator-tinkerpop/tree/neo4j-gremlin-apache > > Everything builds, but there are some failing tests right now as 2 months > have passed since we have worked with neo4j-gremlin/. I believe they are > trivial fixes. > > Here is the LICENSE trick that makes this all possible: > > > https://github.com/apache/incubator-tinkerpop/blob/neo4j-gremlin-apache/neo4j-gremlin/pom.xml#L39-L43 > (Apache2 > Licensed) > > https://github.com/apache/incubator-tinkerpop/blob/neo4j-gremlin-apache/neo4j-gremlin/pom.xml#L45-L53 > (AGPL/GPL > Licensed) > > What we need to do now is make it so that TinkerPop developers can (on > their local machine) pull in Neo4j libraries for local testing. However, > the apache-tinkerpop-x.y.z-source-release.zip will not have references to > these libraries and thus, only references to the Apache2 Neo4j API. > However, because the Neo4j Apache API has interface references, the package > will compile (but will not test). > > I'm not to keen on mvn, shell tricks, etc., but here are some ideas: > > 1. We have a "bin/test-neo4j-gremlin.sh <boolean>" that inserts/removes > the <dependency> stub into the pom.xml via some awk/sed-magic. > 2. We have a -D profile that does some magic? Perhaps simply does what 1 > above does, but within a MVN call. > - i.e. bin/test-neo4j-gremlin.sh true; mvn clean install (remove the > -Dtest-neo4j parameter); bin/test-neo4j-gremlin.sh false; > 3. If you are TinkerPop developer, you have to manually cut/paste the > <dependency> into the neo4j-gremlin pom.xml if you want to test Neo4j. > - we can have a "bin/strip-neo4j-test.sh" that will remove the > <dependency/> so its less likely for developers to push the bad-licensed > pom.xml. > > Anywho -- looks like we are on our way. Here is what is on our immediate > plate: > > 1. *@Kuppitz* (others?): Come up with a good solution to the pom.xml test > <dependency/> issue articulated above. > 2. *@Stephen*: Get the IO tests working with neo4j-gremlin. > 3. *@Michael*: Look at the <dependency> naming conventions -- they are a > bit "off": > <groupId>org.neo4j</groupId> <artifactId>neo4j-tinkerpop-api</artifactId> > <groupId>org.neo4j</groupId> <artifactId>tinkerpop-api-impl</artifactId> > - also, should we go with <artifactId>neo4j-apache2-api</artifactId> as > its general to anyone? > 4. *@Marko*: Make two Neo4jGraph implementations -- one that supports > multi-properties and one that doesn't (don't have all this if/else checking > in one implementation). > 5. *@Marko/Stephen*: Get the test suite for Neo4j up to par with latest > TinkerPop3 -- I've put null-parameters here and there where test suite > methods have changed and there is no obvious mapping. > 6. *@Stephen*: Get the Neo4jGremlinPlugin to dynamically pull in the > Neo4j impl library via Gremlin Console/Server. > > Here is what is required a little further down the road once all the code > challenges above are complete: > > 1. The Neo4j team needs to to publish their new API packages to Central > Repo. > 2. TinkerPop will merge the neo4j-gremlin-apache/ branch into master/. > 3. Send promotional tweets with images of Gremlin and Neo4j iconography > doing stuff. :) > > Thanks Neo4j and mentors for the numerous hours you have dedicated to this > problem. I'm exited to see neo4j-gremlin/ in TinkerPop3 GA. > > Take care, > Marko. > > http://markorodriguez.com > > -- > You received this message because you are subscribed to the Google Groups > "Gremlin-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/gremlin-users/5233348C-EF67-4F8E-B24E-E6AFBC993A4F%40gmail.com > <https://groups.google.com/d/msgid/gremlin-users/5233348C-EF67-4F8E-B24E-E6AFBC993A4F%40gmail.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- Have a good one, Jason
