+− THE DAILY DIFFdev & AI news
SHIP IT

જાવાસ્ક્રિપ્ટની અગિયાર લાઇને ઇન્ટરનેટ તોડી નાખ્યું. એક અનપબ્લિશ.

22 માર્ચ, 2016, 21:30 UTC: એક ડેવલપરે તેના 273 npm પેકેજો અનપબ્લિશ કર્યા પછી npm એ "kik" નામનું પેકેજ Kik, મેસેજિંગ ઍપને આપી દીધું, જેના પેટન્ટ એજન્ટે "તમારા દરવાજે વકીલોનો ધમધમાટ"નું વચન આપ્યું હતું.

22 માર્ચ, 2016, 21:30 UTC: એક ડેવલપરે તેના 273 npm પેકેજો અનપબ્લિશ કર્યા પછી npm એ "kik" નામનું પેકેજ Kik, મેસેજિંગ ઍપને આપી દીધું, જેના પેટન્ટ એજન્ટે "તમારા દરવાજે વકીલોનો ધમધમાટ"નું વચન આપ્યું હતું. 273 માંથી એક left-pad છે: અગિયાર લાઇનો જે સ્ટ્રિંગની આગળ જગ્યાઓ ઉમેરે છે, જે મહિને 2.5 મિલિયન વખત ડાઉનલોડ થાય છે. મિનિટોમાં Babel, React અને Node ના બિલ્ડ્સ વિશ્વભરમાં નિષ્ફળ થવા લાગ્યા, પ્રતિ મિનિટ સેંકડો. દસ મિનિટમાં એક ફોર્ક દેખાય છે અને કંઈપણ બદલતું નથી, કારણ કે Babel left-pad ને લાઇન-નંબર્સ દ્વારા ખેંચે છે, જે 0.0.3 ને બરાબર પિન કરે છે. 23:55 વાગ્યે npm એ ડિલીટ કરેલ સંસ્કરણને બેકઅપમાંથી પુનઃસ્થાપિત કરે છે — રજિસ્ટ્રીના ઇતિહાસમાં પ્રથમ "અન-અન-પબ્લિશ" — અને એક અઠવાડિયા પછી 24-કલાકનો અનપબ્લિશ નિયમ રજૂ કરે છે. પોસ્ટમોર્ટમ, npm ના પોતાના અહેવાલ અને Kik દ્વારા પ્રકાશિત ઇ-મેલ થ્રેડમાંથી: રજિસ્ટ્રી જે કોઈપણ લેખકને કોઈપણ સંસ્કરણને કોઈપણ નિર્ભરતા તપાસ વિના કાઢી નાખવાની મંજૂરી આપે છે, ટ્રાન્ઝિટિવ ટ્રી દરેક ઇન્સ્ટોલ પર લાઇવ રિઝોલ્વ થાય છે, ડિફોલ્ટ રૂપે કોઈ લૉકફાઇલ નથી. Git બ્લેમ: 60 npm / 25 Kik / 15 નિર્ભરતાની આદત. ફિક્સ પર ચુકાદો: SHIP IT.

લખેલી આવૃત્તિ વાંચો (અંગ્રેજી) ↗

આ વીડિયોમાં શું આવરી લેવામાં આવ્યું છે

  • માર્ચ 11: Kik ના પેટન્ટ એજન્ટ Azer Koçulu ને `kik` નું નામ બદલવા કહે છે; એક કલાક પછી: વકીલો "તમારા દરવાજે ધમધમાટ કરશે અને તમારા એકાઉન્ટ બંધ કરી દેશે"; Azer: $30,000; Kik npm સપોર્ટને ઇ-મેલ કરે છે
  • માર્ચ 18–20: npm ના CEO નામ Kik ને ટ્રાન્સફર કરે છે ("વાજબી રીતે kik.com સંબંધિત હોવાની અપેક્ષા રાખશે"); Azer તેના બધા મોડ્યુલો ડિલીટ કરવાની માંગ કરે છે
  • માર્ચ 22, 21:30–23:55 UTC: 273 પેકેજો અનપબ્લિશ; [email protected] Babel, Atom, Node પ્રોજેક્ટ્સમાં 404s; 21:42 વાગ્યે fork 1.0.0; npm ના CTO 23:03 વાગ્યે "અન-અન-પબ્લિશિંગ" ટ્વીટ કરે છે; 23:55 વાગ્યે બેકઅપમાંથી 0.0.3 પાછું – 2.5 કલાક
  • માર્ચ 23 અને માર્ચ 29: npm નું પોસ્ટમોર્ટમ ("અમે ભૂલ કરી") અને નવી નીતિ: ફક્ત 24 કલાકની અંદર અનપબ્લિશ કરો, કાઢી નાખેલા નામો માટે સુરક્ષા પ્લેસહોલ્ડર્સ (2020 થી 72 કલાક)

