1 คะแนน โดย GN⁺ 8 시간 전 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Clippy ซึ่งเป็น linter ของ Rust กำลังเผชิญคอขวดในการรีวิว pull request ในช่วงหลายเดือนที่ผ่านมา จึงได้นำขั้นตอนการรีวิวร่วมกันมาใช้ โดยให้ผู้มีส่วนร่วมช่วยตรวจดูการเปลี่ยนแปลงของกันและกันก่อน
  • เนื่องจากขณะนี้ไม่มี สมาชิกทีม Clippy ที่ได้รับเงินสนับสนุน สำหรับงานดูแลรักษา ภาระการรีวิวและการจัดการจึงตกอยู่กับเวลาส่วนตัวของผู้ดูแลหลัก และเพิ่มความเสี่ยงต่อภาวะหมดไฟ
  • ในขั้นตอนใหม่นี้ เมื่อผู้มีส่วนร่วมเปิด pull request, @rustbot จะชี้แนะให้ไปดู pull request อื่นที่ยังไม่ได้รับการรีวิวก่อนเป็นลำดับแรก
  • ผู้ที่รีวิว pull request ของผู้มีส่วนร่วมคนอื่นแล้วจะถูกเพิ่มเข้า secret list และหลังจากนั้น pull request ของตนเองจะได้รับลำดับความสำคัญจากผู้รีวิวในทีม
  • ทีม Clippy คาดหวังว่า Rust Foundation Maintainers Fund และการมีส่วนร่วมจากชุมชนจะช่วยลดภาระของผู้ดูแลและปรับปรุงสภาพของโปรเจกต์ได้

คอขวดด้านการรีวิวที่ Clippy กำลังเผชิญ

  • Clippy เป็นโปรเจกต์ linter ของ Rust ที่มีผู้มีส่วนร่วมจำนวนมากส่งฟีเจอร์และการแก้บั๊กเข้ามาผ่าน pull request
  • ในช่วงหลายเดือนที่ผ่านมา ความสามารถในการรีวิวมีไม่เพียงพอ ทำให้เกิดคอขวดในการจัดการ pull request
  • ต่างจากบางทีมของ Rust อื่น ๆ ตอนนี้ทีม Clippy ยังไม่มีใครที่ได้รับเงินสนับสนุนสำหรับงานของ Clippy
    • ไม่มีใครได้รับการสนับสนุนแม้แต่ในระดับพาร์ตไทม์
    • ภาระการดูแลรักษาจึงอยู่บนเวลาส่วนตัวของผู้ดูแลหลัก
    • โครงสร้างแบบนี้อาจนำไปสู่ภาวะหมดไฟได้
  • ทีมคาดหวังว่า Rust Foundation Maintainers Fund ที่เพิ่งจัดตั้งขึ้นจะช่วยให้ผู้ดูแล Clippy เข้าถึงเงินสนับสนุนได้
    • ผู้ที่ต้องการช่วยสนับสนุนสามารถบริจาคได้ที่ Rust Foundation Sponsors

ขั้นตอนที่ผู้มีส่วนร่วมช่วยรีวิวให้กันและกัน

  • เป้าหมายของขั้นตอนใหม่นี้คือให้ผู้มีส่วนร่วมช่วยเหลือกัน เพื่อให้ pull request ได้รับการรีวิวและถูกรวมเข้าโปรเจกต์ได้เร็วขึ้น
  • เมื่อผู้มีส่วนร่วมเปิด pull request กระบวนการจะเดินไปในทิศทางที่ให้ช่วยดู pull request ของผู้มีส่วนร่วมคนอื่นก่อน
    • ผู้มีส่วนร่วมแต่ละคนจะรีวิวอย่างน้อยหนึ่ง pull request
    • เป็นโครงสร้างที่ช่วยไม่ให้ contribution ของผู้อื่นถูกปล่อยทิ้งไว้นานเกินไป
  • @rustbot จะชี้แนะผู้เปิด pull request ใหม่ให้ไปดู pull request อื่น
    • หากเป็นไปได้ เป้าหมายลำดับแรกคือ pull request ที่ยังไม่มีรีวิว
  • ผู้มีส่วนร่วมที่รีวิวเสร็จแล้วจะถูกเพิ่มเข้า secret list พิเศษ
    • หลังจากนั้น pull request ของตนเองจะได้รับลำดับความสำคัญจากผู้รีวิวในทีม
  • แนวทางนี้ได้รับแรงบันดาลใจจากระบบ Open Code Review ของโปรเจกต์ Bevy
  • ก่อนหน้านี้ Clippy ก็เคยดำเนินการอัปเดตเพื่อปรับปรุงสุขภาพของโปรเจกต์มาแล้ว
    • Feature Freeze ในปี 2025 ประสบความสำเร็จ
    • ระหว่างกระบวนการนั้น ทีมได้รับทั้งความรู้ ความไว้วางใจ และความมั่นใจว่าชุมชน Rust ใส่ใจทั้ง Clippy และวิธีการทำงานที่ถูกต้อง
  • ทีม Clippy มองว่าด้วยความช่วยเหลือจากชุมชน Clippy จะสามารถแข็งแกร่งและมีสุขภาพที่ดีขึ้นได้

