Skip to content

Commit 32c8048

Browse files
chore: release v0.25.0 (#720)
* chore: release v0.25.0 * Refactor timely operator architecture and session handling The timely operator architecture has been refactored to improve session management and container handling. New input handles with a `for_each_time` method have been introduced to facilitate grouping by time. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Frank McSherry <[email protected]>
1 parent a81667f commit 32c8048

File tree

6 files changed

+40
-13
lines changed

6 files changed

+40
-13
lines changed

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.25.0](https://github.com/TimelyDataflow/timely-dataflow/compare/timely-v0.24.0...timely-v0.25.0) - 2025-10-23
11+
12+
The timely operator architecture has changed a bit, for the better but with footguns for migration.
13+
Timely operators used to fuse sessions opened with the same capabilities, allowing one to treat session creation as low cost.
14+
This behavior has been stopped, and the data sent into one session will be formed into one container.
15+
Sessions will supply and use their own container builder, and the recommended fix is to consolidate output you want to send by session.
16+
17+
The change comes because the embedded container builder is at odds with folks who want to bring their own containers.
18+
The refactoring de-embeds the container builder, surfacing it to "user code" but at the expense of being unable to chain across sessions.
19+
20+
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.
21+
This allows many operators to draw down these groups by time, perform the work and create one session to transmit the results.
22+
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.
23+
24+
### Other
25+
26+
- Remove constraints from container builders ([#712](https://github.com/TimelyDataflow/timely-dataflow/pull/712))
27+
- Update various dependencies ([#719](https://github.com/TimelyDataflow/timely-dataflow/pull/719))
28+
- Provide access for wrapped builder ([#717](https://github.com/TimelyDataflow/timely-dataflow/pull/717))
29+
- Pivot container builders above capability checking ([#715](https://github.com/TimelyDataflow/timely-dataflow/pull/715))
30+
- Add and use `InputSession` ([#716](https://github.com/TimelyDataflow/timely-dataflow/pull/716))
31+
- Remove Container argument from Counter ([#714](https://github.com/TimelyDataflow/timely-dataflow/pull/714))
32+
- Remove Hash from Timestamp ([#713](https://github.com/TimelyDataflow/timely-dataflow/pull/713))
33+
- Remove IterContainer ([#707](https://github.com/TimelyDataflow/timely-dataflow/pull/707))
34+
- Replace ExchangeCore with DistributePact ([#711](https://github.com/TimelyDataflow/timely-dataflow/pull/711))
35+
- Create pact for Distributors ([#709](https://github.com/TimelyDataflow/timely-dataflow/pull/709))
36+
1037
## [0.24.0](https://github.com/TimelyDataflow/timely-dataflow/compare/timely-v0.23.0...timely-v0.24.0) - 2025-08-28
1138

1239
This version of Timely has some exciting new features.

bytes/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "timely_bytes"
3-
version = "0.24.0"
3+
version = "0.25.0"
44
authors = ["Frank McSherry <[email protected]>"]
55
edition = "2018"
66

communication/Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "timely_communication"
3-
version = "0.24.0"
3+
version = "0.25.0"
44
authors = ["Frank McSherry <[email protected]>"]
55
description = "Communication layer for timely dataflow"
66
edition.workspace = true
@@ -24,9 +24,9 @@ columnar = { workspace = true }
2424
getopts = { version = "0.2.24", optional = true }
2525
byteorder = "1.5"
2626
serde = { version = "1.0", features = ["derive"] }
27-
timely_bytes = { path = "../bytes", version = "0.24" }
28-
timely_container = { path = "../container", version = "0.24.0" }
29-
timely_logging = { path = "../logging", version = "0.24" }
27+
timely_bytes = { path = "../bytes", version = "0.25" }
28+
timely_container = { path = "../container", version = "0.25.0" }
29+
timely_logging = { path = "../logging", version = "0.25" }
3030

3131
# Lgalloc only supports linux and macos, don't depend on any other OS.
3232
[target.'cfg(any(target_os = "linux", target_os = "macos"))'.dev-dependencies]

container/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "timely_container"
3-
version = "0.24.0"
3+
version = "0.25.0"
44
description = "Container abstractions for Timely"
55
license = "MIT"
66
edition.workspace = true

logging/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "timely_logging"
3-
version = "0.24.0"
3+
version = "0.25.0"
44
authors = ["Frank McSherry <[email protected]>"]
55
description = "Common timely logging infrastructure"
66
edition.workspace = true
@@ -15,4 +15,4 @@ license = "MIT"
1515
workspace = true
1616

1717
[dependencies]
18-
timely_container = { version = "0.24.0", path = "../container" }
18+
timely_container = { version = "0.25.0", path = "../container" }

timely/Cargo.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22

33
name = "timely"
4-
version = "0.24.0"
4+
version = "0.25.0"
55
authors = ["Frank McSherry <[email protected]>"]
66
readme = "../README.md"
77
edition.workspace = true
@@ -29,10 +29,10 @@ bincode = { version = "1.3" }
2929
byteorder = "1.5"
3030
itertools = "0.14.0"
3131
serde = { version = "1.0", features = ["derive"] }
32-
timely_bytes = { path = "../bytes", version = "0.24" }
33-
timely_logging = { path = "../logging", version = "0.24" }
34-
timely_communication = { path = "../communication", version = "0.24", default-features = false }
35-
timely_container = { path = "../container", version = "0.24" }
32+
timely_bytes = { path = "../bytes", version = "0.25" }
33+
timely_logging = { path = "../logging", version = "0.25" }
34+
timely_communication = { path = "../communication", version = "0.25", default-features = false }
35+
timely_container = { path = "../container", version = "0.25" }
3636
smallvec = { version = "1.15.1", features = ["serde", "const_generics"] }
3737

3838
[dev-dependencies]

0 commit comments

Comments
 (0)