Hi, I’m not aware of such a tool, but definitely, your steps described here make sense.
You should be able to create a bot which is started with a directory path as input containing all the bots subject for the update, then:
Explore every conda.yaml and check the version of the libs you want to update against a pre-set configuration.
For every outdated version, just replace it with the desired one.
Commit changes, push, then use rcc to upload the bot to CR.
Still, you might need some sort of sanity check to ensure that the newly updated bot still works as expected. Maybe triggering a Process in CR which does some end-to-end integration testing so you’re ensured that the newly updated version doesn’t make the bot crash. (and maybe you should do that from a separate branch before pushing directly into master without knowing first if the bot is going to succeed or not)
You can find the latest released versions right in our PyPI.
Thanks for the confirmation. I’m thinking something like Turbolift can take care of the first few steps. Then, as you mentioned, it would be smart to create a qa or staging branch to upload the new bot via rcc and trigger each process for E2E testing.
As a sidenote, I suppose triggering a process in the Control Room just for testing purposes is not ideal since the minutes are ultimately consumed and charged. Maybe running the entire process in github actions, if possible, could be a workaround, idk.