Đề xuất cùng nhau review để Clippy khỏe mạnh hơn
(blog.rust-lang.org)- Linter Rust Clippy trong vài tháng gần đây đang gặp nút thắt ở khâu review pull request, nên đã đưa vào quy trình review cộng đồng để các contributor xem trước thay đổi của nhau
- Không có thành viên nào trong đội Clippy được tài trợ cho công việc bảo trì, khiến gánh nặng review và quản lý dồn vào thời gian rảnh của maintainer và làm tăng nguy cơ burnout
- Trong quy trình mới, khi contributor mở pull request, @rustbot sẽ hướng dẫn họ ưu tiên xem các pull request khác chưa có review
- Người đã review pull request của contributor khác sẽ được đưa vào secret list, và sau đó pull request của chính họ sẽ được reviewer trong đội ưu tiên xử lý
- Đội Clippy kỳ vọng Rust Foundation Maintainers Fund và sự tham gia của cộng đồng sẽ giúp giảm gánh nặng cho maintainer và cải thiện tình trạng dự án
Nút thắt review mà Clippy đang gặp phải
- Clippy là dự án linter Rust, nơi nhiều contributor gửi tính năng và bản sửa lỗi dưới dạng pull request
- Trong vài tháng gần đây, năng lực review không đủ đã tạo ra nút thắt trong việc xử lý pull request
- Khác với một số đội Rust khác, hiện trong đội Clippy không có ai được trả phí cho công việc Clippy
- Ngay cả ở mức bán thời gian cũng không có ai được hỗ trợ
- Gánh nặng bảo trì nằm trong thời gian rảnh của maintainer
- Cấu trúc như vậy có thể dẫn đến burnout
- Đội kỳ vọng Rust Foundation Maintainers Fund mới được lập sẽ giúp đảm bảo nguồn tài trợ cho maintainer của Clippy
- Những ai muốn đóng góp có thể quyên góp tại Rust Foundation Sponsors
Quy trình để contributor review lẫn nhau
- Mục tiêu của quy trình mới là để các contributor hỗ trợ nhau, giúp pull request được review và merge nhanh hơn
- Khi một contributor mở pull request, luồng sẽ hướng họ xem trước pull request của contributor khác
- Mỗi contributor review ít nhất một pull request
- Đây là cấu trúc nhằm tránh để đóng góp của người khác bị bỏ mặc quá lâu
- @rustbot sẽ hướng dẫn tác giả pull request mới xem các pull request khác
- Nếu có thể, ưu tiên các pull request chưa có review
- Contributor đã hoàn tất review sẽ được đưa vào secret list đặc biệt
- Sau đó, pull request của chính họ sẽ được reviewer trong đội ưu tiên xử lý
- Cách làm này lấy cảm hứng từ hệ thống Open Code Review của dự án Bevy
- Trước đây Clippy cũng từng có các cập nhật nhằm cải thiện sức khỏe của dự án
- Feature Freeze năm 2025 đã thành công
- Trong quá trình đó, đội đã có được tri thức, niềm tin và sự xác tín rằng cộng đồng Rust quan tâm đến Clippy cũng như cách làm việc đúng đắn
- Đội Clippy cho rằng với sự giúp đỡ của cộng đồng, Clippy có thể trở nên mạnh mẽ và khỏe mạnh hơn
1 bình luận
Các ý kiến trên Lobste.rs
Thành thật mà nói, hơn cả thông báo lần này, quy trình review công khai của Bevy được liên kết trong bài còn thú vị hơn. Trước đây bài này cũng từng được đăng ở đây nhưng không được thảo luận nhiều, và tôi thấy đó là một cách tiếp cận thật sự chu đáo và thông minh
Tôi vui và cũng không ngạc nhiên khi nó hoạt động tốt. Hy vọng Clippy cũng đạt được kết quả tương tự
Hệ thống này khuyến khích các PR nhỏ và tăng dần, vì như vậy bất kỳ ai, thậm chí người đóng góp lần đầu, cũng có thể review dễ dàng hơn nhiều. Các PR lớn mất nhiều thời gian hơn hẳn để được merge, và tôi nghĩ như vậy là đúng. Vì chúng khó review hơn và đòi hỏi một mức độ hiểu biết nhất định về code. Thường thì những PR có nhiều tính năng lớn sẽ được maintainer hoặc chuyên gia trong lĩnh vực đó đẩy đến khi hoàn tất
Nếu bạn thích bài đó, có thể bạn cũng sẽ thích các bài về bảo trì Bevy của cùng tác giả: Triage-by-controversy and community review và The Tyranny of Nits
Một trong những lý do tôi không hỗ trợ review PR tốt trong các dự án mã nguồn mở mà tôi đóng góp là vì tôi hầu như không có chuyên môn, nên không chắc mình có đủ tư cách để làm việc đó hay không
Quy trình của Clippy và Bevy cho phép cả reviewer ít kinh nghiệm cũng có thể tham gia một cách chính đáng, và tôi thấy đó là một cách khá hay
Chỉ nhìn tiêu đề thì hơi khác với điều tôi đã kỳ vọng
Có vẻ dễ bị lạm dụng bằng cách tạo vài tài khoản rồi dùng nhiều tài khoản để gửi PR
Tôi không rõ làm vậy thì được lợi gì, nhưng việc được đưa vào danh sách bí mật của các contributor xịn tự nó cũng có thể là động lực
Cách này vận hành tốt nhất khi các contributor cùng làm trong một dự án, nhưng tôi cũng từng thấy người ta làm như vậy với những công việc không liên quan. Hy vọng Clippy cũng hình thành một thông lệ tương tự. Trao đổi review giúp công việc được merge nhanh hơn và nuôi dưỡng một cộng đồng hợp tác hơn
Tuy vậy, đoạn trong bài blog giới thiệu cơ chế review có thể được cải thiện. Hiện tại nó đọc giống như “nếu bạn lướt qua PR khác một cách qua loa thì PR của bạn sẽ được merge nhanh hơn”, nhưng tôi nghĩ đó không phải thông điệp họ muốn truyền tải. Thay vào đó, nên tập trung vào việc làm việc cùng các cộng tác viên khác. Nếu khuyến khích mọi người vào kênh Zulip của Clippy để đề xuất trao đổi review và cùng làm việc trong một dự án, thì có thể xây dựng một cộng đồng lành mạnh hơn mà không cổ vũ việc lạm dụng hệ thống
Cả hai việc này có vẻ đều có thể tránh khá dễ bằng cách: ghép cặp review ngẫu nhiên để không review nhiều lần công việc của cùng một người, và chỉ tính các review đối với những PR cuối cùng đã được merge
Tôi đang vận hành https://www.CodeTriage.com như một dịch vụ giúp mọi người hỗ trợ review PR và issue của người khác