Better build orchestration
Đang mở
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Ruby
- Star
- 875
- Fork
- 68
- Merge trung bình
- 9 ngày 5 giờ
- Pull request đã merge (30 ngày)
- 1
Mô tả
The underlying build system of rbwasm build is quite messy.
- Each build step has to have its ad-hoc up-to-date check like followings:
https://github.com/ruby/ruby.wasm/blob/a5d06a01873130fda0f07f4401a3b018c6f1d753/lib/ruby_wasm/build/product/baseruby.rb#L26 https://github.com/ruby/ruby.wasm/blob/a5d06a01873130fda0f07f4401a3b018c6f1d753/lib/ruby_wasm/build/product/crossruby.rb#L171 - Uses of build product and cache key computation are placed far, so we often forget to update the cache key and get a wrong cache restored.
https://github.com/ruby/ruby.wasm/blob/a5d06a01873130fda0f07f4401a3b018c6f1d753/lib/ruby_wasm/build.rb#L78 - The current cache mechanism cannot restore two or more artifacts produced within a single rake task job. This usually happens for PIC & non-PIC builds invoked by
rake npm:ruby-head-wasm-wasi:build - Our cache mechanism does not allow partial cache-hit, so even if we change only crossruby source revision, we have to rebuild openssl from scratch.
- Our cache mechanism is not sensitive to recipe changes. For instance, even if we change CFLAGS value, crossruby product will not be rebuilt.
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu bằng cách đọc lib/ruby_wasm/build.rb và các phần triển khai product trong lib/ruby_wasm/build/product/baseruby.rb và crossruby.rb. Theo dõi entry point rake npm:ruby-head-wasm-wasi:build cùng các artifact PIC và non-PIC của nó. Hoàn thành khi build cache xử lý được nhiều artifact, các lần hit một phần và các thay đổi đối với source revision và recipe mà không khôi phục các kết quả không chính xác.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- ruby, wasm
- Lĩnh vực
- build-system
- Loại issue
- Tái cấu trúc
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 25/100