Mistari kumi na moja ya JavaScript ilivuruga intaneti. Uchapishaji mmoja.
Machi 22, 2016, 21:30 UTC: msanidi programu anafuta vifurushi vyake vyote 273 vya npm baada ya npm kukabidhi jina la kifurushi "kik" kwa Kik, programu ya kutuma ujumbe, ambaye wakala wake wa hataza alikuwa ameahidi "mawakili watabisha hodi mlangoni kwako".
Machi 22, 2016, 21:30 UTC: msanidi programu anafuta vifurushi vyake vyote 273 vya npm baada ya npm kukabidhi jina la kifurushi "kik" kwa Kik, programu ya kutuma ujumbe, ambaye wakala wake wa hataza alikuwa ameahidi "mawakili watabisha hodi mlangoni kwako". Mojawapo ya 273 ni left-pad: mistari kumi na moja inayoeka nafasi mbele ya mfuatano, iliyopakuliwa mara milioni 2.5 kwa mwezi. Ndani ya dakika chache miundo ya Babel, React na Node inashindwa duniani kote, mamia kwa dakika. Fork inaonekana ndani ya dakika kumi na haibadilishi chochote, kwa sababu Babel inavuta left-pad kupitia nambari za mistari, ambayo inabana 0.0.3 haswa. Saa 23:55 npm inarejesha toleo lililofutwa kutoka chelezo — "un-un-publish" ya kwanza katika historia ya rejista — na wiki moja baadaye inasafirisha sheria ya saa 24 ya kutochapisha. Postmortem, kutoka kwa akaunti ya npm yenyewe na nyuzi ya barua pepe iliyochapishwa na Kik: rejista iliyomruhusu mwandishi yeyote kufuta toleo lolote bila kuangalia wategemezi, mti unaopitika uliotatuliwa moja kwa moja kwenye kila usakinishaji, hakuna lockfile kwa default. Git blame: 60 npm / 25 Kik / 15 tabia ya utegemezi. Hukumu juu ya suluhisho: SHIP IT.
Soma toleo lililoandikwa (Kiingereza) ↗
Nini video hii inashughulikia
- Machi 11: Wakala wa hataza wa Kik anamwomba Azer Koçulu abadilishe jina la `kik`; saa moja baadaye: mawakili "watabisha hodi mlangoni kwako na kuondoa akaunti zako"; Azer: $30,000; Kik anatumia barua pepe msaada wa npm
- Machi 18–20: Mkurugenzi Mtendaji wa npm anahamisha jina kwa Kik ("ingetarajia kwa busara litalihusisha na kik.com"); Azer anaomba moduli zake zote zifutwe
- Machi 22, 21:30–23:55 UTC: Vifurushi 273 havijachapishwa; [email protected] 404s katika miradi ya Babel, Atom, Node; fork 1.0.0 saa 21:42; CTO wa npm anatuma tweet "un-un-publishing" saa 23:03; 0.0.3 inarudi kutoka chelezo saa 23:55 — saa 2.5
- Machi 23 na Machi 29: ripoti ya uchunguzi ya npm ("tulikosea") na sera mpya: ondoa uchapishaji ndani ya masaa 24 tu, vihifadhi vya usalama kwa majina yaliyoondolewa (masaa 72 tangu 2020)
Nakala iliyotafsiriwa
Imetafsiriwa kutoka simulizi asili ya Kiingereza. Sauti na manukuu yanayopatikana yanadhibitiwa na YouTube.
0:00 Msanidi programu mmoja anafuta mistari kumi na moja ya JavaScript, na ndani ya dakika chache Babel, React na Node huacha kufanya kazi duniani kote, mamia kwa dakika. Kazi ni left-pad. Inajaza kamba na nafasi, na kufikia mwisho wa jioni npm inafanya kitu kimoja inachosema haiwezi kufanya: kuchapisha tena toleo lililofutwa. Jinsi inavyotokea, kwa nini inawezekana, na nani anapata lawama. Hii ni The Daily Diff, ripoti ya uchunguzi. Machi 11. Wakala wa hataza huko Kik, programu ya kutuma ujumbe,
0:26 anatumia barua pepe kwa Azer Koçulu: badilisha jina la kifurushi chako cha npm, kik ni chapa yetu. Azer anasema hapana. Saa moja baadaye: mawakili wetu wa alama za biashara watakuwa wakibisha hodi mlangoni kwako na kuondoa akaunti zako. Azer anataja bei, dola elfu thelathini, na Kik anasambaza barua pepe kwa msaada wa npm. Machi 18. Mkurugenzi Mtendaji wa npm anaamua kwamba yeyote anayeandika npm install kik anatarajia programu ya kutuma ujumbe,
0:48 na anakabidhi jina hilo. Azer anaomba vitu vyake vyote vifutwe. Siku mbili baadaye anafanya mwenyewe: vifurushi mia mbili sabini na tatu. Machi 22, 21:30 UTC. Kila ujenzi unaofikia left-pad unapata 404. Dakika kumi baadaye mgeni anachapisha tena kama 1.0.0, na hakuna kinachobadilika, kwa sababu Babel na Atom huipakia kupitia kifurushi kinachoitwa line-numbers, kinachohitaji 0.0.3 haswa.
1:13 Saa 23:03 CTO wa npm anatuma tweet: un-un-publishing. Saa 23:55, 0.0.3 inarudi kutoka chelezo. Saa mbili na nusu. Kwa nini mtu mmoja anaweza kufanya hivi? Sababu tatu. Toleo lolote kwenye npm linaweza kufutwa na mwandishi wake, mara moja, bila kuangalia nani anategemea. Pili, utegemezi hupitika: Babel hajui left-pad ipo, inajua line-numbers, na mti mzima hutatuliwa moja kwa moja kwenye kila usakinishaji.
1:36 Tatu, mwaka 2016 hakuna kinachobana mti huo kwa default; lockfiles ni hiari, hivyo kila CI run inauliza tena intaneti mistari kumi na moja ya msimbo inaonekanaje. Rejista moja, inayoendeshwa na mtu yeyote asiyeitegemea. git blame. npm, asilimia sitini: ripoti yake ya uchunguzi inasema kuchapisha bila vizuizi kulileta maumivu, na, nukuu, tulikosea. Kik, ishirini na tano: wakala wa hataza, si mwanasheria, akiahidi mawakili mlangoni juu ya jina ambalo Kik alikuwa tayari ameamua kutotumia. Tabia ya utegemezi, kumi na tano: kila mtu ambaye ali-npm-install mistari kumi na moja badala yake
2:06 ya kuandika. Ikiwa ni pamoja na Kik, ambaye miundo yake pia inavunjika. Eneo lililoathirika: vifurushi mia mbili sabini na tatu vilivyotolewa, kimoja kati yao kilipakuliwa mara milioni mbili na nusu kwa mwezi. Marekebisho huchukua saa mbili na nusu; kazi huchukua mistari kumi na moja. Kwenye Hacker News, chapisho likiuliza kama tumesahau jinsi ya kuprogramu linafikia pointi elfu moja mia saba, hasa kutoka kwa watu ambao miundo yao bado ni nyekundu. Hukumu, baada ya tukio: SHIP IT.
2:26 npm inarejesha kutoka chelezo, inachapisha ripoti ya uchunguzi siku inayofuata, na ndani ya wiki inasafirisha sheria ambayo bado inatumika: unaweza kuchapisha kwa masaa ishirini na nne, baada ya hapo unazungumza na binadamu. Jumatatu: thibitisha lockfile yako, na ikiwa kazi ni mistari kumi na moja, ni aya, sio utegemezi. Nitumie tukio ambalo bado hauruhusiwi kuzungumzia, katika maoni, au kwenye the daily diff dot dev. Na hiyo ndiyo tofauti kwa leo.
2:48 Mimi ni Niko kutoka Axrisi. Unganisha kwa uwajibikaji.
Vyanzo
- 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



