ฉันจะส่งโปรแกรมแก้ไขไปยังโครงการ Launchpad ได้อย่างไร


20

ด้วยพื้นหลัง Git / GitHub และรู้น้อยมากเกี่ยวกับ Bazaar VCS ฉันต้องการรายงานข้อบกพร่องบางครั้งให้กับโครงการที่โฮสต์บน Launchpad และแม้แต่ส่งแพตช์ ฉันต้องการที่จะทำในลักษณะ "เหมาะสม" เพื่อให้พร้อมสำหรับการรวมหรือปรับปรุงในขณะที่ไม่ได้รับ

ฉันไม่สามารถหาวิธีง่าย ๆ ที่เหมาะสมสำหรับความต้องการของฉันได้

สิ่งที่ฉันทำจนถึงตอนนี้:

  1. ฉันสร้างบัญชี Launchpad แล้ว

  2. รายงานข้อผิดพลาด

  3. ติดตั้ง Bazaar และตั้งค่าคีย์ SSH เป็นต้น

ตอนนี้ถ้าเป็น GitHub ฉันก็จะได้

  1. แยก repo

  2. โคลน repo คดเคี้ยว

  3. สร้างสาขาที่มีชื่ออย่างดีและทำงาน

  4. กระทำ + ผลัก

  5. สร้างคำขอดึงโดยใช้ GitHub WUI

แต่ไม่ใช่ GitHub และสถาปัตยกรรม Launchpad และ Bazaar นั้นค่อนข้างแตกต่างจาก GitHub / Git

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


แก้ไข: ดูเหมือนว่าฉันควรชี้แจงว่าฉันถามเฉพาะเกี่ยวกับแพคเกจ Ubuntu (สิ่งที่มันหมายถึง) หรือโครงการ Launchpad

ฉันไม่ค่อยสนใจความแตกต่างระหว่างแพ็คเกจของ Ubuntu และแพ็คเกจที่ไม่ใช่ของ Ubuntu ซอฟต์แวร์ใด ๆ ที่อาจอยู่ใน Ubuntu ในปัจจุบันและนอกพรุ่งนี้หรือในทางกลับกัน การพัฒนาคือสิ่งที่สำคัญกว่าการกระจาย

ดังนั้นฉันจึงสมมุติว่า

  • ไม่ใช่ทุกแพ็คเกจเดียวที่แจกจ่ายใน Ubuntu นั้นโฮสต์อยู่บน Launchpad

  • มีเวิร์กโฟลว์ "เป็นทางการ" หรือ "เริ่มต้น" สำหรับ Launchpad อยู่แล้ว (ถ้า devs ทั้งหมดสามารถตกลงกับการใช้ Bazaar ได้ทำไมพวกเขาส่วนใหญ่ไม่เห็นด้วยกับเวิร์กโฟลว์การแพตช์?),

ดังนั้นฉันถามเกี่ยวกับวิธี Launchpad ไม่ใช่วิธี Ubuntu และฉันเลือก AU เพราะเนื่องจากจุดตัดมีขนาดใหญ่มากฉันคิดว่ามันค่อนข้างน่าสนใจในหัวข้อที่นี่


เอกสารสั้นนี้ช่วยอะไรได้บ้าง? ถ้าเป็นเช่นนั้นโปรดอย่าลังเลที่จะขยายคำตอบที่มีอยู่ตามที่จำเป็นdoc.bazaar.canonical.com/bzr.dev/en/mini-tutorial
david.libremone

คำตอบ:


15

เป็นโครงการ Launchpad หรือไม่

(หากคุณรู้อยู่แล้วว่าเป็นโครงการ Launchpad คุณสามารถข้ามสิ่งนี้ได้)

ไม่ใช่ทุกโครงการที่พบบน Launchpad นั้นโฮสต์และพัฒนาที่นั่นจริง ๆ แล้วบางโครงการเป็นโค้ดของโฮสต์ที่อื่น (GitHub / Gitorious / etc) โครงการอื่น ๆ มาจาก Debian แหล่งต้นฉบับเหล่านี้เรียกว่าโครงการ "upstream" และโดยปกติแล้วจะเป็นการดีที่สุดที่จะส่งแพตช์ที่แหล่งที่มาและปล่อยให้การเปลี่ยนแปลงมาถึง "downstream" ใน Ubuntu (โดยปกติจะอยู่ในรุ่นถัดไป)

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

