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
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ edition = "2021"
rust-version = "1.88"

[workspace.dependencies]
differential-dataflow = { path = "differential-dataflow", default-features = false, version = "0.25.1" }
differential-dataflow = { path = "differential-dataflow", default-features = false, version = "0.26.0" }
#timely = { version = "0.31", default-features = false }
columnar = { version = "0.13.3", default-features = false }
timely = { version = "0.32", default-features = false }
Expand Down
62 changes: 62 additions & 0 deletions differential-dataflow/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,68 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.26.0](https://github.com/TimelyDataflow/differential-dataflow/compare/differential-dataflow-v0.25.1...differential-dataflow-v0.26.0) - 2026-11-05

This release targets timely 0.32 and reshapes several public traits.
The experimental surface from 0.25.0 changes shape again, as expected.

### Changed

- Depends on timely 0.32 from crates.io, replacing the git revision.
- `Arrange` is removed, and its methods are inherent methods instead. ([#843](https://github.com/TimelyDataflow/differential-dataflow/pull/843))
- `Batcher<C0>` is now a subtrait of `Extract`, and `Builder` requires `Default` in place of `Sized`. ([#844](https://github.com/TimelyDataflow/differential-dataflow/pull/844), [#846](https://github.com/TimelyDataflow/differential-dataflow/pull/846))
- `PointStamp` takes its inline capacity as a const parameter `N`, defaulting to 1. ([#1051](https://github.com/TimelyDataflow/differential-dataflow/pull/1051))
- `JoinTactic` takes the time, both batch types, and the output container as parameters, in the order `<T, B0, B1, C>`.
- The blanket `Hashable` implementation uses fixed-seed foldhash. Hash-derived values such as `identifiers()` change once. ([#1066](https://github.com/TimelyDataflow/differential-dataflow/pull/1066))

### Other

- Target timely 0.32 from crates.io, and fix rustdoc link errors ([#1075](https://github.com/TimelyDataflow/differential-dataflow/pull/1075))
- `Batcher` as subtrait ([#1074](https://github.com/TimelyDataflow/differential-dataflow/pull/1074))
- fixed-seed foldhash in place of byte-at-a-time FNV ([#1066](https://github.com/TimelyDataflow/differential-dataflow/pull/1066))
- PointStamp's lattice operations in one pass over the coordinates ([#1053](https://github.com/TimelyDataflow/differential-dataflow/pull/1053))
- PointStamp takes its inline capacity as a const parameter ([#1051](https://github.com/TimelyDataflow/differential-dataflow/pull/1051))
- build fewer join timestamps from scratch ([#1048](https://github.com/TimelyDataflow/differential-dataflow/pull/1048))
- Half joins read imported arrangements as of a frontier ([#1025](https://github.com/TimelyDataflow/differential-dataflow/pull/1025))
- a proxy half-join tactic over a backend, built on int_proxy's public surface ([#1022](https://github.com/TimelyDataflow/differential-dataflow/pull/1022))
- BackendFrontier reads a proxy backend's inputs as of a frontier ([#1023](https://github.com/TimelyDataflow/differential-dataflow/pull/1023))
- treat a zero count as absent ([#993](https://github.com/TimelyDataflow/differential-dataflow/pull/993))
- read the source trace at its own batch bounds ([#991](https://github.com/TimelyDataflow/differential-dataflow/pull/991))
- VecReduceBackend records seeds as it draws novel records ([#1016](https://github.com/TimelyDataflow/differential-dataflow/pull/1016))
- reuse ordered reduction proxies and correction storage ([#942](https://github.com/TimelyDataflow/differential-dataflow/pull/942))
- Balance spine batch events; document the stamp invariant ([#940](https://github.com/TimelyDataflow/differential-dataflow/pull/940))
- Extract MergeLadder from MergeBatcher; split Extractor from Merger ([#938](https://github.com/TimelyDataflow/differential-dataflow/pull/938))
- Chunk pack: combine a carried run once, when emitted ([#902](https://github.com/TimelyDataflow/differential-dataflow/pull/902))
- Generalize int-proxy keys and values to Copy + Ord ([#891](https://github.com/TimelyDataflow/differential-dataflow/pull/891))
- Move reduce timestamps and directly evaluate single dominating seeds ([#883](https://github.com/TimelyDataflow/differential-dataflow/pull/883))
- Group int-proxy reduce pending times into sorted runs ([#881](https://github.com/TimelyDataflow/differential-dataflow/pull/881))
- Adapt to timely #817, #818, #819 ([#877](https://github.com/TimelyDataflow/differential-dataflow/pull/877))
- Reuse bounded groups of proxy reduction sweeps ([#871](https://github.com/TimelyDataflow/differential-dataflow/pull/871))
- Cursor-based clean-up ([#866](https://github.com/TimelyDataflow/differential-dataflow/pull/866))
- Further reorganization ([#849](https://github.com/TimelyDataflow/differential-dataflow/pull/849))
- Relocation of narrowly used types and traits ([#848](https://github.com/TimelyDataflow/differential-dataflow/pull/848))
- Split `Builder` along the seam its two users already follow ([#846](https://github.com/TimelyDataflow/differential-dataflow/pull/846))
- Use `Batcher` to implement all of `Arrange` ([#845](https://github.com/TimelyDataflow/differential-dataflow/pull/845))
- One `Batcher` trait, shaped like the one half_join had to write ([#844](https://github.com/TimelyDataflow/differential-dataflow/pull/844))
- Retire the `Arrange` trait in favour of inherent methods ([#843](https://github.com/TimelyDataflow/differential-dataflow/pull/843))
- Batches as data: spans of history carrying `Option<Batch>` ([#842](https://github.com/TimelyDataflow/differential-dataflow/pull/842))
- Relocate batch merging traits into the fueled spine ([#841](https://github.com/TimelyDataflow/differential-dataflow/pull/841))
- Track timely master: un-shred arrange with multi-capability stamps ([#838](https://github.com/TimelyDataflow/differential-dataflow/pull/838))
- Corgi hash key lane ([#832](https://github.com/TimelyDataflow/differential-dataflow/pull/832))
- Corgi reduce presentation perf ([#833](https://github.com/TimelyDataflow/differential-dataflow/pull/833))
- start, emit an empty 'RecordedUpdates' in the columnar 'ValDistributor', when the input consolidates to nothing ([#834](https://github.com/TimelyDataflow/differential-dataflow/pull/834))
- Seeds travel as times; records travel netted ([#830](https://github.com/TimelyDataflow/differential-dataflow/pull/830))
- Drive VecReduceBackend windows from a resumable merge-walk ([#829](https://github.com/TimelyDataflow/differential-dataflow/pull/829))
- Stream VecReduceBackend output into open chunks per tile ([#828](https://github.com/TimelyDataflow/differential-dataflow/pull/828))
- Fuse discovery and evaluation in the proxy reduce tactic ([#826](https://github.com/TimelyDataflow/differential-dataflow/pull/826))
- A reference VecReduceBackend, tests, and a tactic-vs-tactic benchmark ([#825](https://github.com/TimelyDataflow/differential-dataflow/pull/825))
- Retire seed_times; visit only the keys with work due ([#824](https://github.com/TimelyDataflow/differential-dataflow/pull/824))
- Move the wrapper cursors to the cursor module ([#823](https://github.com/TimelyDataflow/differential-dataflow/pull/823))
- Remove the enter_at trace wrapper ([#822](https://github.com/TimelyDataflow/differential-dataflow/pull/822))
- Migrate Cursor/Navigable requirements ([#819](https://github.com/TimelyDataflow/differential-dataflow/pull/819))
- Name core join functions ([#816](https://github.com/TimelyDataflow/differential-dataflow/pull/816))
- int_proxy join: draw the proxy collection lazily, a block at a time ([#809](https://github.com/TimelyDataflow/differential-dataflow/pull/809))

## [0.25.1](https://github.com/TimelyDataflow/differential-dataflow/compare/differential-dataflow-v0.25.0...differential-dataflow-v0.25.1) - 2026-07-15

### Other
Expand Down
2 changes: 1 addition & 1 deletion differential-dataflow/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]

name = "differential-dataflow"
version = "0.25.1"
version = "0.26.0"
authors = ["Frank McSherry <fmcsherry@me.com>"]

description = "An incremental data-parallel dataflow platform"
Expand Down
37 changes: 37 additions & 0 deletions dogsdogsdogs/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,43 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.26.0](https://github.com/TimelyDataflow/differential-dataflow/compare/differential-dogs3-v0.25.1...differential-dogs3-v0.26.0) - 2026-11-05

This release tracks differential-dataflow 0.26 and removes several helper modules.

### Added

- `HalfJoinTactic` and `half_join_with_tactic`, with proxy and vector backends (`ProxyHalfJoinBackend`, `ProxyHalfJoinTactic`, `VecHalfJoinBackend`).

### Changed

- `half_join` is re-exported from `operators::half_join::cursors`, and its signature drops the `CF` parameter.
- `PrefixExtender`, `ProposeExtensionMethod`, and `ValidateExtensionMethod` drop the `R` parameter.
- `CollectionIndex` and `CollectionExtender` drop the `R` parameter and gain a `'scope` lifetime.
- `count`, `propose`, and `validate` take the `R` and `FF` type parameters.

### Removed

- `AltNeu`, and the `calculus` module with `Differentiate` and `Integrate`.
- `lookup_map`, `propose_distinct`, and the `half_join2` module.
- The old `half_join_internal_unsafe`. The `half_join::cursors` module has its own version.

### Other

- `Batcher` as subtrait ([#1074](https://github.com/TimelyDataflow/differential-dataflow/pull/1074))
- Half joins read imported arrangements as of a frontier ([#1025](https://github.com/TimelyDataflow/differential-dataflow/pull/1025))
- a proxy half-join tactic over a backend, built on int_proxy's public surface ([#1022](https://github.com/TimelyDataflow/differential-dataflow/pull/1022))
- dogs3 half join: ship each output with the unit's capabilities ([#955](https://github.com/TimelyDataflow/differential-dataflow/pull/955))
- Adapt to timely #817, #818, #819 ([#877](https://github.com/TimelyDataflow/differential-dataflow/pull/877))
- Further reorganization ([#849](https://github.com/TimelyDataflow/differential-dataflow/pull/849))
- Use `Batcher` to implement all of `Arrange` ([#845](https://github.com/TimelyDataflow/differential-dataflow/pull/845))
- One `Batcher` trait, shaped like the one half_join had to write ([#844](https://github.com/TimelyDataflow/differential-dataflow/pull/844))
- Batches as data: spans of history carrying `Option<Batch>` ([#842](https://github.com/TimelyDataflow/differential-dataflow/pull/842))
- Half join tactic ([#840](https://github.com/TimelyDataflow/differential-dataflow/pull/840))
- Correct dogs3 worst-case optimal tools ([#821](https://github.com/TimelyDataflow/differential-dataflow/pull/821))
- Replace half_join with half_join2 ([#820](https://github.com/TimelyDataflow/differential-dataflow/pull/820))
- Migrate Cursor/Navigable requirements ([#819](https://github.com/TimelyDataflow/differential-dataflow/pull/819))

## [0.25.0](https://github.com/TimelyDataflow/differential-dataflow/compare/differential-dogs3-v0.24.0...differential-dogs3-v0.25.0) - 2026-07-15

### Changed
Expand Down
2 changes: 1 addition & 1 deletion dogsdogsdogs/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "differential-dogs3"
version = "0.25.1"
version = "0.26.0"
authors = ["Frank McSherry <fmcsherry@me.com>"]
license = "MIT"
edition.workspace = true
Expand Down
Loading