В двух словах: Контора, работающая над мессенджером kik, решила опубликовать в NPM свой модуль, однако там уже существовал модуль с таким именем и они решили попросить его автора переименовать свой модуль. Автор отказался это сделать и после небольшой переписки, контора обратилась напрямую к NPM с целью получить права над этим именем — NPM это сделал. Автор оригинального модуля kik в отместку удалил из NPM все свои модули.
Среди них был модуль в 11 строк кода left-pad (выравнивание строк!), который использовался многими другими популярными проектами. Это и сломало кучу других модулей в NPM, в результате чего у многих веб-разработчиков перестали строиться билды, в том числе и в конторе kik.
Здравствуйте, Vladek, Вы писали:
V>Среди них был модуль в 11 строк кода left-pad (выравнивание строк!), который использовался многими другими популярными проектами. Это и сломало кучу других модулей в NPM, в результате чего у многих веб-разработчиков перестали строиться билды, в том числе и в конторе kik.
Здравствуйте, Vladek, Вы писали:
V>В двух словах: Контора, работающая над мессенджером kik, решила опубликовать в NPM свой модуль, однако там уже существовал модуль с таким именем и они решили попросить его автора переименовать свой модуль. Автор отказался это сделать и после небольшой переписки, контора обратилась напрямую к NPM с целью получить права над этим именем — NPM это сделал. Автор оригинального модуля kik в отместку удалил из NPM все свои модули.
Там все прекрасно.
И юридический маразм, когда действие товарного знака распространяют на все что попало и под это прогибаются. По сути претензии kik примерно так же выглядят как претензии к названиям папок на компьютере в проекте. И наплевательство на права автора модулей. И наплевательство автора модуля в ответ. И сама функция из 11 строк. И то, что ее включили в зависимости в овердохрена других библиотечных. И особо доставляющий архитектурный маразм, когда зависимости при сборке берутся онлайн и это не баг, а так и задумано. Странно только, что подобного факапа после отзыва или правки модуля (этого или другого) еще ранее не случалось.
Здравствуйте, CreatorCray, Вы писали:
V>>Среди них был модуль в 11 строк кода left-pad (выравнивание строк!), который использовался многими другими популярными проектами. Это и сломало кучу других модулей в NPM, в результате чего у многих веб-разработчиков перестали строиться билды, в том числе и в конторе kik. CC>Говнофункция left-pad — аж целый модуль, с тоннами зависимостей?
Оформление любой зависимости как модуль — это не проблема. Вот зачем она была им всем нужна в таком виде — интересненько и показывает... мнэээ... особенности JS.
CC>А пламенный борец за свободы таки оказался реальным dick.
Здравствуйте, Michael7, Вы писали:
M>Там все прекрасно.
Вишенку на торте пропустили, как эту проблему будут лечить:
We will make it harder to un-publish a version of a package if doing so would break other packages.
Там весь пост великолепен, после фразы
So far, this followed a process that is routine, though rare. What happened next, though, was unprecedented.
восхохотамше под лавкою.
До народа походу не дошло, что реакция на "мы по собственной инициативе вырубили несколько тысяч пакетов на пару часов" немножко не такой должна быть.
Конкурс на фейл года можно завершать досрочно.
S>>* Fixed a bug where JPEGs of small mammals were incorrectly detected as negative numbers
D>Холмс, но как?
Юмор это, почитайте табличку версий по ссылке.
Но главная хохма в том, что они таки не шутили:
In 3.0.0, non-number inputs are treated as not positive (instead of as invalid).
Это мне было интересно, что именно значит len (в контексте supplementary characters).
В более сложном случае:
https://api.left-pad.io/?str=v&len=3&ch=%22
{"message": "Could not parse request body into json: Unexpected character (\'\"\' (code 34)): was expecting comma to separate OBJECT entries\n at [Source: [B@6f652c55; line: 4, column: 14]"}
А еще более интересно оказалось:
https://api.left-pad.io/?str=v&len=3&ch={
Пустой ответ. Чем { отличается от " и почему такая обработка ошибок — даже и не представляю.
Здравствуйте, netch80, Вы писали:
CC>>Говнофункция left-pad — аж целый модуль, с тоннами зависимостей? N>Оформление любой зависимости как модуль — это не проблема.
Вот если честно: если мне надо будет сделать паддинг строки мне в жизни в голову не придёт искать в интернетах модуль, который это делает.
N>По-моему, оба хороши.
Да, но таки в сильно разной степени.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
S>Вишенку на торте пропустили, как эту проблему будут лечить:
JS — это вообще какая-то вселенская Катастрофа.
хмм, так что, если автор мегакрутого модуля в 11 строк вместо unpublish сделает апдейт на 110 строк, который не только будет делать то, что делать должен, но и бэкдор откроет — куча проектов это засосут и поимеются? гениальная конструкция.
Здравствуйте, Dair, Вы писали:
S>>* Fixed a bug where JPEGs of small mammals were incorrectly detected as negative numbers
D>Холмс, но как?
как-как. все зависит как детектировались большие mammals. если как положительные числа, то в принципе не баг вовсе, а многофункциональная функция. вполне себе в духе JS.
P.S. по последним данным из МИДа Лавров произнес свою знаменитую фразу когда спеки по JS изучал.
DM>хмм, так что, если автор мегакрутого модуля в 11 строк вместо unpublish сделает апдейт на 110 строк, который не только будет делать то, что делать должен, но и бэкдор откроет — куча проектов это засосут и поимеются? гениальная конструкция.
Если я ничего не забыл и оно не поменялось, то от этого спасает не менее гениальное решение:
1. нельзя опубликовать новый код под старой версией
2. хардкод версий в dependencies.
Как этот dll hell разруливается? По топику в принципе можно догадаться, вот как-то так.
Я за этим цирком в основном наблюдаю со стороны, но судя по комментариям, баг возвращается аки кот за сметаной, иногда в особо впечатляющих масштабах.