I am using a test config. In shotgun panel in photoshop, usually a publish icon appears. Looking at log, it shows one among other lines an error
2023-06-27 06:06:11,032 [17004 ERROR sgtk.env.project.tk-photoshopcc] App configuration Error for tk-multi-publish2 (configured in environment ‘C:\code\config\config\env\shot_step.yml’). It will not be loaded: Invalid configuration setting ‘publish_plugins’ for tk-multi-publish2: The specified hook file ‘C:\code\config\config\hooks\T.py’ does not exist.
And their is a need to change in this app as I am taking a step to change review image format from jpg to exr.
Question is two fold
why is publish icon not appearing ?
Not able to understand the design of shotgrid. Where does it find the above T.py script ?
Answering this will help in better appreciating the way shotgrid is designed and ask less question in this context. Example, how to interpret this line. What is self and engine and what are they pointing to. ?
Hey, the icon is not showing because the app can not be loaded due to an error in the configuration. It references the not existing file. Inside config, you should not use absolut paths. You should use global constants.
{self} links to the app distributive path. In case of tk-multi-publish it will be something like
C:\Users\your_user\AppData\Roaming\Shotgun\bundle_cache\app_store\tk-multi-publish2\v2.6.3
{config} links to your current config location. In your case ‘C:\code\config\config'
{engine} links to the engine distributive. For example
C:\Users\your_user\AppData\Roaming\Shotgun\bundle_cache\app_store\tk-3dsmax\v1.2.4
All those links are interpreted dynamically during the config load and depending on the user’s system paths.
In your case to find an error, just search through your tk-multi-publish.py file this string C:\code\config\config\hooks\T.py it is there
thank you @grover_gol. I need to modify “{self}/upload_version.py” in tk-multi-publish2, say. {self} you say is a link to app distributive path. It points to
C:\Users\your_user\AppData\Roaming\Shotgun\bundle_cache\app_store\tk-multi-publish2\v2.6.3
self always points to the directory of the app. In your case it’s tk-multi-piblish2. If you want to modify the app itself you must “take over” the app. If you want to modify only the hook, you must copy the original hook to your configuration hooks folder and reference the config to it.
For example, I use the original app, I do not take it over. But I override hooks.
my app_locations.yml has this: