BobBuildTool/bob

checkoutUpdateIf: run checkout script if recipe changed?

rhubert opened this issue · 1 comments

I have a recipe with checkoutUpdateIf: True which reruns the checkoutScript if the sources are modified. Anyway, it doesn't rerun the checkout if the checkoutScript has been modified (using --build-only) which is somehow unexpected and forced me to do some extra rounds..

[    ] CHECKOUT  <> - WARNING: recipe changed but skipped due to --build-only (dev/src/camera/camera-app/1/workspace)

Is there a particular reason for this behavior?

This is intentional but still unsatisfying I have to admit. The problem is that Bob cannot judge how much the checkout step has changed because the individual parts are not tracked. The only safe assumption is that the checkout script has changed so much that it's unsafe to run the partial checkoutScript without running the whole checkout first. Think about new, renamed or removed SCM checkouts that have to fit the checkoutScript. IMHO it's not possible to judge what is safe to run.

BTW, the same applies to the "import" SCM since a long time. Also there the import will not be updated if the checkout step has changed. The checkoutUpdateIf machinery is working the same way.