Skip to content

feat: add pixi task runner to replace manual setup#23

Open
maciejmajek wants to merge 12 commits into
developmentfrom
feat/pixi
Open

feat: add pixi task runner to replace manual setup#23
maciejmajek wants to merge 12 commits into
developmentfrom
feat/pixi

Conversation

@maciejmajek
Copy link
Copy Markdown
Member

@maciejmajek maciejmajek commented May 14, 2026

feat: add pixi task runner to replace manual setup

This PR adds pixi, a package manager and task runner, to replace the previous 20-step manual setup process. DEMO_ROOT and O3DE_ROOT are now set automatically from the repo clone location — no .bashrc exports needed.

What changed

  • pixi.toml — defines all build and run tasks; single source of truth for the project workflow
  • pixi_activate.sh — automatically sources ROS 2 Jazzy and the project workspace on every pixi run invocation
  • pixi.lock — lockfile for reproducible environments
  • scripts/download_models.sh — downloads all 5 models from HuggingFace automatically (embedding and reranker now included; SharePoint links removed)
  • scripts/serve_all.sh — launches all 4 inference servers in a tmux 2×2 grid via pixi run serve-all
  • scripts/smoke_test.sh — health-checks all inference endpoints with green/red color output
  • config.toml — removed stale manual llama-server command comments
  • pyproject.toml — added tool.uv.workspace to exclude inference/ from uv workspace
  • .gitignore — added models/
  • All setup and running docs updated to use pixi run commands

Setup (was: ~20 manual steps)

curl -fsSL https://pixi.sh/install.sh | sh  # install pixi once
pixi run setup                               # full single-machine setup

For the 3-machine demo setup:

  • Sim machine: pixi run setup
  • HIL machine: pixi run setup-hil (skips O3DE — no 30–60 min build)
  • HMI machine: pixi run setup-hil

Key improvements

  • No more .bashrc exportsDEMO_ROOT and O3DE_ROOT are set from $PIXI_PROJECT_ROOT, so the repo works from any clone location
  • No more manual source calls — ROS 2 environment is sourced automatically before every task
  • HIL-optimized setuppixi run setup-hil clones and builds only the ROS 2 workspace and Python dependencies, skipping O3DE entirely
  • Local inferencepixi run build-llama / pixi run setup-hil-local replaces manual llama.cpp clone + cmake steps
  • Automated model downloadspixi run download-models fetches all 5 models from HuggingFace; embedding and reranker no longer require manual SharePoint downloads
  • Run taskspixi run sim, pixi run ros2, pixi run orchestrator, etc. replace manual binary invocations and script calls
  • Smoke testpixi run smoke-test checks all inference server endpoints with color-coded output

Available tasks

Task Description
pixi run setup Full single-machine setup
pixi run setup-hil HIL machine setup (ROS 2 + Python, no O3DE)
pixi run setup-hil-local HIL setup + local llama.cpp inference
pixi run setup-local Full setup + local llama.cpp inference
pixi run build-llama Clone and build llama.cpp standalone
pixi run download-models Download all 5 GGUF models from HuggingFace
pixi run sim Launch O3DE simulation
pixi run ros2 Launch full ROS 2 stack
pixi run orchestrator Launch agent orchestrator
pixi run hmi Launch HMI
pixi run serve-all Launch all 4 inference servers in a tmux 2×2 grid
pixi run serve-llm Serve GPT-OSS-20B on port 8080
pixi run serve-vlm Serve LFM2-VL-3B on port 8081
pixi run serve-embedding Serve Qwen3-Embedding-0.6B on port 8082
pixi run serve-reranker Serve Qwen3-Reranker-0.6B on port 8083
pixi run smoke-test Health-check all inference servers
pixi run lint Run all linters and formatters

@maciejmajek maciejmajek changed the title feat: add pixi task runner to replace manual setup feat: add pixi task runner to replace manual setup May 14, 2026
@maciejmajek maciejmajek requested a review from knicked May 14, 2026 13:17
@knicked
Copy link
Copy Markdown
Contributor

knicked commented May 20, 2026

Due to issues mentioned in #21, the project does not build in the current state.

I ported the fixes to pixi in a separate PR (#24). I will test the project with my changes and leave a comment here when it works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants