At first it would be written in CamelCase DoIt but depending on the font some people would read it as dolt with an L instead of I. So I just set it as lowercase to avoid confusion.
doit is designed to be extensible. A simple dictionary is actually the most flexible representation. It is possible to create different interfaces on top of it. Check this blog post for some examples.
If I edit my dodo.py file and re-run doit, and my tasks are otherwise up-to-date, the modified tasks are not re-run.
While developing your tasks it is recommended to use doit forget after you change your tasks or use doit --always-run.
In case you really want, you will need to explicitly add the dodo.py in file_dep of your tasks manually.
If dodo.py was an implicit file_dep:
- how would you disable it?
- should imported files from your dodo.py also be a file_dep?
A file_dep is considered to not be up-to-date when the content of the file changes. But what is a folder change? Some people expect it to be a change in any of its containing files (for this case see question below). Others expect it to be whether the folder exist or not, or if a new file was added or removed from the folder (for these cases you should implement a custom uptodate (check the API).