-
Notifications
You must be signed in to change notification settings - Fork 110
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Checkpoint targets #88
Comments
Would love an example :) |
Prototype: c0947a5 |
I've been thinking about this - it might be better to mark parts of the workflow that are "temporary" (i.e. intermediate targets) rather than mark ones that are permanent. This way, everything by default is permanent (a "checkpoint") and you can gradually subtract out what you don't need permanently. Major components:
I have a prototype of this behavior now. |
Simple example:
b, c, and d are temporary or intermediate files, and are globally marked as such. Running from scratch:
|
It is probably good to establish a convention of marking temp targets in the output list - I think it is more clear this way. |
I like the direction it's going to. I agree this is much clearer than defining checkpoints, and I think this feature could be useful. I wanted to make a comment that temp status should only be defined in outputs, but then I've noticed you made that comment already. :) I think timestamp-wise, you can simply propagate the dates of inputs to a temp output, i.e.:
I do feel, however, that it we could be missing a bunch of things this behavior can affect, and we should make sure we cover everything, for example:
Finally, I am really excited to see Drake's development marches on! You've been doing awesome work on it, lately, Myron, and I think this is useful to a lot of people outside Factual as well! You guys rock! |
@aboytsov I'm really glad you were able to take a look at this, and also very happy that you like the direction of these changes! Finally, I'm glad to see that some of my work is appreciated 👍 To address your comments: re: timestamp checking - I considered several methods for timestamp checking on temp files that are missing.
|
More comments:
|
As an overall philosophy, I tried to make it so that if the user doesn't use temp targets, then Drake will act exactly the same as before. If the user wants to use temp targets, he/she should definitely be warned in the docs that:
|
Oh, and I'll modify the parser so temp files can only be defined in the output list. |
Squashed all the commits into one - in another branch
Squashed all the commits into one - in another branch
#106 Standardize on name "temp targets" Use -> for cleaner code Add comments for ramifications of error when deleting temp target Also: made sure temp target testing is in the regtest suite
#106 Standardize on name "temp targets" Use -> for cleaner code Add comments for ramifications of error when deleting temp target Also: made sure temp target testing is in the regtest suite Conflicts: resources/regtest/run-all.sh src/drake/core.clj
This feature is just what i'm looking for. 👍 |
(Will fill in more detail and a proposal soon)
Allow the ability to specify checkpoint targets in the workflow - when the workflow generates a checkpoint target, it will delete all intermediate targets generated to reach that checkpoint, but will not delete intermediate targets needed for subsequent targets or that are checkpoint targets themselves.
The text was updated successfully, but these errors were encountered: