คุณวลี“ เป็นโอเพ่นซอร์สส่งแพตช์” เพื่อให้เป็นมิตรได้อย่างไร


18

ในคำตอบของการตอบโต้ที่ยอมรับได้ของ "มันเป็นโอเพ่นซอร์สส่งแพตช์"? หลายคนแสดงความคิดเห็นว่าการขอให้คนส่งแพทช์นั้นหยิ่งและหยาบคาย

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

ในทางกลับกันคุณไม่ต้องการที่จะทำให้ผู้มีส่วนร่วมกลัว

ดังนั้นคุณจะพูดว่า "โปรดส่งแพทช์แทนที่จะถามคุณสมบัติ" ในลักษณะที่เป็นมิตรได้อย่างไร

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

(สิ่งเฉพาะโครงการเช่นวิธีการเขียนการทดสอบรวบรวมรหัสและส่งแพทช์ยังคงต้องมีเอกสารแน่นอน แต่ฉันคิดว่าปัญหาทางเทคนิคเหล่านั้นควรเข้าสู่ CONTRIBUTING.txt อยู่ดี)


10
สำคัญมากถ้าคุณไม่ต้องการรับแพทช์อย่าร้องขอ! นั่นคือถ้าคุณพูดว่า "ส่งแพตช์" คุณต้องยินดีที่จะยอมรับแพทช์ที่สะอาดและเขียนได้ดี
edA-qa mort-ora-y

1
@ edA-qa - ไม่จำเป็นต้องมีทุกแพทช์ที่สะอาดเขียนดี - แต่ถ้าคุณมีแนวโน้มที่จะยับยั้งคุณลักษณะใหม่ ๆ คุณควรจะมีวิธีที่ผู้คนสามารถเสนอคุณสมบัติเหล่านั้นให้กับคุณได้ เวลาพัฒนาพวกเขา
Steve314

@ Steve ฉันไม่ได้หมายถึงแพทช์ที่ไม่ได้ร้องขอนั่นเป็นเรื่องที่แตกต่าง ฉันหมายถึงเฉพาะในคำถามถ้าคุณบอกใครสักคนที่จะส่งแพทช์
edA-qa mort-ora-y

เป็นเพียงความหยิ่งและหยาบคายเมื่อคุณหมายถึง "ที่อาจจะใช่หรือไม่ใช่ความคิดที่ดี หากคุณหมายถึงว่ามันเป็นความคิดที่ไม่ดี หากคุณหมายความว่าเป็นความคิดที่ดีจริงๆที่คุณไม่มีเวลาดำเนินการให้พูดเช่นนั้น และระบุว่าคุณยินดีที่จะยอมรับแพทช์ที่ใช้งานฟีเจอร์นั้น (ด้วยวิธีนี้อาจมีใครบางคนที่จริงจะส่งแพทช์.) ปัญหาเพียงแค่พูดว่า "ส่งแพทช์" คือที่คลุมเครือและไม่ไยดี
David Schwartz

คำตอบ:


8

คุณทำไม่ได้

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

  • มันจะไม่หวานไหมถ้า [... ]? อาจเป็นไปได้ที่จะทำ A, B และ C (นั่นเป็นเหยื่อสำหรับ: ฉันไม่มีเวลา แต่นี่เป็นความคิดที่เฉพาะเจาะจงในกรณีที่คุณทำ)
  • นี่คือแพทช์ที่ต้องทำ / นี่เป็นการแก้ไขสำหรับ [... ]
  • ฉันกำลังคิดที่จะเขียนโปรแกรมปะแก้เพื่อทำ [... ] และสามารถใช้คำติชม / มีใครสนใจช่วย
  • เป็นต้น

ผู้เขียนที่ส่งคำขอคุณสมบัติโดยปกติจะทำเช่นนั้นด้วยเหตุผล บางคนรวมถึง (และฉันรู้ว่าจริง ๆ แล้วทั้งสองล่าสุดเกิดขึ้นใน WordPress เป็นต้น):

  • พวกเขากำลังคอลึกในโครงการโอเพนซอร์สอื่น ๆ เช่นไม่มีเวลา
  • พวกเขาเป็นนักปั่นฟรีและตั้งใจที่จะทำในสิ่งนั้น
  • มันเกินระดับความสามารถ / เขียนเป็นภาษาที่พวกเขาไม่รู้อะไรเลย
  • พวกเขาใช้ซอฟต์แวร์จากการไม่มีตัวเลือกที่ดีกว่าและไม่ต้องการจัดการกับกอง Batsh * t ^ \ b ที่ส่งกลิ่นเหม็น
  • พวกเขาไม่สามารถถูกรบกวนได้อีกต่อไปเพราะแพตช์ก่อนหน้าของพวกเขาถูกเพิกเฉย / ถูกปฏิเสธนั่นคือพวกเขาคิดว่าพวกเขาจะเสียเวลา

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


