diff --git a/src/bootstrap/src/core/builder.rs b/src/bootstrap/src/core/builder.rs index 6c4b26ec2195f..b206aadef624a 100644 --- a/src/bootstrap/src/core/builder.rs +++ b/src/bootstrap/src/core/builder.rs @@ -88,6 +88,9 @@ pub trait Step: 'static + Clone + Debug + PartialEq + Eq + Hash { /// Primary function to execute this rule. Can call `builder.ensure()` /// with other steps to run those. + /// + /// This gets called twice during a normal `./x.py` execution: first + /// with `dry_run() == true`, and then for real. fn run(self, builder: &Builder<'_>) -> Self::Output; /// When bootstrap is passed a set of paths, this controls whether this rule diff --git a/src/bootstrap/src/lib.rs b/src/bootstrap/src/lib.rs index 47b03d411cb0d..698a576effa63 100644 --- a/src/bootstrap/src/lib.rs +++ b/src/bootstrap/src/lib.rs @@ -683,6 +683,8 @@ impl Build { if !self.config.dry_run() { { + // We first do a dry-run. This is a sanity-check to ensure that + // steps don't do anything expensive in the dry-run. self.config.dry_run = DryRun::SelfCheck; let builder = builder::Builder::new(self); builder.execute_cli();