-
Notifications
You must be signed in to change notification settings - Fork 1
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
LakeFS support for binary distribution #21
LakeFS support for binary distribution #21
Conversation
…on works on linux not tested on windows]
…c can die and the code is save
…ave all the settings key definitions in one place
…ge conflikts and because it was a bit easer to deal with
…te url to new ayon_bin_client url
…ed resolver and usd libary in order to avoid download duplication
I can't seem to create the package @Lypsolon ayon-usd/create_package.py --output E:\dev\tools_ayon\packages
Traceback (most recent call last):
File "E:\dev\ayon-usd\create_package.py", line 389, in <module>
main(args.output_dir, args.skip_zip, args.keep_sources)
File "E:\dev\ayon-usd\create_package.py", line 347, in main
zip_client_side(addon_output_dir, current_dir, log)
File "E:\dev\ayon-usd\create_package.py", line 237, in zip_client_side
shutil.rmtree(client_ayon_usd_download_dir)
File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\shutil.py", line 759, in rmtree
return _rmtree_unsafe(path, onerror)
File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\shutil.py", line 610, in _rmtree_unsafe
onerror(os.scandir, path, sys.exc_info())
File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\shutil.py", line 607, in _rmtree_unsafe
with os.scandir(path) as scandir_it:
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'E:\\dev\\ayon-usd\\client\\ayon_usd\\downloads'
|
Requires to init the submodulesLaunching the tray launcher with the package installed gives me this error in console: *** WRN: >>> { AddonsLoader }: [ FAILED to import "ayon_usd" ]
==============================
No module named 'ayon_usd.ayon_bin_client.ayon_bin_distro'
==============================
Traceback (most recent call last):
File "E:\dev\ayon-core\client\ayon_core\addon\base.py", line 360, in _load_ayon_addons
mod = __import__(basename, fromlist=("",))
File "E:\dev\ayon-usd\client\ayon_usd\__init__.py", line 3, in <module>
from .addon import USDAddon
File "E:\dev\ayon-usd\client\ayon_usd\addon.py", line 7, in <module>
from . import config, utils
File "E:\dev\ayon-usd\client\ayon_usd\config.py", line 10, in <module>
from ayon_usd.ayon_bin_client.ayon_bin_distro.lakectlpy import wrapper
ModuleNotFoundERROR: No module named 'ayon_usd.ayon_bin_client.ayon_bin_distro'
*** WRN: >>> { AddonsLoader }: [ Addon ayon_usd 1.0.4-dev.4 has no content to import ] Because this required:
Would be great if this could somehow be detected earlier :) |
After building the package with all git submodules and re-uploading the package, etc. *** WRN: >>> { AddonsLoader }: [ FAILED to import "ayon_usd" ]
=======================
No module named 'fcntl'
=======================
Traceback (most recent call last):
File "E:\dev\ayon-core\client\ayon_core\addon\base.py", line 360, in _load_ayon_addons
mod = __import__(basename, fromlist=("",))
File "E:\dev\ayon-usd\client\ayon_usd\__init__.py", line 3, in <module>
from .addon import USDAddon
File "E:\dev\ayon-usd\client\ayon_usd\addon.py", line 7, in <module>
from . import config, utils
File "E:\dev\ayon-usd\client\ayon_usd\config.py", line 10, in <module>
from ayon_usd.ayon_bin_client.ayon_bin_distro.lakectlpy import wrapper
File "E:\dev\ayon-usd\client\ayon_usd\ayon_bin_client\ayon_bin_distro\lakectlpy\wrapper.py", line 7, in <module>
import fcntl
ModuleNotFoundERROR: No module named 'fcntl'
*** WRN: >>> { AddonsLoader }: [ Addon ayon_usd 1.0.4-dev.4 has no content to import ] I'll stop here for now. ;) May be good to update the testing notes (or the PR itself) to solve this issue? |
Co-authored-by: Roy Nieterau <roy_nieterau@hotmail.com>
…rom pyproject.toml
…is Experimental to use it
@dee-ynput, I implemented the button you wanted to force the studio to accept that the AyonUsd add-on is experimental. @iLLiCiTiT short question for you. The addon raises an Error when the admin does not accept that the addon is Experiments (in the Ayon server settings). Is that acceptable, or would you like the addon to communicate this to the Ayon Launcher differently? |
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.
Approving so this can become the new state of develop branch.
TODO
Setting to acknowledge that this feature is not production-ready
don't start the addon if the setting is not switched on.
Windows title for download USD window
Settings titles without underscores but with spaces
Shorter addon name
version info the addon class
update settings so that lake fs can use the new naming system
update the find resolver system so that it will find the resolver in the new layout
Figure out why the prelaunch hook does not download under windows
Currently, the download system does not take into account if the JSON has an entry but the file/folder is missing
rename the
usd-24.03_win64_py39.zip
tousd-24.03_windows_py39.zip
to allow ayon_usd to find it on Windows. (we will unify the naming via another PR)convert the string evaluation off settings keys into a tuple evaluation
update ayon_bin_bridge_client to the newest version
test if the new version of bin_client will run under Windows (the ne ci tests do run)
better error message when get_element_info() cant find the element (check if element return is empty then print that no element was found)
better error message when no resolver could be found (include: app_name)
don't cache server settings (
PreLaunchHook
instances have access to theself.data["project_settings"]
)better create package py
create package should ignore downloads, not delete it
Testing Notes
Getting started:
Optionally, you can set the log level (ayon+settings://ayon_usd/Ayon_UsdResolver_Settings/ayon_log_lvl) to Info. When the resolver is initialised, this will print some init output in the Houdini console (Windows) or terminal (Linux).
What to test:
In case you don't have a loader that uses Ayon URI, do the following:
Known Issues
/home/lyonh/Documents/Unreal Projects/Dell/ayon+entity:/Usd_Base/trees?product=usdtree_106&version=v001&representation=usd
this causes the resolve to fail. (there is no decision how we should fix this)This Pr handles implementation of LakeFs into the Ayon-Usd addon.
Components
Ui
The ui is mainly build on the Server side, the addon itself dose not have any ui to configure
General Ui
LakeFs config ui (i would like to reduce this to a point where the lakeFs Package has a file that informs about the internal structure, maybe via an package_layout.json or similar so that we only need an alias config where we could say (key for Houdini is Hou20.0 but app_name is houdini20.0) but this will probably need to wait for this pr ayon-usd_lakefs-package_build )
Addon
the addon pulls the UsdLib by requesting the layout from the lakeFs server and then comparing the available UsdLibs with the platform name. (all of this should / could be handled by the package_layout.json at some point )
the resolver are pulled the same way but using the app_name and the mapping defined in the server settings.
Application overwrites will allays take control in case they are defined for a specific app_name in all other cases the LakeFs paths will be used in combination with the current defined branch.