Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.25.0](https://github.com/TimelyDataflow/timely-dataflow/compare/timely-v0.24.0...timely-v0.25.0) - 2025-10-23

The timely operator architecture has changed a bit, for the better but with footguns for migration.
Timely operators used to fuse sessions opened with the same capabilities, allowing one to treat session creation as low cost.
This behavior has been stopped, and the data sent into one session will be formed into one container.
Sessions will supply and use their own container builder, and the recommended fix is to consolidate output you want to send by session.

The change comes because the embedded container builder is at odds with folks who want to bring their own containers.
The refactoring de-embeds the container builder, surfacing it to "user code" but at the expense of being unable to chain across sessions.

To make it easier to bundle work by sessions, input handles provide a new `for_each_time` method that provide input collections grouped by time.
This allows many operators to draw down these groups by time, perform the work and create one session to transmit the results.
This should be strictly better than not doing it, and relying on timely to fuse sessions, as it ensures all work that can be fused is fused.

### Other

- Remove constraints from container builders ([#712](https://github.com/TimelyDataflow/timely-dataflow/pull/712))
- Update various dependencies ([#719](https://github.com/TimelyDataflow/timely-dataflow/pull/719))
- Provide access for wrapped builder ([#717](https://github.com/TimelyDataflow/timely-dataflow/pull/717))
- Pivot container builders above capability checking ([#715](https://github.com/TimelyDataflow/timely-dataflow/pull/715))
- Add and use `InputSession` ([#716](https://github.com/TimelyDataflow/timely-dataflow/pull/716))
- Remove Container argument from Counter ([#714](https://github.com/TimelyDataflow/timely-dataflow/pull/714))
- Remove Hash from Timestamp ([#713](https://github.com/TimelyDataflow/timely-dataflow/pull/713))
- Remove IterContainer ([#707](https://github.com/TimelyDataflow/timely-dataflow/pull/707))
- Replace ExchangeCore with DistributePact ([#711](https://github.com/TimelyDataflow/timely-dataflow/pull/711))
- Create pact for Distributors ([#709](https://github.com/TimelyDataflow/timely-dataflow/pull/709))

## [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.
Expand Down
2 changes: 1 addition & 1 deletion bytes/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "timely_bytes"
version = "0.24.0"
version = "0.25.0"
authors = ["Frank McSherry <[email protected]>"]
edition = "2018"

Expand Down
8 changes: 4 additions & 4 deletions communication/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "timely_communication"
version = "0.24.0"
version = "0.25.0"
authors = ["Frank McSherry <[email protected]>"]
description = "Communication layer for timely dataflow"
edition.workspace = true
Expand All @@ -24,9 +24,9 @@ columnar = { workspace = true }
getopts = { version = "0.2.24", optional = true }
byteorder = "1.5"
serde = { version = "1.0", features = ["derive"] }
timely_bytes = { path = "../bytes", version = "0.24" }
timely_container = { path = "../container", version = "0.24.0" }
timely_logging = { path = "../logging", version = "0.24" }
timely_bytes = { path = "../bytes", version = "0.25" }
timely_container = { path = "../container", version = "0.25.0" }
timely_logging = { path = "../logging", version = "0.25" }

# Lgalloc only supports linux and macos, don't depend on any other OS.
[target.'cfg(any(target_os = "linux", target_os = "macos"))'.dev-dependencies]
Expand Down
2 changes: 1 addition & 1 deletion container/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "timely_container"
version = "0.24.0"
version = "0.25.0"
description = "Container abstractions for Timely"
license = "MIT"
edition.workspace = true
Expand Down
4 changes: 2 additions & 2 deletions logging/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "timely_logging"
version = "0.24.0"
version = "0.25.0"
authors = ["Frank McSherry <[email protected]>"]
description = "Common timely logging infrastructure"
edition.workspace = true
Expand All @@ -15,4 +15,4 @@ license = "MIT"
workspace = true

[dependencies]
timely_container = { version = "0.24.0", path = "../container" }
timely_container = { version = "0.25.0", path = "../container" }
10 changes: 5 additions & 5 deletions timely/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]

name = "timely"
version = "0.24.0"
version = "0.25.0"
authors = ["Frank McSherry <[email protected]>"]
readme = "../README.md"
edition.workspace = true
Expand Down Expand Up @@ -29,10 +29,10 @@ bincode = { version = "1.3" }
byteorder = "1.5"
itertools = "0.14.0"
serde = { version = "1.0", features = ["derive"] }
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" }
timely_bytes = { path = "../bytes", version = "0.25" }
timely_logging = { path = "../logging", version = "0.25" }
timely_communication = { path = "../communication", version = "0.25", default-features = false }
timely_container = { path = "../container", version = "0.25" }
smallvec = { version = "1.15.1", features = ["serde", "const_generics"] }

[dev-dependencies]
Expand Down
Loading