public void BuildPropagationTopology(IEnumerable <IPipelineStage> stages, long pipelineVersion)
        {
            PipelineVersionOfCurrentPropagation = pipelineVersion;
            CurrentPropagationTopology          = Analyzer.GetTopologySorted(stages);

            if (CurrentPropagationTopology == null)
            {
                throw ErrorHandler.CreatePipelineCycleException(Analyzer.FindCycles(stages));
            }

            StagesThisPropagation.Clear();
            foreach (var stage in CurrentPropagationTopology.Select(s => s.Stage))
            {
                StagesThisPropagation.Add(new AmbivalentPipelineReference(stage));
            }
        }
 public void PrepareForPotentialNewPropagation() => StagesThisPropagation.Clear();