ฉันคิดว่าสิ่งที่สำคัญที่สุดของคุณควรที่จะไม่ละทิ้งผู้มีส่วนร่วมที่มีศักยภาพ / ที่มีอยู่แทนที่จะพยายามสรรหาคนใหม่ เป็นสิ่งสำคัญอย่างยิ่งและฉันพูดสิ่งนี้จากประสบการณ์ ฉันมีวิธีแปลก ๆ ในการรับรหัสฐานใหม่ซึ่งเกี่ยวข้องกับการอ่านรหัสอย่างคร่าวๆเพื่อทำความเข้าใจในระดับนั้นกระโดดลงไปในระบบจองตั๋วและแก้ไขข้อบกพร่องที่ดูง่ายเพื่อเรียนรู้ internals ในเชิงลึก (และการยื่น ใหม่เมื่อฉันทดสอบ) ในช่วงหลายปีที่ผ่านมาฉันท่วมหลายโครงการด้วยตั๋วและแพทช์นับสิบ หลายครั้งที่ตั๋วเหล่านี้ได้รับความสนใจน้อยมากถึงไม่ตรงเวลา (ไม่ใช่แม้แต่การรับรู้เช่นเก็บไว้เสมอ) - รวมถึงเมื่อพวกเขามาพร้อมกับขั้นตอนการวินิจฉัยที่เป็นเอกสารและการทดสอบหน่วย


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

9

ในระยะสั้นคุณอธิบายว่าคุณไม่มีเวลาไม่ จำกัด ในการทำงานได้ฟรี (คุณสามารถข้ามบิต 'ฟรี') และพวกเขาสามารถมีส่วนร่วมเมื่อใดก็ได้ที่ต้องการไม่ใช่โครงการ "ของคุณ" ซึ่งเป็นโครงการของทุกคน

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

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


ฉันชอบสิ่งนี้. บางทีนี่อาจเป็นสิ่งที่ดีที่สุดที่ใส่ไว้ในเอกสารประกอบดังนั้นคุณไม่มีสำเนาและวางทุกครั้งที่คุณต้องอธิบายเรื่องนี้ และจากนั้นคุณเพียงแค่พูดว่า "คุณต้องการที่จะมีส่วนร่วมกับแพทช์หรือไม่ http: //.../#contributing"
Jo Liss

@JLLiss: คุณมีความสำคัญต่อคำตอบของฉันในการให้เสียงที่ไม่มีตัวตน คุณคิดอย่างไรว่าการคัดลอกและวางไฮเปอร์ลิงก์ไปยังคำถามที่พบบ่อยนั้นดีกว่า หากคุณกำลังจะใช้การตอบกลับสำเร็จรูปจากนั้นให้ใช้คำตอบที่แสดงถึงความเอาใจใส่หรือฟังอย่างมืออาชีพ (หรือทั้งสองอย่าง) ความคิดสำหรับทางลัดนี้ไม่ใช่; ในความเป็นจริงมันเป็นอย่างแม่นยำชนิดของความรุนแรงที่คำถามเดิมบ่นเกี่ยวกับ
Aaronaught

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

6

สุภาพและอธิบายสถานการณ์ให้ชัดเจน เกี่ยวกับสิ่งที่ชอบ:

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

ดูสิคุณไม่สามารถพูดได้ว่า "ทำไมคุณถึงรบกวนฉันด้วยคำขอของคุณฉันไม่ได้มาที่นี่เพื่อทำงานให้คุณฟรีถ้าคุณต้องการคุณลักษณะนี้ บุคคลนั้นอาจไม่ใช่นักพัฒนาซอฟต์แวร์อาจไม่ทราบภาษาที่ใช้ในการพัฒนาผลิตภัณฑ์ ฯลฯ

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


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

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


5

ขอบคุณสำหรับคำขอของคุณ. เราได้เพิ่มไว้ใน Backlog โครงการของเราและจะตรวจสอบในไม่ช้า

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

จริง ๆ แล้วมันยากขนาดนั้นเลยเหรอ?


