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
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,31 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.31.0](https://github.com/TimelyDataflow/timely-dataflow/compare/timely-v0.30.0...timely-v0.31.0) - 2026-07-14

This release continues excising monomorphization sprawl from the progress subsystem: `PortConnectivity`'s map becomes a sorted `Vec`, removing the last `BTreeMap` and `HashMap` from progress tracking (9.1% fewer LLVM lines on the `bfs` example), alongside clone and allocation trimming on hot paths.

### Breaking changes

- **`PortConnectivity` splits into a builder and a frozen reader**, and `Operate::initialize` now returns the frozen form. This type is largely internal; the surface change is below. ([#802](https://github.com/TimelyDataflow/timely-dataflow/pull/802), [#804](https://github.com/TimelyDataflow/timely-dataflow/pull/804))

| 0.30 | 0.31 |
| --- | --- |
| `PortConnectivity::insert(i, e) -> bool` | `PortConnectivityBuilder::insert(i, e)` (no return) |
| `PortConnectivity::insert_ref(i, &e) -> bool` | removed; build an `Antichain` and use `add_port` |
| `PortConnectivity::add_port` (panics on duplicate port) | `PortConnectivityBuilder::add_port` (merges duplicate) |
| `tree: BTreeMap<usize, Antichain>` field | gone; construct via `PortConnectivityBuilder::freeze()` |
| `impl FromIterator for PortConnectivity` | `impl FromIterator for PortConnectivityBuilder` |
| `get`, `iter_ports` | unchanged, on the frozen `PortConnectivity` |
| — | `impl IntoIterator for PortConnectivity` (new, consuming) |

### Other

- Removed all `BTreeMap` and `HashMap` from the progress subsystem: `is_acyclic` uses dense per-location in-degree counts, and `summarize_outputs` iterates semi-naively over binary-sized sorted runs. `bfs` example: 254,560 → 231,310 LLVM lines. ([#802](https://github.com/TimelyDataflow/timely-dataflow/pull/802))
- Move rather than clone summaries in `Tracker::allocate_from` and `Subgraph::initialize`. ([#804](https://github.com/TimelyDataflow/timely-dataflow/pull/804))
- Removed several clones on progress hot paths: `Capability::drop`, `FrontierNotificator` delivery, capture, `Progcaster::recv`, `builder_raw`. ([#805](https://github.com/TimelyDataflow/timely-dataflow/pull/805))
- `builder_rc` trims the frontier/consumed/internal/produced bookkeeping vector capacities at build. ([#806](https://github.com/TimelyDataflow/timely-dataflow/pull/806))

## [0.30.0](https://github.com/TimelyDataflow/timely-dataflow/compare/timely-v0.29.0...timely-v0.30.0) - 2026-05-28

This release adds opt-in spill-to-disk support for the zero-copy network allocator, makes `Bytes` `Sync` (a soundness fix), and continues trimming compile-time monomorphization sprawl.
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.30.0"
version = "0.31.0"
authors = ["Frank McSherry <fmcsherry@me.com>"]
edition.workspace = true
rust-version.workspace = true
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.30.0"
version = "0.31.0"
authors = ["Frank McSherry <fmcsherry@me.com>"]
description = "Communication layer for timely dataflow"
edition.workspace = true
Expand All @@ -25,9 +25,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.30" }
timely_container = { path = "../container", version = "0.30.0" }
timely_logging = { path = "../logging", version = "0.30" }
timely_bytes = { path = "../bytes", version = "0.31" }
timely_container = { path = "../container", version = "0.31.0" }
timely_logging = { path = "../logging", version = "0.31" }

[dev-dependencies]
tempfile = "3"
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.30.0"
version = "0.31.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.30.0"
version = "0.31.0"
authors = ["Frank McSherry <fmcsherry@me.com>"]
description = "Common timely logging infrastructure"
edition.workspace = true
Expand All @@ -16,4 +16,4 @@ license = "MIT"
workspace = true

[dependencies]
timely_container = { version = "0.30.0", path = "../container" }
timely_container = { version = "0.31.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.30.0"
version = "0.31.0"
authors = ["Frank McSherry <fmcsherry@me.com>"]
readme = "../README.md"
edition.workspace = true
Expand Down Expand Up @@ -30,10 +30,10 @@ bincode = { version = "1.3" }
byteorder = "1.5"
itertools = "0.14.0"
serde = { version = "1.0", features = ["derive"] }
timely_bytes = { path = "../bytes", version = "0.30" }
timely_logging = { path = "../logging", version = "0.30" }
timely_communication = { path = "../communication", version = "0.30", default-features = false }
timely_container = { path = "../container", version = "0.30" }
timely_bytes = { path = "../bytes", version = "0.31" }
timely_logging = { path = "../logging", version = "0.31" }
timely_communication = { path = "../communication", version = "0.31", default-features = false }
timely_container = { path = "../container", version = "0.31" }
smallvec = { version = "1.15.1", features = ["serde", "const_generics"] }

[dev-dependencies]
Expand Down
Loading