|
2 | 2 |
|
3 | 3 | All notable changes to this project will be documented in this file.
|
4 | 4 |
|
| 5 | +## [0.20.0](https://github.com/TimelyDataflow/timely-dataflow/compare/timely-v0.19.0...timely-v0.20.0) - 2025-03-28 |
| 6 | + |
| 7 | +### Other |
| 8 | + |
| 9 | +- Update timely/src/progress/operate.rs |
| 10 | +- Add scaling test |
| 11 | +- Switch builder API to port-identified iterators |
| 12 | +- Adjust reachability logic to be more linear |
| 13 | +- Swap PortConnectivity implementation from Vec to BTreeMap |
| 14 | +- Support optional path summaries for disconnected ports |
| 15 | +- Make PortConnectivity API more explicit |
| 16 | +- Make PortConnectivity a struct, with sufficient methods |
| 17 | +- Introduce Connectivity and PortConnectivity type aliases |
| 18 | +- Add clippy lints ([#659](https://github.com/TimelyDataflow/timely-dataflow/pull/659)) |
| 19 | +- Add miri test ([#655](https://github.com/TimelyDataflow/timely-dataflow/pull/655)) |
| 20 | + |
| 21 | +## [0.19.0](https://github.com/TimelyDataflow/timely-dataflow/compare/timely-v0.18.1...timely-v0.19.0) - 2025-02-28 |
| 22 | + |
| 23 | +### Other |
| 24 | + |
| 25 | +- Use `dep` syntax with `getopts` ([#591](https://github.com/TimelyDataflow/timely-dataflow/pull/591)) |
| 26 | +- Make Buffer::push_into private ([#649](https://github.com/TimelyDataflow/timely-dataflow/pull/649)) |
| 27 | +- Remove columnation and flatcontainer deps ([#647](https://github.com/TimelyDataflow/timely-dataflow/pull/647)) |
| 28 | + |
| 29 | +## [0.18.1](https://github.com/TimelyDataflow/timely-dataflow/compare/timely-v0.18.0...timely-v0.18.1) - 2025-02-12 |
| 30 | + |
| 31 | +### Other |
| 32 | + |
| 33 | +- Update columnar to 0.3, make workspace dependency ([#639](https://github.com/TimelyDataflow/timely-dataflow/pull/639)) |
| 34 | + |
| 35 | +## [0.18.0](https://github.com/TimelyDataflow/timely-dataflow/compare/timely-v0.17.1...timely-v0.18.0) - 2025-02-12 |
| 36 | + |
| 37 | +### Other |
| 38 | + |
| 39 | +- Update columnar to 0.3, and columnar example ([#635](https://github.com/TimelyDataflow/timely-dataflow/pull/635)) |
| 40 | +- Convert Write::write to Write::write_all ([#636](https://github.com/TimelyDataflow/timely-dataflow/pull/636)) |
| 41 | +- Introduce foundation for broadcast channel ([#633](https://github.com/TimelyDataflow/timely-dataflow/pull/633)) |
| 42 | + |
| 43 | +## [0.17.1](https://github.com/TimelyDataflow/timely-dataflow/compare/timely-v0.17.0...timely-v0.17.1) - 2025-01-24 |
| 44 | + |
| 45 | +### Other |
| 46 | + |
| 47 | +- Derive ord/eq traits for Product's columnar variant ([#630](https://github.com/TimelyDataflow/timely-dataflow/pull/630)) |
| 48 | + |
| 49 | +## [0.17.0](https://github.com/TimelyDataflow/timely-dataflow/compare/timely-v0.16.1...timely-v0.17.0) - 2025-01-23 |
| 50 | + |
| 51 | +### Other |
| 52 | + |
| 53 | +- Move opinions about reachability logging into TrackerLogger ([#629](https://github.com/TimelyDataflow/timely-dataflow/pull/629)) |
| 54 | +- Align `Bytesable` messages to `u64` ([#614](https://github.com/TimelyDataflow/timely-dataflow/pull/614)) |
| 55 | +- Flatten reachability logging, log identifier ([#628](https://github.com/TimelyDataflow/timely-dataflow/pull/628)) |
| 56 | +- Log operator summaries using clever approach ([#626](https://github.com/TimelyDataflow/timely-dataflow/pull/626)) |
| 57 | +- Allow event iterators to surface owned data ([#627](https://github.com/TimelyDataflow/timely-dataflow/pull/627)) |
| 58 | +- Typed logging ([#624](https://github.com/TimelyDataflow/timely-dataflow/pull/624)) |
| 59 | + |
| 60 | +## [0.16.1](https://github.com/TimelyDataflow/timely-dataflow/compare/timely-v0.16.0...timely-v0.16.1) - 2025-01-16 |
| 61 | + |
| 62 | +### Other |
| 63 | + |
| 64 | +- Avoid allocation in progcaster ([#622](https://github.com/TimelyDataflow/timely-dataflow/pull/622)) |
| 65 | +- Log action can distinguish data from flush ([#619](https://github.com/TimelyDataflow/timely-dataflow/pull/619)) |
| 66 | +- give_container for arbitrary container builders ([#621](https://github.com/TimelyDataflow/timely-dataflow/pull/621)) |
| 67 | +- Add an is_empty check before retrieving elapsed time. ([#620](https://github.com/TimelyDataflow/timely-dataflow/pull/620)) |
| 68 | +- Correct documentation for execute_from_args ([#617](https://github.com/TimelyDataflow/timely-dataflow/pull/617)) |
| 69 | + |
| 70 | +## [0.16.0](https://github.com/TimelyDataflow/timely-dataflow/compare/timely-v0.15.1...timely-v0.16.0) - 2025-01-09 |
| 71 | + |
| 72 | +### Other |
| 73 | + |
| 74 | +- Define loggers in terms of container builders ([#615](https://github.com/TimelyDataflow/timely-dataflow/pull/615)) |
| 75 | +- Remove SizableContainer requirement from partition ([#612](https://github.com/TimelyDataflow/timely-dataflow/pull/612)) |
| 76 | + |
| 77 | +## [0.15.1](https://github.com/TimelyDataflow/timely-dataflow/compare/timely-v0.15.0...timely-v0.15.1) - 2024-12-18 |
| 78 | + |
| 79 | +### Other |
| 80 | + |
| 81 | +- Remove worker identifier from logging ([#533](https://github.com/TimelyDataflow/timely-dataflow/pull/533)) |
| 82 | +- add `.partition()` for `StreamCore` (#610) |
| 83 | +- Update columnar ([#611](https://github.com/TimelyDataflow/timely-dataflow/pull/611)) |
| 84 | +- Introduce columnar and derive extensively ([#608](https://github.com/TimelyDataflow/timely-dataflow/pull/608)) |
| 85 | + |
| 86 | +## [0.15.0](https://github.com/TimelyDataflow/timely-dataflow/compare/timely-v0.14.1...timely-v0.15.0) - 2024-12-05 |
| 87 | + |
| 88 | +### Other |
| 89 | + |
| 90 | +- Prefer byteorder in place of bincode ([#607](https://github.com/TimelyDataflow/timely-dataflow/pull/607)) |
| 91 | +- Use help from columnar 0.1.1 ([#606](https://github.com/TimelyDataflow/timely-dataflow/pull/606)) |
| 92 | +- Reorganize `Container` traits ([#605](https://github.com/TimelyDataflow/timely-dataflow/pull/605)) |
| 93 | +- Robustify potential Bytes alignment |
| 94 | +- Correct bincode call to use and update reader |
| 95 | +- Demonstrate `columnar` stuff ([#586](https://github.com/TimelyDataflow/timely-dataflow/pull/586)) |
| 96 | +- Allow containers to specify their own serialization ([#604](https://github.com/TimelyDataflow/timely-dataflow/pull/604)) |
| 97 | +- Remove Container: Clone + 'static ([#540](https://github.com/TimelyDataflow/timely-dataflow/pull/540)) |
| 98 | +- Apply various Clippy recommendations ([#603](https://github.com/TimelyDataflow/timely-dataflow/pull/603)) |
| 99 | +- Several improvements around `Bytesable` and `Message`. ([#601](https://github.com/TimelyDataflow/timely-dataflow/pull/601)) |
| 100 | + |
| 101 | +## [0.14.1](https://github.com/TimelyDataflow/timely-dataflow/compare/timely-v0.14.0...timely-v0.14.1) - 2024-11-12 |
| 102 | + |
| 103 | +### Added |
| 104 | + |
| 105 | +The type `timely::Message` is now publicly re-exported. |
| 106 | + |
| 107 | +### Other |
| 108 | + |
| 109 | +- Public Message type ([#599](https://github.com/TimelyDataflow/timely-dataflow/pull/599)) |
| 110 | + |
| 111 | +## [0.14.0](https://github.com/TimelyDataflow/timely-dataflow/compare/timely-v0.13.0...timely-v0.14.0) - 2024-11-11 |
| 112 | + |
| 113 | +### Added |
| 114 | + |
| 115 | +The trait `communication::Bytesable`, for types that must be serialized into or from a `Bytes`, and stands in for "timely appropriate serialization". |
| 116 | +The trait `communication::Exchangeable`, a composite trait bringing together the requirements on a type for it to be sent along a general purpose communication channel. |
| 117 | + |
| 118 | +### Removed |
| 119 | + |
| 120 | +The communication `Message` and `RefOrMut` types have been removed. |
| 121 | +The `RefOrMut` type wrapped either a `&T` or a `&mut T`, but with the removal of `abomonation` it is always a `&mut T`. |
| 122 | +The `Message` type was used to indicate the serialization / deserialization behavior, and these opinions (e.g. "use `bincode`") have been migrated to the core `timely` crate. |
| 123 | + |
| 124 | +### Other |
| 125 | + |
| 126 | +- Move opinions about encoding from `communication` to `timely`. ([#597](https://github.com/TimelyDataflow/timely-dataflow/pull/597)) |
| 127 | +- Rust updates, better doc testing ([#598](https://github.com/TimelyDataflow/timely-dataflow/pull/598)) |
| 128 | +- Simplify communication `Message` type ([#596](https://github.com/TimelyDataflow/timely-dataflow/pull/596)) |
| 129 | + |
| 130 | +## 0.13.0 - 2024-10-29 |
| 131 | + |
| 132 | +Changelog bankruptcy declared. |
| 133 | + |
5 | 134 | ## 0.12.0
|
6 | 135 |
|
7 | 136 | The `Timestamp` trait has a new method `minimim()` that replaces Timely's use of `Default::default()` for default capabilities. The most pressing reason for this is the use of signed integers for timestamps, where Timely would effectively prevent the use of negative numbers by providing the default value of zero for capabilities. This should not have reduced any functionality, but might provide surprising output for programs that use integer timestamps and do not first advance timestamps (the tidy `0` will be replaced with `_::min_value()`).
|
@@ -50,7 +179,7 @@ The address associated with each operator, a `[usize]` used to start with the id
|
50 | 179 |
|
51 | 180 | The `Worker` and the `Subgraph` operator no longer schedules all of their child dataflows and scopes by default. Instead, they track "active" children and schedule only those. Operators become active by receiving a message, a progress update, or by explicit activation. Some operators, source as `source`, have no inputs and will require explicit activation to run more than once. Operators that yield before completing all of their work (good for you!) should explicitly re-activate themselves to ensure they are re-scheduled even if they receive no further messages or progress updates. Documentation examples for the `source` method demonstrate this.
|
52 | 181 |
|
53 |
| -The `dataflow_using` method has been generalized to support arbitrary dataflow names, loggers, and additional resources the dataflow should keep alive. Its name has been chaged to `dataflow_core`. |
| 182 | +The `dataflow_using` method has been generalized to support arbitrary dataflow names, loggers, and additional resources the dataflow should keep alive. Its name has been changed to `dataflow_core`. |
54 | 183 |
|
55 | 184 | You can now construct `feedback` operators with a `Default::default()` path summary, which has the ability to not increment timestamps. Instead of panicking, Timely's reachability module will inform you if a non-incrementing cycle is detected, at which point you should probably double check your code. It is not 100% known what the system will do in this case (e.g., the progress tracker may enter a non-terminating loop; this is on you, not us ;)).
|
56 | 185 |
|
|
0 commit comments