Skip to content

Upgrade DiskGraph to arrow and parquet 60.1 - #193

Merged
aaron-kumo merged 1 commit into
mainfrom
diskgraph-pyo3-arrow-upgrade
Nov 4, 2026
Merged

aaron-kumo merged 1 commit into
mainfrom
diskgraph-pyo3-arrow-upgrade

Conversation

@aaron-kumo

@aaron-kumo aaron-kumo commented Nov 4, 2026 •

Copy link
Copy Markdown
Collaborator

What

Move every arrow-rs crate and parquet in DiskGraph from 59.3.2 to 60.1. Also remove a stale cargo update of time from docker/build_diskgraph_wheel; the lockfile already pins it.

Why

parquet 60 brings zstd 0.14, which clears RUSTSEC-2026-0391, -0398, -0403 and -0410.

Behavior change

parquet-rs 60 always marks float and double columns with IEEE 754 total order (apache/arrow-rs#9619), and pyarrow up to 24 ignores min/max statistics on such columns (apache/arrow#50807). The only effect is that a reader filtering on a float column reads every row group instead of skipping some. Kumo never does that: DiskGraph doesn't read float statistics, and our Python code reads these files whole or filters only on ID columns. Values are unchanged.

Change map

@aaron-kumo

aaron-kumo commented Nov 4, 2026 •

Copy link
Copy Markdown
Collaborator Author

Change map

File Function / scope What changed Why
packages/diskgraph/Cargo.toml, packages/diskgraph/diskgraph-datagenerator/Cargo.toml, packages/diskgraph/diskgraph-engine/Cargo.toml, packages/diskgraph/diskgraph-explain/Cargo.toml, packages/diskgraph/diskgraph-gateway/Cargo.toml, packages/diskgraph/diskgraph-infer/Cargo.toml, packages/diskgraph/diskgraph-ingest/Cargo.toml, packages/diskgraph/diskgraph-pybind/Cargo.toml, packages/diskgraph/diskgraph-train-table/Cargo.toml Dependencies arrow-rs and parquet 60.1.0 zstd 0.14 advisories
docker/build_diskgraph_wheel build_from_source Drop cargo update of time Lockfile pins it
packages/diskgraph/Cargo.lock, packages/diskgraph/third_party/artifact-manifest.json, 3rdparty/notices/inventory.json, THIRD-PARTY.txt Generated Regenerated New crates

Verified locally: clippy, Rust and Python tests, wheel build, license and advisory checks.

@aaron-kumo
aaron-kumo temporarily deployed to gha-kumo-workflow-tests November 4, 2026 16:22 — with GitHub Actions Inactive
@coderabbitai

coderabbitai Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Explain Change →

Walkthrough

Cargo manifests upgrade Arrow and Parquet dependencies to version 60.1.0. Third-party notices and Linux and Windows artifact manifests record the updated dependency versions, including changes to Zstandard license details. The wheel build script removes the command that pinned time to version 0.3.47.

Pre-merge checks: Passed 2 · Inconclusive 1

Failed Failed checks: 1 inconclusive

Check name Status Explanation Resolution
Change Map Design Review Inconclusive The required PR conversation comment beginning with <!-- kumo-pr-change-map --> is not present in the supplied review context. The repository contains only the template and checker references to tha… Provide the full PR conversation comment beginning with <!-- kumo-pr-change-map -->, including its observed failure, design table, verification, and stopping condition. Then review each proposed change against the repository diff and link…
Passed Passed checks: 2 passed
Check name Status Explanation
Pr Size Passed The pull request changes 14 files. This does not exceed the 40-file limit.
Public Resource Access Passed All added package-source references are publicly accessible. The new Arrow origin https://github.com/apache/arrow-rs in 3rdparty/notices/inventory.json:2508 returned HTTP 200. The added crates.io …
Full details: Public Resource Access

Explanation

All added package-source references are publicly accessible. The new Arrow origin https://github.com/apache/arrow-rs in 3rdparty/notices/inventory.json:2508 returned HTTP 200. The added crates.io registry source for arrow-cmp in packages/diskgraph/Cargo.lock:262 and the artifact manifests is public; the registry endpoint returned HTTP 200. Crates.io API checks returned HTTP 200 for every changed package/version, including arrow-cmp 60.1.0.

Full details: Change Map Design Review

Explanation

The required PR conversation comment beginning with &lt;!-- kumo-pr-change-map --&gt; is not present in the supplied review context. The repository contains only the template and checker references to that marker, not the author's Change map. Without that comment, I cannot assess whether each proposed change is necessary, correctly layered, behavior-preserving, or sufficiently verified.

Resolution

Provide the full PR conversation comment beginning with &lt;!-- kumo-pr-change-map --&gt;, including its observed failure, design table, verification, and stopping condition. Then review each proposed change against the repository diff and linked problem.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Review coverage is incomplete: 1 file could not be fully reviewed. Findings from completed review steps are included; see review info for details.

Move every arrow-rs crate and parquet from 59.3.2 to 60.1. No
code changes are needed, and parquet 60 brings zstd 0.14,
which clears four RUSTSEC advisories in zstd, zstd-safe and
zstd-sys. Regenerate Cargo.lock, the artifact manifest, the
notice inventory and THIRD-PARTY.txt.

Parquet files DiskGraph writes now mark float columns with
IEEE 754 total order, so pyarrow no longer prunes row groups
on their min/max.

Drop build_diskgraph_wheel's cargo update of time: the staged
source's Cargo.lock already pins 0.3.47.
@aaron-kumo
aaron-kumo force-pushed the diskgraph-pyo3-arrow-upgrade branch from 408a2b9 to 3cd5fb7 Compare November 4, 2026 18:39
@aaron-kumo
aaron-kumo temporarily deployed to gha-kumo-workflow-tests November 4, 2026 18:39 — with GitHub Actions Inactive
@aaron-kumo
aaron-kumo removed this pull request from stack #194 November 4, 2026 18:39
@aaron-kumo aaron-kumo changed the title Upgrade DiskGraph to pyo3 0.29.3 and arrow/parquet 60.1 Upgrade DiskGraph to arrow and parquet 60.1 Nov 4, 2026
@aaron-kumo
aaron-kumo changed the base branch from rust-toolchain-toml to main November 4, 2026 18:40
@aaron-kumo
aaron-kumo requested a review from anle2024 November 4, 2026 18:48

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to GitHub limitations.

⚠️ Outside diff range comments (1)

Minor · Replace the copyright placeholder in the alloc-stdlib 0.3.0 notice. · THIRD-PARTY.txt:1184

THIRD-PARTY.txt:1184
Minor · Data Integrity & Integration · Quick win

Replace the copyright placeholder in the alloc-stdlib 0.3.0 notice.

The alloc-stdlib 0.3.0 entry in THIRD-PARTY.txt at line 1184 still contains Copyright (c) <year> <owner>.. That entry lists binaries that ship in the distribution, including diskgraph._c.abi3.so and bin/ingest.exe. The shipped notice therefore lacks the copyright attribution.

Take the upstream copyright holder and year from the crate's LICENSE. Correct the source notice data in 3rdparty/notices/inventory.json. Then regenerate the file with python scripts/gen_third_party.py --output THIRD-PARTY.txt, as documented in docs/development/generated-artifacts.md. Do not edit the generated THIRD-PARTY.txt directly.

Review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between 48a378d and 3cd5fb7.

Files ignored due to path filters: 1
  • packages/diskgraph/Cargo.lock is excluded by !**/*.lock, !**/*.lock
Files selected for processing: 13
  • 3rdparty/notices/inventory.json
  • THIRD-PARTY.txt
  • docker/build_diskgraph_wheel
  • packages/diskgraph/Cargo.toml
  • packages/diskgraph/diskgraph-datagenerator/Cargo.toml
  • packages/diskgraph/diskgraph-engine/Cargo.toml
  • packages/diskgraph/diskgraph-explain/Cargo.toml
  • packages/diskgraph/diskgraph-gateway/Cargo.toml
  • packages/diskgraph/diskgraph-infer/Cargo.toml
  • packages/diskgraph/diskgraph-ingest/Cargo.toml
  • packages/diskgraph/diskgraph-pybind/Cargo.toml
  • packages/diskgraph/diskgraph-train-table/Cargo.toml
  • packages/diskgraph/third_party/artifact-manifest.json
Files with no reviewable changes: 1
  • docker/build_diskgraph_wheel
Files not fully reviewed because their changes were unavailable: 1
  • 3rdparty/notices/inventory.json

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

@aaron-kumo
aaron-kumo requested a review from Vedaant-J November 4, 2026 20:45
@aaron-kumo
aaron-kumo merged commit fdec9da into main Nov 4, 2026
146 of 148 checks passed
@aaron-kumo
aaron-kumo deleted the diskgraph-pyo3-arrow-upgrade branch November 4, 2026 21:03

This branch was previously deployed

1 inactive deployment
gha-kumo-workflow-tests — 3cd5fb76 Deployed Nov 4, 2026 by aaron-kumo via import #1477
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.

2 participants