અનુવાદિત ટ્રાન્સક્રિપ્ટ

મૂળ અંગ્રેજી કથામાંથી અનુવાદિત. ઉપલબ્ધ ઑડિઓ અને કૅપ્શન્સ YouTube દ્વારા નિયંત્રિત થાય છે.

0:00 એક ડેવલપર જાવાસ્ક્રિપ્ટની અગિયાર લાઇનો ડિલીટ કરે છે, અને મિનિટોમાં Babel, React અને Node ના બિલ્ડ્સ વિશ્વભરમાં નિષ્ફળ થઈ રહ્યા છે, પ્રતિ મિનિટ સેંકડો. કાર્ય left-pad છે. તે સ્ટ્રિંગમાં જગ્યાઓ ઉમેરે છે, અને સાંજ પૂરી થતાં npm એ એક વસ્તુ કરે છે જે તે કહી શકે છે કે તે કરી શકતું નથી: ડિલીટ કરેલ સંસ્કરણને ફરીથી પ્રકાશિત કરવું. તે કેવી રીતે થાય છે, શા માટે તે શક્ય છે, અને કોને દોષ મળે છે. આ The Daily Diff છે, પોસ્ટમોર્ટમ. માર્ચ 11. Kik, મેસેજિંગ ઍપના એક પેટન્ટ એજન્ટ,

0:26 Azer Koçulu ને ઇમેઇલ કરે છે: તમારા npm પેકેજનું નામ બદલો, kik અમારી બ્રાન્ડ છે. Azer ના પાડે છે. એક કલાક પછી: અમારા ટ્રેડમાર્ક વકીલો તમારા દરવાજે ધમધમાટ કરશે અને તમારા એકાઉન્ટ બંધ કરી દેશે. Azer એક કિંમત જણાવે છે, ત્રીસ હજાર ડોલર, અને Kik તે થ્રેડને npm ને ફોરવર્ડ કરે છે સપોર્ટ. માર્ચ 18. npm ના CEO નિયમ નક્કી કરે છે કે npm install kik ટાઇપ કરનાર કોઈપણ મેસેજિંગ

0:48 ઍપની અપેક્ષા રાખે છે, અને નામ સોંપી દે છે. Azer તેની બધી વસ્તુઓ ડિલીટ કરવાની માંગ કરે છે. બે દિવસ પછી તે પોતે જ કરે છે: બસ્સો તોતેર પેકેજો. માર્ચ 22, 21:30 UTC. દરેક બિલ્ડ જે left-pad સુધી પહોંચે છે તેને 404 મળે છે. દસ મિનિટ પછી એક અજાણી વ્યક્તિ તેને 1.0.0 તરીકે ફરીથી પ્રકાશિત કરે છે, અને કંઈપણ બદલાતું નથી, કારણ કે Babel અને Atom તેને લાઇન-નંબર્સ નામના પેકેજ દ્વારા લોડ કરે છે, જેને 0.0.3 બરાબર જોઈએ છે.

