Skip to content

chore: release v0.27.0#752

Open
github-actions[bot] wants to merge 1 commit intomasterfrom
release-plz-2026-03-03T16-41-30Z
Open

chore: release v0.27.0#752
github-actions[bot] wants to merge 1 commit intomasterfrom
release-plz-2026-03-03T16-41-30Z

Conversation

@github-actions
Copy link
Contributor

@github-actions github-actions bot commented Mar 3, 2026

🤖 New release

  • timely_bytes: 0.26.1 -> 0.27.0 (✓ API compatible changes)
  • timely_container: 0.26.1 -> 0.27.0 (✓ API compatible changes)
  • timely_logging: 0.26.1 -> 0.27.0 (✓ API compatible changes)
  • timely_communication: 0.26.1 -> 0.27.0 (✓ API compatible changes)
  • timely: 0.26.1 -> 0.27.0 (⚠ API breaking changes)

timely breaking changes

--- failure function_missing: pub fn removed or renamed ---

Description:
A publicly-visible function cannot be imported by its prior path. A `pub use` may have been removed, or the function itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/function_missing.ron

Failed in:
  function timely::dataflow::operators::flow_controlled::iterator_source, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/flow_controlled.rs:72

--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/inherent_method_missing.ron

Failed in:
  InputCapability::delayed_for_output, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/capability.rs:283
  InputCapability::retain_for_output, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/capability.rs:311

--- failure method_parameter_count_changed: pub method parameter count changed ---

Description:
A publicly-visible method now takes a different number of parameters, not counting the receiver (self) parameter.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/method_parameter_count_changed.ron

Failed in:
  timely::dataflow::channels::Message::new now takes 2 parameters instead of 4, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/channels/mod.rs:38
  timely::dataflow::operators::InputCapability::delayed now takes 2 parameters instead of 1, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/capability.rs:281
  timely::dataflow::operators::InputCapability::retain now takes 1 parameters instead of 0, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/capability.rs:303

--- failure method_receiver_ref_became_owned: method receiver changed from immutable reference to owned value ---

Description:
A method's receiver changed from an immutable reference to an owned value. Ownership is transferred as part of the call, which is a breaking change.
        ref: https://doc.rust-lang.org/reference/items/associated-items.html#methods
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/method_receiver_ref_became_owned.ron

Failed in:
  timely::dataflow::channels::pushers::tee::TeeHelper::add_pusher now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/channels/pushers/tee.rs:132
  timely::dataflow::channels::pushers::TeeHelper::add_pusher now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/channels/pushers/tee.rs:132

--- failure module_missing: pub module removed or renamed ---

Description:
A publicly-visible module cannot be imported by its prior path. A `pub use` may have been removed, or the module may have been renamed, removed, or made non-public.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/module_missing.ron

Failed in:
  mod timely::dataflow::operators::aggregation::state_machine, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/aggregation/state_machine.rs:1
  mod timely::dataflow::operators::flow_controlled, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/flow_controlled.rs:1
  mod timely::dataflow::operators::map, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/map.rs:1
  mod timely::dataflow::operators::broadcast, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/broadcast.rs:1
  mod timely::dataflow::operators::to_stream, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/to_stream.rs:1
  mod timely::dataflow::operators::unordered_input, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/unordered_input.rs:1
  mod timely::dataflow::operators::branch, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/branch.rs:1
  mod timely::dataflow::operators::aggregation::aggregate, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/aggregation/aggregate.rs:1
  mod timely::dataflow::operators::aggregation, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/aggregation/mod.rs:1
  mod timely::dataflow::operators::filter, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/filter.rs:1
  mod timely::dataflow::operators::result, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/result.rs:1
  mod timely::dataflow::operators::partition, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/partition.rs:1
  mod timely::dataflow::operators::delay, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/delay.rs:1
  mod timely::dataflow::operators::input, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/input.rs:1
  mod timely::dataflow::operators::count, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/count.rs:1

--- failure struct_missing: pub struct removed or renamed ---

Description:
A publicly-visible struct cannot be imported by its prior path. A `pub use` may have been removed, or the struct itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/struct_missing.ron

Failed in:
  struct timely::dataflow::InputHandleCore, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/core/input.rs:218
  struct timely::dataflow::stream::StreamCore, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/stream.rs:21
  struct timely::dataflow::StreamCore, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/stream.rs:21
  struct timely::dataflow::operators::flow_controlled::IteratorSourceInput, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/flow_controlled.rs:11

