I am extending a command for scons, but have incomplete sources. A few xml pdf documents do not exist.
according to scons wiki, I could use
scons -i
(--ignore-errors, Ignore all errors from commands executed to rebuild files.)
or
scons -k
(--keep-going, Continue as much as possible after an error. The target that failed and those that depend on it will not be remade, but other targets specified on the command line will still be processed.)
I guess scons -k
is the correct command for my purpose (to test later steps while some first steps may fail) but I still wonder, when to use -i, because ignoring errors should result in building more and more things as well. Or -i ignores exceptions as long as all target files will still be created successfully and -k even continues if files are not created?
The "-i" option marks the failed nodes as "executed", just as if building the target was successful. So a parent, depending on the actually failed node, may handle the missing file as empty content for example and happily continues...leaving your final target in a possibly inconsistent state.
This can't happen with "-k" because it marks all parents up the tree as "failed" immediately, and never tries to build any of them. This means that all remaining created targets should be consistent regarding their dependencies, and ready for production use.