1:13 23:03 વાગ્યે npm ના CTO ટ્વીટ કરે છે: અન-અન-પબ્લિશિંગ. 23:55 વાગ્યે, 0.0.3 બેકઅપમાંથી પાછું આવે છે. અઢી કલાક. એક વ્યક્તિ આ શા માટે કરી શકે છે? ત્રણ કારણો. npm પર કોઈપણ સંસ્કરણ તેના લેખક દ્વારા ડિલીટ કરી શકાય છે, તરત જ, તેના પર કોણ નિર્ભર છે તેની તપાસ કર્યા વિના. બીજું, નિર્ભરતાઓ ટ્રાન્ઝિટિવ છે: Babel ને ખબર નથી કે left-pad અસ્તિત્વમાં છે, તે line-numbers જાણે છે, અને દરેક ઇન્સ્ટોલ પર આખું ટ્રી લાઇવ રિઝોલ્વ થાય છે.

1:36 ત્રીજું, 2016 માં કંઈપણ તે ટ્રીને ડિફોલ્ટ રૂપે પિન કરતું નથી; લૉકફાઇલ્સ ઑપ્ટ-ઇન છે, તેથી દરેક CI રન ઇન્ટરનેટને ફરીથી પૂછે છે કે અગિયાર લાઇન કોડ કેવો દેખાય છે. એક રજિસ્ટ્રી, જેના પર કોઈ નિર્ભર નથી તેના દ્વારા ચલાવવામાં આવે છે. git બ્લેમ. npm, સાઠ ટકા: તેના પોતાના પોસ્ટમોર્ટમમાં કહેવામાં આવ્યું છે કે અનિયંત્રિત અનપબ્લિશિંગ પીડાનું કારણ બન્યું, અને, અવતરણ, અમે ભૂલ કરી. Kik, પચ્ચીસ: એક પેટન્ટ એજન્ટ, વકીલ નહીં, Kik એ પહેલાથી જ ન વાપરવાનું નક્કી કર્યું હતું તે નામ પર વકીલો દરવાજે હોવાનું વચન આપ્યું હતું. નિર્ભરતાની આદત, પંદર: દરેક વ્યક્તિ કે જેણે અગિયાર લાઇનો ટાઇપ કરવાને બદલે npm-ઇન્સ્ટોલ કરી.

2:06 તેમને. Kik સહિત, જેના બિલ્ડ્સ પણ તૂટે છે. બ્લાસ્ટ રેડિયસ: બસ્સો તોતેર પેકેજો ખેંચાઈ ગયા, તેમાંથી એક મહિને અઢી મિલિયન વખત ડાઉનલોડ થાય છે. ફિક્સમાં અઢી કલાક લાગે છે; કાર્યમાં અગિયાર લાઇનો લાગે છે. હેકર ન્યૂઝ પર, એક પોસ્ટ પૂછે છે કે શું આપણે પ્રોગ્રામ કેવી રીતે કરવો તે ભૂલી ગયા છીએ, સત્તર સો પોઈન્ટ હિટ કરે છે, મોટે ભાગે એવા લોકો દ્વારા જેના બિલ્ડ્સ હજુ લાલ છે. ચુકાદો, પોસ્ટમોર્ટમ: SHIP IT.

2:26 npm બેકઅપમાંથી પુનઃસ્થાપિત કરે છે, બીજા દિવસે પોસ્ટમોર્ટમ પોસ્ટ કરે છે, અને એક અઠવાડિયાની અંદર તે નિયમ રજૂ કરે છે જે હજુ પણ માન્ય છે: તમે ચોવીસ કલાક માટે અનપબ્લિશ કરી શકો છો, તે પછી તમે કોઈ વ્યક્તિ સાથે વાત કરો. સોમવાર: તમારી લૉકફાઇલ કમિટ કરો, અને જો કોઈ કાર્ય અગિયાર લાઇનોનું હોય, તે એક ફકરો છે, નિર્ભરતા નથી. મને તે ઘટના મોકલો જેના વિશે તમને હજુ પણ વાત કરવાની મંજૂરી નથી, ટિપ્પણીઓમાં, અથવા daily diff dot dev પર. અને આજ માટે આટલો જ diff.

2:48 હું Axrisi માંથી Niko છું. જવાબદારીપૂર્વક મર્જ કરો.