--- failure trait_added_supertrait: non-sealed trait added new supertraits ---

Description:
A non-sealed trait added one or more supertraits, which breaks downstream implementations of the trait
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#generic-bounds-tighten
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/trait_added_supertrait.ron

Failed in:
  trait timely::dataflow::operators::core::map::Map gained Sized in file /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/map.rs:10
  trait timely::dataflow::operators::core::Map gained Sized in file /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/map.rs:10
  trait timely::ExchangeData gained Send in file /tmp/.tmppbzevy/timely-dataflow/timely/src/lib.rs:128
  trait timely::ExchangeData gained Any in file /tmp/.tmppbzevy/timely-dataflow/timely/src/lib.rs:128
  trait timely::ExchangeData gained Serialize in file /tmp/.tmppbzevy/timely-dataflow/timely/src/lib.rs:128
  trait timely::ExchangeData gained Deserialize in file /tmp/.tmppbzevy/timely-dataflow/timely/src/lib.rs:128
  trait timely::progress::timestamp::Timestamp gained Data in file /tmp/.tmppbzevy/timely-dataflow/timely/src/progress/timestamp.rs:14
  trait timely::progress::Timestamp gained Data in file /tmp/.tmppbzevy/timely-dataflow/timely/src/progress/timestamp.rs:14
  trait timely::dataflow::operators::core::capture::capture::Capture gained Sized in file /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/capture/capture.rs:20
  trait timely::dataflow::operators::capture::capture::Capture gained Sized in file /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/capture/capture.rs:20
  trait timely::dataflow::operators::core::capture::Capture gained Sized in file /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/capture/capture.rs:20
  trait timely::dataflow::operators::capture::Capture gained Sized in file /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/capture/capture.rs:20
  trait timely::dataflow::operators::core::Capture gained Sized in file /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/capture/capture.rs:20
  trait timely::dataflow::operators::Capture gained Sized in file /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/capture/capture.rs:20

--- failure trait_method_receiver_ref_became_owned: trait method receiver changed from immutable reference to owned value ---

Description:
A trait method's receiver changed from an immutable reference to an owned value. Ownership is transferred as part of the call, which is a breaking change.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#trait-item-signature
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/trait_method_receiver_ref_became_owned.ron

