diff --git a/CHANGELOG.md b/CHANGELOG.md index 063dfcbc9..2b54b9f0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,30 @@ 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 + +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 + +- 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 ### 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]