Madame Semver กำลังรอคุณอยู่ตอนนี้
(nesbitt.io)- หมอดู Madame Semver ยื่นไพ่
^1.0.0ให้ผู้ดูแลโอเพนซอร์สที่กำลังลังเลเรื่องการ archive repository และคลี่ให้เห็นอนาคตที่ต้องเจอจากการไม่ archive - ตั้งแต่ PR ที่ผิดแต่ผ่านการทดสอบ ไปจนถึง issue ที่เข้าใจไลบรารีผิด, แพ็กเกจชื่อคล้ายกัน และ รายงานสแกนความปลอดภัย ที่มีช่องโหว่จริงปะปนอยู่หนึ่งรายการ ต่างค่อย ๆ แย่งเวลาของผู้ดูแลไปทีละอย่าง
- เมื่อ contributor ที่คอยจัดการปัญหาเล็ก ๆ และคำถามซ้ำ ๆ อย่างสม่ำเสมอ ขอ สิทธิ์ ใน repository ในปีที่ 3 Madame Semver ก็วางไพ่ใบนี้คว่ำไว้เพียงใบเดียว
- บางสิ่งที่เรียนรู้จาก README เก่าแนะนำฟังก์ชันที่ถูกลบไปแล้วต่อเนื่อง 2 ปี ส่วนไฟล์คำสั่งตัวพิมพ์ใหญ่และบ็อตอัตโนมัติเปลี่ยนวิธีเขียนเอกสารและการดูแล repository ไปในทิศทางที่ไม่คาดคิด
- ในอนาคต fork ที่ merge ทุกการเปลี่ยนแปลงภายในหนึ่งชั่วโมงได้รับเลือกจากผู้ใช้บางส่วน แต่ตัว fork เองกลับอ้างอิง repository ต้นฉบับด้วย caret range ทำให้ไม่อาจรู้ได้ว่า major version ถัดไปจะมาเยือนใคร
อนาคตอันใกล้ของ repository ที่ไม่ได้ archive
- caret ในไพ่ใบแรก
^1.0.0อนุญาตทุกสิ่งที่จะตามมาหลังจากนั้น และผู้คนมักลืมได้ง่ายว่าตนเองเป็นคนระบุช่วงนั้นไว้เอง - Madame Semver รู้อยู่แล้วว่าผู้ดูแลจะไม่ archive repository และคลี่เหตุการณ์ที่จะตามมาหลังการเลือกนั้นให้ดู
- ในเดือนมิถุนายน PR ที่สุภาพและมีแม้กระทั่งการทดสอบก็มาถึง
- การทดสอบผ่าน แต่โค้ดผิด ทำให้เวลาส่วนใหญ่ของวันเสาร์ของผู้ดูแลหมดไป
- ด้านล่างของคำอธิบายมีผู้ร่วมเขียนคนหนึ่งที่หารูปถ่ายไม่พบ และผู้ดูแลก็ merge PR ของเขาเพิ่มอีกสองรายการ ก่อนจะสร้างนิสัยตรวจสอบให้เป็นประจำ
- ในเดือนสิงหาคม คนคนหนึ่งเปิด issue ด้วยความมั่นใจทั้งที่เข้าใจความสามารถของไลบรารีผิด และอ้างอิงแหล่งข้อมูลที่โต้แย้งได้ยาก
- สัปดาห์ถัดมา ใครอีกคนปล่อยแพ็กเกจที่เขาอธิบายไว้ โดยตั้งชื่อแตกต่างจากชื่อเดิมเพียงตัวอักษรเดียว
- พอถึงเดือนกันยายน แพ็กเกจใหม่ก็ดึงยอดดาวน์โหลดไป
- บน ไพ่ Tower ปรากฏโครงสร้างสูงบนฐานเล็ก ๆ พร้อมคำว่า
Nebraska, 2003- ผู้ดูแลคุ้นเคยกับสิ่งนี้จากแก้วมัคอยู่แล้ว จึงไม่จำเป็นต้องอธิบายเพิ่มเติม
- การสแกนความปลอดภัยในเดือนตุลาคมสร้างรายงานที่ยาวและประณีต พร้อมคะแนนความรุนแรงที่ไม่ได้ร้องขอและบทสรุปสำหรับผู้บริหาร
- ในสิ่งที่พบ 12 รายการ มี 11 รายการเป็นเพียงการเขียนพฤติกรรมที่มีเอกสารรองรับอยู่แล้วใหม่ให้ดูเหมือนข้อบกพร่อง
- อีก 1 รายการที่เหลือเป็นปัญหาจริง ผู้ดูแลจึงต้องอ่านทั้ง 11 รายการก่อนหน้าด้วย และต้องทำแบบเดียวกันอีกในเดือนพฤศจิกายน
- contributor ที่มาพร้อมเครื่องมือแก้ปัญหาเล็ก ๆ โดยไม่เรียกร้องค่าตอบแทน และยังตอบคำถามซ้ำ ๆ ที่ผู้ดูแลเหนื่อยหน่ายแทนด้วย
- ตอนแรกผู้ดูแลชื่นชมความอดทนของเขา แต่เมื่อเวลาผ่านไปก็เริ่มค้นหาตัวตนของเขา
- ในปีที่ 3 เมื่อเขาขอ กุญแจของ repository Madame Semver ก็วางไพ่ใบนี้คว่ำไว้เพียงใบเดียว
อนาคตที่ไกลออกไปและ major version ถัดไป
- บางสิ่งที่มีความทรงจำยาวนานอ่าน README เก่า และแนะนำฟังก์ชันที่ถูกลบไปในเดือนมีนาคมอย่างมั่นใจอยู่ราว 2 ปี
- สุดท้ายผู้ดูแลเพิ่มฟังก์ชันนั้นกลับเข้าไปและทำเครื่องหมายว่า deprecated
- ผู้ใช้รายงานคำเตือน deprecated ว่าเป็นบั๊ก
- ที่ root ของ repository มี ไฟล์ตัวพิมพ์ใหญ่ทั้งหมด ซึ่งบรรจุคำสั่งถึงเป้าหมายที่ไม่ระบุชัดเจนเกิดขึ้น
- ไฟล์นี้ถูกอ่านอย่างตั้งใจมากกว่าเอกสารใด ๆ ที่ผู้ดูแลเคยเขียน
- เมื่อเวลาผ่านไป ผู้ดูแลเริ่มเขียนเอกสารอื่น ๆ ด้วยน้ำเสียงเดียวกัน แต่จำไม่ได้ว่าตัดสินใจเช่นนั้นตั้งแต่เมื่อใด
- บ่ายวันอังคารวันหนึ่ง บางสิ่งใน Virginia ดึง tarball ไป 11,000 ครั้ง
- นั่นไม่ใช่การโจมตี แต่เป็นความกระตือรือร้นของใครบางคนที่กำลังรัน loop และผลลัพธ์คือมีชื่อแพ็กเกจนั้นอยู่ใน loop ดังกล่าว
- ในเดือนเดียวกัน ผู้ดูแลจ้างคนรับใช้อัตโนมัติมาช่วยปิดประตูที่ตนเองปิดไม่ได้
- คนรับใช้อีกตนที่ไม่ได้จ้างยังคงเปิดประตูนั้นไว้ตลอด
- ระหว่างระบบอัตโนมัติทั้งสอง ประตูบานเดิมจึงเปิดและปิดซ้ำไปซ้ำมาตลอด 1 ปี
- ในอนาคตอันไกล มี fork ใหม่ปรากฏขึ้น
- ผู้ดูแล fork ไม่รู้จักเหน็ดเหนื่อย ตอบสนองทันที และ merge ทุกการเปลี่ยนแปลงภายในหนึ่งชั่วโมง
- ทันทีที่เห็นอวาตาร์ก็รู้ได้ว่าเป็นตัวตนแบบใด และหลายคนชอบ fork นั้นมากกว่าต้นฉบับ
- อย่างไรก็ตาม fork นั้นก็ยังตรึงกับ repository ต้นฉบับด้วย caret เช่นกัน จึงอนุญาตทุกสิ่งที่จะตามมาหลังจากนั้น
- แพ็กเกจค่าทำนายมีสามระดับคือ
$1,$5และ$25ที่มาพร้อมเข็มกลัดเคลือบขนาดเล็ก แต่ผู้ดูแลจ่ายแค่$1ซึ่งเป็นระดับที่ทุกคนจ่าย - Madame Semver บอกให้กลับมาอีกเมื่อ major version ถัดไปมาถึง แต่ไม่ได้เปิดเผยว่านั่นเป็น major version ของใคร
1 ความคิดเห็น
ความคิดเห็นจาก Lobste.rs
เดี๋ยวก่อน บางที Randall อาจจะทำเองให้ก็ได้