JavaScript වල පේළි එකොළහක් අන්තර්ජාලය බිඳ දැමීය. ප්රකාශනයන් ඉවත් කිරීමක්.
2016 මාර්තු 22, 21:30 UTC: "kik" නමැති පැකේජයේ නම Kik නම් වූ මැසේජින් යෙදුමට npm විසින් ලබා දීමෙන් පසුව, එහි පේටන්ට් නියෝජිතයා "ඔබේ දොරට තට්ටු කරන නීතිඥයන්" යැයි පොරොන්දු වීමෙන් පසුව, සංවර්ධකයෙකු ඔහුගේ npm පැකේජ 273ම ප්රකාශනයෙන් ඉවත් කරයි.
2016 මාර්තු 22, 21:30 UTC: "kik" නමැති පැකේජයේ නම Kik නම් වූ මැසේජින් යෙදුමට npm විසින් ලබා දීමෙන් පසුව, එහි පේටන්ට් නියෝජිතයා "ඔබේ දොරට තට්ටු කරන නීතිඥයන්" යැයි පොරොන්දු වීමෙන් පසුව, සංවර්ධකයෙකු ඔහුගේ npm පැකේජ 273ම ප්රකාශනයෙන් ඉවත් කරයි. 273න් එකක් වන්නේ left-pad ය: සෑම මසකම මිලියන 2.5 වතාවක් බාගත කරන ලද, string එකක් ඉදිරියෙන් ඉඩක් තබන පේළි එකොළහක්. මිනිත්තු කිහිපයක් ඇතුළත Babel, React සහ Node builds ලොව පුරා අසාර්ථක වේ, විනාඩියකට සිය ගණනක්. විනාඩි දහයක් තුළ fork එකක් දිස්වන අතර කිසිවක් වෙනස් නොවේ, මන්ද Babel left-pad පේළි අංක හරහා ලබා ගන්නා අතර, එය 0.0.3 හරියටම පින් කරයි. 23:55 ට npm විසින් මකා දැමූ සංස්කරණය උපස්ථයකින් ප්රතිස්ථාපනය කරයි - රෙජිස්ට්රි ඉතිහාසයේ පළමු "un-un-publish" - සහ සතියකට පසුව පැය 24ක ප්රකාශනය ඉවත් කිරීමේ නීතිය නිකුත් කරයි. Postmortem, npm ගේම වාර්තාවෙන් සහ Kik ප්රකාශයට පත් කළ ඊමේල් ත්රෙඩ් එකෙන්: කිසිදු යැපීමක් පරීක්ෂා කිරීමකින් තොරව ඕනෑම කතුවරයෙකුට ඕනෑම සංස්කරණයක් මකා දැමීමට ඉඩ දුන් රෙජිස්ට්රිය, සෑම ස්ථාපනයකදීම සජීවීව විසඳන ලද transitive tree, පෙරනිමියෙන් lockfile නොතිබීම. Git blame: 60 npm / 25 Kik / 15 the dependency habit. නිවැරදි කිරීම පිළිබඳ තීන්දුව: SHIP IT.
ලිඛිත සංස්කරණය කියවන්න (ඉංග්රීසි) ↗
මෙම වීඩියෝවෙන් ආවරණය වන දේ
- මාර්තු 11: Kik හි පේටන්ට් නියෝජිතයා Azer Koçulu ගෙන් `kik` යළි නම් කරන ලෙස ඉල්ලයි; පැයකට පසු: නීතිඥයන් "ඔබේ දොරට තට්ටු කර ඔබේ ගිණුම් ඉවත් කරයි"; Azer: $30,000; Kik විසින් npm support වෙත ඊමේල් කරයි
- මාර්තු 18–20: npm හි ප්රධාන විධායක නිලධාරී නම Kik වෙත මාරු කරයි ("kik.com හා සම්බන්ධ වීමට සාධාරණව අපේක්ෂා කළ හැක"); Azer ඔහුගේ සියලු මොඩියුල මකා දමන ලෙස ඉල්ලයි
- මාර්තු 22, 21:30–23:55 UTC: පැකේජ 273ක් ප්රකාශනයෙන් ඉවත් කෙරේ; Babel, Atom, Node ව්යාපෘති වල [email protected] 404s; 21:42 ට fork 1.0.0; 23:03 ට npm හි CTO "un-un-publishing" ට්වීට් කරයි; 23:55 ට උපස්ථයකින් 0.0.3 නැවත පැමිණේ — පැය 2.5ක්
- මාර්තු 23 සහ මාර්තු 29: npm හි postmortem ("අපි වැරැද්දක් කළා") සහ නව ප්රතිපත්තිය: පැය 24ක් ඇතුළත පමණක් ප්රකාශනය ඉවත් කිරීම, ඉවත් කරන ලද නම් සඳහා ආරක්ෂක ස්ථාන දරන්නන් (2020 සිට පැය 72ක්)
පරිවර්තනය කරන ලද පිටපත
මුල් ඉංග්රීසි නිරූපණයෙන් පරිවර්තනය කරන ලදී. පවතින ශ්රව්ය සහ ශීර්ෂ පාඨ YouTube මගින් පාලනය වේ.
0:00 එක් සංවර්ධකයෙකු JavaScript පේළි එකොළහක් මකා දමයි, සහ මිනිත්තු කිහිපයක් ඇතුළත Babel, React සහ Node builds ලොව පුරා අසාර්ථක වෙමින් පවතී, විනාඩියකට සිය ගණනක්. ක්රියාකාරිත්වය left-pad වේ. එය string එකක් ඉඩ වලින් පුරවයි, සහ සවස් වන විට npm විසින් එයට කළ නොහැකි බව පවසන එක් දෙයක් කරයි: මකා දැමූ සංස්කරණයක් නැවත ප්රකාශයට පත් කිරීම. එය සිදුවන ආකාරය, එය කළ හැකි වන්නේ ඇයි, සහ දොස් පැවරිය යුත්තේ කාටද. මෙය The Daily Diff, postmortem. මාර්තු 11. Kik, මැසේජින් යෙදුමෙහි පේටන්ට් නියෝජිතයෙකු,
0:26 Azer Koçulu ට ඊමේල් කරයි: ඔබේ npm පැකේජය යළි නම් කරන්න, kik අපගේ සන්නාමයයි. Azer එපා කියයි. පැයකට පසු: අපගේ වෙළඳ ලකුණු නීතිඥයන් ඔබේ දොරට තට්ටු කිරීමට නියමිතයි සහ ඔබේ ගිණුම් ඉවත් කිරීමට. Azer මිලක් නම් කරයි, තිස් දහසක් ඩොලර්, සහ Kik විසින් ත්රෙඩ් එක npm වෙත යොමු කරයි support. මාර්තු 18. npm හි ප්රධාන විධායක නිලධාරී තීරණය කරයි, npm install kik ටයිප් කරන ඕනෑම අයෙක් මැසේජින්
0:48 යෙදුම අපේක්ෂා කරන බව, සහ නම ලබා දෙයි. Azer ඔහුගේ සියල්ල මකා දමන ලෙස ඉල්ලයි. දින දෙකකට පසු ඔහු එය තමා විසින්ම කරයි: පැකේජ දෙසිය හැත්තෑ තුනක්. මාර්තු 22, 21:30 UTC. left-pad වෙත ළඟා වන සෑම build එකක්ම 404ක් ලබා ගනී. මිනිත්තු දහයකට පසු ආගන්තුකයෙකු එය 1.0.0 ලෙස නැවත ප්රකාශයට පත් කරයි, සහ කිසිවක් වෙනස් නොවේ, මන්ද Babel සහ Atom එය line-numbers නම් පැකේජයක් හරහා පූරණය කරයි, එය 0.0.3 හරියටම අවශ්ය වේ.
1:13 23:03 ට npm හි CTO ට්වීට් කරයි: un-un-publishing. 23:55 ට, 0.0.3 උපස්ථයකින් නැවත පැමිණේ. පැය දෙකහමාරක්. එක් පුද්ගලයෙකුට මෙය කළ හැක්කේ ඇයි? හේතු තුනක්. npm හි ඇති ඕනෑම සංස්කරණයක් එහි කතුවරයාට මකා දැමිය හැකිය, ක්ෂණිකව, එය මත රඳා පවතින්නේ කවුදැයි පරීක්ෂා කිරීමකින් තොරව. දෙවනුව, dependencies transitive වේ: Babel left-pad පවතින බව නොදනී, එය line-numbers දනී, සහ සම්පූර්ණ tree එක සෑම ස්ථාපනයකදීම සජීවීව විසඳා ඇත.
1:36 තෙවනුව, 2016 දී පෙරනිමියෙන් කිසිවක් එම tree එක පින් නොකරයි; lockfiles opt-in වේ, එබැවින් සෑම CI ධාවනයක්ම අන්තර්ජාලයෙන් නැවත අසයි, කේත පේළි එකොළහක් පෙනෙන්නේ කෙසේදැයි. එක් registry එකක්, එය මත රඳා පවතින කිසිවෙකු විසින් ධාවනය නොකරන ලදී. git blame. npm, සියයට හැටක්: එහිම postmortem පවසන්නේ අවිධිමත් ප්රකාශනය ඉවත් කිරීම වේදනාව ඇති කළ බව, සහ, උපුටා දැක්වීම, අපි වැරැද්දක් කළා. Kik, විසිපහක්: නීතිඥයෙකු නොව, පේටන්ට් නියෝජිතයෙකු, Kik විසින් දැනටමත් භාවිතා නොකිරීමට තීරණය කර තිබූ නමක් සම්බන්ධයෙන් දොරට නීතිඥයන් පොරොන්දු වීම. The dependency habit, පහළොවක්: npm-installed පේළි එකොළහක් ටයිප් නොකර සෑම කෙනෙකුම
2:06 ඒවා ටයිප් කිරීම වෙනුවට. Kik ද ඇතුළුව, ඔවුන්ගේ builds ද කැඩී යයි. Blast radius: පැකේජ දෙසිය හැත්තෑ තුනක් ඉවත් කරන ලදී, ඒවායින් එකක් මසකට මිලියන දෙකහමාරක් වාරයක් බාගත කරන ලදී. නිවැරදි කිරීමට පැය දෙකහමාරක් ගත වේ; ක්රියාකාරිත්වයට පේළි එකොළහක් ගත වේ. Hacker News හි, අපට වැඩසටහන් කිරීමට අමතක වී ඇත්දැයි අසන සටහනක් දහසය සත්සියයක් ලකුණු ලබා ගනී, බොහෝ දුරට ඔවුන්ගේ builds තවමත් රතු වී ඇති පුද්ගලයන්ගෙන්. තීන්දුව, postmortem: ship it.
2:26 npm උපස්ථයකින් ප්රතිස්ථාපනය කරයි, ඊළඟ දවසේ postmortem පළ කරයි, සහ සතියක් ඇතුළත තවමත් පවතින නීතිය නිකුත් කරයි: ඔබට ප්රකාශනය ඉවත් කළ හැකිය පැය විසිහතරක් සඳහා, ඉන් පසු ඔබ මිනිසෙකු සමඟ කතා කරයි. සඳුදා: ඔබේ lockfile commit කරන්න, සහ ක්රියාකාරිත්වයක් පේළි එකොළහක් නම්, එය ඡේදයකි, dependency එකක් නොවේ. ඔබට තවමත් කතා කිරීමට අවසර නැති සිදුවීම මට එවන්න, comments වල, හෝ daily diff dot dev හි. සහ අද සඳහා වෙනස එයයි.
2:48 මම Axrisi වෙතින් Niko. වගකීමෙන් යුතුව ඒකාබද්ධ කරන්න.
මූලාශ්ර
- 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



