https://habrahabr.ru/post/280039/- Open source
- Node.JS
- JavaScript
Веб-разработчик Азер Кочулу (Azer Koçulu), автор
более 250 модулей для Node.js, попал в неприятную ситуацию. В своём блоге он
пишет, что несколько недель назад получил письмо от юриста компании
Kik (мессенджер) с требованием отозвать модуль с аналогичным названием
kik из пакетного менеджера
NPM (Node Package Manager).
Программист отказался, тогда юрист обратился напрямую в NPM, и администрация проекта удовлетворила его требование, сменив владельца kik без разрешения автора.
Азер Кочулу был крайне недоволен этим. Настолько недоволен, что решил в ответ «освободить» (то есть отозвать) все свои модули — более 250 модулей NPM. К сожалению, среди них оказался и
left-pad — маленький модуль из 11 строк кода на JavaScript. Он используется при установке зависимостей между пакетами через NPM, в том числе в Node.js, JavaScript-транскомпиляторе Babel и огромном количестве других билдов. Только за прошлый месяц left-pad скачали 2 486 696 с сервера NPM, по их статистике.
Код left-pad показан ниже. Он просто заполняет левую часть строки нулями или пробелами.
module.exports = leftpad;
function leftpad (str, len, ch) {
str = String(str);
var i = -1;
if (!ch && ch !== 0) ch = ' ';
len = len - str.length;
while (++i < len) {
str = ch + str;
}
return str;
}
Несмотря на простоту модуля, в тысячах приложений менеджер NPM теперь
не мог установить зависимости между пакетами.
Чтобы в экстренном порядке исправить ситуацию, технический директор и сооснователь NPM Лори Восс (Laurie Voss) пошёл
беспрецедентный шаг (так он назвал его в твиттере) и, «учитывая серьёзность и распространённость проблемы», отменил отзыв модуля. Была опубликована старая версия модуля, аналогичная последней.
Сам Азер Кочулу считает, что администрация NPM берёт на себя слишком много полномочий. Он верит в силу движения Open Source и призывает создать «по-настоящему свободную альтернативу NPM». Азер просит прощения у всех веб-разработчиков, кто пострадал в результате его действий. Модуль Kik и другие он
выложил на Github.