Repository navigation
refactor(struct): consolidate shared graph-core foundations - #3270
Merged
Merged
Conversation
7 of 11 tasks
imbajin
marked this pull request as ready for review
October 4, 2026 18:07
18 tasks
imbajin
force-pushed
the
feat/struct-consolidation-1.8
branch
from
October 5, 2026 14:28
8fa29fd to
40e10a7
Compare
MrJs133
previously approved these changes
Oct 5, 2026
5 of 8 tasks
- make struct the canonical ID, schema, query, element and codec owner - move schema network lifecycle to Store and JWT/RPC contracts to common - preserve historical formats and repair bounded HStore OLAP operations - migrate callers and add compatibility fixtures and package boundary guards - document Java migration and refresh dependency inventory and licensing
- retain the original ASF header and third-party source attribution - run historical Store ingress tests within their node module owner - keep the client decoder dependency limited to the test classpath - require the relocated CI tests and aggregate their coverage session - prevent Python caches from entering source formatting checks
- restore the canonical exception import after merging master - compare string IDs consistently across lazy representations - cover Unicode ordering contracts and document the correction
- consume class descriptors once across input refills - cover frozen legacy and canonical streamed payloads - retain Docker build output alongside image IDs
- exclude the older Gremlin configuration dependency - retain the baseline language utilities without PD coupling - align the generated inventory and release notices
- declare commons-text 1.10.0 directly for PD service - avoid inheriting version 1.9 through configuration - retain core-free service, distribution and test graphs
- Pass generated PD peers and the Store namespace to Server REST settings - Allocate and configure a distinct Gremlin endpoint for each Server - Detect completed startup independently of the JVM log locale
- Explain shared ownership with a before-and-after diagram - Lead with developer impact and concrete Java migration examples - Add an upgrade illustration and retain compatibility reference tables
- Remove repository illustrations while retaining PR description images - Consolidate historical provenance and remove unused Store copies - Correct serializer wording and remove fork/session records - Reflow Markdown paragraphs and fix producer source newlines
- adapt self-loop queries to shared element state - execute Store ingress tests with Jupiter lifecycle annotations - preserve the Lucene 8.11.2 analyzer dependencies - restore upgrade legal notices and exact dependency versions - refresh the inventory from clean runtime distributions
imbajin
force-pushed
the
feat/struct-consolidation-1.8
branch
from
October 6, 2026 14:57
40e10a7 to
2093350
Compare
- flatten installed parent POMs for Maven 3.10 - preserve the test POM during benchmark shading - align Cluster Commons with the verified client API - synchronize task cancellation with script progress - remove unused PowerMock and refresh legal inventory
MrJs133
approved these changes
Oct 7, 2026
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
Server core and Struct currently keep separate implementations of IDs, schema, queries and codecs. A fix can land in one copy while callers continue using the other. This PR gives those shared types one implementation in Struct, keeps graph execution in Core, and removes graph-engine dependencies from PD and Store.
For example, both Server and Store will use
org.apache.hugegraph.id.IdGenerator; the old Core copy is removed. Core still owns transactions, traversal and backend adapters.Shared ownership only; the diagram omits client and runtime dependencies. Core still uses PD/Store clients for HStore execution.
Related to hugegraph#257. Earlier review is in hugegraph/hugegraph#260.
Main Changes
sameAsand index serialization use shared typesWhat developers need to do
This prepares the planned 1.8.0 migration without changing release version numbers.
(property ID, vertex ID). Reads fall back only to matching legacy rows; values already overwritten by the old writer cannot be recoveredThe migration guide includes the API mapping, configuration examples and compatibility details. Affected Toolchain and Computer callers require matching artifacts and their own build/classpath validation before release.
Verifying these changes
Rebased on current master after #3263 merged, retaining its GraphBinary Schema/Blob, GraphSON V1 Tree, GValue/ID predicate, named range/count, DATE and kubeconfig compatibility repairs. Shared-type references now use their canonical Struct owners; the current CI policy is retained.
CI builds now install concrete parent versions for Maven 3.10, and benchmark packaging preserves the flattened test POM. Cluster tests use matching Commons with the existing client. Task cancellation waits for actual script progress, and unused PowerMock dependencies and their release entries are removed.
Local Java 17 compilation, shared-type/historical-codec regressions, Server unit tests, focused Memory/RocksDB query regressions and Store ingress/schema tests are validated against this integrated tree. Fresh service distributions are checked for duplicate HugeGraph classes and their actual runtime/nested dependency inventory. Upstream CI and full TinkerPop/HStore qualification on the updated head remain required before merging.
Does this PR potentially affect the following parts?
Documentation Status
Doc - TODODoc - Done: in-repository guide and paired bilingual apache/hugegraph-doc#511.Doc - No NeedCoordinate code and website merges, then complete downstream delivery before release.