[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) togremlin-util
Core Adjustments
- Updated traversal optimize layer for 3.8 generics changes
- Adapted
HugePrimaryKeyStrategyfor Mutating API updates - Migrated
ConditionPto align with 3.8PAPI - Partial predicate handling alignment
Build Status
hugegraph-corebuilds 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:
- Nested predicate handling (
NotP, multi-layer AND/OR) - Search/index behavior changes
- Property type behavior
- Parent/SubEdge condition handling
- 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(...)removedP.getOriginalValue()removedNotPAPI changed (usesgetPredicates()instead ofgetPredicate())- 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.