jiangxt2 opened a new pull request, #13750: URL: https://github.com/apache/gravitino/pull/13750
### What changes were proposed in this pull request? - Restrict the base `apache-gravitino` installation to metadata-client runtime dependencies. - Add `[gvfs]` for local GVFS use, backend extras for HDFS, S3, GCS, OSS, and Azure, and `[storage]` for all storage backends; share GVFS requirements while keeping provider dependencies isolated. - Load `gravitino.gvfs` only when requested and provide installation guidance when GVFS or a storage-provider dependency is missing. - Move development and test dependencies out of the base install, include requirement files in the source distribution, and document installation and migration options. ### Why are the changes needed? Ray Data applications need the official Gravitino Python client to resolve catalog metadata. A metadata-only base install lets applications co-install the client with `ray[data]` without installing unused GVFS backends or building a separate HTTP client. General dependency-range changes remain tracked by #13556. Fix: #12211 ### Does this PR introduce any user-facing change? Yes. `pip install apache-gravitino` no longer installs GVFS or storage-provider dependencies. Install `apache-gravitino[gvfs]` for local paths, a backend extra such as `apache-gravitino[s3]` or `apache-gravitino[hdfs]` for remote storage, or `apache-gravitino[storage]` for all backends. The existing `lance` extra remains available. ### How was this patch tested? Focused Python unit suites were run from `clients/client-python` with: ```shell python -m unittest discover -s tests/unittests -p 'test_client_import_without_storage_dependencies.py' -v python -m unittest discover -s tests/unittests -p 'test_storage_handler.py' -v python -m unittest discover -s tests/unittests -p 'test_package_metadata.py' -v python -m unittest discover -s tests/unittests -p 'test_gravitino_client.py' -v ``` All four focused suites passed (2 import-boundary tests, 4 storage-handler tests, 1 package-metadata test, and 3 Gravitino client tests). - Black checks and `flake8 --select=F` passed for changed Python files; the commit's Ruff and Ruff-format hooks also passed. - The source distribution installed alongside `ray[data]==2.59.0` on Python 3.13.7; `uv pip check` passed, `ray.data` and `GravitinoClient` imported, and `GravitinoClient.list_catalogs()` returned the expected catalog from a loopback Gravitino-compatible endpoint. - Isolated Python 3.13 environments installed `[gvfs]`, `[hdfs]`, `[s3]`, `[gcs]`, `[oss]`, `[azure]`, and `[storage]` from the source distribution; `uv pip check`, provider imports, and safe handler checks passed without contacting storage services. - The full client test suite, Gradle tasks, documentation build, and live Gravitino or storage-service compatibility were not run. -- 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]
