Tank command to download apps without updating configs

Is there a tank command to download updates for engines and apps without it trying to update the config ymls?

All my configs are checked into perforce so the tank command can’t edit them anyway.

I just want a quick way to download the latest versions so I can start porting the changes I’ve made to about half the apps in the app store at this point.

3 Likes

Hi Joe – I’m afraid there isn’t anything like that. tank cache_apps doesn’t modify your config, but it relies on the version in the config to determine what to download, ie it doesn’t download the latest.

You could always create a dummy config solely for the purpose of downloading the latest bundles – you can safely run tank updates on it without breaking your production pipeline.

I’ll mention also, if you have multiple pipeline configs using a shared core, their apps/engines will also be downloaded to the same place. For example, if you have two projects sharing the same tk-core that are on, say, v0.11.15 and v0.12.0 of tk-multi-workfiles2, respectively, in the shared core location you’ll have:

install/app_store/tk-multi-workfiles2/
|-v0.11.15
|-v0.12.0

So with this, you could store all versions of the bundles together – both for your production config and your sandbox one. Note that shared cores have different behavior between their attached projects’ core versions and app/engine versions – there is only ever one copy of tk-core in a shared core, and updating it for one project updates it for all, but multiple versions of app/engines are stored, and whatever versions are specified in a project’s config will be used. More on shared cores here.

3 Likes

We do use shared cores but probably not in the way you’re expecting.

Dev configs for all projects use one shared core and Primary Configs for all projects use another shared core.

I install everything to my local dev config then submit the apps/core to perforce.
They then get p4 synced to a network folder that the primary config is pointing to.

I think I can pull enough code out of the install.py command to brute force download everything.

3 Likes

One other thing you could do is take a look at this dev script in tk-core.

I’ve not tried, but I think you can pass a config descriptor URI and it will populate the bundle cache.

So you could in a script, set the SHOTGUN_BUNDLE_CACHE_PATH env var to a temporary location, then run the script and pass a config descriptor URI to the latest version of tk-config-default2 (either from our app store or from the GitHub release, something like sgtk:descriptor:app_store?name=tk-config-deefault2&version=v1.3.2). And it would pull all dependencies down to your chosen folder (not just updates unfortunately.)

Tbh, I’m not sure if this would be any more helpful, but I thought it was worth pointing the script out in case that gave you some more ideas.

3 Likes