uv#
End-to-end walk-through of workflow installation and execution with uv.
Install uv#
export UV_INSTALL_DIR=$HOME/.local/uv/bin # default location
curl -LsSf https://astral.sh/uv/install.sh | INSTALLER_NO_MODIFY_PATH=1 sh
export PATH=$UV_INSTALL_DIR:$PATH
export UV_INSTALL_DIR=$HOME/.local/uv/bin # default location
curl -LsSf https://astral.sh/uv/install.sh | INSTALLER_NO_MODIFY_PATH=1 sh
export PATH=$UV_INSTALL_DIR:$PATH
$env:UV_INSTALL_DIR = "$env:USERPROFILE\.local\uv\bin" # default location
irm https://astral.sh/uv/install.ps1 | iex
$env:PATH = "$env:UV_INSTALL_DIR;$env:PATH"
Producer side#
Create a uv project, add ewoks to it and store a workflow with the
packages of its environment as its requirements. The pyproject.toml and uv.lock
of the project are stored as well.
uv init ewoks_producer
uv add --project ewoks_producer ewoks
uv run --project ewoks_producer ewoks convert demo demo.json --test
uv init ewoks_producer
uv add --project ewoks_producer ewoks
uv run --project ewoks_producer ewoks convert demo demo.json --test
uv init ewoks_producer
uv add --project ewoks_producer ewoks
uv run --project ewoks_producer ewoks convert demo demo.json --test
Install any package that provides tasks instead of
ewoks for a real workflow.
Re-producer side#
Only ewoks itself is needed to recreate the environment of demo.json
uv init ewoks_reproducer
uv add --project ewoks_reproducer ewoks
uv run --project ewoks_reproducer ewoks install demo.json --yes --env-root ewoks_envs
uv init ewoks_reproducer
uv add --project ewoks_reproducer ewoks
uv run --project ewoks_reproducer ewoks install demo.json --yes --env-root ewoks_envs
uv init ewoks_reproducer
uv add --project ewoks_reproducer ewoks
uv run --project ewoks_reproducer ewoks install demo.json --yes --env-root ewoks_envs
The environment of the workflow is a uv project in ewoks_envs/demo with the
virtual environment in its .venv directory.
Execute the workflow#
uv run --project ewoks_reproducer ewoks execute --env ewoks_envs/demo demo.json --outputs=all
uv run --project ewoks_reproducer ewoks execute --env ewoks_envs/demo demo.json --outputs=all
uv run --project ewoks_reproducer ewoks execute --env ewoks_envs\demo demo.json --outputs=all
Clean up#
rm -rf ewoks_producer ewoks_reproducer ewoks_envs demo.json
rm -rf ewoks_producer ewoks_reproducer ewoks_envs demo.json
Remove-Item -Recurse -Force ewoks_producer, ewoks_reproducer, ewoks_envs, demo.json