Skip to content

feat(pixi): add RoboStack Jazzy workspace foundation - #37

Draft
charlesmadjeri wants to merge 10 commits into
devfrom
cma/feat-pixi-foundation
Draft

feat(pixi): add RoboStack Jazzy workspace foundation#37
charlesmadjeri wants to merge 10 commits into
devfrom
cma/feat-pixi-foundation

Conversation

@charlesmadjeri

@charlesmadjeri charlesmadjeri commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

OP#45

CI failure is normal because it is still the old docker one until children PR merge (containing an updated CI)

Summary

  • Add Pixi package manager configuration with RoboStack channel for ROS 2 Jazzy
  • Provides reproducible, cross-platform environment without Docker
  • Foundation for subsequent launcher refactoring

Changes

  • pixi.toml with workspace tasks and ROS 2 dependencies
  • pixi.lock for reproducible dependency resolution
  • .env.example for environment configuration
  • .gitattributes to handle pixi.lock as binary
  • .gitignore for Pixi artifacts
  • repos.json: add micro_ros_agent and audio_common

Stack

This is PR 1/4 in the Pixi migration stack:

  1. This PR - Pixi foundation
  2. Launcher refactoring (stacked)
  3. Docker removal + CI + tests (stacked)
  4. Windows + documentation (stacked)

@charlesmadjeri charlesmadjeri self-assigned this Aug 30, 2026
Comment thread config/repos.json
Mael-RABOT
Mael-RABOT previously approved these changes Aug 31, 2026
Cadavre-chan
Cadavre-chan previously approved these changes Aug 31, 2026
m-brl
m-brl previously approved these changes Aug 31, 2026
charlesmadjeri and others added 6 commits August 31, 2026 17:50
Add Pixi package manager configuration with RoboStack channel for
ROS 2 Jazzy dependencies.

- pixi.toml with workspace tasks and ROS 2 dependencies
- pixi.lock for reproducible dependency resolution
- .env.example for environment configuration
- .gitattributes to handle pixi.lock as binary
- .gitignore for Pixi artifacts
- repos.json: add micro_ros_agent and audio_common
Refactor Lucy install and launch workflows to use Pixi environment
instead of Docker containers.

- install.sh: Pixi-based dependency management and colcon build
- launch_lucy.sh: native tmux launcher with Pixi environment
- launcher.py: updated TUI for Pixi workflow
- Lucy.py: Pixi-aware bootstrap and environment setup
- config/launcher_config.json: simplified native launch config
- config/launcher_config.json.local.example: local override template
- scripts/pixi_*.sh: helper scripts for dev shell and launch
- scripts/nix_gl_env.sh: NixOS host GL passthrough support
Remove Docker-based workflow in favor of native Pixi environment.
Add comprehensive CI and unit tests for the new workflow.

- Remove docker/Dockerfile.jazzy, ensure_image.sh, gpu_detect.sh, gui_desktop.sh
- Update .github/workflows/install-and-launch.yml for Pixi CI
- Add pytest.ini and tests/conftest.py
- Add tests/test_install_optional_repos.py
- Add tests/test_launcher_pixi.py
- Add tests/test_repos_config.py
- Add scripts/ci_colcon_test.sh and ci_tmux_launcher_smoke.sh
Update Windows tooling for Pixi workflow and refresh documentation
for the new native launch experience.

Windows:
- windows/Lucy.py: Pixi-aware Windows launcher
- windows/install_ops.py: updated install operations
- windows/README.md: updated Windows setup guide
- windows/installer/Lucy.nsi: updated NSIS installer

Documentation:
- README.md: updated quickstart and workflow overview
- docs/developer_lucy_packages.md: Pixi development guide
- docs/launcher_packages.md: updated launcher docs
- docs/pixi_setup.md: new Pixi setup guide
- docs/pixi_release.md: Pixi release notes stub

Scripts:
- scripts/build_local_realsense.sh: RealSense local build helper
…restart

Split monolithic launcher.py into a launcher/ module tree with backward-compatible
imports. Orphan cleanup during core/modifier restarts no longer kills control
panel Vite when that service is still selected and running.

- launcher/: constants, config, platform, process, shell, tmux, package, state,
  apply, tui; entry via python -m launcher
- launcher.py: thin shim for python launcher.py
- launch_lucy.sh: python -m launcher
- process: protect_vite from package readiness/command metadata; clear pending
  preserve after debounced teardown
- apply: preserve running interfaces/tools during partial teardown
- docs/README: update launcher entry points
- tests: expand test_launcher_pixi.py (28 tests)
Signed-off-by: Mael-RABOT <mael.rabot@epitech.eu>
@charlesmadjeri
charlesmadjeri dismissed stale reviews from m-brl, Cadavre-chan, and Mael-RABOT via 2ba2d8a August 31, 2026 16:01
@charlesmadjeri
charlesmadjeri force-pushed the cma/feat-pixi-foundation branch from ec9cada to 2ba2d8a Compare August 31, 2026 16:01
@charlesmadjeri
charlesmadjeri marked this pull request as draft August 31, 2026 16:03
Arcod7
Arcod7 previously approved these changes Aug 31, 2026
Mael-RABOT
Mael-RABOT previously approved these changes Aug 31, 2026
…pixi

refactor(launcher): run install and launch through Pixi
@charlesmadjeri
charlesmadjeri dismissed stale reviews from Mael-RABOT and Arcod7 via b0f7d80 August 31, 2026 16:46
…al-ci-tests

chore(docker): remove Docker, add Pixi CI and tests
evol(windows,docs): update Windows support and documentation
@charlesmadjeri

charlesmadjeri commented Aug 31, 2026

Copy link
Copy Markdown
Contributor Author

Add windows Pixi install steps to readme: https://pixi.prefix.dev/latest/installation/
Add nixld documentation: https://github.com/nix-community/nix-ld

Remove audio_common and micro-ros-agent from repos.json

Update repos.json branches before merge

…archi

refactor(launcher): split into package and preserve services on core restart
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.

5 participants