ฉันต้องการแก้ไขข้อผิดพลาด ฉันจะเริ่มที่ไหน


47

แม้ว่าฉันไม่ใช่โปรแกรมเมอร์มืออาชีพ แต่ฉันเขียนโปรแกรมหนึ่งหรือสองโปรแกรม ทุกวันนี้วิศวกรและนักวิทยาศาสตร์ทุกคนเรียนรู้ที่จะเขียนโปรแกรมด้วยเช่นกันและฉันก็คุ้นเคยกับการเขียนโปรแกรมใน Python, C และ MATLAB ตอนนี้ฉันต้องการคืนให้อูบุนตูและผู้คนที่ยอดเยี่ยมและแก้ไขข้อผิดพลาด!

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

อย่างที่ฉันไม่เคยเขียนแพทช์หรือปล่อยโปรแกรมไปที่ไวด์ก่อนฉันไม่ทราบว่าจะเริ่มจากตรงไหน ขั้นตอนแรกของฉันที่ควรแก้ไขปัญหานั้นคืออะไร?

ที่บรรทัดด้านล่าง: ฉันจะเริ่มแก้ไขและแก้ไขได้อย่างไร


1
พื้นหลังของคุณคืออะไร คุณคุ้นเคยกับระบบควบคุมเวอร์ชันหรือไม่? ในการปฏิบัติเกี่ยวกับบรรจุภัณฑ์?
pygabriel

ไม่ยังไม่คุ้นเคยกับสิ่งนั้น! อาจมีการเปลี่ยนแปลง ...
Ingo

คำตอบ:


31

การตอบคำถามนี้อาจมีความยาวและซับซ้อนดังนั้นฉันจึงขอแนะนำให้คุณไปยังแหล่งข้อมูลที่มีอยู่แทนที่จะทำการฟื้นฟูที่นี่

เอกสาร

  1. เริ่มต้นใช้งานเพื่อพัฒนา Ubuntu
  2. วิธีแก้ไขบัก

สอน

เราดำเนินกิจกรรมตลอดวงจรเพื่อช่วยให้คนอย่างคุณโดยเฉพาะเราใช้งานUbuntu Developer Weekใน IRC ซึ่งเป็นการสอนแบบสดและเวิร์คช็อปคำถามและคำตอบ มีอีกหนึ่งรายการที่จะมาถึงปลายเดือนกุมภาพันธ์หากคุณต้องการเข้าร่วม!

นี่คือบันทึกสองรายการจากเซสชันที่ผ่านมาเพื่อให้แนวคิดแก่คุณ:

สถานที่ที่จะหาโอกาส

  • Harvest - เครื่องมือนี้ผ่านแพทช์และแพกเกจทั้งหมดใน Launchpad (และยังมองหาแพทช์อื่น ๆ ) สำหรับแพทช์ สิ่งเหล่านี้จำนวนมากสามารถถูกขัดขวางนำไปใช้ทดสอบและแก้ไขแล้วใน Ubuntu และส่งอัปสตรีม
  • Cleansweep - รายชื่อของแพทช์นั่งอยู่ใน Launchpad ที่มีคนแนบมากับรายงานข้อผิดพลาด สิ่งเหล่านี้อาจมีประโยชน์หรือไม่พวกเขายังควรดูว่า

ขอความช่วยเหลือ

การติดต่อ MOTU ในรายการส่งเมลหรือ IRC เป็นวิธีที่ดีในการรับความช่วยเหลือสำหรับปัญหาส่วนบุคคลที่คุณพบ:

ผลตอบรับ

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


19

คำตอบทั่วไปของ Jorge เป็นการแนะนำที่ดีในการพัฒนาไปสู่อูบุนตู แต่ลองมองปัญหาเฉพาะของคุณให้ละเอียดยิ่งขึ้น ...

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

การพัฒนาของ Apport ถูกโฮสต์ในLaunchpad มันใช้ระบบควบคุมเวอร์ชันกระจายของตลาดสดเพื่อจัดการซอร์สโค้ดของมัน ขั้นตอนแรกในการแก้ไขข้อผิดพลาดของคุณคือการจับแหล่งที่มา หากคุณไม่เคยใช้บาซ่าก่อนหน้านี้การสอนบาซ่าในห้านาทีเป็นจุดเริ่มต้นที่ดี

ติดตั้งบาซ่าด้วย:

sudo apt-get install bzr

ดึงรหัสต้นฉบับของ apport:

bzr branch lp:apport

ตอนนี้คุณสามารถเริ่มแฮ็คได้ เช่นเดียวกับ VCS ส่วนใหญ่เมื่อทำงานกับตลาดสดมันเป็นความคิดที่ดีที่จะทำการเปลี่ยนแปลงเพียงครั้งเดียวต่อการกระทำ คุณควรให้ข้อมูลการส่งข้อความ มันทำให้การเปลี่ยนแปลงของคุณง่ายต่อการตรวจสอบ เมื่อคุณพร้อมที่จะทำการคอมมิทครั้งแรกให้รัน:

bzr commit -m "My commit message. Did foo to bar in order to achieve baz."

ทำการเปลี่ยนแปลงต่อไปและทำคอมมิชชันจนกว่าคุณจะพอใจว่าบั๊กของคุณได้รับการแก้ไขแล้ว ด้วยการกระทำครั้งสุดท้ายของคุณคุณสามารถติดแท็กเป็นแก้ไขข้อผิดพลาดโดยผนวก--fixes lp:<bug_number>เข้ากับคำสั่งกระทำ ตอนนี้คุณพร้อมที่จะส่งการเปลี่ยนแปลงเพื่อตรวจทานและรวมไว้แล้ว

ก่อนอื่นคุณต้องผลักดันมันไปที่ Launchpad เพื่อให้สามารถใช้งานได้แบบสาธารณะ:

bzr push lp:~<launchpad_username>/apport/<branch_name>

สาขาของคุณสามารถพบได้ที่:

https://code.launchpad.net/~<launchpad_username>/apport/<branch_name>/

การทำงานbzr lp-openในสาขาจะเป็นการเปิดตำแหน่งนั้นในเบราว์เซอร์

ตอนนี้เราต้องการเสนอการผสาน ในหน้านั้นเลือก "เสนอเพื่อการรวม"

เสนอเพื่อการรวม

ในหน้าถัดไปเลือกสาขาเป้าหมายของคุณและให้ภาพรวมของการเปลี่ยนแปลงของคุณ

อธิบายการรวม

ตอนนี้คุณจะมีข้อเสนอการผสานที่ใช้งานอยู่

ตรวจสอบการใช้งาน

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.