jiangxt2 opened a new pull request, #14403: URL: https://github.com/apache/gravitino/pull/14403
### What changes were proposed in this pull request? Add an optional uv development workflow with a committed lockfile, setuptools metadata bridging, requirement/README cache inputs, package metadata assertions, and setup/check commands in the Python client guide. Keep dependency declarations in setup.py and the existing requirement files. ### Why are the changes needed? Provide reproducible developer environments while preserving the existing package installation contract. Include dynamically read files in cache invalidation so installed package metadata follows changes to those files. Part of #14395. ### Does this PR introduce _any_ user-facing change? Developers can use uv for local setup and checks. SDK APIs, runtime dependency declarations, and default Gradle, CI and release entry points are unchanged. ### How was this patch tested? Local validation on macOS arm64 with uv 0.12.23: - Locked development installs and complete unit suites on Python 3.10.18, 3.11.15 and 3.12.12: 1,272 tests per baseline, zero skips; dependency checks passed. Core-only installs on Python 3.10/3.11 and all-extras installation/import checks on Python 3.12 also passed. - Existing Gradle 8.2 / Java 17 client test and distribution tasks passed: 10 tasks executed, including 1,272 unit tests, lint and sdist generation. The generated sdist passed ordinary pip installation, imports and version checks in a clean environment. - Black, Pylint (10.00/10), RAT and lock consistency checks passed. - Local-only packaging checks passed for metadata equivalence, requirement/README cache invalidation, formal/RC/development versions, sdist-to-wheel builds and clean installation. The uv unit workflow is reproducible from clients/client-python with: ```shell uv sync --locked --extra dev --python 3.12 uv run --locked --extra dev python scripts/generate_version.py PYTHONPATH="$PWD" uv run --locked --extra dev --directory tests/unittests python -m unittest ``` Service/storage integration and Ray end-to-end suites were not run for this tooling change. -- 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]
