I’ve never managed to get ‘Submit for publish’ in Nuke working. I’m trying to dig into the code to find a fix but my journey into the SG .py files has revealed an interesting tangle of files inheriting data from (to my untrained eye) obscure sources.
So question 1:
What’s the best way of navigating up the hereditary stream? I get as far as ‘HookBaseClass’ then am a bit lost.
The SG dev tutorials and docs do shed some light, but I’ve yet to get a clear method of approach when fixing something.
My current problem is getting the submit for review working in Nuke.
I’m getting this error in Nuke’s SG publish GUI:
Traceback (most recent call last): File "C:\Users\STEVE\AppData\Roaming\Shotgun\bundle_cache\app_store\tk-multi-publish2\v2.4.1\python\tk_multi_publish2\api\plugins\publish_plugin_instance.py", line 282, in _handle_plugin_error yield File "C:\Users\STEVE\AppData\Roaming\Shotgun\bundle_cache\app_store\tk-multi-publish2\v2.4.1\python\tk_multi_publish2\api\plugins\publish_plugin_instance.py", line 198, in run_publish self._hook_instance.publish(settings, item) File "C:\Users\STEVE\AppData\Roaming\Shotgun\bundle_cache\app_store\tk-nuke\v0.12.5\hooks\tk-multi-publish2\basic\submit_for_review.py", line 272, in publish raise Exception("Review submission failed. Could not render and " Exception: Review submission failed. Could not render and submit the review associated sequence.
Also get this exception:
'sg_publish_data' was not found in the item's properties. Review Submission for 'path/to/sequences/AB/AB_001/comp/work/images/AB_001_comp_v002_output/AB_001_comp_v002_output.%04d.jpg' failed. This property must be set by a publish plugin that has run before this one.
So it’s looking in ‘publish_plugin_instance.py’ for:
_handle_plugin_error yield run_publish self._hook_instance.publish(settings, item)
I can find these in my local Appdata folder but not in my main install so I’m assuming that I need to look in ‘submit_for_review.py’ to get at this problem.
Looking at this file I can see that its sucking settings and info for the item from higher up the hereditary chain ‘HookBaseClass’.
So looking for where the ‘sg_publish_data’ is set in ‘submit_for_review.py’ I see line 225:
sg_publish_data = item.properties.get("sg_publish_data")
So where upstream is ‘item.properties’ is being set? I suspect in the nuke collector.py but ‘sg_publish_data’ is not present in there and is also a child of the ‘HookBaseClass’
Any insights into this would be gratefully appreciated.