jiangxt2 opened a new pull request, #13325:
URL: https://github.com/apache/gravitino/pull/13325

   ### What changes were proposed in this pull request?
   
   This pull request adds a Gravitino-owned Ray Data Iceberg REST integration 
test to the Python client test suite.
   
   The change:
   
   - adds pinned Ray 2.55.1, PyIceberg 0.12.0, and pandas 2.3.3 test 
dependencies;
   - adds a dedicated `rayIcebergIT` Gradle task with an isolated Python 
environment;
   - generates the ignored `gravitino/version.ini` file before running the 
client test;
   - configures the Gravitino Iceberg REST auxiliary service with the dynamic 
catalog provider;
   - uses Gravitino's memory Iceberg catalog and PyIceberg to create a 
namespace and pre-existing table fixture;
   - verifies empty-table reads, Ray Data writes, subsequent reads, field 
order, row counts, and filtering;
   - adds setup-failure cleanup for Gravitino configuration, metadata, and 
temporary data.
   
   The implementation does not modify Java Iceberg REST code, Ray source code, 
or Ray `Catalog.resolve()` behavior.
   
   ### Why are the changes needed?
   
   Gravitino documents Ray Data access through the Iceberg REST endpoint and 
`catalog_kwargs`, but the Python client integration suite did not have a real 
end-to-end regression test for this contract.
   
   The test protects the existing-table read/write path and validates the 
Gravitino auxiliary service lifecycle using the existing Lance Ray IT as the 
implementation baseline.
   
   Fix: #13323
   
   ### Does this PR introduce any user-facing change?
   
   No end-user API or runtime behavior changes are introduced; 
contributor-facing Python integration-test tooling is added.
   
   ### How was this patch tested?
   
   Passed:
   
   - `git diff --check`
   - `ruff check --no-cache 
clients/client-python/tests/integration/test_ray_iceberg.py`
   - `ruff format --check --no-cache 
clients/client-python/tests/integration/test_ray_iceberg.py`
   - Gradle task graph for `:clients:client-python:rayIcebergIT --dry-run`
   - `./gradlew :clients:client-python:rayIcebergIT --no-daemon 
--console=plain` — passed; 1 test ran and completed successfully.
   
   Before running the E2E, build or reuse the Gravitino distribution with 
`./gradlew compileDistribution -PskipWeb=true -x test`.
   
   This E2E is currently opt-in/manual and is not wired into the default CI 
workflow.
   


-- 
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