Repository navigation
Conversation
* fix(server): resolve phase1 compatibility gaps --------- Co-authored-by: imbajin <jin@apache.org>
- Connects TinkerPop 3.7.6's official Gherkin features to HugeGraph's provider lifecycle, with an exact 345-scenario guard and precise capability skips. - Preserves transaction-visible vertex and edge counts, and keeps `TextP` filtering local when the backend cannot safely push it down. - Encodes HugeGraph IDs as standard GraphBinary primitives and delegates `Path` and `Tree` GraphSON handling to TinkerPop 3.7.6. - Hardens factory registration, provider cleanup, server/cluster test infrastructure, and upgrade-branch CI coverage.
# Conflicts: # hugegraph-server/hugegraph-test/src/main/java/org/apache/hugegraph/core/CountStrategyCoreTest.java # hugegraph-server/hugegraph-test/src/main/java/org/apache/hugegraph/tinkerpop/TestGraph.java # hugegraph-server/hugegraph-test/src/main/java/org/apache/hugegraph/unit/UnitTestSuite.java
- Centralize the Java 17 build contract - Adapt the runtime: - Migrate delivery: - switch blocking workflows, CodeQL, dependency checks, and four product images to Java 17preflight checks without adding default Server or HStore Compose startup smoke tests.
Upgrade Apache TinkerPop from 3.7.6 to 3.8.1 across HugeGraph Server, Struct, and Store. - Adapt traversal optimizations to TinkerPop 3.8 APIs, including AggregateStep, HasContainerHolder generics, and AddVertexStepContract. - Preserve TinkerPop 3.8 predicate semantics by keeping NotP predicates in local filtering, and fix negated count comparison and null handling. - Align date-step behavior, Process/Structure test suites, and the TinkerPop Gherkin baseline with 3.8.1. - Add regression coverage for negated TextP, boolean/range predicates, NaN comparisons, match() conditions, and CountStrategy behavior. - Update reported TinkerPop versions and related documentation.
- Route remote HTTP and WebSocket Gremlin requests through GremlinLangScriptEngine. - Preserve compatible text, GLV Bytecode, and Session requests on protected traversal sources. - Reject remote Groovy, Lambda, unsafe io()/call(), and attempts to remove mandatory sandbox strategies. - Keep ScriptFileGremlinPlugin and PRELOAD Groovy support for trusted deployment-time scripts.
|
Due to the lack of activity, the current pr is marked as stale and will be closed after 180 days, any update will remove the stale label |
There was a problem hiding this comment.
Score: 7.1/10
The migration requires conflict resolution, CI verification, and operator/client upgrade documentation before release inclusion.
The POMs select TinkerPop 3.8.1. Align the PR/tracker target and document the required mounted Gremlin configuration and supported client request forms.
| } | ||
|
|
||
| static ExecutorService newGremlinExecutorService(Settings settings) { | ||
| if (!HugeGraphWsAndHttpChannelizer.class.getName().equals( |
There was a problem hiding this comment.
[P2] Ship the mounted-config and Gremlin-client migration guide
This mandatory channelizer check rejects a retained 1.7 gremlin-server.yaml using the upstream WsAndHttpChannelizer. GremlinLangRequestGuard also restricts remote text requests to gremlin-lang, so replacing only the packaged defaults leaves mounted configs and existing gremlin-groovy clients without upgrade instructions.
README/BUILDING describe Java 17 but no corresponding Gremlin migration guide or paired website PR is supplied.
Please document the required channelizer/engine/serializer names, accepted text and Bytecode request forms, and compatible Client versions; align the stated TinkerPop target with the 3.8.1 POMs. This is a static current-source contract check, not proof that the whole upgraded stack runs.
- Keep one active run per workflow and PR - Preserve push and manual workflow executions - Cover CI workflows on this PR target branch
Summary
This draft PR advances the HugeGraph query-engine modernization work:
The source branch contains the TinkerPop and Groovy migration baseline. Java runtime and sandbox changes will be added as the remaining parts of this upgrade work.
Related issue