jiangxt2 opened a new pull request, #14206: URL: https://github.com/apache/gravitino/pull/14206
### What changes were proposed in this pull request? - Replace the core runtime pin with `simplejson>=3.20.1,<=4.2.0`, retaining `dataclasses-json==0.6.7` and fixed development dependencies. - Add isolated compatibility checks that install built distributions, verify dependency consistency and import provenance, and exercise serialization and live metadata APIs with client/server version checking enabled. - Add the `coreCompatibilityTest` Gradle task, connect it to Python integration CI with diagnostic artifacts, and document the selected core and Ray Data environments. ### Why are the changes needed? The exact runtime pin restricts consumers' simplejson version choices. A bounded range with compatibility checks gives applications using Ray Data more flexibility while protecting the SDK's metadata behavior. The upper bound defines the initial reviewed scope; it does not imply a known incompatibility in later releases. Related to #13556. This contribution covers core SDK dependency compatibility; storage dependency ranges and Ray catalog provider integration remain separate work. ### Does this PR introduce _any_ user-facing change? Yes. Core installations can resolve simplejson versions from 3.20.1 through 4.2.0. Public metadata APIs and storage extras are unchanged, and Ray is not added as an SDK runtime dependency. ### How was this patch tested? Validation used macOS arm64, Corretto 17.0.18 and Gradle 8.2, with source-built `apache-gravitino 2.0.0.dev0` and Gravitino Server `2.0.0-SNAPSHOT`. - Python 3.10.22 unit regression: 1,262 tests passed, zero skipped. - Installed-artifact checks: the same 103-test selection passed in each environment below, with zero skips. Checks included normal package installation, `pip check`, serialization, live metadata operations and exception handling. | Case | Python | simplejson | Ray / PyArrow / pandas | Result | | --- | --- | --- | --- | --- | | core-min | 3.10.22 | 3.20.1 | Not installed | 103 passed | | ray-arrow26 | 3.12.12 | 4.2.0 | 2.59.0 / 26.0.0 / 3.0.6 | 103 passed | Server distribution, RAT, the Python distribution build, Black, Pylint and Actionlint passed. Coverage is limited to metadata compatibility; Ray Data reads and storage backend access are outside this PR. The CI matrix additionally selects Arrow 17 and 23 environments. Reproduce from the repository root using the documented Python 3.10 development setup and an available Python 3.12 interpreter, replacing the interpreter placeholders with their executable paths: ```shell (cd clients/client-python && PYTHONPATH=. python3.10 -m unittest discover -s tests/unittests -p 'test_*.py') ./gradlew compileDistribution rat -PskipWeb=true -x test -x :clients:client-python:build ./gradlew -PpythonVersion=3.10 -PskipWeb=true :clients:client-python:coreCompatibilityTest -PcoreCompatibilityCases=core-min,ray-arrow26 -PcoreCompatibilityPython=/path/to/python3.12 -PcoreCompatibilityMinimumPython=/path/to/python3.10 ``` -- 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]
