คุณสมบัติ TensorFlow ใหม่ทั้งหมดเริ่มต้นชีวิตด้วยการขอความคิดเห็น (RFC)
RFC เป็นเอกสารที่อธิบายข้อกำหนดและการเปลี่ยนแปลงที่เสนอซึ่งจะช่วยแก้ไขได้ โดยเฉพาะอย่างยิ่ง RFC จะ:
- จัดรูปแบบตาม เทมเพลต RFC
- ส่งเป็นคำขอดึงไปยังไดเร็กทอรี community/rfcs
- อาจมีการอภิปรายและการประชุมทบทวนก่อนที่จะยอมรับ
วัตถุประสงค์ของคำขอความคิดเห็น (RFC) ของ TensorFlow คือเพื่อดึงดูดชุมชน TensorFlow ในการพัฒนา โดยการรับคำติชมจากผู้มีส่วนได้ส่วนเสียและผู้เชี่ยวชาญ และการสื่อสารการเปลี่ยนแปลงการออกแบบในวงกว้าง
วิธีการส่ง RFC
ก่อนที่จะส่ง RFC ให้หารือเกี่ยวกับเป้าหมายของคุณกับผู้ร่วมโครงการและผู้ดูแลโครงการ และรับคำติชมตั้งแต่เนิ่นๆ ใช้รายชื่อผู้รับจดหมายของนักพัฒนาสำหรับโครงการที่เกี่ยวข้อง (developers@tensorflow.org หรือรายชื่อสำหรับ SIG ที่เกี่ยวข้อง)
ร่าง RFC ของคุณ
- อ่าน เกณฑ์การทบทวนการออกแบบ
- ปฏิบัติตาม เทมเพลต RFC
- ตั้งชื่อไฟล์ RFC ของคุณ
YYYYMMDD-descriptive-name.md
โดยที่YYYYMMDD
คือวันที่ส่ง และdescriptive-name
เกี่ยวข้องกับชื่อเรื่องของ RFC ของคุณ (เช่น หาก RFC ของคุณชื่อ Parallel Widgets API คุณอาจใช้ชื่อไฟล์20180531-parallel-widgets.md
- หากคุณมีรูปภาพหรือไฟล์เสริมอื่นๆ ให้สร้างไดเร็กทอรีในรูปแบบ
YYYYMMDD-descriptive-name
เพื่อใช้จัดเก็บไฟล์เหล่านั้น
หลังจากเขียนร่าง RFC แล้ว ให้รับคำติชมจากผู้ดูแลและผู้มีส่วนร่วมก่อนส่ง
การเขียนโค้ดการใช้งานไม่ใช่ข้อกำหนด แต่อาจช่วยในการออกแบบการอภิปรายได้
รับสมัครสปอนเซอร์.
- ผู้สนับสนุนจะต้องเป็นผู้ดูแลโครงการ
- ระบุผู้สนับสนุนใน RFC ก่อนที่จะโพสต์ PR
คุณ สามารถ โพสต์ RFC ได้โดยไม่ต้องมีผู้สนับสนุน แต่หากภายในหนึ่งเดือนหลังจากโพสต์ PR ยังไม่มีผู้สนับสนุน จะมีการปิดตัวลง
ส่ง RFC ของคุณเป็นคำขอดึงไปที่ tensorflow/community/rfcs
รวมตารางส่วนหัวและเนื้อหาของส่วน วัตถุประสงค์ ในความคิดเห็นของคำขอดึงของคุณโดยใช้ Markdown สำหรับตัวอย่าง โปรดดู ตัวอย่างนี้ RFC รวมการจัดการ GitHub ของผู้เขียนร่วม ผู้ตรวจสอบ และผู้สนับสนุน
ที่ด้านบนของ PR ระบุระยะเวลาแสดงความคิดเห็น ซึ่งควรใช้ เวลาอย่างน้อยสองสัปดาห์ นับจากการโพสต์ PR
ส่งอีเมลถึงรายชื่อผู้รับอีเมลของนักพัฒนาพร้อมคำอธิบายสั้นๆ ลิงก์ไปยัง PR และคำขอให้ตรวจสอบ ทำตามรูปแบบการส่งจดหมายครั้งก่อนๆ ดังที่คุณเห็นใน ตัวอย่างนี้
ผู้สนับสนุนจะขอให้มีการประชุมคณะกรรมการพิจารณาภายในไม่เกินสองสัปดาห์หลังจากโพสต์ RFC PR หากการพูดคุยเป็นไปอย่างมีชีวิตชีวา ให้รอจนกว่าจะคลี่คลายก่อนจึงจะเริ่มทบทวน เป้าหมายของการประชุมทบทวนคือการแก้ไขปัญหาเล็กๆ น้อยๆ ควรบรรลุฉันทามติในประเด็นสำคัญล่วงหน้า
ที่ประชุมอาจอนุมัติ 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