Skip to content

docs: explain shared foundation migration - #511

Open
imbajin wants to merge 4 commits into
apache:masterfrom
hugegraph:feat/struct-consolidation-1.8
Open

imbajin wants to merge 4 commits into
apache:masterfrom
hugegraph:feat/struct-consolidation-1.8

Conversation

@imbajin

@imbajin imbajin commented Oct 4, 2026 •

Copy link
Copy Markdown
Member

Java plugin documentation still uses the 1.7.0 API. Add English and Chinese guidance for the planned 1.8.0 shared-foundation migration so developers can quickly find which imports, extension contracts and deployment steps affect them.

The guide starts with a reader-impact table and explains module ownership through a before/after illustration. A small IdGenerator example shows the import change; API/SPI tables cover custom implementations. A second illustration and a step-by-step upgrade section explain coordinated Server/PD/Store upgrades, matching metadata namespaces and the OLAP key change.

Core and Struct duplicates become one shared implementation used by Core and Store.

Compatibility details remain explicit: affected long-text indexes may need rebuilding, matching legacy OLAP rows remain readable, overwritten values cannot be recovered, and mixed-version rolling upgrades are unsupported. Plugin and contributor pages link the new guide. Dependency-inventory instructions prepare matching packaged libraries before collection. Historical-version routing does not advertise an unavailable migration page.

The implementation in apache/hugegraph#3270 has merged into Server master. This PR updates the bilingual migration status and contribution build prerequisites to match, including CI-friendly POM flattening for Maven 3.10. Matching service artifacts and downstream publication remain release prerequisites.

Validation: link validation and link-validator regression checks passed for the bilingual status and build-guide update. The site build, fresh artifact validation and visual checks run in PR CI.

- document bilingual ownership and Java/SPI changes
- describe coordinated upgrades and legacy data limits
- align dependency inventory prerequisites and links
- Lead both languages with affected integrations and Java examples
- Explain ownership and upgrade steps with generated illustrations
- Keep compatibility limits in readable reference tables

@bitflicker64 bitflicker64 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking: yes. Summary: The guide's API and SPI claims match apache/hugegraph#3270, but its import table maps two whole packages to struct when some of their classes stay in core, so readers who apply those rows as written get imports that do not compile. Score 7/10. Evidence: static review of exact head 611003d against #3270 head eee539d49d67 (class locations via git ls-tree, HugeGraph.sameAs, GraphSerializer.writeIndex/readIndex, HugeElement.element()/wrapProperty, BaseVertex.TypeContext, pd.cluster default hg, Server cluster/usePD and graph pd.cluster options, regenerate_known_dependencies.sh and dependency_inventory.py); all latest-head checks pass.

Comment thread content/en/docs/guides/shared-foundation-migration.md Outdated

@imbajin imbajin left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking: yes. Summary: The migration guide omits the Server-wide PD namespace binding and the inventory command can retain stale jars on a reused checkout. Evidence: Paired implementation and inventory-collector locations are linked in the inline comments.

Comment thread content/en/docs/guides/shared-foundation-migration.md
Comment thread content/en/docs/contribution-guidelines/contribute.md Outdated
- record the merged Server implementation in both languages
- link the current source migration guide and retain upgrade limits
- synchronize build prerequisites and CI-friendly POM guidance
- identify relocated types and preserve core helper imports
- clarify the shared Server metadata namespace and ignored conflicts
- clean packaged dependency directories before inventory collection
@imbajin
imbajin force-pushed the feat/struct-consolidation-1.8 branch from 95b52cf to 2104942 Compare October 7, 2026 15:05

@imbajin imbajin left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking: yes. Summary: The documented root Maven clean command can remove the PD and Store source trees through their distribution modules' broad Clean filesets. Evidence: the merged Server #3270 POMs point dist.dir at each parent module directory and configure it as a fileset; Maven Clean selects all paths when includes is empty, as linked in the inline comment.

3. From the repository root, prepare the current revision's Server, PD and Store distribution libraries before regenerating the inventory:

```bash
mvn clean install -DskipTests -Dmaven.javadoc.skip=true

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

‼️ Critical: This root command invokes clean in the PD and Store distribution modules, whose POMs at merged Server #3270 set dist.dir to ${project.parent.basedir} and pass that entire module root as a Clean Plugin fileset without include or exclude patterns. Maven Clean's glob selector treats an empty include list as matching every path. This can delete the contents of hugegraph-pd/ and hugegraph-store/, including sources, POMs and uncommitted files, before packaging finishes. Please replace this with cleanup limited to generated distribution outputs, or narrow the paired Clean filesets before recommending the command; sync the Chinese guide. Evidence: PD dist.dir, PD Clean fileset, Store dist.dir, Store Clean fileset, Maven Clean selector.

This branch has not been deployed

No deployments
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.

2 participants