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]

Reply via email to