stevenschlansker opened a new pull request, #3714: URL: https://github.com/apache/fory/pull/3714
Opt in with `.withSchemaEvolution()` on any row, array, or map codec builder. Fields carry `@ForyVersion(since, until)`; removed fields are listed on a nested interface referenced from `@ForySchema(removedFields = ...)`, which preserves parameterized types like `List<String>`. Older payloads are dispatched at read time; nothing changes when the flag is off. Standard and compact formats supported. ## Why? Currently changing row format schema definition in any way invalidates all records ## What does this PR do? Propose a new concept of format versions, each succeeding version may add or remove fields from types, and deserialization machinery picks version based on schema hash ## AI Contribution Checklist AI Usage Disclosure - substantial_ai_assistance: yes - scope: all - affected_files_or_subsystems: row format Java - ai_review: <line-by-line self-review completed; summarize the two-reviewer loop and final no-further-comments result> - ai_review_artifacts: <embedded screenshots or links showing the final clean review results from both fresh reviewers on the current PR diff or current HEAD after the latest code changes> - human_verification: <checks run locally or in CI + pass/fail summary + contributor reviewed results> - performance_verification: <N/A or benchmark/regression evidence summary> - provenance_license_confirmation: <Apache-2.0-compatible provenance confirmed; no incompatible third-party code introduced> - [ ] If `yes`, I included a completed [AI Contribution Checklist](https://github.com/apache/fory/blob/main/AI_POLICY.md#9-contributor-checklist-for-ai-assisted-prs) 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? New codec option: schema evolution. Some small annotations and a builder method. Existing row format compatibility unchanged ## Benchmark Includes performance optimization of 20-30% less memory allocation in row codec decoding -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
