deps(ibis): upgrade ibis 10.8.0 and duckdb 1.3.2#1317
Conversation
|
Warning Rate limit exceeded@goldmedal has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 14 minutes and 9 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. 📒 Files selected for processing (3)
WalkthroughDependency updates in Changes
Sequence Diagram(s)(omitted) — changes are dependency/version updates only; no runtime control-flow modifications to diagram. Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested reviewers
Pre-merge checks (3 passed)✅ Passed checks (3 passed)
Poem
✨ Finishing touches
🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
ibis-server/poetry.lockis excluded by!**/*.lock
📒 Files selected for processing (1)
ibis-server/pyproject.toml(2 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: goldmedal
PR: Canner/wren-engine#1301
File: ibis-server/pyproject.toml:83-83
Timestamp: 2025-08-29T05:49:45.513Z
Learning: Polars dependency in ibis-server/pyproject.toml is correctly placed in dev dependencies because it's only used by helper tools in the tools/data_source/ directory, not in the main production application runtime.
📚 Learning: 2025-08-29T05:49:45.513Z
Learnt from: goldmedal
PR: Canner/wren-engine#1301
File: ibis-server/pyproject.toml:83-83
Timestamp: 2025-08-29T05:49:45.513Z
Learning: Polars dependency in ibis-server/pyproject.toml is correctly placed in dev dependencies because it's only used by helper tools in the tools/data_source/ directory, not in the main production application runtime.
Applied to files:
ibis-server/pyproject.toml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: ci
🔇 Additional comments (8)
ibis-server/pyproject.toml (8)
37-37: anyio 4.10.0 looks good with FastAPI/HTTPX here.No obvious compat issues with fastapi 0.116.x and httpx 0.28.x.
44-44: uvicorn ^0.35.0 upgrade LGTM.Pairs fine with FastAPI 0.116.x; no breaking flags expected for typical run() usage.
83-83: Retained: polars stays in dev group (good).Matches prior decision that polars is tooling-only.
49-49: DataFusion ^49: verify API changes (SessionContext/UDFs) and Arrow version alignment
- Direct import/use found: ibis-server/app/util.py — get_datafusion_context creates datafusion.SessionConfig and datafusion.SessionContext.
- wren_core.SessionContext is used widely (wren-core-py/tests/test_modeling_core.py, ibis-server/tools/*, ibis-server/app/mdl/core.py); confirm wren_core and its Python bindings are compatible with DataFusion 49.
- Repo search did not show register_udf/create_dataframe/DataFrame(...) calls; still verify for indirect/embedded uses inside wren_core.
- Could not run tests in the sandbox (pytest: command not found). Run full test suite locally or in CI against DataFusion 49 and confirm Arrow ABI/version alignment. If unsure, pin as an interim safety measure:
-datafusion = "^49.0.0"
+datafusion = "49.0.*"
40-40: Confirm Oracle client mode (thin vs thick)oracledb = "3.3.0" in ibis-server/pyproject.toml. Repo scan found no init_oracle_client() calls or cx_Oracle/oracledb imports — only an oracledb mention in a comment at ibis-server/app/model/metadata/oracle.py:88. Confirm you intend to use oracledb "thin" mode at runtime, or add the Oracle Instant Client to CI images if you need "thick" mode.
38-38: DuckDB 1.3.2 — sanity-check Ibis DuckDB backend and extension-loadingRun targeted verification: pytest -q -k duckdb (local/CI) — tests couldn't be run here (pytest not found). Repo uses DuckDB widely; confirm no regressions in query translation, extension init, or exported APIs.
- Inspect/run tests for: ibis-server/app/model/connector.py, ibis-server/app/model/metadata/object_storage.py, ibis-server/app/query_cache/init.py, ibis-server/app/routers/v3/connector.py, ibis-server/app/model/utils.py, and ibis-server/tests/* referencing "duckdb".
- Focus checks: duckdb.connect behavior, init_duckdb_{s3,minio,gcs} and .attach handling, duckdb.read_csv semantics, DuckDBPyConnection API and exported exceptions/imports.
- Action: run duckdb-marked tests and smoke-test connector flows; if failures appear, pin to the previous DuckDB version and add tests asserting expected translation/extension behavior.
13-23: Pin ibis git dep to an immutable commit and align PR description (10.8.0 vs 10.8.1)
- Branch refs are mutable; use a tag or commit SHA for reproducible builds.
- PR says “upgrade ibis to 10.8.0” but pyproject points at branch "canner/10.8.1" — confirm intended target and update PR text or dep.
- I checked: sqlglot PR #5368 (Postgres ROUND fix) merged 2025-07-07; I found no evidence that Canner's canner/10.8.1 includes that change — confirm the chosen ref contains the ROUND fix before pinning.
Suggested change (apply after you pick the exact ref):
-ibis-framework = { git = "https://github.com/Canner/ibis.git", branch = "canner/10.8.1", extras = [ +ibis-framework = { git = "https://github.com/Canner/ibis.git", rev = "<commit-or-tag-for-canner/10.8.x>", extras = [
9-49: Action: regenerate Poetry lock, rebuild images, and run DB-marked test suites (manual verification required)Sandbox verification failed: poetry missing (/bin/bash: line 3: poetry: command not found). Run the commands below locally and paste results.
- Regenerate Poetry lock and rebuild images to validate resolver output and wheel availability (notably sqlglotrs, duckdb).
- Run DB-marked suites (postgres, trino, oracle, snowflake, mssql, mysql) to catch backend-specific regressions.
Suggested commands:
#!/bin/bash set -euo pipefail poetry lock --no-update poetry export -f requirements.txt --with-credentials -o /tmp/reqs.txt python - <<'PY' import importlib mods = ["ibis","sqlglot","duckdb","oracledb","uvicorn","datafusion"] for m in mods: importlib.import_module(m) print("Imports OK") PY pytest -q -m "postgres or trino or oracle or snowflake or mssql or mysql"
|
Faced some issues when upgrading DataFusion to 49.0.0. ecebc53 downgrades it back to 47.0.0 |
Description
roundfunction in Postgres (Fix round double for postgres tobymao/sqlglot#5368)upgrade datafusion python to 49.0.0Summary by CodeRabbit