-
Notifications
You must be signed in to change notification settings - Fork 187
Description
Describe the bug
I get the following error message when trying to create a Graph Projection with an Open GDS package of the newest (experimental) tag v2.7.0+68:
Dependencies_3_Create_Projection.cypher: {
"code": "Neo.ClientError.Procedure.ProcedureCallFailed",
"message": "Failed to invoke procedure `gds.graph.project`: Caused by: java.lang.ClassNotFoundException: org.neo4j.gds.shaded.com.github.benmanes.caffeine.cache.Ticker"
}
Here is the corresponding Cypher statement:
CALL gds.graph.project('artifact-centrality', 'Artifact', 'DEPENDS_ON', {
relationshipProperties: ['weight'],
nodeProperties: ['incomingDependencies', 'outgoingDependencies']
}) YIELD graphName, nodeCount, relationshipCount
RETURN graphName, nodeCount, relationshipCountWith Open GDS 2.7.0-alpha03 everything works fine.
To Reproduce
- GDS version: 2.7.0+68
- Neo4j version: 5.16.0 (community edition)
- Java: OpenJDK Runtime Environment Temurin-17.0.7+7 (build 17.0.7+7)
- Operating system: ubuntu-22.04 (in GitHub Action)
Steps to reproduce the behavior
- Clone https://github.com/JohT/code-graph-analysis-pipeline.git
- Switch to branch
renovate/joht-open-graph-data-science-packaging-2.x - Open a terminal
- Set the following environment variable to whatever value you like:
export NEO4J_INITIAL_PASSWORD=whatever_you_like - Check if you are using Java 17 with
java -version - Run
./scripts/examples/analyzeReactRouter.sh 6.23.0
Alternative steps to reproduce the behavior
- Use the prebuilt Open GDS package of the newest experimental tag v2.7.0+68 or build it your own by checking out the tag and running the following command:
./gradlew -Dorg.gradle.jvmargs=-Xmx2g" -Pneo4jVersion=5.16.0 -- :open-packaging:shadowCopy - Use it as a plugin for Neo4J
- Create a Projection using
CALL gds.graph.project
Expected behavior
Open GDS packaging should contain all libraries needed. I presume that it would be beneficial to define all dependencies in Gradle when they are imported somewhere in the repository directly.
Open GDS 2.7.0-alpha03 as a reference works fine.
Additional context
With commit Use caches instead of hash maps (df4ebed) the package com.github.benmanes.caffeine.cache had been added to EphemeralResultStore.java. I couldn't find that library as a direct dependency in any Gradle configuration (see https://github.com/ben-manes/caffeine?tab=readme-ov-file#download). I guess it needs to be configured somewhere to be able to be picked up by open-packaging. I guess this issue would also happen with tag 2.7.0+65 since it also contains the mentioned changes.