Failed in:
  timely::dataflow::operators::core::reclock::Reclock::reclock now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/reclock.rs:49
  timely::dataflow::operators::reclock::Reclock::reclock now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/reclock.rs:49
  timely::dataflow::operators::core::Reclock::reclock now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/reclock.rs:49
  timely::dataflow::operators::Reclock::reclock now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/reclock.rs:49
  timely::dataflow::operators::core::ok_err::OkErr::ok_err now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/ok_err.rs:33
  timely::dataflow::operators::ok_err::OkErr::ok_err now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/ok_err.rs:33
  timely::dataflow::operators::core::OkErr::ok_err now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/ok_err.rs:33
  timely::dataflow::operators::OkErr::ok_err now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/ok_err.rs:33
  timely::dataflow::operators::core::enterleave::Leave::leave now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/enterleave.rs:103
  timely::dataflow::operators::enterleave::Leave::leave now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/enterleave.rs:103
  timely::dataflow::operators::core::Leave::leave now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/enterleave.rs:103
  timely::dataflow::operators::Leave::leave now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/enterleave.rs:103
  timely::dataflow::operators::core::probe::Probe::probe now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/probe.rs:49
  timely::dataflow::operators::core::probe::Probe::probe_with now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/probe.rs:81
  timely::dataflow::operators::probe::Probe::probe now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/probe.rs:49
  timely::dataflow::operators::probe::Probe::probe_with now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/probe.rs:81
  timely::dataflow::operators::core::Probe::probe now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/probe.rs:49
  timely::dataflow::operators::core::Probe::probe_with now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/probe.rs:81
  timely::dataflow::operators::Probe::probe now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/probe.rs:49
  timely::dataflow::operators::Probe::probe_with now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/probe.rs:81
  timely::dataflow::operators::core::filter::Filter::filter now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/filter.rs:23
  timely::dataflow::operators::core::Filter::filter now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/filter.rs:23
  timely::dataflow::operators::core::inspect::InspectCore::inspect_container now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/inspect.rs:131
  timely::dataflow::operators::inspect::InspectCore::inspect_container now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/inspect.rs:131
  timely::dataflow::operators::core::InspectCore::inspect_container now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/inspect.rs:131
  timely::dataflow::operators::InspectCore::inspect_container now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/inspect.rs:131
  timely::dataflow::operators::core::enterleave::Enter::enter now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/enterleave.rs:53
  timely::dataflow::operators::enterleave::Enter::enter now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/enterleave.rs:53
  timely::dataflow::operators::core::Enter::enter now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/enterleave.rs:53
  timely::dataflow::operators::Enter::enter now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/enterleave.rs:53
  timely::dataflow::operators::core::partition::Partition::partition now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/partition.rs:31
  timely::dataflow::operators::core::Partition::partition now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/partition.rs:31
  timely::dataflow::operators::generic::operator::Operator::unary_frontier now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/generic/operator.rs:58
  timely::dataflow::operators::generic::operator::Operator::unary_notify now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/generic/operator.rs:92
  timely::dataflow::operators::generic::operator::Operator::unary now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/generic/operator.rs:127
  timely::dataflow::operators::generic::operator::Operator::binary_frontier now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/generic/operator.rs:183
  timely::dataflow::operators::generic::operator::Operator::binary_notify now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/generic/operator.rs:235
  timely::dataflow::operators::generic::operator::Operator::binary now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/generic/operator.rs:272
  timely::dataflow::operators::generic::operator::Operator::sink now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/generic/operator.rs:307
  timely::dataflow::operators::generic::Operator::unary_frontier now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/generic/operator.rs:58
  timely::dataflow::operators::generic::Operator::unary_notify now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/generic/operator.rs:92
  timely::dataflow::operators::generic::Operator::unary now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/generic/operator.rs:127
  timely::dataflow::operators::generic::Operator::binary_frontier now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/generic/operator.rs:183
  timely::dataflow::operators::generic::Operator::binary_notify now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/generic/operator.rs:235
  timely::dataflow::operators::generic::Operator::binary now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/generic/operator.rs:272
  timely::dataflow::operators::generic::Operator::sink now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/generic/operator.rs:307
  timely::dataflow::operators::Operator::unary_frontier now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/generic/operator.rs:58
  timely::dataflow::operators::Operator::unary_notify now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/generic/operator.rs:92
  timely::dataflow::operators::Operator::unary now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/generic/operator.rs:127
  timely::dataflow::operators::Operator::binary_frontier now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/generic/operator.rs:183
  timely::dataflow::operators::Operator::binary_notify now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/generic/operator.rs:235
  timely::dataflow::operators::Operator::binary now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/generic/operator.rs:272
  timely::dataflow::operators::Operator::sink now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/generic/operator.rs:307
  timely::dataflow::operators::core::map::Map::map now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/map.rs:26
  timely::dataflow::operators::core::map::Map::flat_map now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/map.rs:48
  timely::dataflow::operators::core::map::Map::flat_map_builder now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/map.rs:83
  timely::dataflow::operators::core::Map::map now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/map.rs:26
  timely::dataflow::operators::core::Map::flat_map now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/map.rs:48
  timely::dataflow::operators::core::Map::flat_map_builder now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/map.rs:83
  timely::dataflow::operators::core::rc::SharedStream::shared now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/rc.rs:25
  timely::dataflow::operators::rc::SharedStream::shared now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/rc.rs:25
  timely::dataflow::operators::core::inspect::Inspect::inspect now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/inspect.rs:25
  timely::dataflow::operators::core::inspect::Inspect::inspect_time now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/inspect.rs:46
  timely::dataflow::operators::core::inspect::Inspect::inspect_batch now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/inspect.rs:69
  timely::dataflow::operators::core::inspect::Inspect::inspect_core now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/inspect.rs:97
  timely::dataflow::operators::inspect::Inspect::inspect now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/inspect.rs:25
  timely::dataflow::operators::inspect::Inspect::inspect_time now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/inspect.rs:46
  timely::dataflow::operators::inspect::Inspect::inspect_batch now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/inspect.rs:69
  timely::dataflow::operators::inspect::Inspect::inspect_core now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/inspect.rs:97
  timely::dataflow::operators::core::Inspect::inspect now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/inspect.rs:25
  timely::dataflow::operators::core::Inspect::inspect_time now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/inspect.rs:46
  timely::dataflow::operators::core::Inspect::inspect_batch now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/inspect.rs:69
  timely::dataflow::operators::core::Inspect::inspect_core now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/inspect.rs:97
  timely::dataflow::operators::Inspect::inspect now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/inspect.rs:25
  timely::dataflow::operators::Inspect::inspect_time now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/inspect.rs:46
  timely::dataflow::operators::Inspect::inspect_batch now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/inspect.rs:69
  timely::dataflow::operators::Inspect::inspect_core now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/inspect.rs:97
  timely::dataflow::operators::core::feedback::ConnectLoop::connect_loop now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/feedback.rs:110
  timely::dataflow::operators::feedback::ConnectLoop::connect_loop now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/feedback.rs:110
  timely::dataflow::operators::core::ConnectLoop::connect_loop now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/feedback.rs:110
  timely::dataflow::operators::ConnectLoop::connect_loop now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/feedback.rs:110
  timely::dataflow::operators::core::concat::Concat::concat now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/concat.rs:24
  timely::dataflow::operators::concat::Concat::concat now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/concat.rs:24
  timely::dataflow::operators::core::Concat::concat now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/concat.rs:24
  timely::dataflow::operators::Concat::concat now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/concat.rs:24
  timely::dataflow::operators::core::capture::capture::Capture::capture_into now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/capture/capture.rs:108
  timely::dataflow::operators::core::capture::capture::Capture::capture now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/capture/capture.rs:111
  timely::dataflow::operators::capture::capture::Capture::capture_into now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/capture/capture.rs:108
  timely::dataflow::operators::capture::capture::Capture::capture now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/capture/capture.rs:111
  timely::dataflow::operators::core::capture::Capture::capture_into now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/capture/capture.rs:108
  timely::dataflow::operators::core::capture::Capture::capture now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/capture/capture.rs:111
  timely::dataflow::operators::capture::Capture::capture_into now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/capture/capture.rs:108
  timely::dataflow::operators::capture::Capture::capture now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/capture/capture.rs:111
  timely::dataflow::operators::core::Capture::capture_into now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/capture/capture.rs:108
  timely::dataflow::operators::core::Capture::capture now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/capture/capture.rs:111
  timely::dataflow::operators::Capture::capture_into now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/capture/capture.rs:108
  timely::dataflow::operators::Capture::capture now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/capture/capture.rs:111
  timely::dataflow::operators::core::exchange::Exchange::exchange now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/exchange.rs:27
  timely::dataflow::operators::exchange::Exchange::exchange now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/exchange.rs:27
  timely::dataflow::operators::core::Exchange::exchange now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/exchange.rs:27
  timely::dataflow::operators::Exchange::exchange now takes Self, not &Self, in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/exchange.rs:27