સ્ત્રોતો

  1. npm, Inc., "kik, left-pad, and npm" (Mar 23, 2016)blog.npmjs.org
  2. npm, Inc., "changes to npm's unpublish policy" (Mar 29, 2016)blog.npmjs.org
  3. Azer Koçulu, "I've Just Liberated My Modules" (Mar 22, 2016; archive copy)web.archive.org
  4. Mike Roberts (Kik), "A discussion about the breaking of the Internet" — the full e-mail thread (Mar 23, 2016; archive copy)web.archive.org
  5. Laurie Voss (npm CTO) on X, Mar 22, 2016, 23:03 UTCx.com
  6. left-pad 0.0.3 on the npm registry (the eleven lines)registry.npmjs.org
  7. Hacker News, Mar 22, 2016 — "I've Just Liberated My Modules" (1,573 points)news.ycombinator.com
  8. Hacker News, Mar 23, 2016 — "NPM and Left-Pad: Have We Forgotten How to Program?" (1,725 points)news.ycombinator.com
  9. Hacker News, Mar 29, 2016 — "Changes to Npm's unpublish policy" (320 points)news.ycombinator.com
  10. The Register, Mar 23, 2016 — "How one developer just broke Node, Babel and thousands of projects in 11 lines of JavaScript"www.theregister.com

સંબંધિત વીડિયો

postmortem · gu · 17 સપ્ટે, 2026

ડિપેન્ડબોટના બમ્પે એક વોર્મ પ્રકાશિત કર્યો. 22 પેકેજો.

એક બોટ પુલ રિક્વેસ્ટ ખોલે છે. એક માનવી તેને 24 મિનિટ પછી મર્જ કરે છે. તે પછી 95 મિનિટમાં, એક વોર્મે તેના CI માંથી મળેલા ટોકન વડે, તેના નામ હેઠળ, તેના 22 npm પેકેજોના 110 દૂષિત વર્ઝન પ્રકાશિત કર્યા છે.

3:04 ↗
postmortem · gu · 15 સપ્ટે, 2026

એક રસ્ટ ક્રેટ કમ્પાઇલ ટાઇમ પર માલવેર ચલાવે છે. 86 મિનિટ.

260 મિલિયન ડાઉનલોડ્સ સાથેનો ચાર-મેક્રો રસ્ટ ક્રેટ એક નિર્ભરતા ઉમેરે છે, અને `cargo build` તમારી મશીન પર અજાણી વ્યક્તિનો બાઈનરી ચલાવે છે. 20 ઓગસ્ટ, 2026: arrayref 0.3.10 crates.io પર proc-macro1 — proc

3:09 ↗
postmortem · gu · 25 સપ્ટે, 2026

એક મિલિસેકન્ડના બગે યુકેના હવાઈ ટ્રાફિકને રોકી દીધો. છ કલાક સુધી.

મંગળવાર, 8 સપ્ટેમ્બરના રોજ સવારે 10:00 વાગ્યે, NATSના નેશનલ એરસ્પેસ સિસ્ટમ (NAS) માં એક રૂટિન સ્ક્વૉક-કોડ વિનંતીને ઉચ્ચ-પ્રાથમિકતાવાળા સંદેશ દ્વારા અટકાવવામાં આવે છે જ્યારે તે મૂલ્યને અપડેટ કરવાની પ્ર

3:06 ↗
postmortem · gu · 22 સપ્ટે, 2026

એક રીબૂટે ટેલ્સ્ટ્રાને 2006માં મોકલી દીધું. નવ મિલિયન ફોન.

મેલબોર્નમાં એક એન્જિનિયર સવારે 2:50 વાગ્યે ટાઈમિંગ ચેસિસને ફરીથી ચાલુ કરે છે, અને સવારના નાસ્તા સુધીમાં ઓસ્ટ્રેલિયાનું સૌથી મોટું મોબાઈલ નેટવર્ક સહમત થાય છે કે તે નવેમ્બર 2006 છે. 8 જુલાઈ, 2026: ટેલ્સ

3:15 ↗