जाभास्क्रिप्टका एघार लाइनले इन्टरनेट भत्काए। एउटा अनपब्लिश।
मार्च २२, २०१६, २१:३० UTC: एक विकासकर्ताले आफ्नो २७३ npm प्याकेजहरू अनपब्लिश गर्छन् जब npm ले "kik" प्याकेज नाम Kik, सन्देश पठाउने एपलाई दिन्छ, जसका पेटेन्ट एजेन्टले "तपाईँको ढोकामा वकिलहरू ठोक्किनेछन्" भनी वाचा गरेका थिए।
मार्च २२, २०१६, २१:३० UTC: एक विकासकर्ताले आफ्नो २७३ npm प्याकेजहरू अनपब्लिश गर्छन् जब npm ले "kik" प्याकेज नाम Kik, सन्देश पठाउने एपलाई दिन्छ, जसका पेटेन्ट एजेन्टले "तपाईँको ढोकामा वकिलहरू ठोक्किनेछन्" भनी वाचा गरेका थिए। २७३ मध्ये एउटा left-pad हो: एघार लाइन जसले स्ट्रिङको अगाडि स्पेस राख्छ, प्रति महिना २५ लाख पटक डाउनलोड गरिएको। केही मिनेटभित्र Babel, React र Node का बिल्डहरू विश्वव्यापी रूपमा असफल हुन्छन्, प्रति मिनेट सयौंको संख्यामा। दस मिनेटमा एउटा फोर्क देखा पर्छ र यसले केही परिवर्तन गर्दैन, किनभने Babel ले left-pad लाई लाइन-नम्बरहरू मार्फत तान्छ, जसले 0.0.3 लाई ठ्याक्कै पिन गर्छ। २३:५५ मा npm ले ब्याकअपबाट मेटाइएको संस्करण पुनर्स्थापित गर्छ — रजिस्ट्रिको इतिहासमा पहिलो "अन-अन-पब्लिश" — र एक हप्तापछि २४-घण्टा अनपब्लिश नियम लागू गर्छ। पोस्टमोर्टम, npm को आफ्नै खाता र Kik ले प्रकाशित गरेको इ-मेल थ्रेडबाट: रजिस्ट्रिले कुनै पनि लेखकलाई कुनै पनि संस्करण मेट्न दियो कुनै डिपेन्डेन्ट जाँच बिना, ट्रान्जिटिभ ट्री हरेक स्थापनामा लाइभ समाधान भयो, पूर्वनिर्धारित रूपमा कुनै लकफाइल थिएन। Git ब्लेम: ६० npm / २५ Kik / १५ डिपेन्डेन्सी बानी। समाधानमा निर्णय: SHIP IT.
लिखित संस्करण पढ्नुहोस् (अंग्रेजी) ↗
यो भिडियोले के समेट्छ
- मार्च ११: Kik का पेटेन्ट एजेन्टले अजर कोकुलुलाई `kik` नाम परिवर्तन गर्न भन्छन्; एक घण्टा पछि: वकिलहरू "तपाईँको ढोकामा ठोक्किनेछन् र तपाईँका खाताहरू बन्द गरिदिनेछन्"; अजर: $३०,०००; Kik ले npm समर्थनलाई इ-मेल गर्छ।
- मार्च १८–२०: npm का सीईओले नाम Kik लाई हस्तान्तरण गर्छन् ("kik.com सँग सम्बन्धित हुने अपेक्षा गर्न सकिन्छ"); अजरले आफ्ना सबै मोड्युलहरू मेट्न अनुरोध गर्छन्।
- मार्च २२, २१:३०–२३:५५ UTC: २७३ प्याकेजहरू अनपब्लिश गरिए; [email protected] Babel, Atom, Node परियोजनाहरूमा 404s; २१:४२ मा फोर्क 1.0.0; npm का CTO ले २३:०३ मा "un-un-publishing" ट्वीट गर्छन्; २३:५५ मा ब्याकअपबाट 0.0.3 फिर्ता — २.५ घण्टा।
- मार्च २३ र मार्च २९: npm को पोस्टमोर्टम ("हामीले गल्ती गर्यौं") र नयाँ नीति: २४ घण्टा भित्र मात्र अनपब्लिश गर्न सकिने, हटाइएका नामहरूका लागि सुरक्षा प्लेसहोल्डरहरू (२०२० देखि ७२ घण्टा)।
अनुवादित ट्रान्सक्रिप्ट
मूल अंग्रेजी कथाबाट अनुवादित। उपलब्ध अडियो र क्याप्सनहरू YouTube द्वारा नियन्त्रित हुन्छन्।
0:00 एक विकासकर्ताले जाभास्क्रिप्टका एघार लाइनहरू मेटाउँछन्, र केही मिनेटभित्र Babel, React र Node का बिल्डहरू विश्वव्यापी रूपमा असफल भइरहेका छन्, प्रति मिनेट सयौंको संख्यामा। यो फङ्कसन left-pad हो। यसले स्ट्रिङमा स्पेस थप्छ, र साँझसम्म npm ले त्यही काम गर्छ जुन गर्न सक्दिन भन्छ: मेटाइएको संस्करण पुन: प्रकाशित गर्नु। यो कसरी हुन्छ, किन सम्भव छ, र कसलाई दोष लाग्छ। यो The Daily Diff हो, पोस्टमोर्टम। मार्च ११। Kik, सन्देश पठाउने एपका एक पेटेन्ट एजेन्टले,
0:26 अजर कोकुलुलाई इमेल गर्छन्: तपाईँको npm प्याकेजको नाम परिवर्तन गर्नुहोस्, kik हाम्रो ब्रान्ड हो। अजरले मान्दैनन्। एक घण्टा पछि: हाम्रा ट्रेडमार्क वकिलहरू तपाईँको ढोकामा ठोक्किनेछन् र तपाईँका खाताहरू बन्द गरिदिनेछन्। अजरले तीस हजार डलरको मूल्य तोक्छन्, र Kik ले सो कुराकानी npm लाई पठाउँछ समर्थनमा। मार्च १८। npm का सीईओले npm install kik टाइप गर्ने जो कोहीले पनि सन्देश पठाउने
0:48 एपको अपेक्षा गर्छन् भनी निर्णय गर्छन्, र नाम हस्तान्तरण गर्छन्। अजरले आफ्ना सबै कुरा मेट्न अनुरोध गर्छन्। दुई दिन पछि उनले आफैं गर्छन्: दुई सय सतहत्तर प्याकेजहरू। मार्च २२, २१:३० UTC। left-pad मा पुग्ने हरेक बिल्डमा 404 आउँछ। दस मिनेट पछि एक अपरिचित व्यक्तिले यसलाई 1.0.0 को रूपमा पुन: प्रकाशित गर्छन्, र केही परिवर्तन हुँदैन, किनभने Babel र Atom ले यसलाई line-numbers नामक प्याकेज मार्फत लोड गर्छन्, जसलाई ठ्याक्कै 0.0.3 चाहिन्छ।
1:13 २३:०३ मा npm का CTO ले ट्वीट गर्छन्: un-un-publishing। २३:५५ मा, 0.0.3 ब्याकअपबाट फिर्ता आउँछ। अढाई घण्टा। किन एक व्यक्तिले यो गर्न सक्छन्? तीन कारण। npm मा कुनै पनि संस्करण यसको लेखकद्वारा मेट्न सकिन्छ, तत्काल, यसमा को निर्भर छ भनी जाँच नगरी। दोस्रो, डिपेन्डेन्सीहरू ट्रान्जिटिभ हुन्छन्: Babel लाई left-pad अवस्थित छ भनी थाहा हुँदैन, यसलाई line-numbers थाहा हुन्छ, र सम्पूर्ण ट्री हरेक स्थापनामा लाइभ समाधान हुन्छ।
1:36 तेस्रो, २०१६ मा पूर्वनिर्धारित रूपमा केहीले पनि त्यो ट्रीलाई पिन गर्दैन; लकफाइलहरू अप्ट-इन हुन्छन्, त्यसैले हरेक CI रनले इन्टरनेटलाई एघार लाइनको कोड कस्तो देखिन्छ भनी फेरि सोध्छ। एउटा रजिस्ट्रि, जसलाई यसमा निर्भर कोहीले पनि चलाउँदैन। git blame। npm, साठी प्रतिशत: यसको आफ्नै पोस्टमोर्टम भन्छ कि अप्रतिबन्धित अनपब्लिशिङले समस्या निम्त्यायो, र, उद्धरण, हामीले गल्ती गर्यौं। Kik, पच्चीस: एक पेटेन्ट एजेन्ट, वकिल होइनन्, Kik ले पहिले नै प्रयोग नगर्ने निर्णय गरिसकेको नामको लागि वकिलहरू ढोकामा आउने धम्की दिँदै। डिपेन्डेन्सीको बानी, पन्ध्र: एघार लाइनहरू टाइप गर्नुको सट्टा npm-install गर्ने सबै जना,
2:06 जसमा Kik पनि पर्छ, जसको बिल्डहरू पनि बिग्रिन्छन्। जसमा Kik पनि पर्छ, जसको बिल्डहरू पनि बिग्रिन्छन्। क्षतिग्रस्त क्षेत्र: दुई सय सतहत्तर प्याकेजहरू हटाइए, ती मध्ये एक प्रति महिना २५ लाख पटक डाउनलोड गरिएको। समाधान गर्न अढाई घण्टा लाग्छ; फङ्कसनमा एघार लाइनहरू छन्। Hacker News मा, हामीले प्रोग्राम गर्न बिर्सियौं कि भन्ने प्रश्न सोध्ने एउटा पोस्टले सत्र सय अंक पाउँछ, प्रायः ती मानिसहरूबाट जसका बिल्डहरू अझै रातो छन्। निर्णय, पोस्टमोर्टम: SHIP IT।
2:26 npm ले ब्याकअपबाट पुनर्स्थापित गर्छ, भोलिपल्ट पोस्टमोर्टम पोस्ट गर्छ, र एक हप्ता भित्र त्यो नियम लागू गर्छ जुन अझै कायम छ: तपाईँ २४ घण्टाका लागि अनपब्लिश गर्न सक्नुहुन्छ, त्यसपछि तपाईँले एक मानवसँग कुरा गर्नुपर्छ। सोमबार: तपाईँको लकफाइल कमिट गर्नुहोस्, र यदि एउटा फङ्कसन एघार लाइनको छ भने, यो एउटा अनुच्छेद हो, डिपेन्डेन्सी होइन। मलाई त्यो घटना पठाउनुहोस् जसको बारेमा तपाईँलाई अझै पनि कुरा गर्न अनुमति छैन, टिप्पणीहरूमा, वा daily diff dot dev मा। र आजको लागि यति नै diff।
2:48 म Axrisi बाट निको हुँ। जिम्मेवारीपूर्वक मर्ज गर्नुहोस्।
स्रोतहरू
- npm, Inc., "kik, left-pad, and npm" (Mar 23, 2016)blog.npmjs.org
- npm, Inc., "changes to npm's unpublish policy" (Mar 29, 2016)blog.npmjs.org
- Azer Koçulu, "I've Just Liberated My Modules" (Mar 22, 2016; archive copy)web.archive.org
- Mike Roberts (Kik), "A discussion about the breaking of the Internet" — the full e-mail thread (Mar 23, 2016; archive copy)web.archive.org
- Laurie Voss (npm CTO) on X, Mar 22, 2016, 23:03 UTCx.com
- left-pad 0.0.3 on the npm registry (the eleven lines)registry.npmjs.org
- Hacker News, Mar 22, 2016 — "I've Just Liberated My Modules" (1,573 points)news.ycombinator.com
- Hacker News, Mar 23, 2016 — "NPM and Left-Pad: Have We Forgotten How to Program?" (1,725 points)news.ycombinator.com
- Hacker News, Mar 29, 2016 — "Changes to Npm's unpublish policy" (320 points)news.ycombinator.com
- The Register, Mar 23, 2016 — "How one developer just broke Node, Babel and thousands of projects in 11 lines of JavaScript"www.theregister.com



