We are excited to release v1.1 of our integrations. This release includes a whole new take on our default configuration, updates to our new publisher, and updates to how the communication between Shotgun Desktop and Shotgun Web works.
Our default configuration has been updated to use the new Publisher, to take advantage of the new Software entity in Shotgun, and to make updating easier via a new organization. These changes allow a seamless transition for people using our integrations from running without a configuration to running with one.
We have also added new features to our new Publisher which make editing settings across multiple selections easier and give you the ability to embed custom UI for different types of publishes. Additionally we have updated the default hooks for the publisher so that they cover the functionality from the old default configuration while moving the engine specific logic into the engine itself.
The protocol for how Shotgun Desktop works with Shotgun Web has been updated. We have optimized the protocol so anybody running tools from within Shotgun should see a significant improvement in how quickly those menus are populated (note that we will need to recache the menus, which will happen when somebody first uses the update). The commands themselves now come from the tk-shotgun instance in the environment returned by the pick_environment core hook, which allows much more flexibility in deciding what menu items should show up where.
The new default configuration
The initial release of our out of the box integrations had a few features that were available as long as your project did not have a custom configuration. With our new default configuration, all the new functionality is available along with everything that was in our old configuration. This includes:
- An update to our project configuration wizard to make the new configuration available while preserving the ability to keep on using the tried and true configuration that we've had for years.
- A new directory structure that organizes the configuration into easier to find and easier to update files.
- An updated pick_environment hook that deprecates the use of the old shotgun_*.yml environment files.
- An update to use the new tk-multi-publisher2, with updated hooks that have been moved into the app and engines. The updated hooks are compatible with how the publisher works without a configuration, but adds in the extra functionality that becomes available once you have a configuration (such as the ability to publish our custom Nuke and Houdini nodes).
- The new hooks support publishing to a location specified via a template.
- The new hooks are implemented in their corresponding engine (e.g. in tk-maya for Maya).
For more information on the default configuration changes, please see our Default Configuration Update FAQ.
We've finished up some features that will make our new publisher more powerful and easier to use:
- You can now add custom UI to a type of publish to give artists the power to control aspects of the publish.
- It is now possible to set common settings (such as thumbnail and description) across multiple publish items at the same time.
- Toolkits let you know the details about warnings and errors without needing to switch over to the log view.
Websocket protocol updates
Last but not least, with this release we are enabling an update to the protocol that Shotgun Web uses to populate its action menus and that implements local file linking. The protocol updates speed up the way we populate these menus and implements a more flexible environment lookup. Now rather than looking for an environment corresponding to the Shotgun entity type a menu is displaying (such as shotgun_asset.yml) we use the pick environment core hook to find an environment containing an instance of the tk-shotgun engine and use the configuration of that engine to populate the menu. For example, you can now have a different launchers for Asset versus Shot tasks, or different launchers per pipeline step.
The old protocol is still available via an environment variable (SHOTGUN_ENABLE_LEGACY_BROWSER_INTEGRATION_WORKAROUND) if you want to compare the old behavior to the new. Note that the old protocol requires shotgun_asset.yml style environment files to populate the menus in Shotgun, which the new default protocol does not have. This fallback is only compatible with the legacy configuration.
- Path cache optimizations. Removed inner loop for secondary entities and batched find queries into smaller chunks. 
- synchronize_folders command was looking at every FilesystemLocation entity on the site, causing large sync times when there were a lot of entities. This optimization ensures that performing a full sync of the path cache now only considers FilesystemLocation entities that belong to the current project. 
- Introduced the SHOTGUN_DISABLE_APPSTORE_ACCESS environment variable to disable all attempts to talk to the Shotgun app store. 
- Updated pipeline_configuration.yml, shotgun.yml, interpreter_*.cfg, tank, and tank.bat for compatibility with Rez style environment management. 
- Previously, when an unhandled exception bubbled up, we replied to the web app with the full exception stack. This fix ensures we reply with a general error message and log the full exception. If debug logging is turned on, we do still reply with the full exception. 
- Nuke read node frame ranges were not set when loaded from the loader app when templates were not available. This fix ensures we correctly determine the start/end frame of an image sequence, regardless of whether a template can be used to parse the file name or not. 
- unregister_folders command failed when unregistered a large amount of folders. This fix resolves that issue by batching up any large deletions into batched sql queries where 200 items are deleted at a time. 
- v0000 files were incorrectly being published as v1. This fix publishes the correct name. 
- Files with UTF-8 characters were not supported. This fix enables the publishing of files with UTF-8 characters. 
- Descriptors had no flexibility in where they could be cached. This fix introduced the SHOTGUN_BUNDLE_CACHE_PATH environment variable to allow control over where descriptors are cached. 
- Hook templates were breaking. This fix ensures hook templates from run properly.