Skip to content

BREAKING CHANGE(server): upgrade Java17 + TP3.7 + Groovy4 - #3117

Draft
contrueCT wants to merge 13 commits into
apache:masterfrom
hugegraph:task/tinkerpop-3.7-upgrade
Draft

BREAKING CHANGE(server): upgrade Java17 + TP3.7 + Groovy4#3117
contrueCT wants to merge 13 commits into
apache:masterfrom
hugegraph:task/tinkerpop-3.7-upgrade

Conversation

@contrueCT

Copy link
Copy Markdown
Contributor

Summary

This draft PR advances the HugeGraph query-engine modernization work:

  • Upgrade Apache TinkerPop to 3.7.6 and Groovy to 4.0.25.
  • Upgrade the Java runtime across the build, CI, packaging, and runtime paths.
  • Refactor the Groovy security sandbox so its boundaries remain clear and maintainable under the upgraded runtime.

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

* fix(server): resolve phase1 compatibility gaps

---------

Co-authored-by: imbajin <jin@apache.org>
@contrueCT contrueCT changed the title refactor(server): upgrade TinkerPop, Java, and security sandbox chore(server): upgrade TinkerPop, Java, and security sandbox Jul 25, 2026
@imbajin imbajin changed the title chore(server): upgrade TinkerPop, Java, and security sandbox BREAKING CHANGE(server): upgrade TinkerPop3.7 + Groovy4 Jul 25, 2026
@imbajin imbajin changed the title BREAKING CHANGE(server): upgrade TinkerPop3.7 + Groovy4 BREAKING CHANGE(server): upgrade Jav17 + TP3.7 + Groovy4 Jul 26, 2026
@imbajin imbajin changed the title BREAKING CHANGE(server): upgrade Jav17 + TP3.7 + Groovy4 BREAKING CHANGE(server): upgrade Java17 + TP3.7 + Groovy4 Jul 26, 2026
contrueCT and others added 2 commits August 7, 2026 22:37
- 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
contrueCT and others added 10 commits August 12, 2026 00:50
- 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant