Hello Callum & other devs!
I am happy that you have heard the community again
As I read this topic, questions so far have been mostly focused on migrating the settings between the versions.
I would like to bring up a few thoughts that represent this issue from admin-user point of view.
In our company we have many users and ideally we want to control their installations to certain extent.
We would like to ensure that all installations are on same SR, we would like them to have same set of aliases, maybe keyboard shortcuts, etc. and all that with minimal amount of administration.
Our problem has two chapters - 1) installations to new computers and 2) maintenance of the existing installations. Each of those has even more details to it. I try to describe what I can.
1) NEW INSTALLATIONS
We had to spend some time aligning with our IT so that they always install Rhino with automatic updates off. (Sidetrack: I would still swear that my Rhino version had an update pushed a couple of times even with that setting. Do you from time to time force update when you uncover serious bug in Rhino? Now back to the topic…)
So we have all Rhino’s installed with updates off and in our internal documentation we have “latest verified SR” where we are confident enough to say that all the tools (mainly GH scripts) are working as intended. That is the version that out IT will install. After installing Rhino itself, IT has to do some more settings to get something we call “valid installation”: they have to install all GH plugins we use, again in verified versions (we can’t automatically accept the latest), in relation to that they must turn off automatic plugin updates in Package Manager and install our custom common Rhino aliases. I can imagine there might be more custom settings in the future (eg. local .yak source, display mode settings, render materials, etc.)
The key conclusion I made is this: we would ideally need an ability to turn existing “template” installation into an “installation image”, that could be deployed onto new computer/user without having to do all of this step-by-step. Or, alternatively, setup a functionality from 2) that follows, which might also do the trick after vanilla Rhino is installed.
2) MAINTAINING EXISTING INSTALLATIONS
Once user has Rhino installed and set up as above, we are struggling to keep everyone updated once something in the initial setup changes. For example - when aliases change, we have made script that updates them using source files in a server folder, that user can run. With GH plugins, it is more complicated. We tried to use an .exe that would kill Rhino, move predefined set of plugins from server folder to user’s computer and thereby install the versions we determine, but we had issues with permissions and some more problems.
All the sub-optimal solutions above have one thing in common - we have to prompt user to do something, or make IT assistant connect to each computer and do it (no-go). In ideal case, we would need to connect each installation to some kind of setting file (yes, that could be the .rhs) that would be fetched everytime Rhino starts, if the timestamp of the .rhs file changes. That way we would only be able to maintain one settings “image” and distribution would be automatic.
It could also partially replace the “installation image” described in 1), as long as we are able to install new Rhino with some kind of “settings path”. Worst case the definition of this “settings path” would be the only manual step done by IT and then the rest would be fetched from then on. In ideal case we would like to predefine it somehow, so that Rhino installations can be fully automated via Company Portal or whatever they use. I can get more info if needed.
So as I see it, the way of lowest resistance would be to allow Rhino installation with optional “settings path” similar to Zoo server path, and then create a mechanism that can effectively fetch updated settings (no matter what exactly they contain).
Then there’s whole another discussion, and that is what all should be contained in settings image and how to solve conflicts with local user settings.
Admin wants to have complete control over certain settings and user wants to be able to set up anything he needs to work effectively. As half-user/half-admin I can understand both views.
I would appreciate some way to “lock” certain settings from the settings image while leaving the rest in control of user. For some content like Aliases or GH plugins we could (and that would be even more simple) lock anything that comes from image and leave the rest editable. That would effectively freeze our predefined aliases, but would still allow user to do his own. It would freeze versions of our essential GH plugins, but would allow user to install some more, if needed. I am sure you get the concept.
If any of the suggestions above made it to live version, that would be just perfect. I believe that we are not the only ones facing these challenges.