![]() |
PublishProvides UI and functionality to publish files to Shotgun. |

Documentation
Installation, Updates and Development
Configuration Options
Release Notes History
The Publish app allows artists to publish their work so that it can be used by artists downstream. It supports traditional publishing workflows within the artist’s content creation software as well as stand-alone publishing of any file on disk. When working in content creation software and using the basic Shotgun integration, the app will automatically discover and display items for the artist to publish. For more sophisticated production needs, studios can write custom publish plugins to drive artist workflows.
Documentation
Full documentation for the Publisher can be found here!
Related Apps and Documents
![]() |
LoaderThe Shotgun Loader lets you quickly overview and browse the files that you have published to Shotgun. A searchable tree view navigation system makes it easy to quickly get to the task, shot or asset that you are looking for and once there the loader shows a thumbnail based overview of all the publishes for that item. Through configurable hooks you can then easily reference or import a publish into your current scene. |
![]() |
Shotgun PanelThe Shotgun Panel lets you quickly access Shotgun information from an embedded panel. It provides easy access to information about the task that the user is currently working on and you have instant access to the activity stream, notes, tasks, versions and publishes. Play back versions sent to review by other members of your team. Reply to notes directly from inside your application. If you pipeline tracks dependency information, you can browse this directly from the Shotgun Panel as well. |
![]() |
Admin GuideThis is the Admin Guide for Shotgun Integrations. |
![]() |
User GuideThis is the User Guide for Shotgun Integrations. |
Installation and Updates
Adding this App to the Shotgun Pipeline Toolkit
If you want to add this app to Project XYZ, in an environment named asset, execute the following command:
> tank Project XYZ install_app asset tk-maya tk-multi-publish2
Updating to the latest version
If you already have this item installed in a project and you want to get the latest
version, you can run the update
command. You can either navigate to the
tank command that comes with that specific project, and run it there:
> cd /my_tank_configs/project_xyz > ./tank updates
Alternatively, you can run your studio tank
command and specify the project
name to tell it which project to run the update check for:
> tank Project XYZ updates
Collaboration and Evolution
![]() |
If you have access to the Shotgun Pipeline Toolkit, you also have access to the source code for all apps, engines and frameworks in Github where we store and manage them. Feel free to evolve these items; use them as a base for further independent development, make changes (and submit pull requests back to us!) or simply tinker with them to see how they have been built and how the toolkit works. You can access this code repository at https://github.com/shotgunsoftware/tk-multi-publish2. |
Special Requirements
- You need Shotgun Pipeline Toolkit Core API version v0.19.4 or higher to use this.
Configuration
Below is a summary of all the configuration settings used. These settings need to be defined in the environment file where you want to enable this App or Engine.
display_name
Type: str
Default Value: Publish
Description: Specify the name that should be used in menus and the main publish dialog
pre_publish
Type: hook
Default Value: {self}/pre_publish.py
Description: This hook defines logic to be executed before showing the publish dialog. There may be conditions that need to be checked before allowing the user to proceed to publishing.
validate_on_publish
Type: bool
Default Value: True
Description: If true (default), clicking the Publish button will execute the validation logic before publishing. If false, validation will be skipped. If false, and no validation has been manually triggered, a popup, confirmation dialog will be displayed before proceeding with the publish logic. NOTE: This is an advanced option. Setting this to 'false' will most likely break the shipped toolkit integrations which assume validation is always run before publishing.
task_required
Type: bool
Description: If true validates that a task is selected for every item and disables/enables the validate and publish buttons and finally change the color for the task label.
publish_plugins
Type: list
Default Value: [{u'hook': u'{self}/publish_file.py', u'name': u'Publish to Shotgun', u'settings': {}}, {u'hook': u'{self}/upload_version.py', u'name': u'Upload for review', u'settings': {}}]
Description: List of publish plugins.
post_phase
Type: hook
Default Value: {self}/post_phase.py
Description: A hook that defines logic to be executed after each phase of publish execution including validation, publish, and finalization. This allows for very specific curation and customization of the publish tree during a publish session. Serializing the publish tree to disk after validation, for example is possible via this hook.
path_info
Type: hook
Default Value: {self}/path_info.py
Description: This hook contains methods that are used during publishing to infer information from file paths. This includes version and frame number identification, publish display name, image sequence paths, etc.
modal
Type: bool
Description: If true the app dialog will be opened in modal window mode, else if false (default) the dialog will be opened in non-modal window mode.
help_url
Type: str
Description: The url to open when the 'help' button is clicked in the publisher. The url should typically lead to a page that outlines the studio's publishing workflow. If no url is provided, the help button will not be displayed.
display_action_name
Type: str
Default Value: Publish
Description: Shorter version of display_name setting, used as button name.
collector
Type: hook
Default Value: {self}/collector.py
Description: Logic for extracting items from the scene and from dropped files.
collector_settings
Type: dict
Description: Collector-specific configuration settings.
enable_manual_load
Type: bool
Default Value: True
Description: If true (default, normal operation), the user can interact with the main dialog to drop files or folders. The user can also use the browse buttons to select files or folders. When false, the feature basically disable the user ability to add anything to the project.
Release Notes
Welcome to the release notes for this App. Below you will find an overview of all the changes we did for each release. We try to be as detailed as possible and include all bugs we have fixed, features we have added and things that may have changed. If you have questions about a particular release, don't hesitate to contact our support team!
v2.5.5
2020-Nov-09
New pre-publish hook and minor UI style fixes.
Details:
- Adds a new hook pre_publish
to allow executing any custom logic or actions before showing the main publish dialog.
v2.5.4
2020-Aug-07
Feature to allow items to be passed to the plugin custom UI methods.
Details:
- Adds a feature, that passes the selected plugin's parent items through to the get_ui_settings()
, set_ui_settings()
, and create_settings_widget()
methods of the plugin hooks. As a result these three methods can now be defined with an additional items
argument in your plugins, though for backwards compatibility reasons it also works without defining the items
argument. This change now means custom plugin UIs can make use of knowing the item.context
and other settings.
v2.5.3
2020-May-29
Bug fixes and improvements to description inheritance and check states.
Details:
- Fixed a bug so that changing the check state of the items and tasks in the Publish UI now updates the underlying PublishItem
and PublishTask
instance check state as well.
- Bug fix and improvements around description inheritance. Descriptions set in the Publish UI are now inherited by child items no matter what level you set them at. Previously descriptions were only inherited when set in the summary, which was only available when there were more than one root item collected. On top of that, an item only inherits its description if it doesn't have a description set for itself. This means if you specifically set the description on a child item, and then change the parent item's description, the child item's description won't be overridden. There have also been some UI adjustments around this change to make it visually clearer about when an item is inheriting its description.
v2.5.2
2020-Apr-21
Fixes issues with parent checkboxes
Details: - When there are checked and unchecked children, the parent is now correctly set to PartiallyChecked - When a parent item is partially checked, clicking on it selects all the children (this was not working before)
v2.5.1
2020-Apr-15
Fixes a bug where the UI was being told to update when no UI was present.
v2.5.0
2020-Mar-16
Adds Python 3 support and a bug fix.
Updated minimum required core to be 0.19.4
Details:
As well as adding Python 3 support, this release also fixes a bug in the Publish API where it would attempt to update the UI even if there was no UI present.
v2.4.1
2019-Dec-06
Fixes a bug for the Tree.save
method, where it wouldn't throw the correct error if an object in the tree was not serializable.
v2.4.0
2019-Nov-13
Added a configuration option that can force users to assign a task to a publish.
Details:
If the task_required
application setting is set to True
, the publisher will validate that a task is selected for every item and will enable or disable the Validate
and Publish
buttons accordingly.
v2.3.9
2019-Oct-28
Two bugfixes and new publish types.
Details:
- Clicking the
Copy To Clipboard
action in the publisher logs will now copy text selection to the clipboard. - Publishing an item under a parent item that uses a file url will now properly create a Published File Dependency entity in Shotgun.
- Added support for VRED and Alias file formats in the publisher.
v2.3.8
2019-Sept-27
Adds support for uploading PDF files to Shotgun as reviewable Versions from the standalone publish app.
v2.3.8
2019-Sept-27
Adds support for uploading PDF files to Shotgun as reviewable Versions from the standalone publish app.
v2.3.7
2019-Aug-09
Reverts the logging change in v2.3.5, and includes the small fix from v2.3.6.
Details:
This reverts the logging change in v2.3.5 for the time being due to an unintended side effect. This release is now the first release to include the small VRED-related change to one signal/slot setup in the app. Functionally, this release is the same as v2.3.4 and only contains some behind-the-scenes tweaks.
v2.3.6
2019-Aug-08
Works around an issue with a signal/slot setup in VRED. There is no change in functionality with this release.
v2.3.5
2019-Jul-19
Now all logging is written to file.
Details:
Publish logging is now written to the standard loggers, including log files and console, and not just to the internal publish log console window.
v2.3.4
2019-May-6
Introduces the publish_fields
and publish_kwargs
properties on items.
Details:
The new publish_fields
property on publish items can be used to set arbitrary fields, including custom fields on publishes. The publish_kwargs
property on publish items can be used to set keyword arguments for the call to tank.util.register_publish
used to publish the item.
You can read more about these new properties here.
v2.3.3
2019-Mar-14
Improved the description in the documentation for the get_ui_settings
method, to hopefully make the method's purpose clearer. There is no change in app behaviour with this release.
v2.3.2
2019-Jan-16
Minor styling change for a button to fix an issue in Houdini 17.
Details:
Houdini's native stylesheet causes QToolButtons to be given a specific size that is too small in most situations. This change to the publish app sets a minimum size for an affected button so that it maintains a usable width in Houdini 17.
v2.3.1
2018-Dec-13
Very minor documentation typo correction.
Details:
No functional changes to the app. The only fix is for a typo in the documentation for the base publish plugin.
v2.3.0
2018-Nov-27
Fixes a serialization bug with templates and introduces the publish_user property on items.
Details:
The new publisher_user
property on publish items can be used to override the user resolution logic from sgtk.util.register_publish
. One use for this would be on a render farm to register a publish with the user who submitted the job and not the script user running the job.
You can read more about this new property here.
v2.2.2
2018-Nov-5
Publisher log messages in the UI are now colorized.
Details:
Thanks to jhultgre for your contribution.
v2.2.1
2018-Oct-29
Introduces the standalone publish API.
Details:
The standalone publish API allows you to do the same operations in a script that you can do with the Toolkit application. As such, you can entirely automate the publish process without any user interaction or use it on a render farm in order to automate the publication of rendered jobs.
To learn more about the api, you can visit this page.
v2.1.7
2018-Aug-31
Add items name in publish completed and finialize complete messages
v2.1.6
2018-May-20
Fixes an intermittent garbage collection issue.
v2.1.5
2018-May-15
Visibility now respected for plugin acceptance
v2.1.4
2018-May-04
Workaround to make the scrollback work properly for QT version 4
v2.1.3
2018-May-01
Workaround to make the scrollback work properly for QT version 4
v2.1.2
2018-Apr-26
Fixes regression related to sequence publishing
v2.1.1
2018-Apr-12
Makes common file info dictionary part of the base collector API
v2.1.0
2018-Apr-05
Adds local properties to publish items and updates base publish file plugin
v2.0.13
2018-Feb-08
QA fixes for setting to disable manual content load
v2.0.12
2018-Jan-16
QA fixes for thumbnail inheritance
v2.0.11
2018-Jan-11
Adds ability to view progress details in drag/drop view
v2.0.10
2018-Jan-10
Attempts to improve UX around image sequence publishing
v2.0.9
2018-Jan-05
Updated to use context selection widget from tk-framework-qtwidgets.
v2.0.8
2018-Jan-04
adds validate_on_publish setting which allows disabling of validation when Publish is clicked
v2.0.7
2018-Jan-02
Adds default custom widget for description and sphinx docs for the app
v2.0.6
Bug fixes:
- Items deleted will no longer show up in the list of items to publish after reloading
- Version uploads will now use the full filename as the version name. Prior to this, the version number was stripped.
Improvements
- Publish items will now show expand/collapse buttons
- You can now begin a new publish session without closing the app
New Features
- Adds two new configuration options:
display_name
: Like publish1, allows for control over the display name of the appdisplay_action_name
: Controls the action display name (the publish button)
v2.0.3
2017-Dec-06
Updated metrics logged
v2.0.2
2017-Nov-20
MoBu workflow and other misc QA fixes
v2.0.1
2017-Nov-15
Updates mobu item type in base collector
v2.0.0
2017-Nov-15
Features:
-
Support for template-based workflows
- base publish plugin now allows work & publish templates to be defined in item properties. will handle copy from work to publish location at publish time.
- if no templates defined, fall back to path_info hook logic
-
Custom UI for publish plugins
- adds new methods that can be implemented by publish plugins to display custom UI for publish settings
-
Added checkbox for contexts items (#43771)
- allows toggling of all items under publish context
-
Validation warning/errors available via item tooltips (#42764)
- Ability to open the log view from the summary overlay post publish (#42849)
Bug Fixes:
- Drag/drop disallowed for sub items (#43792)
- Fixed description inheritance bug (#43896)
- Fixed
icon_pixmap
bug for items (PR from adriankrupa)
v1.1.9
2017-Jul-31
Checks for failed or zero-size thumbnails.
Details:
This keeps us from plowing ahead and asking the SG API to upload a non existent or zero-size jpg file, which would cause it to fail ungracefully. Instead, we log the result and continue on without a thumbnail if a problem occurs and one can't be properly written to disk.
v1.1.8
2017-Jul-21
Addresses a bug that was causing unnecessary queries to populate related tasks when selecting an item on the left.
v1.1.7
2017-Jul-04
Updated minimum required core to be 0.18.72
v1.1.6
2017-Jun-06
doc updates
v1.1.5
2017-Jun-06
updated docs
v1.1.4
2017-May-26
Fix for authentication bug
v1.1.3
2017-May-26
small qa fixes for initial release
v1.1.2
2017-May-25
Reduce logging from the publisher
v1.1.1
2017-May-25
Ensure paths are normalized before comparing to identify conflicts
v1.1.0
2017-May-25
State management and context widget improvements
v1.0.1
2017-May-18
Adds browse button to toolbar and dnd screen, 3dsmax fix, fixes scroll bars and hyperlinks in descriptions
v1.0.0
2017-May-17
First Release Candidate.