Skip to content

Release v0.9.0: quack-rs 0.15.0, DuckDB v1.5.4, dependency refresh#83

Merged
tomtom215 merged 2 commits into
mainfrom
claude/duckdb-deps-release-489xb1
Jul 19, 2026
Merged

Release v0.9.0: quack-rs 0.15.0, DuckDB v1.5.4, dependency refresh#83
tomtom215 merged 2 commits into
mainfrom
claude/duckdb-deps-release-489xb1

Conversation

@tomtom215

Copy link
Copy Markdown
Owner

Summary

Dependency-refresh release v0.9.0: upgrades quack-rs 0.14.0 → 0.15.0 and DuckDB v1.5.3 → v1.5.4 (libduckdb-sys/duckdb 1.10503.1 → 1.10504.0), refreshes the full lockfile (including two RUSTSEC dev/transitive security fixes), bumps the extension version, and updates every version reference and doc. Zero changes to extension source — the SDK API and DuckDB C ABI are unchanged, so the crate compiles against the new dependencies untouched.

Changes

  • quack-rs 0.14.0 → 0.15.0 (runtime + dev) — purely additive (Value::as_blob, read_blob non-UTF-8 fix); neither blob API is used here. MSRV stays 1.87.
  • DuckDB v1.5.3 → v1.5.4libduckdb-sys/duckdb 1.10503.1 → 1.10504.0; C extension API stays v1.2.0, ABI stays C_STRUCT_UNSTABLE. Pins updated in Makefile, e2e.yml, scripts/setup.sh, and the DUCKDB_VERSION metadata constant in tests/extension_load.rs.
  • cargo updatecrossbeam-epoch 0.9.18 → 0.9.20 (RUSTSEC-2026-0204) and quinn-proto 0.11.14 → 0.11.16 (RUSTSEC-2026-0185), both dev/transitive (never linked into the shipped .so), plus ~70 routine bumps; the windows-sys transitive subtree is dropped.
  • Version 0.8.0 → 0.9.0 in Cargo.toml + description.yml; CHANGELOG [0.9.0] entry added.
  • Docs refreshed to the 0.9.0 / quack-rs 0.15.0 / DuckDB v1.5.4 baseline across README.md, CLAUDE.md, SECURITY.md, docs/src/**, the issue templates, and the community-submission workflow.
  • Pre-existing accuracy fixes (bar-raising): README CI-job count 13 → 14 (added wasm-check) and E2E row 11 steps/59 queries → 12 steps/76 queries (verified against e2e.yml/test/sql); corrected a stale Cargo.toml dev-dep comment referencing a nonexistent .cargo/config.toml.

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Performance improvement (non-breaking change that improves performance)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • CI/CD or tooling change

Primarily a dependency-refresh / release-prep change; no runtime source changes, so no SQL behavior changes.

Testing

All validated locally against real DuckDB v1.5.4 (libduckdb sourced from the DuckDB 1.5.4 pip wheel + the vendored amalgamation headers — the session's egress policy blocks the GitHub release download, and duckdb/duckdb can't be added cross-owner):

  • cargo test passes — 486 unit + 16 integration + 1 doc-test (503 total, 0 failed, 0 ignored)
  • cargo clippy --all-targets — zero warnings
  • cargo fmt -- --check passes
  • cargo doc --no-deps builds without warnings (RUSTDOCFLAGS=-Dwarnings)
  • E2E against real DuckDB — all 8 functions + behavioral_version() via the official DuckDB 1.5.4 Python client, and all 76 test/sql queries pass (the exact set make test_release runs)
  • Benchmarks checked — cargo bench --no-run compiles all 7 suites

Additional CI gates verified locally: wasm-check (wasm32-unknown-emscripten), MSRV 1.87 (lib compile + full-tree audit: 306 locked crates, all declare rust-version ≤ 1.87), and cargo deny check advisories bans licenses sources (clean). SemVer is unaffected — the public rlib API is byte-identical (no src/ changes).

Documentation

  • README updated (metrics/counts corrected)
  • CLAUDE.md updated (dependency versions, DuckDB version, E2E line)
  • CHANGELOG.md updated ([0.9.0])
  • mdBook docs updated (version references)
  • PERF.md updated — n/a (no performance change; zero source changes)

Related Issues

None.

Notes

Post-merge release path (verified ready):

  1. Tag v0.9.0release.yml validates versions (Cargo.toml = description.yml = 0.9.0 ✓), builds the 4-platform artifacts, runs make test_release, creates the GitHub release, and auto-pins description.yml's ref to the tagged commit on main (the update-description-ref job).
  2. Submit to duckdb/community-extensions: run community-submission.yml (dry_run=false) to generate the package, then open the PR updating extensions/behavioral/description.yml.

The description.yml ref still points at the v0.8.0 commit by designrelease.yml rewrites it to the tagged commit automatically, so no manual edit is needed before tagging.

🤖 Generated with Claude Code

https://claude.ai/code/session_01KtQVSn8MZwxq6vJkLoS83a


Generated by Claude Code

claude added 2 commits July 19, 2026 17:03
Bump the two runtime dependencies and the DuckDB target to the current
release line, refresh the full lockfile (picking up security fixes), and
cut the v0.9.0 release. Zero changes to extension source — the SDK and C
ABI are unchanged, so the crate compiles against the new deps untouched.

Dependencies:
- quack-rs 0.14.0 -> 0.15.0 (additive: adds Value::as_blob and fixes
  VectorReader::read_blob; neither blob API is used here). MSRV stays 1.87.
- libduckdb-sys and duckdb (dev) 1.10503.1 -> 1.10504.0 (DuckDB v1.5.4
  bugfix release; C extension API stays v1.2.0, ABI stays C_STRUCT_UNSTABLE).
- cargo update: crossbeam-epoch 0.9.18 -> 0.9.20 (RUSTSEC-2026-0204) and
  quinn-proto 0.11.14 -> 0.11.16 (RUSTSEC-2026-0185), plus routine bumps.
  All are dev/transitive; the shipped .so links only libduckdb-sys +
  quack-rs. libduckdb-sys 1.10504.0 also drops the windows-sys subtree.

Version pins updated to v1.5.4: Makefile (TARGET/TEST), e2e.yml, and
scripts/setup.sh. Extension version 0.8.0 -> 0.9.0 in Cargo.toml and
description.yml.

Docs: refreshed every version reference to the 0.9.0 / quack-rs 0.15.0 /
DuckDB v1.5.4 baseline across README, CLAUDE.md, SECURITY.md, docs/src,
issue templates, and the community-submission workflow; added the
CHANGELOG [0.9.0] entry. Also corrected pre-existing drift: README CI-job
count 13 -> 14 (was missing wasm-check), README E2E row 11 steps/59
queries -> 12 steps/76 queries (verified against e2e.yml and test/sql),
and a stale Cargo.toml dev-dep comment referencing a nonexistent
.cargo/config.toml.

Validated locally (release build path needs no libduckdb download):
release cdylib build, clippy --lib -D warnings, cargo fmt --check,
cargo doc --no-deps (-D warnings), MSRV 1.87 lib compile, a full-tree
MSRV audit (306 locked crates, all declare rust-version <= 1.87), and
cargo-deny check advisories/bans/licenses/sources (clean).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KtQVSn8MZwxq6vJkLoS83a
The in-process integration test hardcodes the DuckDB release version it
stamps into the extension metadata footer (the -dv field), documented as
"kept in sync with the Makefile / e2e.yml". The v0.9.0 bump moved those to
v1.5.4 but this .rs constant was missed by the earlier doc sweep (which
only covered .md/.yml/.toml/.sh). The 16 integration tests passed anyway
because they SET allow_extensions_metadata_mismatch=true; with the constant
corrected the built artifact now carries the true v1.5.4 target, identical
to what CI ships. Noted in the CHANGELOG version-sweep list.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KtQVSn8MZwxq6vJkLoS83a
@tomtom215
tomtom215 merged commit 1f36ba2 into main Jul 19, 2026
20 checks passed
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