-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Shims for AYON launcher executables #112
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so far, code looks good and I was able to build it on centos7
Task linked: AY-5077 AYON launcher shims |
Linux (Rocky8, Rocky9), Mac:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested on Windows, MacOS, Rocky 8, Rocky 9.
Still the same. On Mac login window always pops up. On Rocky launcher doesn't start. |
841e127
to
e62c3e8
Compare
got this error building ayon-launcher:
I fixed it by adding @dataclass
class InstallerInfo:
version: str
platform: str
filename: str
installer_path: str
python_version: str
checksum: str
checksum_algorithm: str
size: int
python_modules: dict[str, str]
runtime_python_modules: dict[str, str]
distro_short: str |
Not related to this PR but #158 , fixed in develop. |
Changelog Description
Implemented simple shims which can redirect to ayon launcher version.
Additional info
Shims are meant to help with registering of path to AYON launcher. Right now you can point to a single version of AYON launcher, which would stop to work when the version is uninstalled because new version is available. Only think which shim does is to find an existing ayon launcher and execute it, it does not download it or handle logic.
The downside of this approach is that it does not handle cases when there are any available versions. In that case it just crashes. It also does not autodetect available versions, so the new launcher must be launched at least once so shim can find it.
The shim is versioned with
version
file which contains version raw string. This file was used instead ofversion.py
because of potential future change of implementation from Python to C++.AYON launcher has new argument handling. When
"init-ayon-launcher"
is passed it just stores information about executable and deploys shims witout any other action.Full feature set of this PR
ayon-launcher://
protocol scheme, that is different based on OS. With this support we can start to use webactions.Warning
On windows and linux is shim launching new ayon launcher and the shim process ends after the AYON launcher process ends and is using the same exit code and is passing in stdout and stderr (if is available). That is not true on macOs where shim only opens new launcher and ends.
Reason: Shim is used for webactions, api of uri handling on macOs is based on events (launch process and send event to start uri). The issue is that only one process of the application can be running to be able to achieve this. Any future process just won't start.
Possible issues: If the exectable is used in a automation that should wait for the process to "finish", it is not possible.
Testing notes:
%LOCALAPPDATA%\Ynput\AYON\shim\
).If you're retesting this PR, make sure to reinstall venv and remove existing AYON launcher. Also remove existing shim,
%LOCALAPPDATA%\Ynput\AYON\shim\
on windows/Applications/AYON.app
on macOs and~/.local/AYON/shim
on linux.Webactions
Shims added option to use webactions. For that make sure you have
Follow testing notes from WebActions: Launcher can handle webactions #121