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]

Reply via email to