Where to put/use changes to an app in 'installs/app_store'

I’;ve looked through the docs, and possibly not enough, but that’s being overwhelmed for you. I made changes to the tk_nuke_quickreview app in config/install/app_store. Sure it works fine from there, but I feel my noobie, grubby fingers shouldn’t be sullying this directory, and I should be copying my hacks somewhere else, and then updating a YAML file so SG/Flow points to this updated version.

Where should I put my hacked up tk_nuke_quickreview, and which YAML file do I need to update to ensure SG/Flow uses my hackery?

Thank you very much in advance for any and all help. Someday, I too shall be helpful to others on this forum, when I actually have productive answers to add.

-ctj

Indeed, do not touch anything in app_store.

The proper way to do this:

  • Fork the app on github and clone your fork to a local place; if in a studio, this should be reachable on the network.
  • In your config, either use path descriptors or your own git server, if there is one. Look for where app have their location defined (in newer configs it’s all separated in apps.yml or similar)
  • Run ./tank cache_apps from the project directory

There are some variations - the app can either be installed into install/apps (not app_store), or read directly from a shared directory (path descriptor).

It’s all in the docs, but you need to dig a bit to get it fully working
https://help.autodesk.com/view/SGDEV/ENU/?guid=SGD_pg_developer_pg_sgtk_developer_app_html

Thank you @mmoshev for your quick response, and sorry for my delayed response.

Still a couple points of clarification, if you don’t mind.

So, I grab the tk-nuke-quickreview app from the app_store location, copy it to my /config/hooks/ location, so I can bend it to my will and not worry about messing anything up in installs.

I then, since I don’t see app.yml anywhere, I’m assuming I need to look at the entry for this app in /config/env/includes/app_locations.yml to update the app location?

Thank you for your help.

-ctj

Close, but not exactly. You clone tk-nuke-quickreview somewhere on your shared network, outside of the config dir. We have a directory e.g. z:/code/shotgun-repos for all forked apps.
Then you point your app to be loaded from there. app_locations.yml sounds about right.
In the end your location will look like this:

apps.btl-blender-preview.location:
  type: path
  windows_path: z:/code/shotgun-repos/btl-blender-preview
  linux_path: /projects/_pipeline/lib/btl-blender-preview

And you reference it like so:

  tk-blender:
    location: '@engines.tk-blender.location'
    apps:
      tk-multi-about: '@about'
      btl-blender-preview:
        location: '@apps.btl-blender-preview.location'

The exact structure varies from config to config.
A path descriptor points straight to the path, but you also have the option of specifying a git descriptor, which can be a url of a git forge. In this case, the app will be cloned into install/apps. (not sure of the exact behavior as we haven’t used this yet, though we have a git forge/server)

Thank you very much. That makes a lot of sense.