# OpenGDS personnalisé pour GenMod Cette image utilise un fork minimal d’OpenGDS afin que `gds.bfs.stream` renvoie la profondeur minimale de chaque nœud pendant le parcours, dans une nouvelle colonne `depths` alignée avec `nodeIds`. ## Source et version - dépôt amont : https://github.com/neo4j/graph-data-science - tag amont : `2.22.0` - licence amont : GNU General Public License v3.0 - patch maintenu ici : `gds-2.22.0-bfs-depth.patch` - JAR construit : `open-gds-2.22.0-genmod.jar` - SHA-256 : `940c1f0c0cb6a9adbee84c9f15207740262e7c7c83464ad61b31000e4b7caf5e` Le patch modifie uniquement le mode `stream` du BFS. Les modes `stats` et `mutate` conservent leur résultat historique. Il ajoute aussi une procédure de compatibilité `gds.debug.arrow` indiquant qu’Arrow est désactivé. Le client Python GDS appelle cette procédure lors de sa connexion, alors que le build OpenGDS ne fournit pas le serveur Arrow. ## Reproduire le JAR Utiliser un JDK 21 : ```bash git clone https://github.com/neo4j/graph-data-science.git cd graph-data-science git checkout 2.22.0 git apply /chemin/vers/gds-2.22.0-bfs-depth.patch ./gradlew :algo:test \ --tests org.neo4j.gds.paths.traverse.BFSTest ./gradlew :proc-path-finding:test \ --tests org.neo4j.gds.paths.traverse.BfsStreamProcTest ./gradlew :proc-sysinfo:test \ --tests org.neo4j.gds.SysInfoProcTest ./gradlew :open-packaging:shadowCopy ``` Le résultat est créé dans `build/distributions/open-gds-2.22.0.jar`. Le `Dockerfile` copie ce JAR dans le répertoire des plugins Neo4j et n’utilise donc pas le téléchargement automatique du plugin GDS officiel.