เชื่อว่าสำหรับ Developer หลายๆคนมีโอกาสได้ใช้ open source ในโปรเจคงานของตัวเองเช่น bootstrap, react-js, postgresql ในการทำเว็บไซต์ หรือ อื่นๆที่มีมากมายอยู่ในโลกออนไลน์โดยเฉพาะใน github และมีอีกจำนวนไม่น้อยที่อยากจะมีส่วนร่วมช่วยพัฒนา open source ที่ได้นำมาใช้ ให้มันดียิ่งขึ้น แต่ไม่รู้ว่าจะเริ่มจากไหนดี
หากเพื่อนๆ Developer คนไหนที่ยังไม่คุ้นชินกับการใช้ git ทำงานเขียนโค้ดร่วมกับคนอื่นๆ ไม่ว่าจะเป็นทีมงานที่บริษัท หรือกลุ่มทำโปรเจคสมัยเรียนที่มหาลัย อาจจะรู้สึกว่าการใช้ git เพื่อเข้ามาเป็นส่วนร่วมพัฒนาเขียนโค้ด Open source ที่มีคน contribute หรือช่วยร่วมพัฒนากันอยู่จำนวนมาก เป็นเรื่องที่น่ากลัวและท้าทายเกินตัว
แต่บทความนี้ จะชวนให้เพื่อน มาเริ่มก้าวแรกของการเป็น contributor ง่ายๆ และสร้างโอกาสการมีตัวตนอยู่ในโลกของ Open Source ได้มากขึ้น
ผมขอข้ามการสร้างบัญชีและ profile ใน github ไป ซึ่งเพื่อนๆน่าจะมีกันอยู่แล้ว แต่สำหรับใครที่ยังไม่มี ผมขอแนะนำให้ไปสมัครให้เรียบร้อยก่อนเลยครับ ไว้จะมีเขียนบทความเกี่ยวกับการสมัคร github และสร้าง profile ในนั้น
จะขอชี้เป้าโปรเจคที่เพื่อนๆสามารถเริ่มต้นได้ง่ายๆ เพื่อเข้าใจกระบวนการของการร่วมช่วยพัฒนาผ่าน git ด้วยโปรเจคที่ชื่อ first-contributions (https://github.com/firstcontributions/first-contributions)
first-contributions คืออะไร
โปรเจคนี้ช่วยให้คนที่เริ่มต้นอยากทำความเข้าใจกระบวนการส่งโค้ดที่เราช่วยพัฒนาให้กับ open source ได้ลองเองดูง่ายๆ ด้วยการใส่ชื่อตัวเองลงไปในรายชื่อ contributor ของเขา ซึ่งมีลำดับขั้นตอนดังนี้
Fork
ทุกๆครั้งที่เราต้องการนำโค้ดที่อยู่ใน github ที่ไหนมาพัฒนาต่อ จะเริ่มต้นจากการ fork หรือแตกกิ่งก้าน ออกมาเป็น repo ของเราเองก่อน จากนั้นคุณถึงจะเริ่มเข้าไปแก้ไขโค้ดได้
Clone และ Branch
เมื่อ fork เสร็จแล้ว เราสามารถนำโค้ดมา clone ไว้อยู่ในคอมของเราด้วยการก็อป url ของ git repo ของเรากันตามรูป
เปิด Command prompt หรือ Terminal ในคอมเรา แล้วพิมพ์
git clone "url ที่เราก็อปมา"
ตัวอย่างเช่น
git clone git@github.com:this-is-you/first-contributions.git
จากนั้นคุณสามารถใช้ IDE ที่คุ้นเคย เช่น Visual Studio หรือ Text Editor ตัวไหนก็ได้ มาแก้ไขไฟล์โค้ดได้เลย
แต่ช้าก่อน!!!
เราควรจะแตก branch ออกมาจาก master เพื่อเป็นการฝึกวินัยที่ดีในการเข้าไปมีส่วนร่วมกับ open source ที่อื่นด้วย
เปิด Terminal ของเรา ไปที่โฟลเดอร์ที่ใส่โค้ดที่เรา clone มาจากนั้นพิมพ์คำสั่งตามข้างล่างนี้เพื่อสร้าง branch ใหม่
git switch -c your-new-branch-name
ตัวอย่างเช่น
git switch -c add-alonzo-church
Edit, Commit, Push
สำหรับโปรเจคนี้ เราแค่ใส่ชื่อของเราในไฟล์ที่ชื่อ Contributors.md เพิ่มเข้าไป อ่านคำแนะนำของเจ้าของโปรเจคนิดนึงนะครับว่ามีกฏกติกายังไง เช่น
Don’t add it at the beginning or end of the file. Put it anywhere in between.
ดังนั้น ใส่ชื่อของคุณไว้กลางๆลิสรายชื่อ จากนั้นพิมพ์คำสั่งให้ git บันทึกการเปลี่ยนแปลงของไฟล์นี้ไว้ด้วยคำสั่ง
git add Contributors.md
จากนั้นทำการ Commit เพื่อบันทึกทุกการเปลี่ยนแปลงที่คุณทำไป เป็นประวัติใน git โดยที่คุณสามารถเขียนบันทึกรายละเอียดไว้ได้ว่าทำอะไรไปใน commit นี้
git commit -m "Add your-name to Contributors list"
แต่ประวัติ commit ยังคงอยู่ในคอมเครื่องที่คุณทำงานอยู่ ยังไม่ได้อัพเดทขึ้นไปใน github repo ของคุณเอง
ดังนั้นมาพิมพ์คำสั่ง push เพื่อนำโค้ดที่แก้ไขขึ้นไปใน github กัน
git push -u origin your-branch-name
โดยที่ your-branch-name คือชื่อ branch ที่ตั้งไว้ตอนแยก branch ออกมา
เมื่อเสร็จแล้ว เราสามารถขอให้ repo ต้นฉบับไปรีวิวและนำโค้ดของเราไปรวมอยู่ repo หลักได้ ด้วยการเปิด pull request หรือที่เรียกสั้นๆว่า PR
กรอกรายละเอียดนิดนึงว่าคุณทำอะไรไป
จากนั้นกดปุ่ม Create pull request ได้เลย เพื่อให้ทีมงานเจ้าของต้นฉบับตรวจดู และ merge โค้ดของคุณเข้าไป
เท่านี้ คุณก็ได้เรียนรู้ถึงกระบวนการ Fork->Clone->Edit->Pull Request ซึ่งเป็นพื้นฐานของ Contributors ที่จะร่วมพัฒนาโค้ดให้กับ open source แล้ว
คุณสามารถเริ่มต้นจากโปรเจคที่คุณคุ้นชิน ใช้งานอยู่แล้ว และอาจจะมีบักหรืออะไรที่คุณคิดว่าน่าจะเพิ่มเติมเข้าไปก่อน
แต่หากไม่รู้ว่าจะเริ่มจากไหนก่อนดี ผมแนะนำให้ค้นหาใน github ด้วย label ที่ชื่อ first-time-only หรือ good first issue ที่เป็นพื้นที่ให้คนที่เพิ่งหัดมา contribute หน้าใหม่ได้เข้าร่วม ฝึกฝนตัวเอง โดยที่เจ้าของโปรเจคให้คำแนะนำได้ด้วย
หวังว่าบทความนี้จะช่วยให้เพื่อนๆมีกำลังใจอยากก้าวมาเป็น contributors กันมากขึ้น และไว้มีโอกาสเขียนบทความที่ช่วยแนะนำหรือชี้เป้าโปรเจคให้ในอนาคตนะครับ