Skip to content

feat(xlang): use compatible for xlang by default#3648

Merged
chaokunyang merged 5 commits into
apache:mainfrom
chaokunyang:xlang_compatible_by_default
May 6, 2026
Merged

feat(xlang): use compatible for xlang by default#3648
chaokunyang merged 5 commits into
apache:mainfrom
chaokunyang:xlang_compatible_by_default

Conversation

@chaokunyang
Copy link
Copy Markdown
Collaborator

@chaokunyang chaokunyang commented May 6, 2026

Why?

Cross-language users should get schema-evolution behavior by default, because schemas can diverge independently across language implementations and services. This PR makes xlang configuration select compatible mode unless callers explicitly request schema-consistent mode.

What does this PR do?

  • Defaults xlang builders/configuration to compatible mode across runtimes while preserving explicit compatible(false) or equivalent schema-consistent choices.
  • Disables schema/class/struct version checks when compatible mode is active, and keeps version checks enabled for explicit schema-consistent xlang paths where applicable.
  • Updates generated Java registration code and cross-language examples to use the compatible xlang configuration.
  • Adjusts existing tests that assert schema-consistent wire behavior to opt out of the new xlang default explicitly, and adds configuration coverage for the new default behavior.
  • Refreshes cross-language and runtime documentation to describe compatible mode as the xlang default and schema-consistent mode as an explicit opt-out.

Related issues

#1017

AI Contribution Checklist

  • Substantial AI assistance was used in this PR: yes / no
  • If yes, I included a completed AI Contribution Checklist in this PR description and the required AI Usage Disclosure.
  • If yes, my PR description includes the required ai_review summary and screenshot evidence of the final clean AI review results from both fresh reviewers on the current PR diff or current HEAD after the latest code changes.

Does this PR introduce any user-facing change?

  • Does this PR introduce any public API change?
  • Does this PR introduce any binary protocol compatibility change?

Benchmark

@chaokunyang chaokunyang merged commit de67a87 into apache:main May 6, 2026
71 checks passed
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