From 4878220725e517efab7337f92cc82fcc72a417bf Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 28 Aug 2025 19:36:42 +0000 Subject: [PATCH 1/2] chore: release v0.24.0 --- CHANGELOG.md | 10 ++++++++++ bytes/Cargo.toml | 2 +- communication/Cargo.toml | 8 ++++---- container/Cargo.toml | 2 +- logging/Cargo.toml | 4 ++-- timely/Cargo.toml | 10 +++++----- 6 files changed, 23 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 063dfcbc9..bc5434594 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.24.0](https://github.com/TimelyDataflow/timely-dataflow/compare/timely-v0.23.0...timely-v0.24.0) - 2025-08-28 + +### Other + +- Update for rebase +- Move S generic to into_stream method +- Introduce builder for flatmap operators +- Merge remote-tracking branch 'upstream/master' into container_rework +- Distributor trait ([#700](https://github.com/TimelyDataflow/timely-dataflow/pull/700)) + ## [0.23.0](https://github.com/TimelyDataflow/timely-dataflow/compare/timely-v0.22.0...timely-v0.23.0) - 2025-08-28 ### Other diff --git a/bytes/Cargo.toml b/bytes/Cargo.toml index aec5c77dc..17f0b8254 100644 --- a/bytes/Cargo.toml +++ b/bytes/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "timely_bytes" -version = "0.23.0" +version = "0.24.0" authors = ["Frank McSherry "] edition = "2018" diff --git a/communication/Cargo.toml b/communication/Cargo.toml index 044b02e61..fcd1fcaf5 100644 --- a/communication/Cargo.toml +++ b/communication/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "timely_communication" -version = "0.23.0" +version = "0.24.0" authors = ["Frank McSherry "] description = "Communication layer for timely dataflow" edition.workspace = true @@ -24,9 +24,9 @@ columnar = { workspace = true } getopts = { version = "0.2.21", optional = true } byteorder = "1.5" serde = { version = "1.0", features = ["derive"] } -timely_bytes = { path = "../bytes", version = "0.23" } -timely_container = { path = "../container", version = "0.23.0" } -timely_logging = { path = "../logging", version = "0.23" } +timely_bytes = { path = "../bytes", version = "0.24" } +timely_container = { path = "../container", version = "0.24.0" } +timely_logging = { path = "../logging", version = "0.24" } # Lgalloc only supports linux and macos, don't depend on any other OS. [target.'cfg(any(target_os = "linux", target_os = "macos"))'.dev-dependencies] diff --git a/container/Cargo.toml b/container/Cargo.toml index 6c0a86940..1400f71cf 100644 --- a/container/Cargo.toml +++ b/container/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "timely_container" -version = "0.23.0" +version = "0.24.0" description = "Container abstractions for Timely" license = "MIT" edition.workspace = true diff --git a/logging/Cargo.toml b/logging/Cargo.toml index 26191bdde..cc8129100 100644 --- a/logging/Cargo.toml +++ b/logging/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "timely_logging" -version = "0.23.0" +version = "0.24.0" authors = ["Frank McSherry "] description = "Common timely logging infrastructure" edition.workspace = true @@ -15,4 +15,4 @@ license = "MIT" workspace = true [dependencies] -timely_container = { version = "0.23.0", path = "../container" } +timely_container = { version = "0.24.0", path = "../container" } diff --git a/timely/Cargo.toml b/timely/Cargo.toml index dd1023fbc..bf3faa99f 100644 --- a/timely/Cargo.toml +++ b/timely/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "timely" -version = "0.23.0" +version = "0.24.0" authors = ["Frank McSherry "] readme = "../README.md" edition.workspace = true @@ -29,10 +29,10 @@ bincode = { version = "1.0" } byteorder = "1.5" itertools = "0.14.0" serde = { version = "1.0", features = ["derive"] } -timely_bytes = { path = "../bytes", version = "0.23" } -timely_logging = { path = "../logging", version = "0.23" } -timely_communication = { path = "../communication", version = "0.23", default-features = false } -timely_container = { path = "../container", version = "0.23" } +timely_bytes = { path = "../bytes", version = "0.24" } +timely_logging = { path = "../logging", version = "0.24" } +timely_communication = { path = "../communication", version = "0.24", default-features = false } +timely_container = { path = "../container", version = "0.24" } smallvec = { version = "1.13.2", features = ["serde", "const_generics"] } [dev-dependencies] From 29ad18c13b2aff1ef3b919096fd906c6a2ccb3e6 Mon Sep 17 00:00:00 2001 From: Moritz Hoffmann Date: Mon, 15 Sep 2025 20:31:52 +0200 Subject: [PATCH 2/2] Update changelog Signed-off-by: Moritz Hoffmann --- CHANGELOG.md | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bc5434594..2b54b9f0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,12 +9,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [0.24.0](https://github.com/TimelyDataflow/timely-dataflow/compare/timely-v0.23.0...timely-v0.24.0) - 2025-08-28 +This version of Timely has some exciting new features. + +* The `Distributor` trait offers a generalization of the `Exchange` type. It allows users to define custom distribution + strategies for routing data across workers. The `Exchange` type requires a row-by-row distribution and uses + container builders to form batches of data, which limits its flexibility. The `Distributor` trait, on the other hand, + allows users to define their own behavior for distributing data, and does not need to work row-by-row. + It only needs to uphold progress tracking requirements, which are that the amount of records on the input + matches those on the output. +* We split the `Container` trait into multiple traits. The `Accountable` trait indicates the number of records + in a container for progress tracking and is the only required trait for a container. + The `iter` and `drain` functions are part of the new `IterContainer` and `DrainContainer` traits. + We do not require all containers to provide all of these traits, and it is mostly high-level operators that require + a container to implement them. We alos removed the `clear` function from containers as it + is not well-defined in all cases, for example for immutable data. +* The `Map` trait offers a `flat_map_builder` function to accumulate flatmap logic. + ### Other -- Update for rebase -- Move S generic to into_stream method -- Introduce builder for flatmap operators -- Merge remote-tracking branch 'upstream/master' into container_rework +- Introduce builder for flatmap operators ([#704](https://github.com/TimelyDataflow/timely-dataflow/pull/704)) +- Container rework ([#697](https://github.com/TimelyDataflow/timely-dataflow/pull/697)) - Distributor trait ([#700](https://github.com/TimelyDataflow/timely-dataflow/pull/700)) ## [0.23.0](https://github.com/TimelyDataflow/timely-dataflow/compare/timely-v0.22.0...timely-v0.23.0) - 2025-08-28