การปรับเปลี่ยนแอปพลิเคชันโอเพนซอร์ซ


9

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


2
คุณควรส่งการเปลี่ยนแปลงของคุณไปยังโครงการโดยทั่วไปเป็นแพตช์เพื่อให้ผู้อื่นได้รับประโยชน์

คำตอบ:


6

มีบางโพรโทคอลที่ทุกคนคิดว่ามากขึ้นหรือน้อยลงตามกาลเวลา แต่ที่นี่มันไม่ได้มีการควบคุม

  • คุณดาวน์โหลดแหล่งที่มาแบบกระจาย
  • คุณเริ่มนำทางรหัสด้วยตัวเองเล็กน้อย

    • ถ้ามันเป็นโปรแกรมที่รวบรวมให้คุณเรียนรู้ในขณะนี้วิธีการรวบรวมมัน
    • หากคุณล้มเหลวในการรวบรวมคุณจะต้องรายงานไปยังรายการผู้เขียน / ส่งจดหมายและถามเส้นทาง
  • หากคุณไม่เข้าใจเกี่ยวกับรหัสจริงๆ ...

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

    • คุณพบจุดที่คุณต้องการเปลี่ยน

    • หากคุณสงสัยเกี่ยวกับรายละเอียดเล็ก ๆ น้อย ๆ คุณถามรายชื่อผู้แต่ง / การส่งจดหมายและอธิบายความตั้งใจของคุณ

    • คุณ cd ไปยังไดเรกทอรีหลักของการแจกจ่าย (รายการแรกที่มาจากการเปิด / ไม่ทำการซิป)

    • คุณ diff -ur . > mypatch.path

    • คุณส่งmypatch.patchให้ผู้เขียนอธิบายสิ่งที่คุณทำทำไมคุณถึงทำและ (ตามที่คุณมีอยู่แล้ว) คุณระบุชัดเจนว่าคุณสละสิทธิ์ในการแก้ไขให้พวกเขา

  • หากผู้เขียนไม่ชอบผลงานของคุณ

    • คุณตรวจสอบว่ามีวิธีที่จะปล่อยการเปลี่ยนแปลงของคุณเป็นปลั๊กอินหรือไม่

      • ในกรณีที่ว่าตอนนี้คุณอยู่ในทางของคุณจะกลายเป็นmantainer ปลั๊กอิน
    • อื่น

      • คุณลุกลี้เกี่ยวกับสถานการณ์ในบล็อกของคุณและปล่อยแพทช์ที่นั่นฟรีเพื่อดาวน์โหลดและลองด้วยคำอธิบายของคุณและคำโวยวายของคุณ

      • ตอนนี้คุณหลอกหลอนแล้วระบบบั๊ก / รายชื่อผู้รับจดหมายพยายามซื้อการสนับสนุนสำหรับแพทช์ของคุณ หลีกเลี่ยงการถูกแบน

    • ในกรณีเหล่านี้คุณไม่ต้องใช้รหัสเพราะมันเป็นกระบวนการที่น่าเบื่อหน่ายและไม่ทำกำไรคุณจะไม่ทันกับเวลา: ซึ่งจะทำให้ผู้ใช้เศร้าและสับสน งา shoud จริงๆเท่านั้นเกิดขึ้นเมื่อ บริษัท ขนาดใหญ่พยายามที่จะระรานตัดสินใจของเขาในชิ้นส่วนของ OSS

  • อื่น

    • คุณได้รับคำแนะนำเพิ่มเติมจากผู้เขียนคนนั้น

ด้านข้าง: มีทางเลือกที่ผ่านมากับdiff -ur .แพทช์และเป็นวิธีที่ GitHub

  • คุณ "แยก" รหัสของพวกเขาบน GitHub ภายใต้ชื่อของคุณ
    (ตอนนี้คุณมีสำเนาของรหัสของพวกเขาในบัญชีของคุณ)
  • เชื่อมต่อคอมไพล์ของคุณกับสำเนาส่วนตัวของคุณ
  • ทำการแก้ไขของคุณในสิ่งนั้นตรวจสอบพวกเขาใน
  • และบอกผู้เขียนหลักเพื่อดูโครงการ git ของคุณ

  • หากพวกเขาต้องการมันพวกเขาจะsyncronize

  • มิฉะนั้นคุณสามารถลิงก์ "gitfork" ของคุณบนบล็อกของคุณ

ทุกอย่างดีจนกระทั่งคุณแนะนำ OP ให้เปลวไฟที่ผู้เขียนผลิตภัณฑ์ไม่ได้กอดแพทช์คุณลักษณะใหม่มันก็ไม่ชัดเจนว่ามันควรจะตลกหรือจริงจังไม่ว่าจะด้วยวิธีใดก็ตามมันเป็นรูปแบบที่แย่มาก ๆ ทีมผลิตภัณฑ์ไม่ชอบ / ต้องการคุณลักษณะใหม่ของคุณ โพสต์ไว้เสมอ แต่จะไม่เห็นด้วยหากไม่ได้รับการยอมรับไม่ว่าจะเป็นการตัดสินใจที่ไร้เหตุผลก็ตาม -1 - FYI ฉันจะยกเลิกการลงคะแนนของฉันอย่างมีความสุขถ้าคุณลบออก
ocodo

แอปพลิเคชันที่ฉันต้องการเปลี่ยนแปลงนั้นปฏิบัติตามมาตรฐานที่เข้มงวดซึ่งการเปลี่ยนแปลงของฉันจะทำให้มาตรฐานแตกต่างกัน ฉันคิดว่าฉันไม่ได้อยู่ในตำแหน่งที่ขอให้ฉันนำแพทช์ไปใช้
Dani

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

@Dani ฮ่า ๆ จริงๆคุณจะต้องใช้เวลาร่วมกันแพทช์และพูดจาโผงผางเกี่ยวกับเรื่องนี้ทาง หลีกเลี่ยงการฟอร์กเพราะจะทำให้ชีวิตของคุณรู้สึกเหมือนได้รับการปรับปรุงใหม่อย่างต่อเนื่องโดยไม่ต้องชำระเงิน ... อย่างไรก็ตามตรวจสอบกับรายชื่อผู้รับจดหมายและระบบรายงานข้อผิดพลาดหากมีเพื่อดูว่ามีใครสนใจที่จะใช้ส่วนขยายประเภทนี้หรือไม่บางทีคุณอาจไม่ได้อยู่คนเดียว สิ่งที่ดีที่สุดก็คือพวกเขามี API บางอย่างที่จะขยายหรือปลั๊กอินสำหรับการเปลี่ยนแปลงของคุณ นั่นคือมักจะเลือกที่ดีที่สุดในกรณีดังกล่าว: mantaining ปลั๊กอิน ... จะแก้ไขสิ่งต่อไปนี้
ZJR

2
หากมีกรณีทดสอบอัตโนมัติให้เรียกใช้ก่อนที่คุณจะส่งแพตช์
oenone

0

เป็นปกติ

หากเป็นโครงการ OS แบบสุ่มคุณน่าจะแก้ไขบั๊กเล็กน้อยที่นี่และที่นั่น

ในที่สุดคุณจะส่งการเปลี่ยนแปลงมากมายในฐานะ "แพทช์"

โดยปกติแล้วคุณจะได้รับสิทธิ์ถ้าสิ่งที่คุณทำดี

ฉันกำลังพูดทั่วไปและคลุมเครือและไม่เฉพาะเจาะจงมากที่สุดเนื่องจากคำถาม

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