--- failure trait_missing: pub trait removed or renamed ---

Description:
A publicly-visible trait cannot be imported by its prior path. A `pub use` may have been removed, or the trait itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/trait_missing.ron

Failed in:
  trait timely::dataflow::operators::input::Input, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/input.rs:16
  trait timely::dataflow::operators::aggregation::state_machine::StateMachine, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/aggregation/state_machine.rs:20
  trait timely::dataflow::operators::aggregation::StateMachine, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/aggregation/state_machine.rs:20
  trait timely::dataflow::operators::broadcast::Broadcast, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/broadcast.rs:8
  trait timely::dataflow::operators::Broadcast, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/broadcast.rs:8
  trait timely::dataflow::operators::result::ResultStream, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/result.rs:8
  trait timely::dataflow::operators::ResultStream, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/result.rs:8
  trait timely::dataflow::operators::unordered_input::UnorderedInput, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/unordered_input.rs:11
  trait timely::dataflow::operators::UnorderedInput, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/unordered_input.rs:11
  trait timely::dataflow::operators::to_stream::ToStream, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/to_stream.rs:8
  trait timely::dataflow::operators::delay::Delay, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/delay.rs:12
  trait timely::dataflow::operators::Delay, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/delay.rs:12
  trait timely::dataflow::operators::branch::BranchWhen, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/branch.rs:77
  trait timely::dataflow::operators::BranchWhen, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/branch.rs:77
  trait timely::dataflow::operators::map::Map, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/map.rs:10
  trait timely::dataflow::operators::Map, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/map.rs:10
  trait timely::dataflow::operators::aggregation::aggregate::Aggregate, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/aggregation/aggregate.rs:14
  trait timely::dataflow::operators::aggregation::Aggregate, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/aggregation/aggregate.rs:14
  trait timely::dataflow::operators::filter::Filter, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/filter.rs:9
  trait timely::dataflow::operators::Filter, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/filter.rs:9
  trait timely::dataflow::operators::branch::Branch, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/branch.rs:10
  trait timely::dataflow::operators::Branch, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/branch.rs:10
  trait timely::dataflow::operators::partition::Partition, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/partition.rs:9
  trait timely::dataflow::operators::Partition, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/partition.rs:9
  trait timely::Data, previously in file /tmp/.tmpRUVOr7/timely/src/lib.rs:104
  trait timely::dataflow::operators::count::Accumulate, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/count.rs:10
  trait timely::dataflow::operators::Accumulate, previously in file /tmp/.tmpRUVOr7/timely/src/dataflow/operators/count.rs:10

