อยากจะ Contribute ให้กับ Open Source Library บน GitHub ต้องทำยังไงบ้างนะ?

สำหรับคนที่ใช้ Open Source Library ที่อยู่บน GitHub แล้วอยากจะช่วยแก้บั๊กหรือเพิ่มฟีเจอร์เข้าไป แต่ไม่รู้ว่าต้องทำยังไงบ้าง

แล้วต้องทำยังไงบ้าง?

จริง ๆ แล้วการ Contribute ให้กับ Open Source Library ก็จะมีรูปแบบคล้าย ๆ กับการทำงานของทีมพัฒนาซอฟต์แวร์ขนาดใหญ่​ ที่แต่ละคนไม่สามารถเข้าไปยุ่งกับโค้ดที่อยู่ใน Original Repository ได้โดยตรง แต่จะใช้วิธีสร้าง Pull Request เพื่อส่งโค้ดของแต่ละโค้ดเข้าไปแทน

  • อ่านรายละเอียดในการ Contributing (ถ้ามี)
  • Fork Repository และ Clone
  • สร้าง Feature Branch
  • เขียนโค้ดจนกว่าจะเสร็จ
  • สร้าง Pull Request
  • รอ Code Review จาก Library Owner
  • รอจนกว่า Library จะปล่อยเวอร์ชันใหม่

อ่านรายละเอียดของ Code of Conduct (ถ้ามี)

สำหรับ Library ที่มี Contributor หลายคน ก็เหมือนทีมพัฒนาซอฟต์แวร์จากทั่วโลกที่ทำงานร่วมกัน ดังนั้นในบาง Library จึงมี Code of Conduct ให้กับนักพัฒนาที่จะเข้ามาเป็น Contributor เพื่อเป็นแนวทางในการทำงานร่วมกัน

ตัวอย่าง Code of Conduct ของ WordPress for Android

อ่านรายละเอียดในการ Contribute (ถ้ามี)

ใน Library ที่มีขนาดเล็ก ก็อาจจะไม่ได้มี Development Process ใด ๆ มากำหนดไว้ แต่สำหรับ Library ขนาดใหญ่จะมีการกำหนด Development Process ไว้อยู่เสมอ เพื่อให้คนที่จะเข้ามาช่วย Contribute สามารถทำตามขั้นตอนได้อย่างถูกต้อง จึงต้องมีการเขียนรายละเอียดเหล่านั้นไว้ในหัวข้อที่เรียกกันว่า “Contributing”

ตัวอย่าง Contributing ของ Google Auth Library for Python

Fork Repository และ Clone

บน GitHub สามารถ Fork Repository ได้ง่าย ๆ ด้วยการเปิด Repository ของ Library ที่ต้องการ Contribute แล้วกดปุ่ม “Fork” ที่อยู่ขวาบนได้เลย

กดที่คำว่า “Fork” นะ ไม่ใช่ตัวเลขที่อยู่ต่อท้าย
git clone <remote>/<repository>

สร้าง Feature Branch

เพราะในการ Contribute จะไม่ได้แก้ไขโค้ดที่อยู่ใน Primary Branch อย่าง main, master หรือ develop โดยตรง แต่จะสร้าง Feature Branch ขึ้นมาตามรูปแบบของ Git Flow แทน

git checkout -b feature/<branch_name>

เขียนโค้ดจนกว่าจะเสร็จ

ในระหว่างนี้ก็ให้เขียนโค้ดใน Library ตามที่เราต้องการและทดสอบให้เรียบร้อย และแน่นอนว่าตอนที่สร้าง Commit แต่ละตัวก็ไม่ควรสร้าง Commit ขึ้นมาแบบสะเปะสะปะ เพราะว่าใน Library บางตัวซีเรียสเรื่องการสร้าง Commit และการใส่ Commit Message มาก ๆ ดังนั้นอย่าลืมทำตามที่เค้าบอกไว้ใน Contributing ด้วยล่ะ

สร้าง Pull Request

หลังจากที่เขียนโค้ดและ Push Commit ทั้งหมดใน Feature Branch ขึ้น Repository ของเราเสร็จเรียบร้อย ก็ให้เปิด Forked Repository ของเราบน GitHub ขึ้นมาเพื่อสร้าง Pull Request ได้เลย

การกำหนด Branch ใน Pull Request จะเป็น Destination Branch (ซ้าย) < Source Branch (ขวา)

รอ Code Review จาก Library Owner

ในขั้นตอนนี้เราทำได้แต่รอ และรอเท่านั้น รอจนกว่า Library Owner จะเข้ามารีวิวโค้ดของเรา อาจจะมี Comment บ้างในระหว่างนี้ แต่สุดท้ายแล้วถ้า Pull Request ของเราผ่านก็จะถูก Merge เข้าไปใน Original Repository (ใน Branch ที่กำหนดไว้)

รอจนกว่า Library จะปล่อยเวอร์ชันใหม่

แต่ละ Library จะมี Release Process ที่ไม่เหมือนกัน โดยในบาง Library อาจจะมีการกำหนด Milestone ไว้ชัดเจนว่าจะปล่อยของอะไรออกไปในแต่ละเวอร์ชันบ้าง และมีรอบในการ Release เมื่อไร

การ Contribute ให้กับ Open Source Library ให้อะไรมากกว่าที่คุณคิด

จะเห็นว่าขั้นตอนในการ Contribute ให้กับ Library นั้นไม่ใช่เรื่องยากแต่อย่างใด ถึงแม้ว่าจะมีขั้นตอนที่เยอะขึ้นนิดหน่อย แต่นั้นก็เป็นวิธีสากลที่ใช้กันทั่วโลก Open Source อยู่แล้ว

Lovely android developer who enjoys learning in android technology, habitual article writer about Android development for Android community in Thailand.

Lovely android developer who enjoys learning in android technology, habitual article writer about Android development for Android community in Thailand.