Skip to content

Tool to pull dependency info for all Addons to create new venv and upload it back to v4 server

Notifications You must be signed in to change notification settings

ynput/ayon-dependencies-tool

Repository files navigation

Addon dependencies distribution tool

This tool is backend portion of Addon distribution of dependencies for AYON launcher.

This collects info about all enabled addons on the AYON server based on bundle name, reads their pyproject.toml files, create one merged pyproject.toml (it tries to find common denominator for dependency version).

Then it uses Poetry to create new venv, zips it and provides this to AYON server for distribution.

It is expected to run on machine that has set reasonable development environment.

Required environment variables:

  • AYON_SERVER_URL - AYON server url
  • AYON_API_KEY - AYON api key for service account

For local development, use .env file. You can use example_env as base.

The tool should ideally run automatically and listen for events on the Server OR could be run manually on machine(s).

Entry point for manual triggering is start.ps1 or start.sh.

Implemented commands:

  • install - creates ./.venv with requirements for this tool
  • create - runs main process to create new dependency package and uploads it. Expects argument with name of Bundle (eg. ./start create -b MyBundle). For more information ./start create --help.
  • listen - starts service connecting to Ayon server and listening for events to trigger main process (TBD)
  • list-bundles - lists all bundles on Ayon server

TODO:

  • force to reuse python version from Installer (make pyenv required)
  • safe runtime dependencies
    • dependencies and runtime dependencies are not validated against each other
    • e.g. SomeModule==1.0.0 can be defined in dependencies and SomeModule>=1.1.0 in runtime dependencies
  • skip dependency package creation if there are not any addons with dependencies
  • Provide dockerized AYON service manageable directly by ASH (AYON service host)
  • Provide single-time docker to create dependency packages for linux distros
    • be able to re-use the image for multiple runs

About

Tool to pull dependency info for all Addons to create new venv and upload it back to v4 server

Resources

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •