Пакетный менеджер NPM на прошлой неделе стал причиной сумятицы в связи с исчезновением маленького модуля left-pad, на который были установлены зависимости в Node, React, Babel и тысячах других пакетов. Чтобы не допустить такого в будущем, сейчас администрация NPM внесла изменения в правила. По новым правилам, автоматический отзыв модуля возможен только в течение 24 часов после публикации на сервере NPM. После этого времени отзыв допускается только с разрешения администрации.
Проблемы на прошлой неделе возникли из-за того, что веб-разработчик Азер Кочулу (Azer Koçulu) отозвал более 250 своих модулей для Node.js, в том числе left-pad. Он сделал это в ответ на некрасивый поступок администрации NPM, которая отдала его модуль kik под управление интернет-компании Kik после обращения юриста этой компании.
Программист отозвал свои модули и обвинил NPM в том, что этот open-source проект превращается в частную фирму, владельцы которой строят бизнес, зарабатывают деньги и, соответственно, во всём угождают компаниям вроде Kik. Именно в этом он видит главную проблему NPM, а не в засилье микромодулей с множеством зависимостей.
Азер Кочулу говорит, что абсолютно не сожалеет о своём поступке, а в долговременной перспективе сообщество «извлечёт пользу из опыта, который получило в прошлый вторник».
Администрация NPM, однако, решила проблему по-своему — и внедрила более жёсткий контроль. Теперь для отзыва модуля через 24 часа после публикации нужно отправить соответствующую просьбу на support@npmjs.com. Служба поддержки проверит, не ломает ли этот модуль какие-нибудь зависимости в других пакетах. Если ломает, то отзыв запрещают. В этом случае управление или отдадут другому разработчику, или постараются связаться с автором того пакета, где есть лишняя зависимость.
«На этой неделе мы видели много дискуссий о том, зачем вообще нужна функция unpublish
. Такие обсуждения велись и у нас в компании NPM, Inc. — говорится в корпоративном блоге. — Есть важные и правильные причины для её существования, так что у нас нет намерения её удалять, но сейчас мы значительно изменяем функциональность и правила работы unpublish
».
NPM приносит сообществу Node.js извинения за события прошлой недели и надеется, что такое больше не повторится.
Автор: alizar