Hamaika JavaScript lerrok internet apurtu zuten. Bat desargitaratu.
2016ko martxoaren 22a, 21:30 UTC: garatzaile batek bere 273 npm pakete guztiak desargitaratzen ditu, npm-k "kik" pakete-izena Kik-i, mezularitza-aplikazioari, ematen dionean, zeinaren patente-agenteak "abokatuak zure atea jotzen" agindu baitzuen.
2016ko martxoaren 22a, 21:30 UTC: garatzaile batek bere 273 npm pakete guztiak desargitaratzen ditu, npm-k "kik" pakete-izena Kik-i, mezularitza-aplikazioari, ematen dionean, zeinaren patente-agenteak "abokatuak zure atea jotzen" agindu baitzuen. 273etako bat left-pad da: kate baten aurrean espazioak jartzen dituzten hamaika lerro, hilean 2,5 milioi aldiz deskargatuta. Minutuen buruan Babel, React eta Node eraikuntzek huts egiten dute mundu osoan, ehunka minutuko. Hamar minututan fork bat agertzen da eta ez du ezer aldatzen, Babel-ek left-pad-a lerro-zenbakien bidez tiratzen duelako, 0.0.3 zehazki finkatzen duena. 23:55ean npm-k ezabatutako bertsioa leheneratzen du backup batetik —erregistroaren historiako lehen "des-des-argitalpena"— eta astebete geroago 24 orduko desargitaratze-araua ezartzen du. Postmortem, npm-ren kontu propioaren eta Kik-ek argitaratutako e-mail hariari jarraituz: edozein autoreri edozein bertsio ezabatzen uzten zion erregistroa menpekotasun-egiaztapenik gabe, trantsizio-zuhaitza zuzenean ebatzita instalazio bakoitzean, lockfile gabe lehenetsita. Git blame: 60 npm / 25 Kik / 15 menpekotasun-ohitura. Konponbidearen epaia: SHIP IT.
Irakurri idatzizko edizioa (ingelesez) ↗
Bideo honek zer jorratzen duen
- Martxoak 11: Kik-en patente-agenteak Azer Koçulu-ri `kik` izena aldatzeko eskatzen dio; ordubete geroago: abokatuak "zure atea jotzen eta zure kontuak kentzen"; Azer: $30.000; Kik-ek e-mailak bidaltzen dizkio npm support-i
- Martxoak 18–20: npm-ren CEO-ak izena Kik-i transferitzen dio ("zuen zentzuzkoa litzatekeela kik.com-ekin erlazionatuta egotea espero"); Azer-ek bere modulu guztiak ezabatzeko eskatzen du
- Martxoak 22, 21:30–23:55 UTC: 273 pakete desargitaratu; left-pad@0.0.3 404s Babel, Atom, Node proiektuetan; fork 1.0.0 21:42an; npm-ren CTO-ak "un-un-publishing" txioa 23:03an; 0.0.3 backup-etik itzuli 23:55ean — 2.5 ordu
- Martxoak 23 eta martxoak 29: npm-ren postmortem-a ("hutsegitea izan genuen") eta politika berria: 24 orduko epean soilik desargitaratu, kendutako izenen segurtasun-markatzaileak (72 h 2020tik aurrera)
Itzulitako transkripzioa
Jatorrizko ingelesezko narraziotik itzulia. Eskuragarri dauden audioa eta azpitituluak YouTube-k kontrolatzen ditu.
0:00 Garatzaile batek hamaika JavaScript lerro ezabatzen ditu, eta minutu gutxitan Babel, React eta Node eraikuntzak mundu osoan huts egiten ari dira, ehunka minutuko. Funtzioa left-pad da. Kate bati espazioak gehitzen dizkio, eta arratsaldearen amaieran npm-k egiten du egin ezin duela dioen gauza bakarra: ezabatutako bertsio bat berriro argitaratu. Nola gertatzen den, zergatik den posible, eta nor den errua. Hau da The Daily Diff, postmortem. Martxoaren 11. Kik mezularitza aplikazioko patente agente batek,
0:26 email bat bidaltzen dio Azer Koçuluri: izena aldatu zure npm paketea, kik gure marka da. Azerrek ezetz dio. Ordubete geroago: gure marka erregistratuen abokatuak zure atea jotzen eta zure kontuak itxiko dituzte. Azerrek prezio bat jartzen du, hogeita hamar mila dolar, eta Kik-ek hari hori npm-ra bidaltzen du laguntza. Martxoak 18. npm-ren CEO-ak erabakitzen du npm install kik idazten duen edonork mezularitza
0:48 aplikazioa espero duela, eta izena ematen dio. Azerrek bere gauza guztiak ezabatzea eskatzen du. Bi egun geroago berak egiten du: berrehun eta hirurogeita hamahiru pakete. Martxoak 22, 21:30 UTC. left-pad eskatzen duen eraikuntza bakoitzak 404 bat jasotzen du. Hamar minutu geroago ezezagun batek 1.0.0 gisa berriro argitaratzen du, eta ez da ezer aldatzen, Babel-ek eta Atom-ek line-numbers izeneko pakete baten bidez kargatzen dutelako, horrek 0.0.3 zehazki nahi du.
1:13 23:03an npm-ren CTO-ak txioa: un-un-publishing. 23:55ean, 0.0.3 backup batetik itzuli da. Bi ordu eta erdi. Zergatik egin dezake hori pertsona bakar batek? Hiru arrazoi. npm-ko edozein bertsio bere egileak ezabatu dezake, berehala, menpekoak nor diren egiaztatu gabe. Bigarrenik, menpekotasunak iragankorrak dira: Babel-ek ez daki left-pad existitzen denik, line-numbers ezagutzen du, eta zuhaitz osoa zuzenean ebazten da instalazio bakoitzean.
1:36 Hirugarrenik, 2016an ezerk ez zuen zuhaitz hori lehenetsita finkatzen; lockfile-ak aukerakoak ziren, beraz, CI exekuzio bakoitzak Interneti galdetzen zion hamaika kode lerrok nolakoa ziren. Erregistro bakarra, inork menpekotasunik ez duena. git blame. npm, hirurogei ehuneko: bere postmortem-ek dio baimenik gabeko desargitaratzeak mina eragin zuela, eta, hitzez hitz, huts egin genuen. Kik, hogeita bost: patente-agente bat, ez abokatu bat, abokatuak atean hitzemanez Kik-ek jadanik ez erabiltzea erabaki zuen izen baten gainean. Menpekotasun ohitura, hamabost: hamaika lerro npm-instalatu zituen edonork,
2:06 idatzi beharrean. Kik barne, zeinen eraikuntzak ere huts egiten duten. Eragin-erradioa: berrehun eta hirurogeita hamahiru pakete kendu, horietako bat hilean bi milioi eta erdi aldiz deskargatuta. Konponbideak bi ordu eta erdi irauten du; funtzioak hamaika lerro. Hacker News-en, programatzen ahaztu dugun galdetzen duen mezu batek mila zazpiehun puntu lortzen ditu, gehienak eraikuntzak oraindik gorriak dituzten pertsonengandik. Epaia, postmortem: SHIP IT.
2:26 npm-k backup-etik leheneratzen du, hurrengo egunean postmortem-a argitaratzen du, eta astebete barru indarrean dagoen araua ezartzen du: hogeita lau orduz desargitaratu dezakezu, gero gizaki batekin hitz egiten duzu. Astelehena: konprometitu zure lockfile-a, eta funtzio bat hamaika lerro bada, paragrafo bat da, ez menpekotasun bat. Bidali ezin duzun gertaera hori, iruzkinetan, edo daily diff dot dev-en. Eta hori da gaurko diff-a.
2:48 Niko naiz, Axrisi-koa. Batu arduraz.
Iturriak
- 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



