Consider a generic change-URI metadata/augmentation language (Change API)
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- go
- Lĩnh vực
- backend-api-design
Hướng nghiên cứu
Bắt đầu bằng cách đọc Change API và các parser được tham chiếu: submitqueue/entity/github/change_id.go, submitqueue/entity/phabricator/change_id.go và submitqueue/extension/changeprovider/github/validate.go. Xem lại PR #197 và cuộc thảo luận về core/fakemarker trước khi so sánh các tham số truy vấn, fragment và một trường Change có kiểu. Được xem là hoàn tất khi đã giải quyết các câu hỏi về phạm vi, hình dạng và tính tổng quát, đồng thời ghi lại hoặc triển khai thiết kế đã chọn mà không làm hỏng việc xác thực change-ID nghiêm ngặt.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Context
In #197, the extension fakes inject failures via an ad-hoc sq-fake=<token>
marker embedded in a change URI, parsed by the test-only core/fakemarker
package (Token([]string) / TokenInChanges([]entity.Change)).
Reviewing that PR, @sbalabanov raised two related design questions:
- Should we build a generic augmentation / metadata language into change
URIs, usable by these fakes and similar tooling — rather than a
fake-specific marker convention? - The marker lookup (
TokenInChanges) arguably belongs on the Change API
(entity.Change) rather than living in a test-only helper.
This issue captures that idea as a follow-up so #197 can land as-is (the marker
stays test-only there).
Design considerations
A generic change-URI metadata facility would need to reconcile with the
strict provider change-ID parsers, which today reject anything that isn't a
canonical resource identifier:
submitqueue/entity/github/change_id.go— requires a full 40-char lowercase
hex head SHA; a?key=valuequery string would not parse.submitqueue/entity/phabricator/change_id.go— fixedphab://form.submitqueue/extension/changeprovider/github/validate.go— rejects
unexpected schemes.
Open questions:
- Scope — is URI-attached metadata a production capability, or strictly a
test/example affordance? Putting parsing onentity.Changecouples the
production type to the convention; keeping it incore/fakemarkerkeeps the
separation the fakes deliberately maintain ("never production"). - Shape — RFC-3986 query params (
?k=v) vs. fragment vs. a dedicated
sidecar field onChange. Query params collide with the strict parsers
above; a typed field avoids string-encoding entirely. - Generality — a neutral
key → valueaccessor (e.g.
Change.URIParam(key)) thatfakemarkerlayerssq-fakesemantics on top
of, vs. a richer metadata model.
References
- PR #197 — fake implementations with error injection
- Threads: the
core/fakemarker.godiscussion in #197.
Filed as a follow-up per the #197 review discussion. Not blocking.
- Ngôn ngữ chính
- Go
- Star
- 225
- Fork
- 11
- Merge trung bình
- 3 ngày 8 giờ
- Pull request đã merge (30 ngày)
- 61
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.
Issue khác của uber/submitqueue
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 32/100
uber/submitqueue#356 · 1 bình luận ·
Tất cả issue của uber/submitqueue
Issue tương tự
-
Remove PSPs from Helm chart Đang mởfeature-request helm
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
gravitational/teleport#69785 ·
-
bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
crossplane/crossplane#7859 ·
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100