- PVSM.RU - https://www.pvsm.ru -

Один разработчик чуть не «сломал» пакетный менеджер NPM

Веб-разработчик Азер Кочулу (Azer Koçulu), автор более 250 модулей для Node.js [1], попал в неприятную ситуацию. В своём блоге он пишет [2], что несколько недель назад получил письмо от юриста компании Kik [3] (мессенджер) с требованием отозвать модуль с аналогичным названием kik [4] из пакетного менеджера NPM [5] (Node Package Manager).

Программист отказался, тогда юрист обратился напрямую в NPM, и администрация проекта удовлетворила его требование, сменив владельца модуля kik без разрешения автора.

Азер Кочулу был крайне недоволен этим. Настолько недоволен, что решил в ответ «освободить» (то есть отозвать) все свои модули — более 250 модулей NPM. К сожалению, среди них оказался и left-pad [6] — маленький модуль из 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 теперь не мог установить зависимости между пакетами [7].

Чтобы в экстренном порядке исправить ситуацию, технический директор и сооснователь NPM Лори Восс (Laurie Voss) пошёл беспрецедентный шаг [8] (так он назвал его в твиттере) и, «учитывая серьёзность и распространённость проблемы», отменил отзыв модуля. Была опубликована старая версия модуля, аналогичная последней.

Сам Азер Кочулу считает, что администрация NPM берёт на себя слишком много полномочий. Он верит в силу движения Open Source и призывает создать «по-настоящему свободную альтернативу NPM». Азер просит прощения у всех веб-разработчиков, кто пострадал в результате его действий. Модуль Kik и другие он выложил на Github [9].

Автор: alizar

Источник [10]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/115928

Ссылки в тексте:

[1] более 250 модулей для Node.js: https://gist.githubusercontent.com/azer/db27417ee84b5f34a6ea/raw/50ab7ef26dbde2d4ea52318a3590af78b2a21162/gistfile1.txt

[2] пишет: https://medium.com/@azerbike/i-ve-just-liberated-my-modules-9045c06be67c#.ypymls2zp

[3] Kik: http://www.kik.com/

[4] kik: https://github.com/starters/kik

[5] NPM: https://www.npmjs.com/

[6] left-pad: https://github.com/azer/left-pad/blob/master/index.js

[7] не мог установить зависимости между пакетами: https://github.com/azer/left-pad/issues/4

[8] беспрецедентный шаг: https://twitter.com/seldo/status/712414588281552900

[9] выложил на Github: https://github.com/azer

[10] Источник: https://habrahabr.ru/post/280039/