ayon-core/server_addon
Petr Kalis 399bb404c4
Fusion: automatic installation of PySide2 (#6111)
* OP-7450 - WIP of new hook to install PySide2

Currently not working yet as subprocess is invoking wrong `pip` which causes issue about missing `dataclasses`.

* OP-7450 - updates querying of PySide2 presence

Cannot use pip list as wrong pip from .venv is used and it was causing issue about missing dataclass (not in Python3.6).
This implementation is simpler and just tries to import PySide2.

* OP-7450 - typo

* OP-7450 - removed forgotten raise for debugging

* OP-7450 - double quotes

Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com>

* OP-7450 - return if error

Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com>

* OP-7450 - return False

Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com>

* OP-7450 - added optionality for InstallPySideToFusion

New hook is controllable by Settings.

* OP-7450 - updated querying of Qt

This approach should be more generic, not tied to specific version of PySide2

* OP-7450 - fix unwanted change

* OP-7450 - added settings for legacy OP

* OP-7450 - use correct python executable name in Linux

Because it is not "expected" python in blender but installed python, I would expect the executable is python3 on linux/macos rather than python.

Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com>

* OP-7450 - headless installation in Windows

It checks first that it would need admin privileges for installation, if not it installs headlessly. If yes, it will create separate dialog that will ask for admin privileges.

* OP-7450 - Hound

* Update openpype/hosts/fusion/hooks/pre_pyside_install.py

Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com>

---------

Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com>
2024-01-10 17:10:52 +01:00
..
aftereffects AYON: Update settings (#5544) 2023-08-31 17:24:52 +02:00
applications/server typo 2023-12-06 17:12:44 +01:00
blender/server new defaults for AYON 2023-12-06 16:37:27 +01:00
celaction/server AYON: Addon settings in OpenPype (#5347) 2023-07-26 14:08:42 +02:00
clockify/server AYON: Addons creation enhancements (#5356) 2023-07-28 11:51:23 +02:00
core/server Chore: Remove deprecated templates profiles (#6103) 2024-01-09 11:16:28 +01:00
deadline/server 🎨 add split export support for redshift 2024-01-06 00:01:14 +01:00
flame/server AYON: Addon settings in OpenPype (#5347) 2023-07-26 14:08:42 +02:00
fusion/server Fusion: automatic installation of PySide2 (#6111) 2024-01-10 17:10:52 +01:00
harmony AYON: Addons creation enhancements (#5356) 2023-07-28 11:51:23 +02:00
hiero/server script menu name change in server addon 2023-11-30 14:22:32 +01:00
houdini/server 🎨 add split export support for redshift 2024-01-06 00:01:14 +01:00
kitsu/server AYON: Addons creation enhancements (#5356) 2023-07-28 11:51:23 +02:00
max/server small setting bug tweaks on ayon setting 2024-01-03 23:51:08 +08:00
maya Merge branch 'develop' into bugfix/OP-7281_Maya-Review---playblast-renders-without-textures 2024-01-04 00:02:54 +08:00
muster/server AYON: Addons creation enhancements (#5356) 2023-07-28 11:51:23 +02:00
nuke/server Merge branch 'develop' into chore/maya_remove_publish_gui_filters 2023-12-21 12:21:51 +01:00
openpype openpype addon defines runtime dependencies (#6095) 2024-01-04 14:17:45 +01:00
photoshop Photoshop: fix Collect Color Coded settings (#6065) 2023-12-18 16:39:29 +01:00
resolve/server AYON: Addon settings in OpenPype (#5347) 2023-07-26 14:08:42 +02:00
royal_render/server AYON: Addons creation enhancements (#5356) 2023-07-28 11:51:23 +02:00
substancepainter/server Chore: Substance Painter Addons for Ayon (#5914) 2023-11-20 14:30:09 +01:00
timers_manager/server AYON: Addons creation enhancements (#5356) 2023-07-28 11:51:23 +02:00
traypublisher/server ayon settings: trypublisher editorial add task model conversion 2023-11-07 17:28:37 +01:00
tvpaint/server Bump TVPaint Server Addon patch version 2023-10-07 20:35:08 +02:00
unreal/server new defaults for AYON 2023-12-06 16:37:27 +01:00
create_ayon_addons.py added harmony and flame to skipped addons 2023-11-21 11:07:10 +01:00
README.md AYON: Addon settings in OpenPype (#5347) 2023-07-26 14:08:42 +02:00

Addons for AYON server

Preparation of AYON addons based on OpenPype codebase. The output is a bunch of zip files in ./packages directory that can be uploaded to AYON server. One of the packages is openpype which is OpenPype code converted to AYON addon. The addon is must have requirement to be able to use ayon-launcher. The versioning of openpype addon is following versioning of OpenPype. The other addons contain only settings models.

Intro

OpenPype is transitioning to AYON, a dedicated server with its own database, moving away from MongoDB. During this transition period, OpenPype will remain compatible with both MongoDB and AYON. However, we will gradually update the codebase to align with AYON's data structure and separate individual components into addons.

Currently, OpenPype has an AYON mode, which means it utilizes the AYON server instead of MongoDB through conversion utilities. Initially, we added the AYON executable alongside the OpenPype executables to enable AYON mode. While this approach worked, updating to new code versions would require a complete reinstallation. To address this, we have decided to create a new repository specifically for the base desktop application logic, which we currently refer to as the AYON Launcher. This Launcher will replace the executables generated by the OpenPype build and convert the OpenPype code into a server addon, resulting in smaller updates.

Since the implementation of the AYON Launcher is not yet fully completed, we will maintain both methods of starting AYON mode for now. Once the AYON Launcher is finished, we will remove the AYON executables from the OpenPype codebase entirely.

During this transitional period, the AYON Launcher addon will be a requirement as the entry point for using the AYON Launcher.

How to start

There is a create_ayon_addons.py python file which contains logic how to create server addon from OpenPype codebase. Just run the code.

./.poetry/bin/poetry run python ./server_addon/create_ayon_addons.py

It will create directory ./packages/<addon name>.zip files for AYON server. You can then copy upload the zip files to AYON server. Restart server to update addons information, add the addon version to server bundle and set the bundle for production or staging usage.

Once addon is on server and is enabled, you can just run AYON launcher. Content will be downloaded and used automatically.

Additional arguments

Additional arguments are useful for development purposes.

To skip zip creation to keep only server ready folder structure, pass --skip-zip argument.

./.poetry/bin/poetry run python ./server_addon/create_ayon_addons.py --skip-zip

To create both zips and keep folder structure, pass --keep-sources argument.

./.poetry/bin/poetry run python ./server_addon/create_ayon_addons.py --keep-sources