We're getting ready to move forward with some long-discussed changes to the Shotgun entity structure that Tank uses. These changes were motivated by a thread on the shotgun-dev mailing list that initially centered on support in Shotgun and Screening Room for multiple (i.e. more than two) files/formats/representations on a Version, but quickly evolved into a larger discussion about the relationship between publishes and review content. It became clear that some official Shotgun schema was needed to help represent the fact that published data will also want to act directly as a representation on something being reviewed and it would in turn be valuable to backtrack from something being reviewed to the published data that it originated from, including any and all upstream dependencies. In addition, it would be key for this schema to be as pipeline-agnostic as possible, allowing tools provided by Shotgun for publishing (Tank) and review (Screening Room) to coexist with similar tools built within our client studios.
Shotgun 5.0 introduces three new entities: Published File, Published File Type, and Published File Dependency. From the Tank perspective, these entities will replace the currently-used Tank-specific entity names, with some slight tweaks along with official fields to link them to Versions that lay the groundwork for future development on support for viewing multiple representations in Screening Room. Please see the attached spec diagram for a full rundown on the new entities and fields. The goal is to make the Shotgun structure official early for clients interested in doing their own integration as well allow us to make the relevant updates to Tank as early as we can so that the Screening Room development won't have to worry about Tank following suit when the time comes.
It's taken us a while to line things up, but the time to make this change is nearly here on the Tank side, and it's time to get the word out so it doesn't come as a surprise!
The Tank team is currently finishing up v0.14 of the Tank core, which will include a migration command that will copy any publishes from the Tank-specific entities to the new generic entities. This means existing publishes will (at least temporarily) be logged in two places - both the old and new entities - until you verify the migration and disable the old entity in Shotgun's Site Preferences. The Tank-specific entities will eventually be deprecated in a future release of Shotgun, but we will hold off on scheduling that until we feel certain that all clients have migrated over safely.
So, what happens next and how will the changes be deployed? Once we've released Tank v0.14, you'll need to step through the following:
Upgrade the Tank Core to v0.14.
Enable the three new publish entities in Shotgun.
Run the migration command provided in Tank v0.14 through the shell engine. This will copy all of your Tank published data to the new publish entities and cause all subsequent publishes to use only the new entities. The migration command can be run on individual Projects or on all Projects at once.
After you've performed the migration and are happy with the results, you will then need to disable the Tank-specific entities in Shotgun to avoid confusion. You will also need to make sure the relevant Shotgun page layouts are updated to display the new publish entities.
We'll post more detailed instructions on how to smoothly upgrade to v0.14 and run the migration at release time, as well as outline different scenarios for testing and deployment that studios will likely encounter. Our aim is to do everything in our power to make sure the migration goes safely, and our clients feel comfortable with the changes at each step of the way. As always, if you have any questions, comments or concerns about the upgrade (or anything else!), don't hesitate to get in touch with us via firstname.lastname@example.org.