ในฐานะที่เป็นหมายเหตุพิเศษแพ็คเกจ Ubuntu อย่างเป็นทางการ (ซอฟต์แวร์ที่เก็บไว้ในที่เก็บ Ubuntu อย่างเป็นทางการที่คุณสามารถติดตั้งจากศูนย์ซอฟต์แวร์) มีวิธีที่แตกต่างกันสองสามวิธีในการส่งแพตช์เนื่องจากแพ็คเกจเหล่านั้นมาจาก Debian โดยตรง มากกว่าเฉพาะใน Ubuntu (นี่เป็นคำถามอื่นทั้งหมด)

วิธีส่งแพทช์

วิธีทั่วไปในการส่งแพตช์คือคุณสร้างสาขาของคุณส่งไปที่โลคัลและกดกลับไปที่ Launchpad:

bzr push lp:~user/project/branch-name

จากนั้นคุณสามารถเสนอให้สาขาของคุณรวมเข้ากับพาเรนต์ที่คุณแยกสาขาไม่ว่าจะผ่านทางเว็บไซต์หรือใช้bzr lp-proposeคำสั่ง

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

bzr commit --fixes=lp:000000

หมายเหตุเกี่ยวกับเวิร์กโฟลว์ "เริ่มต้น"

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


8

คำตอบเริ่มต้นขึ้นอยู่กับคำตอบของ dobeyที่นี่และคำตอบของ Jorge Castroสำหรับคำถามเฉพาะโครงการ ยินดีต้อนรับการแก้ไข / แก้ไข / ข้อเสนอแนะ

  1. สร้างบัญชี Launchpad ซึ่งจะรวมถึงชื่อผู้ใช้ Launchpad ( LP-USER)

  2. เพิ่มคีย์ SSH ของคุณเพื่อ launchpad ที่ https://launchpad.net/~LP-USER/+editsshkeys

  3. บน Launchpad ให้จดชื่อโครงการ ( PROJECT-NAME)

  4. รายงานปัญหากับโครงการ ปัญหานี้จะถูกกำหนดหมายเลขข้อบกพร่อง ( 000000)

  5. ตรวจสอบให้แน่ใจว่าติดตั้ง Bazaar dpkg-query -l bzrแล้ว คุณอาจต้องการที่จะอ่านข้อมูลเกี่ยวกับการบูรณาการบาซ่า / Launchpad

  6. กำหนดค่า bzrด้วยbzr whoami "Your Name <name@example.com>"และbzr launchpad-login LP-USER

  7. บนเครื่องของคุณให้ตรวจสอบสาขาท้องถิ่นของโครงการ

    bzr branch lp:PROJECT-NAME
    

    (สิ่งนี้จะสร้างโฟลเดอร์PROJECT-NAMEที่มีรหัสโครงการล่าสุด)

  8. รับโครงการที่ทำงานอยู่ ทำการเปลี่ยนแปลง ทดสอบการเปลี่ยนแปลงของคุณ (ขั้นตอนเหล่านี้เป็นโครงการและปัญหาเฉพาะ)

  9. คอมมิตการเปลี่ยนแปลงของคุณรวมถึงหมายเลขบั๊ก ( 000000)

    bzr commit --fixes=lp:000000
    
  10. ซึ่งจะเปิดกล่องโต้ตอบยอมรับซึ่งคุณสามารถเพิ่มรายการบันทึกการเปลี่ยนแปลงที่อธิบายการเปลี่ยนแปลงของคุณ

  11. พุชการเปลี่ยนแปลงของคุณไปที่ Launchpad (สิ่งนี้จะสร้างสาขาระยะไกลใหม่ที่เชื่อมโยงกับบัญชีของคุณ)

    bzr push lp:~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME
    

    ( NEW-BRANCH-NAMEควรเป็นชื่อที่สื่อความหมายสั้น ๆ ของปัญหาที่ได้รับการแก้ไข / เพิ่มคุณสมบัติ)

  12. เปิดสาขาในเบราว์เซอร์ของคุณด้วยbzr lp-openหรือไปที่https://code.launchpad.net/~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME/

  13. เสนอการผสานด้วยbzr lp-proposeหรือจาก URL ในขั้นตอนสุดท้ายด้วยการเลือก "เสนอสำหรับการรวม" เพิ่มคำอธิบายวางในสาขาที่คุณต้องการที่จะเสนอเข้าและคลิกlp:PROJECT-NAMESubmit


คำถาม: ถ้า "ชื่อโครงการ" ของฉันคือubuntu/saucy/msttcorefontsฉันกำลังทำbzr push lp:~amandabee/ubuntu/saucy/msttcorefonts/actualbranchnameหรือเพียงแค่bzr push lp:~amandabee/msttcorefonts/actualbranchname
อแมนดา

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