[Draft] TinkerPop 3.8 Compatibility Upgrade by chandrakiranbolla1 · Pull Request #2955 · apache/hugegraph

Summary

This draft PR begins migration of HugeGraph from TinkerPop 3.5.x to 3.8.0.

The goal is to align HugeGraph with TinkerPop 3.8 while preserving compatibility with:

  • tinkerpop-structure-test
  • tinkerpop-process-test

This PR introduces initial compatibility adjustments required for core traversal and predicate handling.


Completed So Far

Dependency & Driver Changes

  • Removed gremlin-shaded
  • Migrated driver classes (RequestMessage, ResponseMessage, Tokens) to gremlin-util

Core Adjustments

  • Updated traversal optimize layer for 3.8 generics changes
  • Adapted HugePrimaryKeyStrategy for Mutating API updates
  • Migrated ConditionP to align with 3.8 P API
  • Partial predicate handling alignment

Build Status

  • hugegraph-core builds successfully
  • Select predicate-based tests pass
  • Full suite currently has categorized failures (see below)

Current Test Status

Full reactor build completes.

Failing areas currently under investigation:

  1. Nested predicate handling (NotP, multi-layer AND/OR)
  2. Search/index behavior changes
  3. Property type behavior
  4. Parent/SubEdge condition handling
  5. Multi-graph backend initialization edge cases

Next step is to complete recursive predicate tree conversion and map pass/fail status to avoid redundant reruns.


Breaking Changes Observed (3.5 → 3.8)

Preliminary migration notes:

  • PBiPredicate.of(...) removed
  • P.getOriginalValue() removed
  • NotP API changed (uses getPredicates() instead of getPredicate())
  • Predicate nesting behavior differs
  • Text predicate internals differ

A structured breaking-change list will be maintained as migration progresses.


Next Steps

  • Complete recursive predicate tree handling for NotP, AndP, OrP
  • Categorize failing tests by root cause
  • Ensure full pass on memory backend
  • Validate RocksDB/HStore backend compatibility

This PR is intentionally opened as Draft to enable early review and incremental alignment with the roadmap.

Feedback is welcome.