How do I add the new publisher (tk-multi-publish2) to a configuration?

Summary

We recently released our next generation Publisher, which is used in the configuration that Shotgun now runs for any project without its own explicit configuration.  This article walks you through how to include the new publisher into an existing configuration.

Update the environment

The first step is to update the environment files you want to use the new publisher in to include the new app.  An easy way to make sure that the configuration of the new publisher is easy to reuse between environments is to introduce a new file that can be included where you need it.

This file could be something like includes/tk-multi-publish2.yml and could look something like this:

# A mapping of SG publish types to file extensions. The basic file publisher
# will use the publish type matching the extension if it exists in this list,
# otherwise, the publish type will simply be the extension + " File". To
# associate other extensions with existing publish types or to add new Publish
# types, simply update the list below. The format is:
# - [Publish Type, ext1, ext2, ext3, ...]
publish_type_to_extensions: &file_types
  - [Alembic Cache, abc]
  - [3dsmax Scene, max]
  - [NukeStudio Project, hrox]
  - [Houdini Scene, hip, hipnc]
  - [Maya Scene, ma, mb]
  - [Nuke Script, nk]
  - [Photoshop Image, psd, psb]
  - [Rendered Image, dpx, exr]
  - [Texture, tiff, tx, tga, dds]
  - [Image, jpeg, jpg, png]
  - [Movie, mov, mp4]

common.settings.tk-multi-publish2.publish_file:
  name: Publish to Shotgun
  hook: "{config}/tk-multi-publish2/basic/publish_file.py"
  settings:
    File Types: *file_types

common.settings.tk-multi-publish2.upload_version:
  name: Upload for review
  hook: "{config}/tk-multi-publish2/basic/upload_version.py"
  settings: {}

You can always see what this looks like in the actual implementation in our basic configuration.

Once you have that you actually need to add the new publisher to the environments you want it to show up in.  You can do that by adding a tk-multi-publish2 instance to the appropriate YAML file.  For example in project.yml you could add something like this:

# include the multi-publish2 settings
- ./includes/tk-multi-publish2.yml 
# standalone publishing
 tk-multi-publish2:
   collector: "{config}/tk-multi-publish2/basic/collector.py"
   publish_plugins:
     - '@common.settings.tk-multi-publish2.publish_file'
     - '@common.settings.tk-multi-publish2.upload_version'
   help_url: "https://support.shotgunsoftware.com/hc/en-us/articles/115000067473#Publisher"
   location:
     type: app_store
     version: v1.1.6
     name: tk-multi-publish2

You can see what this looks like in action in our basic configuration's project settings.  For a more complicated setup that uses more of basic hooks, you can see how this is used in our basic configuration's maya settings.

You can add snippets like the above to all the appropriate engine's apps configuration in all the appropriate environments.

Copy the new publish hooks and needed icons

In order for the new app to load the standalone publish2 hooks, those hooks need to be copied into the configuration's hooks folder.  If you want to use the same hooks that we run when you don't have a dedicated configuration, you can copy them from the hooks directory of our basic config.  If you copy the whole tk-multi-publish2 folder from within that hooks directory, the above settings will work for you and you will also be copying over all the icons the configuration needs.

Update core, apps, and frameworks

The only other step required is to ensure you have a newer version of core, the most recent publisher app and shotgunutils/qtwidgets frameworks installed. You can update the apps and frameworks on the command line lik this:

tank updates project tk-desktop

although substitute the environments you want to update for project and substitute the engines you want to update for tk-desktop.

When prompted to update tk-multi-publish2 or the frameworks, be sure to type y and then press Enter.

We recommend updating to the latest core to receive the latest bug fixes. To do this run the following:

tank core

To update to a specific version, you can use the -v flag to be explicit. The minimum version required to run the new publisher is v0.18.83.

Important Note

The new publisher is not backward compatible with the older publisher. The new publish plugin's hooks are written to work with the basic Shotgun integrations in mind and have no knowledge of templates. If you are interested in learning more about how to implement the new publish hooks, please reference the hooks in the basic configuration or send an email to support@shotgunsoftware.com.

Follow

3 Comments

  • 0
    Avatar
    Janice Barlow Collier

    Probably important to mention what version of the SGTK Core is required to add the standalone publisher to an existing project, in case people are working with older Cores (I know I am right now ;), or with shows with localized Cores that can't be moved up for one reason or another.

  • 0
    Avatar
    Josh Tomlinson

    Thanks Janice! I updated the article. Please let me know if you see anything else that needs clarification!

    -Josh T.

  • 0
    Avatar
    Janice Barlow Collier

    Thanks, Josh! I know you're right on this stuff and I appreciate it!

Please sign in to leave a comment.