If you’re using a centralized config setup via the SG Desktop advanced setup wizard then the PipelineConfiguration
entity will have the Windows, Mac, and Linux path fields filled in. These paths point to the root of the configuration which should look like this:
If you are using the PipelineConfiguration
entity’s descriptor field instead of the Windows, Mac, and Linux path fields, and the descriptor should point to a source that contains only the uninstantiated config. Such as this: GitHub - shotgunsoftware/tk-config-default2: The second generation default configuration for ShotGrid Toolkit..
So you are correct in a way, because the “config” folder in a centralized setup is the config that you need to point to in a descriptor based setup. However, when I say uninstantiated, I mean that the config folder should contain the following files:
./core/pipeline_configuration.yml
./core/interpreter_{OS name}.cfg
./core/install_location.yml
./core/shotgun.yml
And the roots.yml
usually doesn’t have the actual paths filled in.
So in short what you were saying is correct. Though a PipelineConfiguration
setup with a descriptor only needs the config folder, and not the install, cache, tank file.
Studio config is not really a very well defined term, unfortunately. I’m not quite sure on the context around where you saw it mentioned, but it can sometimes be refer to a shared core. A shared core being where you have run tank share_core /some_path/studio
and set up a “studio” core that all other configs would be attached to. A shared core means that you share the tk-core
API, the bundle cache (ie all downloaded apps, engines, and frameworks), and some small specific elements of the config. However, the project specific configs attached to this shared core, still maintain their own separate configuration file such as schema, template environment YAML files.
There isn’t a concept of overriding settings at a project specific level from the shared core. Though overriding hooks without changing the config is something we have thought about before, I’ll forward this on to our feature request portal.
I guess a Studio config could also refer to maybe a site config, which is a non project-specific config that will be used by default by all projects unless they have their own config, which is maybe what you’re referring to as a studio config?
I think what your mentioning there makes sense. Might worth taking a look at this:
I’ve not used this syntax before either actually, so I’m not totally sure, but the path variable bit (git@gitlab:companyGitName/folder/repoName
) is purely git syntax and nothing specific to Toolkit.
I’m not familiar with that method, and it doesn’t appear to be in our API documentation, however, I think the question would be more would it work with a distributed config vs a classic installed config. I tested it with a project using a dev path descriptor and that work fine, so I think the answer would be yes. The config would have to be bootstrapped before you could make such a call, and once it’s bootstrapped it’s cached locally and no longer in git.
Summary
It sounds to me like you are considering switching from a classic installed config, also sometimes referred to as a centralized config, to a distributed config setup. And you are thinking of having a site config so all projects work off the same configuration by default?