Updating app versions with a distributed config

Hi, I’m just curious how other people are handling updates to the built in app_store apps in their pipeline configurations.

We keep a global pipeline configuration in git that we can zip up and upload to each shotgun project when we want to update it. Currently all the versions in app_locations.yml date back to when we first created the configuration. I keep noticing all the new versions of the apps getting downloaded but I assume we’re not making use of them until I manually go through app_locations.yml and bump the versions up? Are other people just updating these versions numbers manually in the pipeline configuration?

thanks

1 Like

Hello @matt_ce

In our case (tiny studio) we are updating those app-store versions whenever the new version was tested on a pipeline/develpoment project so that we can make sure nothing breaks but usually upoi can already know this by checking the code changes on the new release.

We don’t always update the versions on a specific project unless it was a bugfix that suits us. I would say that depending on the resources you have for handling your pipeline you could get away by updating the apps versions from the app-store when you are starting a new project/config but again doing this update is pretty as well during shows and if you do tag your repo config then reverting back to old configs if something is wrong it’s pretty simple (imho).

1 Like

This post might help. Check out the screengrab in point 2. There is a “Check for config updates” option.

2 Likes

I had never noticed that ‘check for updates’ before, that’s great! Thanks.

2 Likes

I should have mentioned that you can also use the API if you want to get fancy and automate the stuff. You could run the following in the Shotgun Python Console (although annoyingly it doesn’t actually output any update as it’s running.)

from pprint import pprint
# Get the update command
core_cmd = tk.get_command("updates")
# Optionaly list out the paramters the command accepts
pprint.pprint( core_cmd.parameters)
# Update the currently loaded config,.
# Note this only makes sense if you are using a dev descriptor or are using a centralized config.
core_cmd.execute({})
# Update a config as specified by a path
core_cmd.execute({"external":"/Users/philips1/Downloads/config 2"})

Or you could have a script that bootstraps your config and then runs this command.

1 Like