RoboStack / RoboStack/robostack.github.io

Investigation: Using `pixi-build-ros` with `pixi` instead of `vinca` with `rattler-build`.

Đang mở
#175 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Ngôn ngữ chính
Astro
Star
385
Fork
36
Merge trung bình
5 giờ 37 phút
Pull request đã merge (30 ngày)
18

Mô tả

Leaving this here as an intermediate result of some investigation into the topic of using pixi-build-ros instead of vinca to generate the recipes and build the packages for the ROS distros in RoboStack.

Issues found:

  • pixi doesn't automatically use all dependencies in the workspace as host/build dependencies of the other packages in the workspace so it's not easy to setup a workspace that contains all packages from a git source. (https://github.com/prefix-dev/pixi/issues/6901)
  • pixi-build-ros doesn't support the concept of patches yet. (https://github.com/prefix-dev/pixi/issues/6918)
    We could support this by adding the copy of source into a source folder again like the backends used to do.
  • You would still need some script to manage the distro snapshots as a way to fill in the [package.build.source] for pixi build.
  • There needs to be a build orchestrator like vinca-gha to create the multi stage GitHub Actions workflow file.
    This would be a feature that is welcome to Pixi anyway as it would be really cool to have any type of workspace split it's builds into multiple jobs, on any CI server.

Smaller issues:

  • pixi-build-ros needs to support <group_depend> from a package.xml.
  • pixi-build-ros needs to support ros2-<package_name> naming convention.
  • We need a backend for dummy meta packages where we need to shim conda-forge packages like ros-xxx-eigenpy.

Claude generated sketch, not perfect but sketches the idea of this comparison.
Image


I feel like this would only align the tools more but wouldn't bring too many UX improvements to RoboStack today. As you would still need to maintain a generator to translate the rosdistro_snapshot into pixi.toml files instead of recipe.yaml files. The robostack.yaml would still need to be maintained.

Where I can see value is in making pixi-build-ros a better tool for ROS development. The required CI job orchestration tool would be a big win for Pixi and the work to maintain vinca can be moved to pixi-build-ros to share more of the effort between the projects.

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Bắt đầu với pixi-build-ros và các issue Pixi được liên kết #6901 và #6918, sau đó xem xét các khoảng thiếu đã liệt kê liên quan đến patch, snapshot của distro, điều phối workflow và metadata của gói ROS. Công việc được xem là hoàn tất khi phạm vi đã được quyết định và có một bước follow-up cụ thể cho các cải tiến được chọn; issue này không nêu tên file hoặc test.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
github-actions
Lĩnh vực
build-system, ci-cd, tooling
Loại issue
Tính năng
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Sôi nổi
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
30/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.