1 ความคิดเห็น

 
GN⁺ 8 시간 전
ความคิดเห็นบน Lobste.rs
  • พูดตรง ๆ นะ สิ่งที่น่าสนใจกว่าประกาศครั้งนี้คือกระบวนการรีวิวแบบเปิดของ Bevy ที่ลิงก์ไว้ในบทความ เป็นบทความที่ เคยถูกนำมาลงที่นี่แล้ว แต่ไม่ค่อยมีการถกกันมากนัก ผมมองว่าเป็นแนวทางที่รอบคอบและฉลาดมาก
    ดีใจที่มันทำงานได้ดี และก็ไม่แปลกใจด้วย หวังว่า Clippy จะได้ผลลัพธ์คล้าย ๆ กัน

    • คนที่โพสต์บทความนั้นคือผมเอง เมื่อก่อนผมเคยมีส่วนร่วมกับ Bevy game engine ค่อนข้างมาก และก็ชอบกระบวนการรีวิวของเขามากทีเดียว
      ระบบนี้ส่งเสริม PR ขนาดเล็กและค่อยเป็นค่อยไป เพราะใคร ๆ ก็รีวิวได้ง่ายขึ้นมาก แม้แต่ผู้มีส่วนร่วมครั้งแรก PR ขนาดใหญ่มักใช้เวลานานกว่ามากกว่าจะ merge ได้ และผมคิดว่าควรเป็นแบบนั้น เพราะรีวิวยากกว่าและต้องมีความเข้าใจโค้ดในระดับหนึ่ง โดยทั่วไป PR ที่มีฟีเจอร์ใหญ่ ๆ จำนวนมากมักจะมี maintainer หรือผู้เชี่ยวชาญในด้านนั้นช่วยผลักดันจนเสร็จ
      ถ้าชอบบทความนั้น คุณอาจชอบบทความเกี่ยวกับการดูแล Bevy จากผู้เขียนคนเดียวกันอย่าง Triage-by-controversy and community review และ The Tyranny of Nits ด้วย
    • ผมไม่เคยมีส่วนร่วมกับ Bevy แต่โครงสร้าง working groups ของพวกเขาดูเหมือนจะให้ผลลัพธ์ที่ดีหลังจากนำมาใช้
  • เหตุผลหนึ่งที่ผมไม่ค่อยช่วยรีวิว PR ในโปรเจกต์โอเพนซอร์สที่ผมมีส่วนร่วมอยู่ คือผมแทบไม่มีความเชี่ยวชาญ เลยไม่มั่นใจว่าตัวเองมีคุณสมบัติพอจะทำหรือเปล่า
    กระบวนการของ Clippy และ Bevy ช่วยให้ reviewer ที่มีประสบการณ์น้อยเข้าร่วมได้อย่างชอบธรรม ซึ่งผมว่าเป็นวิธีที่ค่อนข้างดี

  • ดูแค่ชื่อแล้วค่อนข้างต่างจาก สิ่งที่คาดไว้

  • ดูเหมือนจะถูกเอาไปใช้ในทางที่ผิดได้ง่าย ถ้าสร้างบัญชีขึ้นมาหลายบัญชีแล้วส่ง PR ด้วยหลายบัญชี
    ไม่แน่ใจเหมือนกันว่าจะได้อะไรจากการทำแบบนั้น แต่การได้เข้าไปอยู่ในรายชื่อลับของ contributor เจ๋ง ๆ ก็อาจเป็นแรงจูงใจได้อยู่

    • ในกระบวนการรีวิวของ Bevy ที่เป็นแรงบันดาลใจให้แนวทางนี้ การ แลกรีวิว เป็นเรื่องที่พบได้บ่อยมาก ผมกับ contributor อีกคนรีวิว pull request ให้กันและกัน และผลคือทั้งคู่ merge ได้เร็วขึ้น
      มันทำงานได้ดีที่สุดเมื่อ contributor ทำงานในโปรเจกต์เดียวกัน แต่ผมก็เคยเห็นการทำแบบนี้แม้กับงานที่ไม่เกี่ยวข้องกัน หวังว่า Clippy จะสร้างธรรมเนียมคล้าย ๆ กันได้ การแลกรีวิวช่วยให้งาน merge ได้เร็วขึ้นและบ่มเพาะชุมชนที่ร่วมมือกันมากขึ้น
      อย่างไรก็ตาม ย่อหน้าที่แนะนำกลไกการรีวิวในบล็อกโพสต์นี้ยังปรับปรุงได้ ตอนนี้อ่านแล้วเหมือนสื่อว่า “ถ้าคุณกวาดตาดู PR อื่นแบบผ่าน ๆ เราจะ merge PR ของคุณให้เร็วขึ้น” ซึ่งผมคิดว่าไม่น่าใช่ข้อความที่ต้องการสื่อ ควรเน้นไปที่การทำงานร่วมกับ collaborator คนอื่นแทน หากชวนให้ผู้คนไปที่ช่อง Zulip ของ Clippy เพื่อเสนอแลกรีวิว และให้ทำงานร่วมกันในโปรเจกต์เดียวกัน ก็จะสร้างชุมชนที่สุขภาพดีกว่าโดยไม่กระตุ้นให้ใช้ระบบในทางที่ผิด
    • ผมก็คิดคล้าย ๆ กัน ผู้เข้าร่วมที่ไม่สุจริตอาจใช้บัญชีรองสร้างฟีเจอร์ปลอม ๆ แล้วดึง ความสนใจจริงจาก maintainer มายังงานจริงในบัญชีหลักได้
      ทั้งสองกรณีดูเหมือนจะหลีกเลี่ยงได้ค่อนข้างง่ายด้วยวิธีนี้: จับคู่รีวิวแบบสุ่มเพื่อไม่ให้รีวิวงานของคนเดิมซ้ำหลายครั้ง และนับเฉพาะรีวิวของ PR ที่สุดท้ายถูก merge แล้วเท่านั้น
  • ผมดูแล https://www.CodeTriage.com ซึ่งเป็นบริการที่ช่วยรีวิว PR และ issue ของคนอื่น