Validate CI environment JSON objects before accessing their fields
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 78/100
Hướng nghiên cứu
Bắt đầu từ phần giải mã môi trường trong tools/ci/common.py quanh dòng 536, sau đó tìm các bài kiểm thử tập trung cho cấu hình CI và đầu vào không hợp lệ. Kiểm tra cách WAVE_RELEASE_INPUTS và WAVE_CI_MATRIX được giải mã, cũng như cách quy ước CI configuration error/mã thoát 2 hiện có được kiểm thử. Hoàn tất khi các kiểu đối tượng JSON không hợp lệ gây lỗi mà không có traceback hoặc lệnh runner/provisioning, còn các biến bị thiếu, {} và JSON sai định dạng vẫn giữ nguyên hành vi được chỉ định.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Problem
tools.ci.common.main parses WAVE_RELEASE_INPUTS and immediately calls .items() without checking its JSON type. A valid JSON array, string or null produces a Python traceback instead of a configuration error. WAVE_CI_MATRIX also coerces falsy non-objects to an empty object before its type check.
Starting point: environment decoding.
Reproduction
Executed at 7a8361d5c10ec3e66fc9fe4a5801622afb6bf631 on Linux amd64 with Python 3.14:
WAVE_RELEASE_INPUTS='[]' python3 -m tools.ci.test --target linux-amd64 --report-json /tmp/wave-invalid-config.json
Observed: exit 1 and AttributeError: 'list' object has no attribute 'items' at the inputs.items() expression. No build or provisioning stage ran.
Scope
Validate both environment values as JSON objects before runner/stage work. Reuse the existing CI configuration error/exit-2 convention. Keep omitted values and explicit empty objects supported. Difficulty: easy.
Completion criteria
- Arrays, strings, numbers, booleans and null fail with an actionable configuration error, without a traceback.
- Missing variables and
{}remain valid; malformed JSON is still rejected. - Focused tests assert no commands/provisioning occur for invalid inputs, including falsy non-objects.
- Ngôn ngữ chính
- Rust
- Star
- 56
- Fork
- 21
- Merge trung bình
- 4 giờ 19 phút
- Pull request đã merge (30 ngày)
- 49
Chuẩn bị môi trường
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.
Issue khác của wavefnd/Wave
-
enhancement good first issue needs testing
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation enhancement good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
Issue tương tự
-
Custom hosts written as trailing-dot FQDNs (`host.local.`) aren't detected as local backendsCó thể đã có người làm @roboomp đã nhận hôm nay. Đang mởbug prio:p2 providers triaged
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
can1357/oh-my-pi#15798 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
requires-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
apache/datafusion-comet#7001 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
-
Add a Storybook section to CONTRIBUTING.mdCó thể đã có người làm @ChanakyaG2004 đã nhận hôm nay. Đang mởdocumentation good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
FlowwStar/FlowStar#995 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày