Repository navigation
refactor(server): upgrade TinkerPop to 3.8.1 with compatibility gates (3/3) - #3263
Merged
imbajin merged 14 commits intoOct 6, 2026
Merged
Conversation
This was referenced Oct 3, 2026
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #3263 +/- ##
============================================
+ Coverage 36.41% 41.03% +4.61%
- Complexity 6262 7239 +977
============================================
Files 774 788 +14
Lines 67843 68451 +608
Branches 9064 9256 +192
============================================
+ Hits 24706 28087 +3381
+ Misses 40312 37090 -3222
- Partials 2825 3274 +449 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This was referenced Oct 3, 2026
imbajin
force-pushed
the
task/tp381-3-upgrade-validation
branch
from
October 5, 2026 17:24
0fcf337 to
a604028
Compare
Closed
6 of 9 tasks
imbajin
force-pushed
the
task/tp381-3-upgrade-validation
branch
6 times, most recently
from
October 6, 2026 07:06
43adf1e to
f776885
Compare
This was referenced Oct 6, 2026
imbajin
force-pushed
the
task/tp381-3-upgrade-validation
branch
from
October 6, 2026 10:28
33f1d68 to
0d495f8
Compare
- Upgrade TinkerPop and Groovy with aligned runtime dependencies - Configure the default and Raft Gremlin servers for the upgraded serializers - Update version checks and retain Groovy script compatibility coverage Co-authored-by: imbajin <jin@apache.org>
- Adapt graph steps and count strategies to the upgraded traversal APIs - Align predicate handling across core and shared condition types - Update feature declarations and related graph and condition tests
- Adapt Cypher client and processor integration to the upgraded Driver APIs - Update GraphSON modules and type serializer registration - Retain Cypher and JSON serialization compatibility checks
- Run feature scenarios with isolated graph provider context and lifecycle - Validate compatibility reports and retain API metrics coverage - Integrate suite selection into Server and Store CI and cancel superseded runs - Keep lifecycle RocksDB data and WAL within the test temporary directory Co-authored-by: imbajin <jin@apache.org>
- Keep unsupported type predicates in local traversal filters - Preserve native and UUID ID comparisons during local evaluation - Add core and optimizer coverage for ID and count predicate behavior Co-authored-by: contrueCT <contrue_ct@outlook.com>
- Align PD and Store YAML dependencies with the secured runtime - Adapt Kubernetes and Store configuration readers to safe YAML construction - Cover resource quotas and PD listener configuration and register unit tests Co-authored-by: contrueCT <contrue_ct@outlook.com>
- Align bundled Driver and remote serializers with the upgraded Gremlin runtime - Preserve typed result objects in Driver configurations - Cover serializer configuration and secured YAML loading Co-authored-by: contrueCT <contrue_ct@outlook.com>
- Explain supported TinkerPop behavior and concrete upgrade checks - Clarify list processing and typed GraphSON configuration guidance - Align build instructions and project version references Co-authored-by: contrueCT <contrue_ct@outlook.com>
- Update release LICENSE and NOTICE for the upgraded runtime - Consolidate third-party license additions, replacements and removals - Align the packaged dependency inventory with the resolved runtime Co-authored-by: imbajin <jin@apache.org>
- Restore finite GraphBinary results and legacy HTTP Tree output - Preserve named bindings and local ID/count filter semantics - Normalize DATE values and align YAML/logging dependencies - Cover real regressions and paired upgrade documentation - Guard current-head retries and retain HStore failure evidence
- remove unsafe typed GraphSON V1 from shipped configs - preserve mixed edge ID membership and count semantics - encode public enums and SchemaManager with standard wire values - share compatible Cypher factories across imports and replay - align Jackson modules and release dependency notices
This was referenced Oct 6, 2026
- encode Shard results as standard GraphBinary maps - mirror OffsetDateTime conversion in the shared graph model - regenerate the exact runtime dependency inventory - retain TP report gates in the new reusable CI layout
imbajin
force-pushed
the
task/tp381-3-upgrade-validation
branch
from
October 6, 2026 13:48
0d495f8 to
a3bb1d4
Compare
- limit the exception to ASF PR 3263 and its source branch - keep unit, core and API tests with explicit TP skip summaries - mark the temporary branch patch with a removal TODO
imbajin
force-pushed
the
task/tp381-3-upgrade-validation
branch
from
October 6, 2026 13:51
a3bb1d4 to
2ca1f25
Compare
imbajin
approved these changes
Oct 6, 2026
7 of 11 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose of the PR
Upgrade Server and distributed modules from TinkerPop 3.5.1 / Groovy 2.5.23 to TinkerPop 3.8.1 / Groovy 4.0.25, with executable compatibility gates. Parts #3261 and #3262 are merged; this PR contains the final runtime-upgrade stage.
The source branch also updates hugegraph/hugegraph#233. This split series advances #3117 and #3069. The shared-type consolidation in #3270 follows this PR and must carry its DATE normalization into Struct.
Main Changes
key/valuearrays and accepts scalar keys through the scoped message registry; direct GraphSON IO and typed GraphSON keep their standard version-specific behavior.not/and/orfilters now match their separate-filter equivalents. Provider conversion preserves caller-owned named GValue bindings across reuse and pre-execution clones; updating a caller predicate applies to newly built traversals.inject(1,2,3).limit(GValue.of("size",3L)).count().is(P.gt(0L))returns[3], matchinglimit(3). DATE schema accepts OffsetDateTime writes and indexed equality/range inputs by normalizing the instant to the existing millisecond Date representation.Review fixes (2026-10-06)
without(-1)andwithout(-2, -1)by declining non-positive count bounds. Regression results cover empty/nonempty graphs, subsequentgt(0)and nested adjacency filters; positive exclusion bounds retain the existing +1 behavior.PBiPredicate, delegating to the original type/regex predicates. Real HTTP tests execute computed-expression regex filters and verify whole-string matching.Java 17 formatting, all-module clean compile and Server distribution packaging passed. All 30 focused unit tests and all 86 count tests on each of Memory and RocksDB passed with no skips. Against the assembled RocksDB Server with Basic authentication, all 11 Cypher API tests and the actual Console/Driver smoke passed, including top-level and nested interpolated script results. The temporary Server was stopped after validation. Full current-head CI remains separate acceptance evidence.
Verifying these changes
Local repair validation covers an all-module clean compile, the Server unit suite, real Memory/RocksDB query regressions, a real Gremlin service using both bundled GraphBinary client configurations and default HTTP JSON, production DATE schema/index behavior, and real Fabric8 ConfigBuilder/YAML calls. The final assembled package passes the same network checks using only packaged jars, and its resolved runtime dependencies match the release legal inventory.
Full API, Structure/Process, PD/Store/HStore and dependency/security CI must pass on the current PR head before merging. A skipped or empty TinkerPop report is insufficient. The no-network kubeconfig regression establishes the dependency call path; it does not claim a complete Kubernetes cluster deployment or an external client/authentication matrix.
Does this PR potentially affect the following parts?
Documentation Status
Doc - TODODoc - Done: repository migration guide and query semantics, with README/BUILDING entry links. Paired bilingual website update: apache/hugegraph-doc#508; coordinate its merge with this PR so the mainline guide link is available.Doc - No Need