+1 ยอดเยี่ยม การตอบสนองที่ดีอย่างมืออาชีพ @Jo Liss: จำไว้ว่าคนส่วนใหญ่ต้องการใช้ซอฟต์แวร์โดยไม่เสียสละชีวิตของพวกเขา
Steven A. Lowe

ฉันชอบแก่นแท้ของมัน แต่โดยส่วนตัวแล้วฉันคิดว่าน้ำเสียงนั้นดูไม่เข้าท่าเลย โดยปกติคุณไม่ใช่ บริษัท ที่ให้บริการลูกค้าคุณเป็นเพียงนักพัฒนาที่กำลังคุยกับเพื่อน แม้แต่คนที่อายุ 37 ปีก็สามารถหลีกเลี่ยงภาษาประเภทนี้ได้
Jo Liss

@JoLiss คุณกำลังให้บริการลูกค้าไม่ว่าคุณจะเชื่อหรือไม่ก็ตาม และคุณไม่ได้พูดอะไรเกี่ยวกับ "เพื่อน" เป็นไปได้ว่าคนที่คุณพูดด้วยเป็นนักพัฒนา แต่ถ้าคุณไม่ทราบว่าเป็นเรื่องจริงฉันไม่คิดว่ามันเป็นข้อสันนิษฐานที่เหมาะสมที่จะทำ (เว้นแต่ว่าคุณกำลังทำงานกับเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ แต่คุณไม่ได้ระบุ ในคำถาม) ในที่สุดคนที่ 37 สัญญาณพูดคุยเกี่ยวกับสิ่งที่ถือ bullsh * t คือ ... แดกดันที่จะพูดอย่างน้อย
Aaronaught

ฮึ่ม ฉันไม่แน่ใจว่าฉันต้องการให้ความประทับใจที่ฉันทำบริการลูกค้า ... จุดของคุณที่ผู้ใช้ไม่จำเป็นต้องเป็นเพื่อนร่วมงานที่ดี Re 37signals นี่เป็นอีกบล็อกโพสต์ที่พูดถึงเรื่องของเสียง - ฉันคิดว่าประเด็นนั้นไม่มากนักที่คุณไม่ควรพล่าม แต่คุณไม่ควรหลุดออกมาเหมือน บริษัท ที่ไร้ตัวตน ในมุมมองของฉันนี่เป็นกลยุทธ์ที่ดีและยิ่งเป็นความจริงสำหรับโครงการโอเพ่นซอร์ส
Jo Liss

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

4

ดีแทนที่จะเพียงแค่พูดว่า "ส่งแพทช์" คุณควรทำอย่างละเอียดอีกหน่อย

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

ฉันเห็นด้วยกับเรื่องนี้ แต่ฉันจะเพิ่มที่คุณต้องการแนวทางที่ชัดเจนมากในสิ่งที่คุณคาดหวังจากแพทช์ (เช่นสอดคล้องกับมาตรฐานรหัสหน่วยทดสอบเอกสาร) สิ่งนี้มีความสำคัญเนื่องจากเป็นไปได้มากว่าคุณจะเป็นผู้ที่ต้องสนับสนุนคุณสมบัตินี้ - ผู้ส่งแพตช์ไม่ค่อยอยู่รอบตัวเพื่อแก้ไขข้อบกพร่องหรือให้การสนับสนุนผู้ใช้ห้องสมุดคนอื่น ๆ
Mark Heath

3

นี่คือสิ่งที่ฉันมักจะพูดว่า ...

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


2

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

หากคุณให้ความช่วยเหลือแก่นักพัฒนาที่เป็นไปได้พวกเขาจะยินดีมากกว่าที่จะให้ความช่วยเหลือ นี่หมายถึงเอกสารประกอบโค้ดที่ดีหน้าวิกิดีที่อธิบายโฟลว์ (หรือแผนภาพ UML / ไวท์บอร์ดที่ดี) และวิธีง่ายๆในการรับแพทช์ที่ยอมรับได้


-2

ฉันรักวิธีที่ GitHub สนับสนุนให้คนอื่น ๆ แยกโครงการ สามารถมีโครงการเดียวกันหลายเวอร์ชันภายใต้บัญชีผู้ใช้ที่แตกต่างกัน หากคุณไม่ชอบทิศทางที่ฉันทำโครงการมากกว่าโปรดแยกมันออก คุณสามารถส่งคำขอดึงได้อย่างง่ายดาย แต่ไม่ติดรอให้ฉันยอมรับ

ดังนั้นคำตอบของฉันมักจะเพียงแค่แยก

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