From bb2f7c2ea8e36be501a326a6e9e77d7711989c61 Mon Sep 17 00:00:00 2001 From: Frank McSherry Date: Thu, 5 Mar 2026 14:04:47 -0500 Subject: [PATCH 1/2] Update release notes for 0.20 (#680) --- differential-dataflow/CHANGELOG.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/differential-dataflow/CHANGELOG.md b/differential-dataflow/CHANGELOG.md index f3001691f..43e5916f0 100644 --- a/differential-dataflow/CHANGELOG.md +++ b/differential-dataflow/CHANGELOG.md @@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +Substantial superficial but breaking changes due to the adoption of timely `0.27`. +Primarily that the `Stream` contained by `Collection` is not `Clone` by default, and is now conventionally passed owned rather than by reference. +The necessary fix-ups are to convert to owned collections, and where needed to clone the collection, which requires that its container implement `Clone`. + +Related, the `Variable` types is broken into a pair `(Variable, Collection)`, where the latter is the usable collection the type would previously `Deref` to, and the former is the connection point to bind the variable's definition. +The `SemigroupVariable` was removed, as it is now redundant with `Variable::new()`, which does not require `Negate` (the main difference between the two variables). + +Several steps were taken to "deprioritize" collections with vector containers. +Many traits defined only on vector collections were removed in favor of inherent methods. +Traits and methods that produce vector collections were (and continue to be) reconsidered to avoid routing users into that opinion. +All prior functionality is available, though in some cases it requires explicit indication of preferred container types (internally, only in "demo" cases). + +The `probe` operator was updated to track timely changes that have it return a pair of handle and collection, rather than only a handle. +This aligns more with the "owned collection" idiom. + + ## [0.19.1](https://github.com/TimelyDataflow/differential-dataflow/compare/differential-dataflow-v0.19.0...differential-dataflow-v0.19.1) - 2026-02-06 ### Other From 88242a4f695330e561d2a8f7e1ac217c9ecf2347 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 5 Mar 2026 14:31:48 -0500 Subject: [PATCH 2/2] chore: release v0.20.0 (#665) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- Cargo.toml | 2 +- differential-dataflow/CHANGELOG.md | 16 ++++++++++++++++ differential-dataflow/Cargo.toml | 2 +- dogsdogsdogs/CHANGELOG.md | 12 ++++++++++++ dogsdogsdogs/Cargo.toml | 2 +- 5 files changed, 31 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 346718cc8..e0b811ad9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,7 @@ edition = "2021" rust-version = "1.86" [workspace.dependencies] -differential-dataflow = { path = "differential-dataflow", default-features = false, version = "0.19.1" } +differential-dataflow = { path = "differential-dataflow", default-features = false, version = "0.20.0" } timely = { version = "0.27", default-features = false } columnar = { version = "0.11", default-features = false } #timely = { git = "https://github.com/TimelyDataflow/timely-dataflow" } diff --git a/differential-dataflow/CHANGELOG.md b/differential-dataflow/CHANGELOG.md index 43e5916f0..d1258b899 100644 --- a/differential-dataflow/CHANGELOG.md +++ b/differential-dataflow/CHANGELOG.md @@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.20.0](https://github.com/TimelyDataflow/differential-dataflow/compare/differential-dataflow-v0.19.1...differential-dataflow-v0.20.0) - 2026-03-05 + +### Other + +- Update release notes for 0.20 ([#680](https://github.com/TimelyDataflow/differential-dataflow/pull/680)) +- Pull in probe changes ([#677](https://github.com/TimelyDataflow/differential-dataflow/pull/677)) +- Break `Variable` into `(Variable, Collection)` ([#674](https://github.com/TimelyDataflow/differential-dataflow/pull/674)) +- Update github workflows ([#673](https://github.com/TimelyDataflow/differential-dataflow/pull/673)) +- Set MSRV to 1.86 ([#672](https://github.com/TimelyDataflow/differential-dataflow/pull/672)) +- Differential corrected atop candidate timely 0.27 ([#671](https://github.com/TimelyDataflow/differential-dataflow/pull/671)) +- Test mdbook like a crate ([#669](https://github.com/TimelyDataflow/differential-dataflow/pull/669)) +- Migrate Join logic away from traits ([#668](https://github.com/TimelyDataflow/differential-dataflow/pull/668)) +- More `VecCollection` demotion ([#667](https://github.com/TimelyDataflow/differential-dataflow/pull/667)) +- Implement utility traits for Rc collections ([#666](https://github.com/TimelyDataflow/differential-dataflow/pull/666)) +- Deprioritize the `Vec` container ([#664](https://github.com/TimelyDataflow/differential-dataflow/pull/664)) + Substantial superficial but breaking changes due to the adoption of timely `0.27`. Primarily that the `Stream` contained by `Collection` is not `Clone` by default, and is now conventionally passed owned rather than by reference. The necessary fix-ups are to convert to owned collections, and where needed to clone the collection, which requires that its container implement `Clone`. diff --git a/differential-dataflow/Cargo.toml b/differential-dataflow/Cargo.toml index 3f9f32aa2..e961eb3ea 100644 --- a/differential-dataflow/Cargo.toml +++ b/differential-dataflow/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "differential-dataflow" -version = "0.19.1" +version = "0.20.0" authors = ["Frank McSherry "] description = "An incremental data-parallel dataflow platform" diff --git a/dogsdogsdogs/CHANGELOG.md b/dogsdogsdogs/CHANGELOG.md index 3f542b9c8..027c15db6 100644 --- a/dogsdogsdogs/CHANGELOG.md +++ b/dogsdogsdogs/CHANGELOG.md @@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.20.0](https://github.com/TimelyDataflow/differential-dataflow/compare/differential-dogs3-v0.19.1...differential-dogs3-v0.20.0) - 2026-03-05 + +### Other + +- Update github workflows ([#673](https://github.com/TimelyDataflow/differential-dataflow/pull/673)) +- Set MSRV to 1.86 ([#672](https://github.com/TimelyDataflow/differential-dataflow/pull/672)) +- Differential corrected atop candidate timely 0.27 ([#671](https://github.com/TimelyDataflow/differential-dataflow/pull/671)) +- Test mdbook like a crate ([#669](https://github.com/TimelyDataflow/differential-dataflow/pull/669)) +- Migrate Join logic away from traits ([#668](https://github.com/TimelyDataflow/differential-dataflow/pull/668)) +- More `VecCollection` demotion ([#667](https://github.com/TimelyDataflow/differential-dataflow/pull/667)) +- Deprioritize the `Vec` container ([#664](https://github.com/TimelyDataflow/differential-dataflow/pull/664)) + ## [0.19.1](https://github.com/TimelyDataflow/differential-dataflow/compare/differential-dogs3-v0.19.0...differential-dogs3-v0.19.1) - 2026-02-06 ### Other diff --git a/dogsdogsdogs/Cargo.toml b/dogsdogsdogs/Cargo.toml index 52b9a2f65..2db38d3e1 100644 --- a/dogsdogsdogs/Cargo.toml +++ b/dogsdogsdogs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "differential-dogs3" -version = "0.19.1" +version = "0.20.0" authors = ["Frank McSherry "] license = "MIT" edition.workspace = true