Updating tools and apps - Part 1 (ADN article)

Written by Sergio Leon and Felix Kinaro

Introduction

As you know, the Toolkit consists of a number of tools and apps, many of them installed by default in a project. The toolkit includes the Core functionality, frameworks, engines like tk-maya or tk-nuke, and many apps. Keeping your Flow Production Tracking (FPTR) toolkit apps up-to-date is crucial for maintaining a stable and efficient pipeline. This guide will take you through different methods of updating your toolkit components, some common challenges, and best practices.

Pipeline configurations

Any project in FPTR will have at least one configuration. A configuration can be shared between projects. The configuration controls aspects of the UI, Flow Production Tracking apps and tools installed that are necessary to support a production pipeline. The configuration is defined using a set of folders and files that include YAML files, templates, or resources. This collection of files can also be referred to as a Pipeline Configuration.

The configuration contains several YAML files, which define which apps, engines and frameworks will be used, and their settings under different contexts (e.g., asset, shot, sequence).

Pipeline configurations can be listed on the web UI under: ADMIN Menu → Default Layout → Pipeline Configuration → Pipeline Configuration List.

The main configuration for a project is usually named ‘Primary’. A project configuration can be cloned from another project, or it may be created based on the Toolkit’s Basic Configuration (tk-config-basic) or Default Configuration (tk-config-default2). This last one includes the default settings of most recent version apps. You can check here a comparative between the basic and the default configuration:

You can check the list of apps or engines in this table:

A guide on how to use the default configuration can be found here:

A project’s configuration can be stored in a shared location or have it stored in the cloud with FPTR. This is what we call a distributed configuration. When we use a distributed configuration, the configuration files are downloaded, cached, and maintained automatically. In a centralized configuration, the files are stored locally in a shared location; users will have access to them.

Note that in the configuration files, we will find an ‘install’ folder, containing the downloaded apps, frameworks, and engines defined by the configuration. This folder, also called bundle cache, is downloaded from locations such as the Flow Production Tracking App Store, git or from your Flow Production Tracking site.

The following documentation provides guides on how to create a default project configuration, and how to edit or set it up to ensure a flexible and context-sensitive workflow.

Automatic Updates

Flow Production Tracking Desktop is designed to automatically check for and install updates to key Toolkit components each time it launches. This ensures that users running the default setup always have the most recent, stable configuration without manual intervention.

By default, the system updates the following:

When new versions are available, they are downloaded and stored in the user’s local cache (app_store). This approach ensures that the global application files remain unchanged, while updates are applied safely to the user environment.

It’s important to note that automatic updates apply only to the default site configuration. If your studio uses a custom pipeline configuration, has pinned versions, or loads apps and engines from a private source, Flow Production Tracking Desktop will respect those settings and will not automatically update your configuration.

More information can be found on Flow Production Tracking Admin Guide

What does not auto update:

Despite the automatic updates, there are some special cases where updates are not applied automatically. These cases are:

  1. If your studio has taken over and uses a custom site configuration (i.e., you’ve replaced the default tk-config-basic with your own Pipeline Configuration), then Desktop will not check for newer tk-config-basic updates.

  2. Projects that are not using the default site configuration (for example, where the Toolkit Advanced Setup Wizard has been run) will not have their configuration automatically updated

  3. Resources bundled with the Desktop installer (such as Python or Qt components) do not get updated via the auto-update mechanism.

Click here to find out more about this.

Using the Desktop App

Flow Production Tracking Desktop helps ensure you’re running the latest tools. When launched, the app checks the Flow Production Tracking App Store for updates to key components, specifically:

  • tk-framework-desktopstartup, which controls the startup process; and

  • tk-config-basic

If the application cannot connect to the App Store, it falls back to the most recent cached versions stored locally.

  1. Open the Desktop app.

  2. Select the project you’re working on.

  3. As the configuration loads, it will automatically download and apply updates for apps and engines based when they are based on tk-config-basic and the pipeline configuration descriptor is not set to a specific version.

Consider this documentation about the FPTR Desktop app startup:

By leveraging these automatic processes and understanding the nuances of the update mechanism, you can maintain an up-to-date and efficient production environment with minimal effort. It is possible to define a descriptor pointing to a fixed configuration version and stop auto-updates. With this version number omitted in the Descriptor field, the project would track the latest release of the basic config.

Here is a detailed guide to this process.

Note, that there are cases where there is no auto-update:

  • If you have taken over a site configuration, then it won’t check for newer tk-config-basic updates. Still FPTR Desktop will update tk-framework-desktopstartup stored locally, and dependences with it in the configuration.

  • Any projects that aren’t using the default site configuration (I.e. a project where the Toolkit advanced setup wizard has been run on it) will not have their configuration auto updated.

  • Resources such as Python and QT that come bundled with Flow Production Tracking Desktop, don’t auto update. We occasionally release new Flow Production Tracking Desktop installers when we need to update these parts.

Here is a sample of what you see when an automatic update happens. Consider this message unfortunatelly does not specify which specific project was updated related tk-config-basic

This message stays on top of FPTR Desktop app, and can be misleading. The first message, “Flow Production Tracking” has been update points to https://community.shotgridsoftware.com/t/a-new-version-of-tk-framework-desktopstartup-has-been-released/13650/31. Indicates tk-framework-desktopstartup is updated.

The second message points to https://community.shotgridsoftware.com/t/a-new-version-of-tk-config-basic-has-been-released/20186/4. It indicates tk-config-basic, used as the default site configuration, has been updated. This does not imply that your project configuration has been updated, expects if it depends on tk-config-basic. Be aware that the tk-config-basic and tk-config-default2 are two different components, as we mentioned before. The releases are synched by our engineering team and versioned for convenience, but there is no dependency between them. When FPT Desktop app starts, it first selects a site-level config, then switches to a project-level config (if one exists), otherwise it uses defaults.

The site configuration will be by default tk-config-basic. This can be modified, when in FTPR we define a pipeline configuration with its field ‘Project’ empty. This way it will be used by all projects without a pipeline configuration. If this Pipeline Configuration entity exists on your site, default auto-update behavior stops, and the app uses explicitly the defined configs instead.

To change the site-level configuration, you can follow this guide, https://community.shotgridsoftware.com/t/shared-project-configs/3284