Skip to content

[Rust] Release v2.1.1#328

Merged
brankogrb-db merged 4 commits into
mainfrom
release/rust-v2.1.1
May 27, 2026
Merged

[Rust] Release v2.1.1#328
brankogrb-db merged 4 commits into
mainfrom
release/rust-v2.1.1

Conversation

@brankogrb-db
Copy link
Copy Markdown
Contributor

@brankogrb-db brankogrb-db commented May 27, 2026

Summary

Patch release that fixes a handful of issues surfaced on the v2.1.0 crates.io and docs.rs pages.

  • docs.rs: add [package.metadata.docs.rs] all-features = true to rust/sdk/Cargo.toml. Without this, the v2.1.0 build on docs.rs renders with zero features enabled — so the arrow-flight and zeroparser modules are invisible. After this release, both will appear on the rendered docs.rs page.
  • rust/README.md (crates.io page): the zeroparser link was a relative path that 404s from the crates.io URL; switched to an absolute GitHub URL. Also corrected prost / tokio versions in the path-dependency install snippet (were 0.13.3 / 1.42.0, workspace is at 0.14 / 1.52), replaced the broken cargo build -p generate_files command (the package's name is tools), advertised the arrow-flight Beta feature in the Features list (was unmentioned), and refreshed the Repository Structure tree (added arrow_stream.rs, zeroparser/, examples/arrow/, current tests/src/*.rs files).
  • Arrow Flight example: the example's schema declared Utf8 for STRING columns, Int64 for TIMESTAMP columns, and nullable: false everywhere. The Databricks Arrow Flight server expects LargeUtf8, Timestamp(Microsecond, Some("UTC")), and the column's actual nullability (the prerequisite SQL doesn't add NOT NULL). Verified end-to-end against the dev workspace — 100 batches ingest successfully against a table created from the README's SQL.
  • JSON / Protocol Buffers examples: all four (json/{batch,single}.rs, proto/{batch,single}.rs) used chrono::Utc::now().timestamp() (seconds). Per sdk/src/schema.rs, Delta TIMESTAMP expects int64 microseconds. Switched to timestamp_micros().
  • SDK: re-export TimeUnit from arrow_schema so callers building DataType::Timestamp(...) fields don't need an explicit arrow-schema dependency.

Test plan

  • cargo build --workspace --all-features clean.
  • cargo test -p databricks-zerobus-ingest-sdk --features zeroparser — 188 unit + 98 e2e + 23 doctest pass.
  • cargo clippy --workspace --all-features -- -D warnings clean.
  • cargo run -p example_arrow against a Delta table created from the README's prerequisite SQL ingests 100 batches and closes cleanly.
  • After merge, push tag rust/v2.1.1 to trigger release-rust.yml → crates.io.
  • After publish, verify the crates.io page shows the absolute zeroparser link and the Arrow Flight feature mention; verify docs.rs renders arrow_stream, zeroparser, and TimeUnit.

This pull request and its description were written by Isaac.

Bump rust/sdk/Cargo.toml to 2.1.1 and roll NEXT_CHANGELOG.md into
CHANGELOG.md. Highlights: enable all-features for docs.rs so
arrow-flight and zeroparser modules render; fix the Arrow example's
schema (LargeUtf8, Timestamp(Microsecond, UTC), nullable=true) to
match the canonical Delta-derived schema; switch JSON/Protocol
Buffers examples to timestamp_micros() for Delta TIMESTAMP columns;
re-export TimeUnit from the SDK root.

Co-authored-by: Isaac
Signed-off-by: brankogrb-db <branko.grbic@databricks.com>
Fix four documentation issues surfaced on the crates.io page for v2.1.0:
- correct prost / tokio versions in the path-dependency snippet,
- replace the broken `cargo build -p generate_files` with `-p tools`,
- add the `arrow-flight` Beta feature to the Features list,
- update Repository Structure with arrow_stream / zeroparser / tests
  files / examples/arrow.

Co-authored-by: Isaac
Signed-off-by: brankogrb-db <branko.grbic@databricks.com>
@brankogrb-db brankogrb-db self-assigned this May 27, 2026
@brankogrb-db brankogrb-db requested review from elenagaljak-db and teodordelibasic-db and removed request for elenagaljak-db May 27, 2026 14:16
Verified against the dev workspace that proto and JSON examples ingest
successfully with chrono::Utc::now().timestamp() (seconds) — the server
accepts int64 timestamps regardless of unit. Rows land with early-1970
timestamps, but ingestion does not fail. Keep these examples untouched;
v2.1.1 stays scoped to broken behavior only.

Co-authored-by: Isaac
Signed-off-by: brankogrb-db <branko.grbic@databricks.com>
Restore the timestamp_micros() calls in all four
examples/{json,proto}/{batch,single}.rs plus examples/arrow so the
example data lands at the current time instead of January 1970. The
server accepts any int64 value in a TIMESTAMP column without unit
validation, so the previous timestamp() (seconds) form ingested
successfully but produced wrong-looking rows in the table.

Co-authored-by: Isaac
Signed-off-by: brankogrb-db <branko.grbic@databricks.com>
@brankogrb-db brankogrb-db added this pull request to the merge queue May 27, 2026
@brankogrb-db brankogrb-db removed this pull request from the merge queue due to a manual request May 27, 2026
@brankogrb-db brankogrb-db added this pull request to the merge queue May 27, 2026
Merged via the queue into main with commit 9990a36 May 27, 2026
34 checks passed
@brankogrb-db brankogrb-db deleted the release/rust-v2.1.1 branch May 27, 2026 21:04
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