Automatic Cleaning¶
StepUp follows the same cleanup strategy as tup:
If a step is removed or modified so that an output file is no longer created,
StepUp will remove this output.
This is also similar to Ninja’s cleandead
command,
but it is enabled by default in StepUp.
Sometimes, it can be helpful to postpone the cleanup until you are sure that the output files are no longer needed. This can be done in one of two ways:
- Add the
--no-clean
option to thestepup boot
command. This will prevent StepUp from removing any output files. - Block some steps by adding the
block=True
argument to thestep()
function in yourplan.py
script.
The main advantage of automatic cleaning is that it eliminates potential bugs and confusion related to old output files that are no longer relevant.
Try the Following¶
To illustrate the automatic cleaning, take the files from the example copy
and mkdir
and start StepUp in interactive mode.
Make the following changes and rerun the affected steps after each point by pressing r
in the terminal:
-
Change the directory
sub/
tofoo/
inplan.py
. Rerunning StepUp will not only createfoo/
andfoo/hello.txt
. After completing all pending steps,sub/
andsub/hello.txt
will be removed. -
Change all occurrences of
hello.txt
inplan.py
tohi.txt
. Rerunning StepUp will not only createhi.txt
andfoo/hi.txt
. After completing all pending steps,hello.txt
andfoo/hello.txt
will be removed. -
Undo all changes and run StepUp again. You should end up with the original output without any remnants from the previous two steps.