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]
