Hadron / carthage

Carthage is an Infrastructure as Code (IAC) framework
Other
7 stars 4 forks source link

check_completed only sometimes mixes with invalidators #35

Open hartmans opened 1 year ago

hartmans commented 1 year ago

In TaskWrapperBase, you can set a check_completed_func and an invalidator. If check_completed_func returns True, the invalidator is ignored, and the task is not run. If check_completed_func returns False, the task is run again and the invalidator is not called, as you would expect. If check_completed_func returns a time, then the time is compared to dependencies, and the invalidator is called. If the invalidator invalidates, the task is run.

Bypassing the invalidator on check_completed->True but not check_completed->time violates the principle of least surprise for no good reason.

Filing a bug because I don't have time to make sure I am not introducing a logic error now.