Skip to main content

parallel_sets

Function parallel_sets 

Source
pub fn parallel_sets(nodes: &[MilestoneNode]) -> Vec<ParallelSet>
Expand description

Partition startable work into subsets that may genuinely run at the same time.

The rule is the repository’s own: two issues may run together when they are in the same wave, both declare parallel_safe, and no scope path of one contains a scope path of the other — crate::plan::overlap is the same containment test the plan’s own scope_conflict warning uses, so the two can never disagree. An issue that declares itself not parallel-safe gets a set of its own.

Greedy, over candidates in canonical order, so the partition is deterministic. It is not the smallest possible partition — that is graph colouring — and it does not need to be: a worker asks what can be fanned out now, and a conservative answer is a correct one.