From a193c1a244354f6a81ebbeea7202fd59f41fa16f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 29 May 2026 20:54:28 +0000 Subject: [PATCH 1/2] chore: release v0.24.0 --- Cargo.toml | 2 +- differential-dataflow/CHANGELOG.md | 17 +++++++++++++++++ differential-dataflow/Cargo.toml | 2 +- dogsdogsdogs/CHANGELOG.md | 6 ++++++ dogsdogsdogs/Cargo.toml | 2 +- 5 files changed, 26 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index a371be49e..f9060ff73 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ edition = "2021" rust-version = "1.86" [workspace.dependencies] -differential-dataflow = { path = "differential-dataflow", default-features = false, version = "0.23.0" } +differential-dataflow = { path = "differential-dataflow", default-features = false, version = "0.24.0" } timely = { version = "0.30", default-features = false } columnar = { version = "0.13", default-features = false } #timely = { git = "https://github.com/TimelyDataflow/timely-dataflow", default-features = false } diff --git a/differential-dataflow/CHANGELOG.md b/differential-dataflow/CHANGELOG.md index 29710aeee..310119a75 100644 --- a/differential-dataflow/CHANGELOG.md +++ b/differential-dataflow/CHANGELOG.md @@ -7,6 +7,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.24.0](https://github.com/TimelyDataflow/differential-dataflow/compare/differential-dataflow-v0.23.0...differential-dataflow-v0.24.0) - 2026-05-29 + +### Other + +- Remove B: Builder from Batcher::seal ([#745](https://github.com/TimelyDataflow/differential-dataflow/pull/745)) +- Separate chunker from batcher ([#625](https://github.com/TimelyDataflow/differential-dataflow/pull/625)) +- Columnar spilling merge batcher ([#741](https://github.com/TimelyDataflow/differential-dataflow/pull/741)) +- Remove `InternalMerge*` types and traits. ([#740](https://github.com/TimelyDataflow/differential-dataflow/pull/740)) +- Columnar serialization ([#733](https://github.com/TimelyDataflow/differential-dataflow/pull/733)) +- Spine benchmark columnar performance improvements ([#732](https://github.com/TimelyDataflow/differential-dataflow/pull/732)) +- :populate_key` ([#725](https://github.com/TimelyDataflow/differential-dataflow/pull/725)) +- SCC benchmarking improvements ([#731](https://github.com/TimelyDataflow/differential-dataflow/pull/731)) +- Add experimental `columnar` module to differential-dataflow ([#730](https://github.com/TimelyDataflow/differential-dataflow/pull/730)) +- Reduce moments of owned `Time` ([#727](https://github.com/TimelyDataflow/differential-dataflow/pull/727)) +- Replace Cursor generic argument with associated types ([#726](https://github.com/TimelyDataflow/differential-dataflow/pull/726)) +- Spring cleaning ([#724](https://github.com/TimelyDataflow/differential-dataflow/pull/724)) + ## [0.23.0](https://github.com/TimelyDataflow/differential-dataflow/compare/differential-dataflow-v0.22.0...differential-dataflow-v0.23.0) - 2026-04-13 ### Changed diff --git a/differential-dataflow/Cargo.toml b/differential-dataflow/Cargo.toml index 0e6b74bfb..d85e7a3e7 100644 --- a/differential-dataflow/Cargo.toml +++ b/differential-dataflow/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "differential-dataflow" -version = "0.23.0" +version = "0.24.0" authors = ["Frank McSherry "] description = "An incremental data-parallel dataflow platform" diff --git a/dogsdogsdogs/CHANGELOG.md b/dogsdogsdogs/CHANGELOG.md index a054d9320..8cfebc48a 100644 --- a/dogsdogsdogs/CHANGELOG.md +++ b/dogsdogsdogs/CHANGELOG.md @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.24.0](https://github.com/TimelyDataflow/differential-dataflow/compare/differential-dogs3-v0.23.0...differential-dogs3-v0.24.0) - 2026-05-29 + +### Other + +- Spring cleaning ([#724](https://github.com/TimelyDataflow/differential-dataflow/pull/724)) + ## [0.23.0](https://github.com/TimelyDataflow/differential-dataflow/compare/differential-dogs3-v0.22.0...differential-dogs3-v0.23.0) - 2026-04-13 ### Changed diff --git a/dogsdogsdogs/Cargo.toml b/dogsdogsdogs/Cargo.toml index 5355d1f82..160dee1cd 100644 --- a/dogsdogsdogs/Cargo.toml +++ b/dogsdogsdogs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "differential-dogs3" -version = "0.23.0" +version = "0.24.0" authors = ["Frank McSherry "] license = "MIT" edition.workspace = true From faf0b811b126b2e04cb59f3455b83c435382c93e Mon Sep 17 00:00:00 2001 From: Frank McSherry Date: Fri, 29 May 2026 16:58:14 -0400 Subject: [PATCH 2/2] Beautify v0.24.0 CHANGELOG entries Rewrite the release-plz autogenerated 0.24.0 sections in the style of 0.23.0: split into Added / Changed / Removed / Other, expand each bullet into a prose explanation of what actually changed, fix the garbled #725 entry (`:populate_key`), and add the timely 0.30 / columnar 0.13 bump (bf9b36f) that release-plz missed because it landed outside a PR. Adds a closing summary of the breaking changes downstream consumers need to migrate. For dogsdogsdogs, surface what Spring cleaning actually changed in its examples (`usize::max_value()` -> `usize::MAX`) and note the timely 0.30 tracking. Co-Authored-By: Claude Opus 4.7 (1M context) --- differential-dataflow/CHANGELOG.md | 40 +++++++++++++++++++++--------- dogsdogsdogs/CHANGELOG.md | 5 ++-- 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/differential-dataflow/CHANGELOG.md b/differential-dataflow/CHANGELOG.md index 310119a75..08eba8ebe 100644 --- a/differential-dataflow/CHANGELOG.md +++ b/differential-dataflow/CHANGELOG.md @@ -9,20 +9,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [0.24.0](https://github.com/TimelyDataflow/differential-dataflow/compare/differential-dataflow-v0.23.0...differential-dataflow-v0.24.0) - 2026-05-29 +### Added + +- New experimental `columnar` module exposing public (but explicitly unstable) columnar arrangement and container infrastructure: `UpdatesTyped`, `RecordedUpdates`, `ValPact`, `ValBatcher`, `ValBuilder`, `ValChunker`, `ValSpine`, plus dynamic-scope helpers (`DynTime`, `leave_dynamic`). See the module docs for the current rough edges. ([#730](https://github.com/TimelyDataflow/differential-dataflow/pull/730)) +- Columnar serialization for trace transport: `UpdatesView` reader, `UpdatesTyped` writer, and a `Stash`-backed `RecordedUpdates` with a `ContainerBytes` impl. ([#733](https://github.com/TimelyDataflow/differential-dataflow/pull/733)) +- Columnar spilling merge batcher with pluggable `Spill` / `Fetch` / `SpillPolicy` traits parameterized over a chunk type. The `columnar_spill` example demonstrates a disk-backed, lz4-compressed spill path. ([#741](https://github.com/TimelyDataflow/differential-dataflow/pull/741)) +- `Cursor::populate_key` for key-positioned bulk load into an `EditList`, with an optional time `meet` to advance times before consolidation. Used by `reduce` and `ValueHistory`. ([#725](https://github.com/TimelyDataflow/differential-dataflow/pull/725)) + +### Changed + +- Update to timely 0.30 and columnar 0.13. (bf9b36f) +- Separate the chunker from the batcher. The `Batcher` trait drops its `Input` associated type and `push_container` method and now accepts pre-chunked input via `PushInto`. `arrange_core` gains `C` (input container) and `Chu: ContainerBuilder` (chunker) type parameters so chunking lives in the operator. The high-level `.arrange::()` callsite is unchanged; cross-container callers (columnar, interactive, spill) drop to `arrange_core` directly. ([#625](https://github.com/TimelyDataflow/differential-dataflow/pull/625)) +- `Batcher::seal` no longer takes a `B: Builder` type parameter; the builder is supplied at the call site. ([#745](https://github.com/TimelyDataflow/differential-dataflow/pull/745)) +- Replace the `Cursor` generic argument with associated types (`Key`, `Val`, `Time`, `Diff`), simplifying trait bounds throughout. ([#726](https://github.com/TimelyDataflow/differential-dataflow/pull/726)) +- Reduce moments of owned `Time` in `join`; improve use of `join_assign`; add the missing `PointStamp::meet_assign`. ([#727](https://github.com/TimelyDataflow/differential-dataflow/pull/727)) +- Restore the pre-#725 division of labor in `EditList::load`: the join inner loop again walks vals inline from the cursor's current position rather than re-seeking on every key, recovering a ~3s regression in the spines benchmark. `Cursor::populate_key` retains the seek for callers (`reduce`, `ValueHistory`) that need it. ([#732](https://github.com/TimelyDataflow/differential-dataflow/pull/732)) + +### Removed + +- `InternalMerge*` types and traits; `VecMerger` moves to its own independent module. ([#740](https://github.com/TimelyDataflow/differential-dataflow/pull/740)) +- Spring cleaning: remove `ShutdownDeadmans`, `TraceRc` and `trace/wrappers/rc.rs`, `chainless_batcher.rs`, `RHH`, the Huffman container, the `Clone` constraint on traces, redundant trait bounds, dead and commented code, and needless borrows; convert `::max_value()` to `::MAX`. ([#724](https://github.com/TimelyDataflow/differential-dataflow/pull/724)) + ### Other -- Remove B: Builder from Batcher::seal ([#745](https://github.com/TimelyDataflow/differential-dataflow/pull/745)) -- Separate chunker from batcher ([#625](https://github.com/TimelyDataflow/differential-dataflow/pull/625)) -- Columnar spilling merge batcher ([#741](https://github.com/TimelyDataflow/differential-dataflow/pull/741)) -- Remove `InternalMerge*` types and traits. ([#740](https://github.com/TimelyDataflow/differential-dataflow/pull/740)) -- Columnar serialization ([#733](https://github.com/TimelyDataflow/differential-dataflow/pull/733)) -- Spine benchmark columnar performance improvements ([#732](https://github.com/TimelyDataflow/differential-dataflow/pull/732)) -- :populate_key` ([#725](https://github.com/TimelyDataflow/differential-dataflow/pull/725)) -- SCC benchmarking improvements ([#731](https://github.com/TimelyDataflow/differential-dataflow/pull/731)) -- Add experimental `columnar` module to differential-dataflow ([#730](https://github.com/TimelyDataflow/differential-dataflow/pull/730)) -- Reduce moments of owned `Time` ([#727](https://github.com/TimelyDataflow/differential-dataflow/pull/727)) -- Replace Cursor generic argument with associated types ([#726](https://github.com/TimelyDataflow/differential-dataflow/pull/726)) -- Spring cleaning ([#724](https://github.com/TimelyDataflow/differential-dataflow/pull/724)) +- Spine benchmark example improvements. `examples/spines.rs` is restored as a `key` / `val` / `col` arrangement bake-off using the new `columnar` module via an in-dataflow `ToRecorded` repacker. ([#732](https://github.com/TimelyDataflow/differential-dataflow/pull/732)) +- New `examples/scc.rs` for comparative benchmarking; use `meet_assign` in `ValueHistory::replay`. ([#731](https://github.com/TimelyDataflow/differential-dataflow/pull/731)) + +This is a heavily breaking release driven by tracking timely 0.30 and introducing the experimental `columnar` module. +The `Batcher` trait no longer knows about input containers; chunking moves into `arrange_core`, which gains two new type parameters. Direct callers of `arrange_core` need to supply a chunker; users of `.arrange::()` are unaffected. +The `Cursor` trait swaps its generic argument for associated types — downstream cursor implementations need to migrate from `impl Cursor for ...` to associated-type form. +`TraceRc`, `RHH`, `HuffmanContainer`, and the `InternalMerge*` family are gone; consumers should move to the columnar-backed equivalents (when applicable) or hold their own `Rc>`. ## [0.23.0](https://github.com/TimelyDataflow/differential-dataflow/compare/differential-dataflow-v0.22.0...differential-dataflow-v0.23.0) - 2026-04-13 diff --git a/dogsdogsdogs/CHANGELOG.md b/dogsdogsdogs/CHANGELOG.md index 8cfebc48a..c818f46d9 100644 --- a/dogsdogsdogs/CHANGELOG.md +++ b/dogsdogsdogs/CHANGELOG.md @@ -9,9 +9,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [0.24.0](https://github.com/TimelyDataflow/differential-dataflow/compare/differential-dogs3-v0.23.0...differential-dogs3-v0.24.0) - 2026-05-29 -### Other +### Changed -- Spring cleaning ([#724](https://github.com/TimelyDataflow/differential-dataflow/pull/724)) +- Track differential-dataflow 0.24 and timely 0.30 / columnar 0.13. +- Examples updated to use `usize::MAX` rather than the deprecated `usize::max_value()` ([#724](https://github.com/TimelyDataflow/differential-dataflow/pull/724)). ## [0.23.0](https://github.com/TimelyDataflow/differential-dataflow/compare/differential-dogs3-v0.22.0...differential-dogs3-v0.23.0) - 2026-04-13