PEP 8016 and the future of Python govenance

Yothin Muangsommuk
pythonbycow
Published in
2 min readDec 19, 2018

--

อย่างที่ทุกคนรู้นะครับว่า Guido ได้ถอดตัวออกจากการเป็น BDFL Role ที่เป็นมาอย่างยาวนานในช่วงกลางปีที่ผ่านมา แล้วการออกนั้นถึงแม้จะไม่ได้ effect กับ user อย่างเราๆ ท่านๆ แต่มีผลมากกับ Core developer ที่คอยดูแล CPython กับ Python Interpreter อยู่ครับ

ด้วยเหตุนี้เองประมาณเดือนสิงหาคมที่ผ่านมาทาง Core Dev หลายๆ คนจึงช่วยๆ กันร่างมาตรฐาน PEP 8001 — Python Governance Voting process ขึ้นมาเป็นอันดับแรกครับ ซึ่งจะพูดถึงวิธีการ vote มาตรฐาน Governance ก่อน โดยจะเปิดให้ Core dev 94 คนเป็นคน vote เพื่อเลือกมาตรฐาน Governance model สำหรับอนาคตต่อไป ในระหว่างนั้นก็ได้มี Core dev หลายๆ คนเสนอมาตรฐานหลายๆ มาตรฐานขึ้นมาหลายๆ ตัวครับ

จนกระทั่งเดือนธันวาคมระหว่างวันที่ 1–16 จะเป็นช่วงเวลาที่คณะกรรมการการเลือกตั้งเปิดให้โหวตมาตรฐานแต่ละตัวที่มีคนเสนอมา จากที่ติดตามใน twitter นี่บอกได้เลยครับว่า หลายๆ Core dev รอกันจนวันสุดท้ายถึงตัดสินใจ และปิดโหวตในวันที่ 17 ที่ผ่านมานี่เองครับและมาตรฐานที่ได้รับเลือกคือ PEP8016 — The Steering Council Model ครับและเราจะไปดูรายละเอียดของมาตรฐานตัวนี้กันใน blog นี้ครับ

PEP 8016 — The Steering Council Model

หลักการคร่าวๆ ของ PEP8016 คือถึงแม้ Steering council จะมีอำนาจที่กว้างขวางมาก แต่ก็สนับสนุนให้ใช้อำนาจให้น้อยที่สุดเท่าที่จะเป็นไปได้ และแทนที่จะใช้อำนาจนั้นในการตัดสินใจแทน community ให้เลือกที่จะสร้าง process ที่จะกำหนดมาตรฐานต่อๆ ไป นอกจากนั้นแล้วยังส่งเสริมให้แบ่งการตัดสินใจในมาตรฐานเรื่องใหญ่ๆ ให้เป็นเรื่องเล็กๆ ที่จะสามารถตัดสินใจได้แยกจากกันได้

โดยหัวใจหลักของ The Steering Council Model แบ่งออกเป็น 4 ข้อคือ
* Be boring
* Be simple
* Be comprehensive
* Be flexible and light-weight

ทีนี้คำถามต่อไปก็คือ ใครจะมาเป็น The Steering council นี้ ใน PEP8016 ระบุไว้ว่า ต้องมี 5 committee ครับ โดยมีหน้าที่ดังนี้ครับ
* รักษาคุณภาพและความเสถียรของ Python language กับ Python interpreter
* ส่งเสริมให้การ contribute เข้าถึงได้ง่ายและยั่งยืน
* รักษาความสัมพันธ์ระหว่าง core team กับ PSF
* วางมาตรฐานการตัดสินใจของ PEP ในอนาคต
* หาความเห็นพ้องร่วมกันระหว่าง contributer กับ core team
* เป็น Court of final appeal ในกรณีที่การตัดสินใจด้วยวิธีอื่นๆ ไม่เวิร์คแล้ว

จุดที่น่าสนใจอีกจุดหนึ่งที่ผมเห็นในมาตรฐานนี้คือการเลือกตัว Coucil ครับ ซึ่ง ใครสามารถเสนอตัวเองขึ้นมาหรือ core dev เป็นคนเสนอขึ้นมาครับ นอกจากนั้นแล้วพูดถึงเรื่อง Conflict of interest ซึ่งเป็นการป้องกันบริษัทใดๆ nominate การตัดสินใจของ Council ครับโดย สามารถให้สมาชิกของ Council มาจากบริษัทเดียวกันได้มากที่สุด 2 คน ถ้าตอนเลือก council ได้ top 5 แล้ว 3 คนมาจากบริษัทเดียวกันคนที่อยู่อันดับ 3 จากบริษัทเดียวกันจะถูกปัดตกแล้วอันดับ 6 จะถูกเลื่อนขึ้นมาครับ

ตัวมาตรฐาน PEP 8016 ยังไม่หมดแค่นี้นะครับ ยังมีการพูดถึงการให้ออกจาก council ในกรณีต่างๆ รวมถึงบทบาทของ Core team ด้วย ใครสนใจศึกษาเพิ่มเติมไปตามได้ตามลิ้งค์ข้างล่างเลยครับ

Reference

https://discuss.python.org/t/python-governance-vote-december-2018-results/546
https://www.python.org/dev/peps/pep-8016/

--

--

Yothin Muangsommuk
pythonbycow

Pythonista @ProntoTools ♥ Python, Django, Vim and Star Trek 🖖