--- failure trait_no_longer_dyn_compatible: trait no longer dyn compatible ---

Description:
Trait is no longer dyn compatible, which breaks `dyn Trait` usage.
        ref: https://doc.rust-lang.org/stable/reference/items/traits.html#object-safety
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/trait_no_longer_dyn_compatible.ron

Failed in:
  trait Probe in file /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/probe.rs:19
  trait Probe in file /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/probe.rs:19
  trait Probe in file /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/probe.rs:19
  trait Probe in file /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/probe.rs:19

--- failure trait_removed_supertrait: supertrait removed or renamed ---

Description:
A supertrait was removed from a trait. Users of the trait can no longer assume it can also be used like its supertrait.
        ref: https://doc.rust-lang.org/reference/items/traits.html#supertraits
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/trait_removed_supertrait.ron

Failed in:
  supertrait timely::Data of trait Data in file /tmp/.tmppbzevy/timely-dataflow/timely/src/lib.rs:128

--- failure type_mismatched_generic_lifetimes: type now takes a different number of generic lifetimes ---

Description:
A type now takes a different number of generic lifetime parameters. Uses of this type that name the previous number of parameters will be broken.
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/type_mismatched_generic_lifetimes.ron
Failed in:
  Struct FlatMapBuilder (1 -> 0 lifetime params) in /tmp/.tmppbzevy/timely-dataflow/timely/src/dataflow/operators/core/map.rs:112
Changelog

timely

0.27.0 - 2026-03-03

Other

  • Return input stream (#747)
  • MRSV 1.86 (#748)
  • Avoid allocations when sorting (#751)
  • Assert if a second pusher is added without upgrading (#750)
  • Reorganize types and traits to deprioritize Vec streams (#746)
  • Replace seeded rand datagen with hash functions (#745)
  • Tee implementation without Clone requirement (#744)
  • Bump oldest Rust version from 1.79 to 1.85 (#743)
  • Delay/retain input capabilities for specific outputs (#738)

Streams are not backed by vectors by default

Timely streams are now container-oriented by default, rather than vector-oriented.
Timely has historically had the Stream type mean "A stream that transports vectors of items".
This was a helpful opinion early days when the goal was to make the first programs easy to type.
Since, we've learned that vectors and Rust ownership can be a performance anti-pattern:
exchanging owned data and e.g. deallocation obligations among workers is effectively an allocator microbenchmark.

Instead, we've renamed Stream to StreamVec and moved the associated operators to a operators::vec module.
The previous StreamCore that works with general containers has been promoted to Stream, and is the recommended type.
Many/most of the timely operators work over arbitrary containers, and are defined on the new Stream.
The Stream::container<C>() method has proven useful for "hinting" at the container type you intend.

Streams are not Clone by default

Timely streams are now non-clone by default.
Streams do implement clone when their containers can be cloned.
This allows the use of non-clone containers, and for users to ensure (by not advertising Clone) that their streams are not unintentionally cloned.
A low-friction migration is to require Clone for transmitted types, and call .clone() on the stream when you would use it.
Idiomatically, most operations now take a Stream rather than a &Stream, and we've found that adopting this migration helps as well.
There is a low cost to cloning a stream that you only use once: one additional virtual call will occur for each container shipped along it.


This PR was generated with release-plz.

@github-actions github-actions bot force-pushed the release-plz-2026-03-03T16-41-30Z branch from 1f426ad to bc9099e Compare March 3, 2026 19:03
@github-actions github-actions bot force-pushed the release-plz-2026-03-03T16-41-30Z branch from bc9099e to dd7b60d Compare March 3, 2026 20:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants