Skip to content

chore(deps)!: bump substrait packages to 0.105.0 - #316

Open
nielspardon wants to merge 1 commit into
substrait-io:mainfrom
nielspardon:chore/bump-substrait-0.105.0
Open

nielspardon wants to merge 1 commit into
substrait-io:mainfrom
nielspardon:chore/bump-substrait-0.105.0

Conversation

@nielspardon

@nielspardon nielspardon commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Closes #287.

Bumps substrait-protobuf, substrait-extensions, and substrait-antlr to spec v0.105.0 (release notes).

  • Decimal avg is nullable. Return type derivation picks up the YAML change with no code change, so avg over DECIMAL<P,S> now resolves to DECIMAL?<38,S> even for required input. A new registry test pins it.
  • File-level extension descriptions. The generated SimpleExtensions model gained a description field, and build_simple_extensions now fills it in like the other description fields.
  • Detached expression subtrees. The new detached_expressions / detached_expression_ordinal proto fields come in with the bindings. Reading and writing them is implemented in feat: read and write detached expression subtrees #317.

🤖 Generated with AI

BREAKING CHANGE: avg over a decimal now derives a nullable DECIMAL?<38,S> result, following spec v0.105.0. Plans built with this release declare the aggregate's output type nullable.

Bumps substrait-protobuf, substrait-extensions, and substrait-antlr to
spec v0.105.0 and carries the new file-level extension `description`
through build_simple_extensions.

BREAKING CHANGE: `avg` over a decimal now derives a nullable
`DECIMAL?<38,S>` result, following spec v0.105.0. Plans built with this
release declare the aggregate's output type nullable.
@coderabbitai

coderabbitai Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: substrait-io/substrait-python/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 2cd2b48c-7331-4d16-afbf-5d91b2ddacf0
📥 Commits

Reviewing files that changed from the base of the PR and between 340c4d5 and 86cc193.

⛔ Files ignored due to path filters (2)
  • pixi.lock is excluded by !**/*.lock
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (4)
  • pyproject.toml
  • src/substrait/simple_extension_utils.py
  • tests/extension_registry/test_registry_lookup.py
  • tests/test_simple_extension_utils.py

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

📝 Summary

Summary by CodeRabbit

  • Bug Fixes
    • Extension descriptions are now preserved when simple extensions are built, and remain unset when no description is provided.
    • Decimal average lookups now correctly return a match with a nullable decimal result.

The project updates Substrait package dependencies to version 0.105.0. It also passes file-level descriptions into se.SimpleExtensions and adds registry lookup coverage for nullable decimal average results.

Changes: Substrait 0.105.0 support

Layer / File(s) Summary
Update Substrait package pins
pyproject.toml
The project, extensions extra, and development dependency group now pin Substrait packages to version 0.105.0.
Pass through file-level descriptions
src/substrait/simple_extension_utils.py, tests/test_simple_extension_utils.py
build_simple_extensions passes the optional description to se.SimpleExtensions. Tests check that a supplied description, including its trailing newline, is preserved and that an absent description defaults to None.
Check decimal average lookup
tests/extension_registry/test_registry_lookup.py
A registry lookup test checks that decimal avg with a required DECIMAL(2,10) argument returns nullable DECIMAL(2,38).

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to 86cc1

The dependency versions are aligned, and no concrete merge-blocking behavior is established. Confirm the focused tests in the project environment as part of normal checks.

Pre-merge checks · Passed 3 · Failed 2

Failed Failed checks (2 warnings)

Check name Status Explanation Resolution
Linked Issues check Warning [ #287 ] The dependency declarations update to v0.105.0. The registry test covers nullable decimal avg. build_simple_extensions maps file-level description, and tests cover present and absent va… Implement and test detached expression subtree reading and writing in this pull request, or provide reviewable evidence that the reviewed head already supports both fields.
Docstring Coverage Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 6 functions across 3 files. (1 skipped: 1… Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks (3 passed)
Check name Status Explanation
Title check Passed The title is concise, specific, and uses valid Conventional Commit syntax. It accurately identifies the dependency bump to Substrait packages and marks the reported breaking change.
Description check Passed The description explains the dependency update, documents the decimal avg behavior and file-level descriptions, identifies detached-expression work handled separately, links the related issue, and inc…
Out of Scope Changes check Passed The dependency updates, SimpleExtensions mapping, registry test, and utility tests directly support the v0.105.0 update requested by #287. No unrelated change is shown in the supplied whole-pull-req…
Full details: Linked Issues check

Explanation

[ #287 ] The dependency declarations update to v0.105.0. The registry test covers nullable decimal avg. build_simple_extensions maps file-level description, and tests cover present and absent values. The summary provides no evidence that this PR reads or writes detached_expressions or detached_expression_ordinal. The PR description assigns that work to #317, but another pull request does not establish implementation at this reviewed head.

Full details: Docstring Coverage

Explanation

Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 6 functions across 3 files. (1 skipped: 1 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@nielspardon
nielspardon marked this pull request as draft October 13, 2026 12:28
@nielspardon
nielspardon marked this pull request as ready for review October 13, 2026 13:55

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update to Substrait v0.105.0

1 participant