กระบวนการ TensorFlow RFC

คุณสมบัติ TensorFlow ใหม่ทั้งหมดเริ่มต้นชีวิตด้วยการขอความคิดเห็น (RFC)

RFC เป็นเอกสารที่อธิบายข้อกำหนดและการเปลี่ยนแปลงที่เสนอซึ่งจะช่วยแก้ไขได้ โดยเฉพาะอย่างยิ่ง RFC จะ:

  • จัดรูปแบบตาม เทมเพลต RFC
  • ส่งเป็นคำขอดึงไปยังไดเร็กทอรี community/rfcs
  • อาจมีการอภิปรายและการประชุมทบทวนก่อนที่จะยอมรับ

วัตถุประสงค์ของคำขอความคิดเห็น (RFC) ของ TensorFlow คือเพื่อดึงดูดชุมชน TensorFlow ในการพัฒนา โดยการรับคำติชมจากผู้มีส่วนได้ส่วนเสียและผู้เชี่ยวชาญ และการสื่อสารการเปลี่ยนแปลงการออกแบบในวงกว้าง

วิธีการส่ง RFC

  1. ก่อนที่จะส่ง RFC ให้หารือเกี่ยวกับเป้าหมายของคุณกับผู้ร่วมโครงการและผู้ดูแลโครงการ และรับคำติชมตั้งแต่เนิ่นๆ ใช้รายชื่อผู้รับจดหมายของนักพัฒนาสำหรับโครงการที่เกี่ยวข้อง (developers@tensorflow.org หรือรายชื่อสำหรับ SIG ที่เกี่ยวข้อง)

  2. ร่าง RFC ของคุณ

    • อ่าน เกณฑ์การทบทวนการออกแบบ
    • ปฏิบัติตาม เทมเพลต RFC
    • ตั้งชื่อไฟล์ RFC ของคุณ YYYYMMDD-descriptive-name.md โดยที่ YYYYMMDD คือวันที่ส่ง และ descriptive-name เกี่ยวข้องกับชื่อเรื่องของ RFC ของคุณ (เช่น หาก RFC ของคุณชื่อ Parallel Widgets API คุณอาจใช้ชื่อไฟล์ 20180531-parallel-widgets.md
    • หากคุณมีรูปภาพหรือไฟล์เสริมอื่นๆ ให้สร้างไดเร็กทอรีในรูปแบบ YYYYMMDD-descriptive-name เพื่อใช้จัดเก็บไฟล์เหล่านั้น

    หลังจากเขียนร่าง RFC แล้ว ให้รับคำติชมจากผู้ดูแลและผู้มีส่วนร่วมก่อนส่ง

    การเขียนโค้ดการใช้งานไม่ใช่ข้อกำหนด แต่อาจช่วยในการออกแบบการอภิปรายได้

  3. รับสมัครสปอนเซอร์.

    • ผู้สนับสนุนจะต้องเป็นผู้ดูแลโครงการ
    • ระบุผู้สนับสนุนใน RFC ก่อนที่จะโพสต์ PR

    คุณ สามารถ โพสต์ RFC ได้โดยไม่ต้องมีผู้สนับสนุน แต่หากภายในหนึ่งเดือนหลังจากโพสต์ PR ยังไม่มีผู้สนับสนุน จะมีการปิดตัวลง

  4. ส่ง RFC ของคุณเป็นคำขอดึงไปที่ tensorflow/community/rfcs

    รวมตารางส่วนหัวและเนื้อหาของส่วน วัตถุประสงค์ ในความคิดเห็นของคำขอดึงของคุณโดยใช้ Markdown สำหรับตัวอย่าง โปรดดู ตัวอย่างนี้ RFC รวมการจัดการ GitHub ของผู้เขียนร่วม ผู้ตรวจสอบ และผู้สนับสนุน

    ที่ด้านบนของ PR ระบุระยะเวลาแสดงความคิดเห็น ซึ่งควรใช้ เวลาอย่างน้อยสองสัปดาห์ นับจากการโพสต์ PR

  5. ส่งอีเมลถึงรายชื่อผู้รับอีเมลของนักพัฒนาพร้อมคำอธิบายสั้นๆ ลิงก์ไปยัง PR และคำขอให้ตรวจสอบ ทำตามรูปแบบการส่งจดหมายครั้งก่อนๆ ดังที่คุณเห็นใน ตัวอย่างนี้

  6. ผู้สนับสนุนจะขอให้มีการประชุมคณะกรรมการพิจารณาภายในไม่เกินสองสัปดาห์หลังจากโพสต์ RFC PR หากการพูดคุยเป็นไปอย่างมีชีวิตชีวา ให้รอจนกว่าจะคลี่คลายก่อนจึงจะเริ่มทบทวน เป้าหมายของการประชุมทบทวนคือการแก้ไขปัญหาเล็กๆ น้อยๆ ควรบรรลุฉันทามติในประเด็นสำคัญล่วงหน้า

  7. ที่ประชุมอาจอนุมัติ RFC ปฏิเสธ หรือกำหนดให้มีการเปลี่ยนแปลงก่อนจึงจะได้รับการพิจารณาอีกครั้ง RFC ที่ได้รับการอนุมัติจะถูกรวมเข้ากับ community/rfcs และ RFC ที่ถูกปฏิเสธจะถูกปิด PR

ผู้เข้าร่วม RFC

หลายคนมีส่วนร่วมในกระบวนการ RFC:

  • ผู้เขียน RFC — สมาชิกชุมชนตั้งแต่หนึ่งคนขึ้นไปที่เขียน RFC และมุ่งมั่นที่จะสนับสนุน RFC ผ่านกระบวนการนี้

  • ผู้สนับสนุน RFC — ผู้ดูแลที่สนับสนุน RFC และจะดูแลผ่านกระบวนการตรวจสอบ RFC

  • คณะกรรมการตรวจสอบ - กลุ่มผู้ดูแลที่มีหน้าที่แนะนำการนำ RFC มาใช้

  • สมาชิกในชุมชน อาจช่วยเหลือโดยการให้ข้อเสนอแนะว่า RFC จะตอบสนองความต้องการของพวกเขาหรือไม่

ผู้สนับสนุน RFC

ผู้สนับสนุนคือผู้ดูแลโครงการที่รับผิดชอบในการรับรองผลลัพธ์ที่ดีที่สุดของกระบวนการ RFC ซึ่งรวมถึง:

  • การสนับสนุนสำหรับการออกแบบที่นำเสนอ
  • ชี้แนะ RFC ให้ปฏิบัติตามแบบแผนการออกแบบและสไตล์ที่มีอยู่
  • ชี้แนะคณะกรรมการพิจารณาเพื่อให้ได้ฉันทามติที่มีประสิทธิผล
  • หากคณะกรรมการพิจารณาร้องขอการเปลี่ยนแปลง ตรวจสอบให้แน่ใจว่าได้ทำการเปลี่ยนแปลงแล้วและขออนุมัติในภายหลังจากสมาชิกคณะกรรมการ
  • หาก RFC ย้ายไปใช้งาน:
    • ตรวจสอบให้แน่ใจว่าการดำเนินการที่นำเสนอเป็นไปตามการออกแบบ
    • ประสานงานกับฝ่ายที่เหมาะสมเพื่อดำเนินการที่ดินให้สำเร็จ

คณะกรรมการตรวจสอบ RFC

คณะกรรมการตรวจสอบจะตัดสินใจบนพื้นฐานที่เป็นเอกฉันท์ว่าจะอนุมัติ ปฏิเสธ หรือร้องขอการเปลี่ยนแปลง พวกเขามีความรับผิดชอบสำหรับ:

  • ตรวจสอบให้แน่ใจว่ารายการสำคัญของผลตอบรับสาธารณะได้รับการนำมาพิจารณา
  • การเพิ่มบันทึกการประชุมเป็นความคิดเห็นต่อ PR
  • การให้เหตุผลในการตัดสินใจของพวกเขา

รัฐธรรมนูญของคณะกรรมการพิจารณาอาจมีการเปลี่ยนแปลงตามรูปแบบการกำกับดูแลและความเป็นผู้นำของแต่ละโครงการ สำหรับ TensorFlow หลัก คณะกรรมการจะประกอบด้วยผู้ร่วมโครงการ TensorFlow ที่มีความเชี่ยวชาญในด้านโดเมนที่เกี่ยวข้อง

สมาชิกชุมชนและกระบวนการ RFC

วัตถุประสงค์ของ RFC คือเพื่อให้แน่ใจว่าชุมชนได้รับการนำเสนออย่างดีและให้บริการโดยการเปลี่ยนแปลงใหม่ใน TensorFlow เป็นความรับผิดชอบของสมาชิกชุมชนในการมีส่วนร่วมในการทบทวน RFCs ที่พวกเขาสนใจในผลลัพธ์

สมาชิกชุมชนที่สนใจ RFC ควร:

  • ให้ข้อเสนอแนะ โดยเร็วที่สุดเพื่อให้มีเวลาเพียงพอในการพิจารณา
  • อ่าน RFC อย่างละเอียดก่อนแสดงความคิดเห็น
  • เป็น พลเมืองและสร้างสรรค์

การใช้คุณสมบัติใหม่

เมื่อ RFC ได้รับการอนุมัติแล้ว การดำเนินการก็สามารถเริ่มต้นได้

หากคุณกำลังทำงานกับโค้ดใหม่เพื่อใช้ RFC:

  • ตรวจสอบให้แน่ใจว่าคุณเข้าใจคุณลักษณะและการออกแบบที่ได้รับอนุมัติใน RFC ถามคำถามและหารือแนวทางก่อนเริ่มงาน
  • คุณลักษณะใหม่จะต้องมีการทดสอบหน่วยใหม่ที่ตรวจสอบคุณลักษณะการทำงานตามที่คาดไว้ เป็นความคิดที่ดีที่จะเขียนการทดสอบเหล่านี้ก่อนที่จะเขียนโค้ด
  • ปฏิบัติตาม คำแนะนำสไตล์โค้ด TensorFlow
  • เพิ่มหรืออัปเดตเอกสาร API ที่เกี่ยวข้อง อ้างอิง RFC ในเอกสารประกอบใหม่
  • ปฏิบัติตามแนวทางอื่นๆ ที่กำหนดไว้ในไฟล์ CONTRIBUTING.md ใน repo โปรเจ็กต์ที่คุณมีส่วนร่วม
  • รันการทดสอบหน่วยก่อนส่งโค้ดของคุณ
  • ทำงานร่วมกับผู้สนับสนุน RFC เพื่อลงรหัสใหม่ให้สำเร็จ

รักษาบาร์ให้สูง

แม้ว่าเราจะสนับสนุนและเฉลิมฉลองผู้มีส่วนร่วมทุกคน แต่เกณฑ์การยอมรับ RFC ก็ยังคงอยู่ในระดับสูง คุณลักษณะใหม่อาจถูกปฏิเสธหรือต้องมีการแก้ไขที่สำคัญในขั้นตอนใดขั้นตอนหนึ่งต่อไปนี้:

  • การสนทนาเกี่ยวกับการออกแบบเบื้องต้นในรายชื่อผู้รับจดหมายที่เกี่ยวข้อง
  • ล้มเหลวในการรับสมัครสปอนเซอร์
  • การคัดค้านอย่างมีวิจารณญาณในระหว่างขั้นตอนการตอบรับ
  • ความล้มเหลวในการบรรลุฉันทามติในระหว่างการทบทวนการออกแบบ
  • ข้อกังวลที่เกิดขึ้นระหว่างการใช้งาน (เช่น การไม่สามารถบรรลุความเข้ากันได้แบบย้อนหลัง ความกังวลเกี่ยวกับการบำรุงรักษา)

หากกระบวนการนี้ทำงานได้ดี RFC คาดว่าจะล้มเหลวในระยะก่อนหน้า แทนที่จะเกิดขึ้นในภายหลัง RFC ที่ได้รับอนุมัติไม่รับประกันถึงข้อผูกพันในการดำเนินการ และการยอมรับการนำ RFC ที่นำเสนอไปใช้ยังคงอยู่ภายใต้กระบวนการตรวจสอบโค้ดตามปกติ

หากคุณมีคำถามใดๆ เกี่ยวกับกระบวนการนี้ โปรดสอบถามจากรายชื่ออีเมลของนักพัฒนาหรือแจ้งปัญหาใน tensorflow/community