How to keep up with Ayon updates?

Hello everyone,

So, you may update your Ayon server frequently to keep up with the recent features/enhancements/bugfixes.

In this guide I’m sharing my process to achieve that…
In essence,

  1. Update Ayon Server
  2. Get the latest Ayon Launcher
  3. Get the latest Addons

Update Ayon Server

If you are using our ayon-docker then it’s as simple as

cd your-ayon-docker-repo-clone
sudo docker compose pull
sudo docker compose up -d

Get the latest Ayon Launcher and Addons

Bootstrap will do the hard work for you :wink:

If you turned off everything, you’ll only get the launcher, dependencies, core addons and third part packages.

Get the latest Ayon Launcher and Addons yourself.

Sometimes you might do that to get the latest launcher and addons once they are released on Github.

But, be careful with that… we don’t sync github releases with ayon bootstrap, we keep testing them after their Github release to validate them for production.

Get Ayon Launcher manually

  1. Clone our Ayon Launcher Repo
  2. [optional] add your studio customization
  3. Follow Build instructions
  4. Upload Launcher to Ayon

Get the latest Ayon Addons

You can find the zip addon file in the releases page for each addon repo on our github.
or you can create the addon zip file yourself.

In essence, you need to export addons by a create_package.py and upload them to Ayon Server

Currently, Most addons live in OpenPype repo… but soon they will be separated.

Export Addons

Skip this part if you already have the addon zip file.

Steps:

  1. Go to the addon folder clone on your machine
  2. Run create_package.py

For OpenPype repo

python server_addon\create_ayon_addons.py 

For other repos that are already separated e.g. kitsu or shotgrid.

python create_ayon_addons.py 

create_ayon_addons.py has many flags: (this part is skippable … but, you’ll get use to it later on.)

--skip-zip : export files without zipping them.
--only-client : for addons that have client code and server code like kitsu, you can skip exporting the server code.
--addon : specify an addon to be exported, it expects one addon name afterwards. to specify multiple addons, use the flag multiple times.
--output : specify output folder. 

Example:
Export only Houdini and OpenPype addons from Openpype repo.

python server_addon\create_ayon_addons.py --addon houdini --addon openpype 

Upload Addons

Notes

Addons and Ayon Server compatibility

Some addons require some work on the server’s backend
which explains why some ayon server versions are not compatible with specific addon version.
Also, this explains why updating your ayon server solves some problems.

It’s considered to make a table to track which addon versions are compatible with which server version.

Specify Launcher Version

Don’t forget to specify it when creating new bundle.

Specify dependency package

Please Please Please, don’t forget to update the dependency package in bundle settings if needed.

Some addons require particular dependency packages
It’s considered to make a table to track specify which dependency package is compatible with which version of addons.

Deadline Ayon Plugin: Ayon Executables

[Good News] you don’t have to update ayon deadline plugin when adding new launcher to ayon server because ayon launcher takes care of that…
Although, I have only 1.0.0-beta.5 in ayon deadline settings but, in job log I can see that it uses the proper launcher version.

2023-12-05 18:10:36:  0: STDOUT: *** AYON [1.0.0-beta.6] 
2023-12-05 18:10:36:  0: STDOUT: >>> Using AYON from [ C:\Program Files\Ynput\AYON 1.0.0-beta.6 ]
2023-12-05 18:10:36:  0: STDOUT: ... AYON variant: [ production ]
2023-12-05 18:10:36:  0: STDOUT: ... AYON bundle:  [ OP3.17.5-1-NoKitsu-2023-10-48 ]

Dev Notes

Go to Ayon Developer Mode – Guide to learn more about how to run ayon launcher live from source code.

Update Repo

In OpenPype and Ayon launcher repos

git checkout develop
git pull origin develop

Update python env

In Ayon Launcher Repo:

  • ./tools/manage.ps1 create-env which updates poetry.lock
  • ./tools/manage.ps1 install-runtime-dependencies which updates your libs as configured in project.toml

In OpenPype Repo:

  • .\tools\create_env.ps1
  • .\tools\fetch_thirdparty_libs.ps1