first I would like to say, that i find the idea of renku very cool and I’m very excited about the project. I have been working with renku for a few days now and have some notes/questions. I have been trying to move projects to renku but it has been giving me quite a hard time:) I think the overall issue is that, while the concepts work well in theory, real repos are much more messy and require prototyping and sandboxing. If the repo is not super clean and thought through from the beginning, it is often super complicated to get the desired results. I’m sure that a lot of issues I had, can be resolved easily if I would only know how, so please let me know if my approach was wrong (and maybe add it to the docs:)). I was told you are keen to know feedback so I hope the following helps you (please let me know if I should submit this somewhere else):
I think it should be possible to run multiple “renku run” sessions in parallel (multiple terminals). I would even argue that this could be quite essential. Or at least you have to state very clearly in the documentation that this is not possible or maybe warn directly in the CLI. As far as I can tell the outcome of such a parallel session is just unknown (only one workflow will be recorded?). This is super annoying.
Renku run won’t detect the output if the file already exists but is updated. I have to test my code before I run
renku runso the output file probably already exists. Before running the code again I have to delete all output files first, so that renku will detect them. Couldn’t renku also detect if a file changes?
Can’t tag output parameters with
renku workflow iterate. I need to run a plan multiple times. My script generates a different output file based on its parameters (simply it downloads data from a remote database to local). If I autogenerate the output file name in the script, it won’t work because renku can’t detect that the output file name has changed slightly from the first workflow recording to the reexecution with different parameters. A solution here is to also add the output file name as an input parameter. Then I can simply specify the output file name for each execution. I need to iterate over a set of parameters, for which
renku workflow iteratewould be perfect. But I don’t wan’t a “grid search”-like execution so I wanted to use tags. But sadly tagging does not work with output parameters. The cli failes with
Error: Invalid parameter value - The value of 'output-3@tag1' parameter is neither a list nor templated variable!. Why?
No untracked files before running
renku run. While I see that this makes sense in a perfectly clean repo, it is super tedious in a more realistic real world setting. Often I have local test outputs, maybe some test scripts where I experiment, that I don’t want to push to the repo. The solution i found is to just put everying in gitignore, but it is still annoying.
Unsetting parameters from plans. I may want to add/remove a flag from a script/plan (upon reexecution via
iterate. This is currently not possible and I had to hack my way around it.
The documentation is a bit limited and could really benefit from more examples. I am working with someone from the SDSC so luckily I had direct support. E.g. Section Specifying in/outs programmatically were not clear to me at all and could really benefit from examples.
renku logjust dumps the log file to console. This is a bit annoying since then what I immediately see after running the command is the first ever activity. But what I’m probably more interested in is the most recent activity. To see this I have to scroll up a lot. I think it should use paging and initially just show the most recent activity. Check
git logfor a good example.
I often had to adapt my code/scripts to be able to run it via renku workflows. My usecase is probably not the most common (dataset creation), I still think renku should move towards a more seamless integration with existing project/tools. Otherwise the time overhead is just too much. Let me know if you need anymore details/more comments, I’ll be happy to help you improving renku!