-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Having gained some experience with the evolutionary algorithm at the heart of Tempo's run and exec commands, we've learned that there's probably no One Algorithm To Rule Them All.
Instead, the options passed into the command collectively determine the strategy. Are task failures idempotent? Then a single pass is all you need. Otherwise, you may want to use the “determined” strategies, which re-runs tasks until it encounters the same set of failures.
Do you have an optimal ordering? You may want to run them in groups to avoid inducing failures via parallelization.
This might even allow us to avoid returning non-zero status codes for non-idempotent successes, as we do for releases. Instead, we could provide a strategy that requires a “perfect” run.
The immediate to-do for this would be to attempt to enumerate the strategies and whether any of them are composable. For example, can you combine the determined strategy with the perfect-run strategy?
From there, we can outline how they would be implemented and the options for specifying them.