Some years ago I decided to write my own environment / module system called cpenv to help manage our studio’s software, tools, and plugins. At the time rez had little to no documentation and no windows support - that was a big factor in deciding to roll my own. Recently, I was considering switching to rez, but after having invested so much time in building cpenv and our library of modules I ended up sticking with it and refactoring it to support remote repositories, including shotgun through the use of custom entities and zip archives.
Cpenv doesn’t manage the complexities of platform specific dependencies, and does not have an exhaustive dependency resolver like rez. I love those features of rez, but it was also more than I needed to manage our mostly windows based studio. Anyways, I built a toolkit app for cpenv recently that I think, if there were a similar app for rez it would really lower the point of entry for setting up a studio with rez. Heck, it would probably make me reconsider my time and switch to rez.
The key features of the shotgun app are:
- Ability to store and distribute modules via Shotgun
- Ability to configure Environments (collections of modules) per job and per application
- Environments can be imported from another job
- Modules are localized and activated prior to launching software
You can check out the toolkit app here and cpenv here.
I would love for this sort of workflow to be built into Shotgun, but the fact that it was possible to build this on top of toolkit in a relatively short period of time was excellent. I’m not trying to advertise cpenv, only to share my own experience with building / working with a rez-like tool, and maybe my app could be decent reference if anyone goes down a similar path with rez. I can’t recommend enough building a UI to help leads and TDs manage environments for jobs.